PRD v2: Affiliate-программа Obmenka
Версия: 2.0 (финальная для согласования)
Дата: 2026-05-16
Автор: AI assistant
Основано на:
- 3 deep-research отчётах: docs/affiliate-research/01-crypto-exchanges.md, 02-adjacent-industries.md, 03-architecture-plan.md
- PRD v1: docs/affiliate-prd-v1.md
- Критика v1: docs/affiliate-prd-v1-critique.md (19 правок применены)
1. Executive Summary (1 страница для руководителя)
Что делаем
Модуль партнёрской программы внутри CRM Obmenka. Партнёры (блогеры, TG-каналы) приводят клиентов и получают комиссию USDT с каждой их сделки.
Базовая экономика
- Default ставка: 0.3% от объёма сделки в USDT-эквиваленте (≈30% от типичной нашей маржи 1%)
- Привязка: 24 месяца после первой сделки клиента
- Min выплата: 50 USDT, hold 7 дней, payout USDT-TRC20
- Network fee удерживаем с партнёра (~1.5 USDT/выплата)
Critical compliance (TR)
- MVP запускаем ТОЛЬКО для не-турецких партнёров и не-турецкой аудитории (русско/англо/немецкоязычные TG)
- До получения CMB-лицензии или ясности с регулятором — без публичной TR-страницы
- При TR-резиденте партнёре удерживаем 1% withholding tax (закон с 2025)
Финансовая модель (6 мес)
| Сценарий | Активн. партн. | Сделок | Profit | Партнёрам | Нам |
|---|---|---|---|---|---|
| Консерв. | 5 | 75 | $2 250 | $675 | +$1 575 |
| Целевой | 15 | 480 | $19 200 | $5 760 | +$13 440 |
| Стресс | 5 | 50 (часть и так наши) | $1 500 | $450 | ≈0 |
Сроки
- E7.1 MVP: 3–4 недели (single-level, manual everything)
- E7.2 расширение: 2–3 недели (multi-level + 2FA + auto-payouts)
KPI (реалистичные)
- 3 мес: 5 партнёров, 5–8% сделок через них
- 6 мес: 15 партнёров, 10–15% сделок через них
- 12 мес: 20–25% сделок через них
2. Бизнес-цель и контекст
Проблема
Прямая реклама в Анталье в туристический сезон даёт CAC $30–100/клиент. Партнёрка платит только за результат — % от уже принесённого профита.
Текущий стейт
После E1–E6 у нас рабочая CRM с реальными сделками (151 в seed, 624 on-chain транзакции, 3 отделения в Анталье + онлайн). Партнёрка — естественное расширение.
Конкурентный контекст
- BestChange (агрегатор обменников): 30% Level 1 + 10% Level 2, lifetime, min $1
- Bybit: 30–50% от fee + 10% sub-override, daily payouts
- Coinsfera (прямой конкурент в Стамбуле): partner есть, условия закрыты
- Binance: закрыл TR retail referral в окт 2024 из-за MASAK ⚠
Уроки: TR-фактор важен. Платить от объёма прозрачнее чем от profit.
3. Модель вознаграждения
3.1. Default-модель (E7.1)
commission = deal.volume_usdt × 0.003
commission_capped = min(commission, deal.profit_usdt × 0.5)
где volume_usdt = FX_to_USDT[give_asset] × give_amount.
Объяснение для партнёра: «Вы получаете 0.3% с каждого USDT-эквивалента приведённого клиента».
Почему 0.3% от volume, не 30% от profit:
- Прозрачно: партнёр заранее знает свою комиссию
- Стандарт индустрии (BestChange, ChangeNOW, SimpleSwap — все от volume/fee)
- При типичной марже 1% даёт нам ~70% профита, партнёру ~30%
- Защита: cap ≤ 50% profit — если markup случайно 0.2%, не платим больше 50% от того что заработали
3.2. Опциональные программы
| Программа | Кому | Формула |
|---|---|---|
default |
Все | 0.3% volume, cap 50% profit |
vip-profit-share |
По договорённости (крупные TG-каналы) | 30% от profit_usdt, cap 1% volume |
fixed-per-deal |
Кампании ситуативные | Фикс N USDT за каждую сделку клиента |
Программа задаётся при создании партнёра, может меняться admin'ом. Изменение применяется только к будущим сделкам.
3.3. Multi-level (только E7.2)
| Уровень | Default | VIP |
|---|---|---|
| Tier 1 (прямой партнёр) | 0.3% volume | По договору |
| Tier 2 (партнёр Tier 1) | 0.05% volume | 0.10% |
НЕТ Tier 3 — даже в фазе 2. Это пирамида.
3.4. Tier-бонусы по объёму (E7.2)
| Tier | Условие | Default ставка |
|---|---|---|
| Bronze | < $500 заработано/мес | 0.3% / 0.05% |
| Silver | $500–$2000/мес | 0.35% / 0.05% |
| Gold | $2000+/мес | 0.40% / 0.07% |
- Upgrade — мгновенно с следующей сделки
- Downgrade — с protection period 2 месяца (Binance-стиль)
- Cron 1-го числа каждого месяца переоценивает
3.5. Исключения
- Сделки в
excluded_assetsпрограммы (например, RUB/UAH могут быть исключены если admin решит) → 0 - Cancelled сделки → 0
- Internal transfers → 0
- Self-referral (по passport-match KYC) →
voided+ alert - Минимум на сделку отсутствует (приветствуем мелкого туриста)
4. Tracking и привязка клиента
4.1. Три канала привязки
-
Через ссылку
/r/{code}(онлайн) - Cookieobm_ref(signed, 30 дней) — действует до первой сделки клиента - После первой сделки — привязка lifetime в рамках attribution-окна (см. 4.2) - Endpoint без auth, инкрементитref_codes.clicks_count -
Manual ввод кассиром/менеджером (офлайн в Лиман/Лара) - В форме новой сделки и в карточке клиента — поле «Реф-код» (autocomplete) - Кассир вводит код с визитки/QR клиента → привязка
source='manual'- Если клиент перепривязан — требуетreason(логируется) -
Self-claim в TG-боте (фаза 3, не в E7.1)
4.2. Окно attribution
Default (E7.1): 24 месяца с момента первой сделки клиента (после — клиент «отвязывается», комиссий нет, но привязка остаётся в audit для отчётов).
Опция «lifetime»: в индивидуальной программе для VIP-партнёров (по контракту).
4.3. Перепривязка
- Менеджер может переключить клиента на другого партнёра (требует reason)
- Старая запись
client_affiliations.detached_at = now() - Старые комиссии не трогаются (snapshot в
commission_entries) - Новые сделки идут новому партнёру
- Если конфликт «cookie ставит A, manager хочет B» → требуется admin-approval
4.4. Opt-out клиента
В карточке клиента — кнопка «Отвязать от партнёра» (admin/manager) с reason. Старые комиссии остаются, новые сделки — без партнёра. Партнёру причину не разглашаем.
5. Lifecycle комиссии и выплат
5.1. Состояния
[Deal → done]
↓ (post-commit hook, eventual consistency)
pending
↓ (hold_days=7, cron-daily 04:00 UTC)
available
↓ (partner запросил payout → admin approve)
paid
Альтернативы:
- voided — self-referral, asset excluded, аффилиат blocked
- reversed — отмена сделки после paid (баланс уходит в минус, см. 5.4)
5.2. Hold (7 дней default)
- Cron-job раз в сутки (04:00 UTC, после backup и tron-sync)
- Переводит pending → available при условиях: hold истёк И сделка не cancelled
5.3. Выплаты
Триггер MVP: manual — партнёр сам в кабинете запрашивает.
Условия:
- balance_available ≥ 50 USDT (минимум default-программы)
- affiliate.status = active
- KYC партнёра пройден (для физлица: имя + tax-ID + payout-address screening)
TRC20 network fee: - Удерживается с партнёра (default), ~1.5 USDT/выплата - В UI кабинета: «Запрос 50 USDT − 1.5 USDT (network fee) = 48.5 USDT к получению» - Прозрачно показывается до подтверждения
Withholding tax 1% (для TR-резидентов): - Удерживаем дополнительно при выплате - В UI: «50 USDT − 1.5 fee − 0.5 TR withholding = 48.0 USDT» - Раз в месяц admin/accountant выгружает отчёт по удержаниям для бухгалтерии
Approval flow:
1. Партнёр → POST /aff/payouts/request → payout_request(status=pending)
2. Admin видит в /payouts, проверяет аномалии (новый адрес, большая сумма)
3. Admin делает USDT-TRC20 перевод (из hot wallet, вручную или через signer)
4. Admin вводит tx_hash реальной транзакции в форму approve
5. Создаётся Operation(op_type='payout', source='payout') — отдельный source, не от Deal
6. payout_request.status='paid', все связанные commission_entries → paid
7. reconcile.py через час найдёт on-chain tx и свяжет payout_request.matched_raw_tx_id
5.4. Refund / reverse сценарий
При отмене сделки уже после выплаты:
- Создаётся reverse_entry(amount = -original)
- Если у партнёра есть available > |amount| → списываем оттуда
- Если нет — балансу разрешено быть отрицательным
- При следующем accrual — новые комиссии в первую очередь покрывают минус
- Если партнёр стал inactive и баланс остался в минусе — списываем убыток (логируется как commission_writeoff)
6. Anti-fraud
6.1. Обязательный минимум (E7.1)
| Проверка | Когда | Действие |
|---|---|---|
| Self-referral по passport-id KYC | accrue | voided + alert админу |
| Partner blocked | accrue | Не начисляем |
| Cap «комиссия ≤ 50% profit» | accrue | Усечение |
| Cancelled deal | hold-cron | voided |
| Excluded asset | accrue | 0 |
| KYC партнёра обязателен до payout | approve_payout | Reject |
| Payout-кошелёк screening (AMLBot/Chainalysis) | approve_payout | Reject если флаг |
6.2. Расширенный (E7.2)
- Anti-wash trading (Paxful rule): если обе стороны сделки — рефералы одного партнёра → 50% от стандартной комиссии
- Velocity limit: не больше 5 новых рефералов/день без admin-review
- IP-кластеризация: 3+ регистраций с одного IP/час — флаг
- Анализ «сделок без on-chain подтверждения» — уже работает через
reconcile.py, добавим алерт «комиссии за сделки без on-chain»
6.3. Что НЕ делаем
- Device fingerprinting (30–40% false match — research)
- ML/rule-based fraud detection (нет данных на MVP)
7. Compliance (Турция) — критичный раздел
7.1. CMB / MASAK
Текущий статус: у Obmenka нет CASP-лицензии. CMB требует капитал 150M TRY (~$4.1M) для лицензированного обменника. Подача — отдельный проект, не в скоупе.
Ограничения для affiliate-программы: - ❌ Публичная страница «Стать партнёром» на турецком — НЕТ - ❌ Партнёры — резиденты Турции — НЕТ на MVP - ❌ Маркетинг партнёрки в турецких TG-каналах / Instagram TR — НЕТ - ✅ Партнёры — резиденты других стран (RU/EU/global) с не-турецкой аудиторией - ✅ Cashier в Лиман/Лара принимает реф-код от клиента (это не публичная реклама)
После получения CASP-лицензии или ясности с CMB (отдельный этап) — открываем для TR.
7.2. KYC партнёра
MVP: - Имя + контакты (TG/email/phone) - Tax-ID (по стране) - Payout-address TRC20 - Скан паспорта (для физлица) — до первой выплаты
Фаза 2: - Селфи с паспортом - AMLBot screening payout-адреса - Обязательно для всех новых партнёров до accrual
7.3. Withholding tax 1% (TR)
С 1 января 2025 — обязательное удержание для платежей intermediary/e-commerce providers.
Реализация:
- Поле affiliates.is_tr_tax_resident BOOLEAN (заполняется при KYC)
- При выплате — удерживаем 1% если TR-резидент
- В UI открыто показываем: «Удержано 1% по TR-закону»
- Месячный отчёт для бухгалтерии (CSV: партнёр, сумма выплат, удержанный tax)
7.4. Список запрещённых юрисдикций
- Партнёры — не из стран в OFAC SDN list, FATF black/grey list
- Рефералы (клиенты) — KYC скан по той же логике (уже есть в нашей системе для крипто-операций > $425)
- RU/BY партнёры — не блокируем (значительная часть нашей клиентской базы), но мониторим санкции относительно конкретных лиц
7.5. Партнёрский договор
Документ PDF/Doc (вне CRM). Подписывается до первой выплаты. Обязательные пункты:
1. Commission structure (модель, %, attribution)
2. Cookie duration (30 дней до 1-й сделки, 24 мес после)
3. Payment terms (USDT-TRC20, min 50, hold 7 дней, network fee + TR withholding с партнёра)
4. Запрещённые активности (cookie stuffing, brand bidding, спам, self-referral)
5. KYC/AML compliance аффилиата
6. Tax responsibility (партнёр сам декларирует кроме того что мы удержали)
7. Termination conditions
8. Confidentiality — нельзя разглашать данные клиентов, использовать иначе чем для привлечения
9. FTC disclosure (для US-аудитории): #ad/#sponsored обязательно
10. Jurisdiction (Турция), dispute resolution
8. Модель данных
Детали в docs/affiliate-research/03-architecture-plan.md. Здесь — сводка изменений относительно v1.
Новые таблицы (6)
affiliate_programs— настройки (ставки, hold, min_payout, attribution_days, payout_fee_borne_by)affiliates— партнёры с FK на users (+is_tr_tax_resident,kyc_status)ref_codes— реф-коды (несколько на партнёра)client_affiliations— история привязок (partial UNIQUE)commission_entries— начисления (UNIQUE deal_id+affiliate_id+tier)payout_requests— запросы выплат + связь с Operation
Изменения существующих
clients+=referrer_affiliate_id,referrer_ref_code_id,referrer_set_atdeals+=affiliate_snapshot_id,commission_calculated_atusers+=totp_secret,totp_enabled,affiliate_idroles+=affiliateoperations+=source='payout'как новое значение enum
9. UI / Экраны
9.1. Партнёрский кабинет (/aff/*, layout aff_base.html)
Отдельный layout (визуально отличается от админки), но под основным доменом (не на subdomain — экономит инфру).
| Путь | Что |
|---|---|
/aff |
3 KPI карточки (available / pending / lifetime earned), кнопка «Запросить выплату», 10 последних начислений, ref-ссылка с QR |
/aff/links |
Список ref-кодов, кнопка «+ Создать» |
/aff/clients |
Псевдонимизированный список (только C-XXXX, дата привязки, кол-во сделок, объём, моя комиссия) |
/aff/earnings |
Журнал commission_entries с фильтрами, экспорт CSV |
/aff/payouts |
История с TXID на TronScan, статус |
/aff/settings |
Профиль, payout-адрес (с валидацией TRC20), пароль, 2FA (фаза 2) |
Privacy: партнёр НЕ видит ФИО/телефон/email/TG-username клиента.
9.2. Админская часть
Новая группа в сайдбаре base.html:
Партнёры
├── /affiliates — Список
├── /affiliate-programs — Программы и ставки
└── /payouts — Ожидающие выплаты
Изменения существующих экранов:
- /clients/{id} — блок «Партнёр» (manager может менять, history)
- /clients — колонка «Партнёр» + фильтр
- /deals/{id} — read-only список комиссий
- / (дашборд admin/manager) — виджет «Партнёрская программа»
9.3. Маркетинговые материалы — НЕ предоставляем на MVP
Партнёр сам делает свои креативы. Кабинет даёт только: - Реф-ссылку - QR-код (auto-gen) - Текст «pitch» в README на 3 языках для самостоятельного использования
10. RBAC
| Роль | Affiliate-доступ |
|---|---|
admin |
CRUD programs, CRUD affiliates, approve payouts, корректировка commission, opt-out клиента |
manager |
Привязка клиента к партнёру, просмотр affiliate-карточек |
accountant |
Read-only + tax-reports + payouts approve |
cashier |
В форме сделки поле «реф-код», в карточке клиента — имя партнёра (read-only) |
viewer |
Без affiliate-инфы |
affiliate |
Свой кабинет (см. 9.1) |
2FA: опционально на MVP. Обязательно в фазе 2 для: - Изменения payout-адреса (re-auth) - Запроса выплаты > 500 USDT
11. Фазы реализации
E7.1 MVP (3–4 недели) — что в скоупе
Бэкенд:
- Миграции: 6 новых таблиц + ALTER 4 существующих
- 1 программа default (0.3% volume, hold 7, min 50, attribution 24 мес)
- accrual в routes/deals.py через post-commit hook (eventual consistency)
- Hold-cron daily в 04:00 UTC (commission_release.py)
- TRC20 fee + TR withholding в логике payout
UI:
- Партнёрский кабинет (без 2FA): dashboard, links, clients, earnings, payouts, settings
- Админка: /affiliates (CRUD), /affiliate-programs (одна default), /payouts (approve)
- Tracking endpoint /r/{code}
- Manual attach в карточке клиента и форме сделки
- Виджет на дашборде admin
Compliance:
- KYC партнёра (паспорт скан до первой выплаты)
- is_tr_tax_resident поле + расчёт withholding
- Партнёрский договор (PDF, вне CRM)
- Запуск только с не-TR партнёрами
Готово когда: 1. Партнёр зарегистрирован (admin), получил ref-код и QR 2. Привёл клиента (через ссылку ИЛИ менеджер ввёл код) 3. Клиент совершил сделку → партнёр видит «+15 USDT pending» в кабинете 4. Через 7 дней → available 5. Партнёр запросил → admin одобрил → партнёр получил USDT-TRC20
E7.2 Расширение (2–3 недели)
- Multi-level:
parent_affiliate_id, tier2_pct, denormalized parents (защита от циклов) - Tier-бонусы (Bronze/Silver/Gold) + monthly recalc cron
- Override-ставки per affiliate
- Anti-wash-trading правило Paxful
- Velocity limits
- 2FA TOTP для роли
affiliate - Automatic payout при threshold (опт)
- UI: дерево даунлайна
- Tax-report экспорт для бухгалтерии
E7.3 Отложено
- Smart-contract automated payouts (своя hot wallet с приватником)
- Self-signup партнёра (с модерацией)
- TG-бот канал привязки (вместе с M5 ТЗ партнёра)
- Webhooks/email-уведомления партнёрам
- A/B-тесты программ
- Отдельный subdomain
partners.obmenka... - Multi-currency payouts (TRY/USD кэш в офисе)
- ML fraud detection
12. Финансовая модель (3 сценария на 6 месяцев)
Допущения
- Средний profit на сделке: $30 USDT (в Анталье)
- Default ставка: 0.3% volume ≈ 30% от profit
- Hold cap 50% от profit
Сценарий A — консервативный
- 5 активных партнёров
- Каждый приводит 5 клиентов
- Клиент делает 3 сделки за 6 мес
- 75 сделок × $30 profit = $2 250 валовая прибыль
- Комиссии партнёрам: ~$675 (30%)
- Чистый дополнительный профит нам: $1 575
Сценарий B — целевой
- 15 активных партнёров (включая 3 «средних»)
- 8 клиентов на партнёра в среднем
- 4 сделки/клиент за 6 мес
- 480 сделок × $40 profit = $19 200
- Комиссии: ~$5 760
- Чистая прибыль: +$13 440
Сценарий C — стресс (партнёры приводят тех же клиентов что и так бы пришли)
- 5 партнёров, привели 50 «дублирующих» клиентов
- Привлекли = $1 500 profit
- Комиссии = $450
- ROI ≈ 0 — но мы получили долгосрочный канал распространения
Решение: запускать MVP с фокусом на сценарий A→B, мониторить cannibalization (опрашивать новых клиентов «откуда пришли» в первые 3 месяца).
13. Технические интеграции
| Точка | Изменения | Риск |
|---|---|---|
models.py |
+6 классов + ALTER | низкий |
routes/deals.py |
post-commit hook в done-перехода | средний — нужен тщательный тест |
routes/clients.py |
Поля «Партнёр» в форме и карточке | низкий |
auth.py |
Роль affiliate + 2FA-поля |
низкий |
main.py |
Подключить router'ы | низкий |
templates/base.html |
Группа «Партнёры» в сайдбаре | низкий |
templates/aff_base.html |
НОВЫЙ layout | средний — UX/брендинг |
| Cron-таймеры | commission-release.timer (daily) |
низкий |
reconcile.py |
Расширить — связь payout_request ↔ raw_blockchain_tx | средний |
audit_log |
Новые actions (~10 новых типов) | низкий |
Принцип: минимально-инвазивно, не переписываем сделочный flow.
14. Финальные дефолтные ответы (вместо open questions v1)
| Вопрос v1 | Дефолтный ответ v2 |
|---|---|
| Ставка 30% от profit? | ❌ Нет, 0.3% от volume (≈30% от типичной маржи). Profit-share — опция для VIP |
| Cap 200 USDT? | ❌ Убран. Заменён на относительный (≤50% profit / ≤1% volume) |
| Lifetime привязка? | ❌ 24 месяца default. Lifetime — опция для VIP |
| Multi-level Tier 2? | В фазе 2. 0.05% volume (1/6 от Tier 1) |
| Min payout 50 USDT? | ✅ Оставляем (баланс между fee и мотивацией) |
| Withholding tax 1%? | ✅ Удерживаем при выплате для TR-резидентов, открыто показываем |
| Список запрещённых стран? | OFAC SDN + FATF black/grey. RU/BY не блокируем |
| base_model несколько программ? | ✅ Доступны 3 (volume default, profit-share VIP, fixed) |
| 2FA партнёра? | Опционально на MVP, обязательно для крупных выплат в фазе 2 |
| Subdomain для кабинета? | ❌ Под основным /aff/* (экономия инфры) |
Дополнительно зафиксировано: - TRC20 fee — удерживаем с партнёра - Маркетинговые материалы — не предоставляем (партнёр сам) - Refund при paid → списываем с available, если нет → терпим убыток - KPI: 5–8% / 10–15% / 20–25% на 3/6/12 мес - CMB compliance — блокирует TR-партнёров до получения статуса
15. Что НЕ делаем явно и почему
| Что | Почему |
|---|---|
| Multi-level в MVP | Нет ещё партнёров |
| 3+ уровней tier | MLM-территория, фрод-магнит |
| Self-signup в MVP | Barrier против fraud |
| Device fingerprinting | 30–40% false match |
| CPA-only модель | Гарантированный приток ботов |
| Smart-contract auto-payouts | Хранение приватников — отдельный домен |
| Webhooks | Нет outgoing инфры |
| ML fraud detection | Нет данных |
| Маркетинговые материалы | Нет дизайнера в скоупе, партнёр сам |
| Турецкие партнёры до CMB | Уголовный риск |
| Edit сделки задним числом | Audit append-only |
| Custom landing pages per партнёр | UTM параметры достаточно |
| Bonus за первый депозит | Не делаем CPA |
16. Чеклист готовности к запуску E7.1
- [ ] Партнёрский договор готов (PDF, юр.провер.)
- [ ] Подобрано 3–5 пилотных партнёров (не-TR резиденты)
- [ ] Их payout-адреса проверены через AMLBot
- [ ] Мини-страница
landing.html(опционально для пилота) - [ ] Тест-сценарии (E2E) написаны
- [ ] Backup БД до миграции
- [ ] Bbf-роллбек миграции протестирован
- [ ] Hot wallet с USDT-TRC20 для тестовых payouts
- [ ] Admin прошёл walkthrough кабинета
- [ ] Партнёрам выдан "Getting Started" guide на 3 языках
17. Открытые вопросы к пользователю (минимум, требуют решения)
Все технические/operational ответы зафиксированы выше. Остаются 3 бизнес-вопроса:
-
CMB-блок: согласен ли ты с тем, что MVP запускаем БЕЗ турецких партнёров? Или нужна юридическая консультация по конкретному кейсу до этого?
-
Пилотные партнёры: есть ли у тебя уже на примете 3–5 кандидатов в партнёры? Или начинаем с поиска?
-
Стартовая программа: запускаем с одной
default(0.3% volume), или сразу заводимvip-profit-shareдля каких-то знакомых каналов которые требуют больше?
Приложение: Изменения относительно v1
| Раздел v1 | Что изменено в v2 |
|---|---|
| Базовая ставка 30% profit | → 0.3% volume |
| Lifetime | → 24 месяца default |
| Cap 200 USDT | → ≤50% profit / ≤1% volume (относительный) |
| Min $5 на сделку | → убран |
| Self-referral по TG+phone | → по passport-id из KYC |
| CMB «на потом» | → блок для TR-партнёров до получения статуса |
| Withholding tax «упомянуть» | → реальная реализация с удержанием |
| Accrual в той же транзакции | → post-commit, eventual consistency |
| Hold-cron hourly | → daily |
payout_op_id неопределён |
→ новый source='payout' |
| TRC20 fee | → удерживаем с партнёра |
| Маркетинг-материалы | → не предоставляем |
| Refund сценарий | → списываем с available |
| Tax-report | → добавлен export для бухгалтерии |
| KPI 20%@6мес | → 5–8% / 10–15% / 20–25% (3/6/12 мес) |
| Финансовая модель | → добавлены 3 сценария |
| 10 open questions | → 3 бизнес-вопроса |
| 16 разделов | → 17 (но более структурированных) |
Применено все 19 правок из критики.