OQ-07, OQ-173: сопоставление ВГО — упаковка 1:1 / 1:N / N:1 и каскад по остатку (#136) #137

Merged
aep merged 3 commits from feat/136-oq07-group-matching into main 2026-10-19 13:39:50 +03:00
Owner

Closes #136

Что

  • context/05-domain-rules.md §5 переписан: единица расчёта — тройка (правило × компания A × компания B), правила считаются для каждой упорядоченной пары (A, B) и (B, A) — зеркальные № 9–16 Прил. 3 отдельно не нужны. Два уровня:
    1. сумма элиминации — агрегат, идёт в КФО; каскадом по остатку: правила пары по порядку rule_no, каждое берёт min(ΣA, ΣB) из остатка сторон после предыдущих (при расхождении ≤ 5 %) — без двойной элиминации по общим счетам (дебет № 5–8; 67.03 в № 3 и 7; 66.03 в № 4 и 8);
    2. упаковка строк — группы 1:1, 1:N, N:1 (N:M нет, N ≤ 5), минимальная по числу строк; правила в том же порядке, строка сопоставляется одним правилом; на каждом размере сначала точные, затем ≤ 5 % по возрастанию расхождения; ничья внутри правила → ручное; остаток — «без пары».
      Пример на фикстурах РБ Q3 2024 перенесён в §5.
  • §8: eliminated_auto — Σ сумм элиминации троек.
  • context/07-open-questions.md: OQ-07 и OQ-173 закрыты решениями владельца 19.10.2026 (OQ-173 в ветке заводился как OQ-169; номер занял #138 — перенумерован при слиянии main).
  • analyst/eliminations-vgo.md: разделы 3.2, 3.3, 3.5, пример (раздел 5), вопросы В-2 и В-12 (решены), В-4; индекс 08 обновлён.

Решения владельца (19.10.2026)

  • OQ-07: 1:1, 1:N, N:1 — если правило включает несколько счетов; для элиминации — минимальная упаковка (закрывается и 1:2, и 1:3 → 1:2); для финальной КФО способ упаковки не критичен. Уточнения: N:M нет; закрытие — точно или ≤ 5 %; ничья → ручное; лимит 5 строк; строка — в одной паре.
  • OQ-173: каскад по остатку в порядке rule_no (порядок Прил. 3 уже от частного к общему; принцип — как в правиле № 1 Прил. 3 «сначала из 1450 до обнуления…»).

Rulings I made

  • R-1: порог 5 % и min применяются к агрегату тройки (из §4 и описания AURORA-1536); упаковка на сумму КФО не влияет.
  • R-2: «лимит 5 строк» прочитан как N ≤ 5 на многострочной стороне (группа до 1:5 / 5:1, k = 2…6 строк).
  • R-3: порядок перебора упаковки — по возрастанию размера группы, внутри размера — точные, затем по возрастанию расхождения; ничья — только между группами одного правила, делящими строку.
  • R-4: в каскаде правила manual (№ 1, № 2) элиминируют 0 и остаток не уменьшают; при расхождении > 5 % правило тоже элиминирует 0, остаток уходит следующим правилам.
  • R-5: внутри стороны остаток уменьшается сначала по строкам, сопоставленным упаковкой, затем по остальным; на сумму КФО это не влияет.

Связанное

  • AURORA-1536 — комментарии [OQ-07 19.10.2026] и [OQ-169 19.10.2026] (метка по рабочему номеру; решение OQ-173).
  • Расхождения §4 с новой редакцией Прил. 3 (правило № 1 — формула и каскад 1450 → 1150 → 1550; правило № 2 — остаток из 1370) — не в этом PR, ждут новой редакции ТЗ в docs/source/biq/.

Проверки

make check — зелёный.

🤖 Generated with Claude Code

Closes #136 ## Что - `context/05-domain-rules.md` §5 переписан: единица расчёта — тройка (правило × компания A × компания B), правила считаются для каждой упорядоченной пары (A, B) и (B, A) — зеркальные № 9–16 Прил. 3 отдельно не нужны. Два уровня: 1. **сумма элиминации** — агрегат, идёт в КФО; **каскадом по остатку**: правила пары по порядку `rule_no`, каждое берёт `min(ΣA, ΣB)` из остатка сторон после предыдущих (при расхождении ≤ 5 %) — без двойной элиминации по общим счетам (дебет № 5–8; 67.03 в № 3 и 7; 66.03 в № 4 и 8); 2. **упаковка строк** — группы 1:1, 1:N, N:1 (N:M нет, N ≤ 5), минимальная по числу строк; правила в том же порядке, строка сопоставляется одним правилом; на каждом размере сначала точные, затем ≤ 5 % по возрастанию расхождения; ничья внутри правила → ручное; остаток — «без пары». Пример на фикстурах РБ Q3 2024 перенесён в §5. - §8: `eliminated_auto` — Σ сумм элиминации троек. - `context/07-open-questions.md`: OQ-07 и OQ-173 закрыты решениями владельца 19.10.2026 (OQ-173 в ветке заводился как OQ-169; номер занял #138 — перенумерован при слиянии main). - `analyst/eliminations-vgo.md`: разделы 3.2, 3.3, 3.5, пример (раздел 5), вопросы В-2 и В-12 (решены), В-4; индекс 08 обновлён. ## Решения владельца (19.10.2026) - OQ-07: 1:1, 1:N, N:1 — если правило включает несколько счетов; для элиминации — минимальная упаковка (закрывается и 1:2, и 1:3 → 1:2); для финальной КФО способ упаковки не критичен. Уточнения: N:M нет; закрытие — точно или ≤ 5 %; ничья → ручное; лимит 5 строк; строка — в одной паре. - OQ-173: каскад по остатку в порядке `rule_no` (порядок Прил. 3 уже от частного к общему; принцип — как в правиле № 1 Прил. 3 «сначала из 1450 до обнуления…»). ## Rulings I made - R-1: порог 5 % и `min` применяются к агрегату тройки (из §4 и описания AURORA-1536); упаковка на сумму КФО не влияет. - R-2: «лимит 5 строк» прочитан как N ≤ 5 на многострочной стороне (группа до 1:5 / 5:1, k = 2…6 строк). - R-3: порядок перебора упаковки — по возрастанию размера группы, внутри размера — точные, затем по возрастанию расхождения; ничья — только между группами одного правила, делящими строку. - R-4: в каскаде правила `manual` (№ 1, № 2) элиминируют 0 и остаток не уменьшают; при расхождении > 5 % правило тоже элиминирует 0, остаток уходит следующим правилам. - R-5: внутри стороны остаток уменьшается сначала по строкам, сопоставленным упаковкой, затем по остальным; на сумму КФО это не влияет. ## Связанное - AURORA-1536 — комментарии [OQ-07 19.10.2026] и [OQ-169 19.10.2026] (метка по рабочему номеру; решение OQ-173). - Расхождения §4 с новой редакцией Прил. 3 (правило № 1 — формула и каскад 1450 → 1150 → 1550; правило № 2 — остаток из 1370) — не в этом PR, ждут новой редакции ТЗ в `docs/source/biq/`. ## Проверки `make check` — зелёный. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 1 commit 2026-10-19 12:27:19 +03:00
§5: два уровня по тройке (правило × A × B) — сумма элиминации (агрегат min(ΣA, ΣB),
порог 5 %, идёт в КФО) и упаковка строк 1:1 / 1:N / N:1 (N ≤ 5, N:M нет, минимальная
по числу строк, ничья → ручное). §8: eliminated_auto — Σ троек. OQ-07 закрыт решением
владельца 19.10.2026; новый OQ-169 — пересечение счетов правил (двойная элиминация).
Документ для аналитика: разделы 3.2, 3.3, 5, вопросы В-2 (решён), В-4, В-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep added 1 commit 2026-10-19 13:36:49 +03:00
§5: сумма элиминации пары (A, B) считается по правилам в порядке rule_no, каждое берёт
min из остатка сторон после предыдущих (как правило № 1 Прил. 3) — без двойной
элиминации по общим счетам № 3–8; упаковка в том же порядке, ничьей между правилами
нет; зеркальные № 9–16 — те же правила для (B, A). OQ-169 закрыт решением владельца
19.10.2026. Документ для аналитика: раздел 3.2, 3.3, пример, В-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep changed title from OQ-07: сопоставление ВГО группами 1:1 / 1:N / N:1 с минимальной упаковкой (#136) to OQ-07, OQ-169: сопоставление ВГО — упаковка 1:1 / 1:N / N:1 и каскад по остатку (#136) 2026-10-19 13:37:03 +03:00
aep added 1 commit 2026-10-19 13:39:36 +03:00
В main (#138) номера OQ-169…172 заняты вопросами ОСВ; пересечение счетов правил
элиминации — OQ-173 (закрыт решением владельца 19.10.2026).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep merged commit eeda12b07f into main 2026-10-19 13:39:50 +03:00
aep changed title from OQ-07, OQ-169: сопоставление ВГО — упаковка 1:1 / 1:N / N:1 и каскад по остатку (#136) to OQ-07, OQ-173: сопоставление ВГО — упаковка 1:1 / 1:N / N:1 и каскад по остатку (#136) 2026-10-19 13:40:20 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-ka-docs#137
No description provided.