Формализация sim1 задним числом — по внешней рецензии (см. CHANGELOG v1.1):
sim1 был единственной симуляцией без формальной спеки и без валидационных
ворот, при том что именно он несёт коммерческие числа. Уравнения ниже — те,
что уже реализованы в tonify_cash_sim.py / v04_full.py / v05_matrix.py /
v06_uc_crossover.py; ничего не перекалибровано, числа не менялись.
Синтетический рынок N = 200 000 артистов, построенный кусочной конструкцией от трёх независимо измеренных якорей и валидированный на них (ворота §5), поверх которого считаются: минимальная жизнеспособная аудитория (MVA) для $100/мес по механизмам выплат {pro-rata, user-centric} × {signed, independent} и прямой экономике (донаты с частотой k), кеш-слой рельс (TON/Stars), аналитическое фрод-разбавление и логистика порога выплаты $13. Главные оси прямой экономики (частота k, чек, доля суперфанов) не измерены — sim1 называет циферблаты, MVP их меряет (CRITIC §7, README Limitations).
Полные реквизиты и расхождения vault↔репо — SOURCES.md (D1–D11). Здесь — классификация статуса каждого параметра: что измерено, что выведено, что допущено и на что допущение влияет.
| Параметр | Значение | Статус | Основание / что от него зависит |
|---|---|---|---|
| N | 200 000 | assumed (масштаб) | форма распределения масштаб-инвариантна; валидация в долях |
| Доли якорей T1/T2 | 87% / 2.6% | measured* | Luminate / Spotify L&C; *оговорки D1 (треки vs артисты), CRITIC §5 (правообладатели) |
| X_HI (порог $1000/год) | 225 734 стрима | derived | = 1000/0.00443; следует из инди-ставки |
| Тело <1000: LN(ln 80, 1.4) | — | assumed | форма тела; валидируется только доля T1 |
| Хвост: Pareto α | 1.4 | assumed → калибрует T3 | подобран до фиксации ворот; T3-ворота §5 |
| PLAYS_PER_LISTENER (PL) | 21.21 | measured-с-оговоркой | LFM-1b Table 6 — время жизни панели, не год; red team: диапазон 8–21 (CRITIC §2) |
| rate_ind (pro-rata independent) | $0.00443/стрим | measured (внешний якорь) | Duetti US Jan-2026; в vault отсутствует (D3) |
| rate_signed (карман подписанного) | $0.0003/стрим | measured (внешний якорь) | заявленный якорь v0.2; в vault отсутствует (D3); одна значащая цифра — оговорка точности в PAPER CHANGELOG v0.5.1 |
| LABEL_PASS | 6.772% | derived | = 0.0003/0.00443, вычисляется в коде (v0.5.1); НЕ третий якорь; корроборация «~CNM 6.8%» не подтверждена vault (D4) |
| SUPERFAN_SHARE (SF) | 0.017; диапазон 0.006–0.017 | assumed-с-диапазоном | SoundCloud×MIDiA 1–2%, ниж. граница из 97-2-1 (CRITIC §7, D5) |
| DONATE_MEDIAN / σ | $5 / 0.8 | assumed | форма lognormal не измерена для музыки (RESULTS, честные ограничения); чек-диапазон $3.10–6.9 из PWYW (CRITIC §6) |
| MEAN_GIFT (MG) | $6.886 | derived | = exp(ln 5 + 0.8²/2) из DONATE_MEDIAN/σ |
| ARTIST_TAKE | 0.80 | assumed (продукт) | базовый директ-сплит; 360-сделка ×0.70 поверх |
| TON retention / Stars d/m | 0.999 / 0.965 / 0.675 | vendor-derived | Stars — середины диапазонов 95–97 / 65–70 (D8); TON fee $-конверсия (D9) |
| COMM (комиссия Tonify) | 0.05 | assumed (продукт) | параметр продукта, не рынка |
| SUB_NET_YR | $11.99×12×0.70 | смесь | 70% пула — measured (B&MT 2023); $11.99 US-цена — не в vault (D6) |
| PAID_SHARE | 0.40 | assumed, не обоснован | доля платящих слушателей в UC-кошельке; НИГДЕ в доках не выводится; линейно масштабирует весь UC-ответ: uc ∝ PAID_SHARE ⇒ MVA_uc ∝ 1/PAID_SHARE; сетка чувствительности 0.25/0.40/0.60 — v06, fig14 |
| u (прочее прослушивание) | база 10 000 плэев/год | assumed | масштаб чужого прослушивания в кошельке; UC-ответ — функция u, НЕ скаляр: кроссовер u* (§3.2, v06) |
| TARGET | $1 200/год | определение | $100/мес — определение MVA |
| k (кеф) | ось | не параметр | ось незамкнутого «Объекта 3»; бенчмарки RESULTS §2 |
Стримы артиста за год — кусочная конструкция (доли фиксированы якорями):
RNG: default_rng(42), порядок выборки фиксирован (low → mid → top → shuffle).
Слушатели артиста: listeners = max(1, s / PL). Валидация мира — ворота §5,
печатаются ДО выводов; FAIL блокирует прогон (exit 1).
Доход артиста: inc = s · rate, rate ∈ {0.00443 (ind), 0.0003 (signed)}. MVA(rate) = TARGET / (PL · rate). Контрактная ось — ОДИН скаляр LABEL_PASS = 0.0003/0.00443, применённый к обеим строкам матрицы; поэтому контракт-мультипликатор ×14.8 = 1/0.06772 — арифметика входов, не эмерджентность (CHANGELOG v1.1 §1). Вклад матрицы — соизмеримость: две измеренные величины впервые на одной MVA-сетке.
Слушатель платит SUB_NET_YR в пул прав с вероятностью PAID_SHARE; доля артиста в кошельке: share = p/(p+o), p ~ LN(ln 5.16, 1.676) (плэи у артиста, LFM-1b), o ~ LN(ln u, 1.0) (прочее прослушивание). Оценка: E[share] по 200 000 сэмплов; uc(u, ps) = ps · SUB_NET_YR · E[share]. PAID_SHARE — скаляр вне MC: uc(u, ps) = uc(u, 0.40) · ps/0.40 — тождество, не приближение.
RNG-порядок канона (v04 = v05 = v06, байт-в-байт): u ∈ [5k, 10k, 20k] из одного потока default_rng(42), по 2×200k сэмплов на точку; v06 продолжает поток точками [2k, 50k], затем [14k, 15k] (уточнение кроссовера); ворота v06 сверяют канон (4 807 / 9 512 / 18 341) с допуском ±1 слушатель.
UC — не скаляр (external review §2). MVA_uc(u) растёт с u и пересекает pro-rata independent (12 771) в точке безразличия u: лог-интерполяция между соседними точками сетки. Прогон v06: u*(0.25) ≈ 8 731; u*(0.40) ≈ 14 146; u*(0.60) ≈ 21 371 плэев/год. При u > u user-centric ХУЖЕ pro-rata для данного артиста: правило перекладывает деньги к артистам малослушающих слушателей и отбирает у артистов многослушающих. Скаляр «×1.34» валиден только в базовой точке (u = 10k, ps = 0.40); внешние эмпирики (SoundCloud +34% нижней корзине, Deezer сдвиг 2.4% пула) независимо подтверждают, что эффект правила мал против эффекта контракта. Фигура: fig14.
MVA_direct(k) = TARGET / (SF · k · MG · take). Углы диапазона при k = 4: лучший (SF=0.017, чек MG=$6.886) — 3 204; худший (SF=0.006, чек $3.10 — фикс-значение PWYW-среднего) — 20 161 > 12 771: худший угол проигрывает инди-пулу (правило коммуникации: после отзыва точки в диапазон вести с диапазона, README Process). Breakeven-сетка d: 18 комбинаций {PL 8, 21.21} × {чек 3.10, MG, 6.9} × {SF 0.006, 0.01, 0.017}, d = PL·0.00443/(SF·чек·take) → 0.38 / 1.25 / 6.31 (CRITIC §1 итог).
Из $1: артисту r·(1−COMM), Tonify r·COMM, рельсе 1−r; r — retention рельсы. Twitch-механика: 0.017·12·$5·0.50 → MVA 2 353 при фикс-цене подписки $5; на выровненном чеке MG=$6.886 → 1 709. Преимущество прямой экономики над Twitch-механикой — take rate (5% против 50%), не рельса. Декомпозиция 3 204 → 900 (оба take-фактора явно): частота k 4→12 при take 0.80 → 1 068 (×3.0); рельса 0.80 → 0.949 (TON) → 900 (×1.19).
Фрод — аналитическое тождество разбавления: при впрыске F% ботовых стримов пул теряет F/(1+F) (фикс-пул, боты добавляют объём); детекция = 0 по построению; не симуляция. Порог: месяцы до $13 = 13/(inc/12); распределение по миру — RESULTS «Логистика порога».
| Ворота | Мишень | Получено | Допуск | Вердикт |
|---|---|---|---|---|
| T1 доля <1000 стримов/год | 87% (Luminate; D1) | 87.0% | [86%; 88%] | PASS |
| T2 доля >$1000/год | 2.6% (Spotify L&C) | 2.6% | [2.4%; 2.8%] | PASS |
| T3 доля стримов у топ-0.28% | ~50% (Last.fm/Celma; D2) | 44.5% | [40%; 55%] | PASS |
| V06 канон UC | 4 807 / 9 512 / 18 341 | воспроизведён | ±1 слушатель | PASS (assert) |
| V05 якорь signed | 188 590 (=1200/(21.21·0.0003)) | сверка в коде | ±0.5 | PASS (assert) |
Оговорка T3 (декларация post-hoc, регламент sim2 v1.2): допуск [40%; 55%] зафиксирован в v1.1 ПОСЛЕ прогона — сам якорь неточечный (Celma: 50% у топ-0.28% из 260 525 артистов Last.fm-2007; CMA: 63–65% у топ-0.4%, 2014–2020), относительный промах к 50% — 11%. FAIL любых ворот блокирует выводы (exit 1); справочные (не ворота): нижние 90% → 0.9% (Jensen ~2%, порядок сходится), Gini 0.97.
fig1 (MVA vs k + референсы матрицы) · fig2 (распределение дохода, биномиальные суперфаны v0.3) · fig3 (фрод-тождество) · fig4 (рельсы $1) · fig5 (лестница матрицы) · fig6 (MRR-solver) · fig7 (heatmap {правило × контракт}) · fig14 (UC-кроссовер: MVA(u) × PAID_SHARE, u* отмечен). Все — в figures/ (EN) и figures/ru/ (RU) из одного прогона; палитра #0D0A1A/#6B2FFF/ #00D4F5/#FF4D8D/#FFD426; подпись «аналитика vs симуляция» на каждой (регламент viz + проверка направления шкалы, CLAUDE_CODE_HANDOFF).
seed = 42 всюду; RNG-порядки зафиксированы (§2, §3.2). stdout байт-идентичен между прогонами и окружениями; PNG байт-идентичны в пределах одного окружения (версия matplotlib и шрифты влияют на хэши) — формулировка README v1.1.
Хвост между якорями — конструкция (α=1.4 подобран, T3-ворота с post-hoc допуском §5); UC — аппроксимация кошелька, не двудольный граф; PAID_SHARE не обоснован и линейно масштабирует UC (§1); PL — время жизни панели, не год; оба per-stream якоря отсутствуют в vault (D3); оси прямой экономики не измерены — их меряет MVP. Ни один вывод не сильнее своего фальсификатора (§6).
Корень (вердикт рецензии принят): sim1 был единственной симуляцией без формальной спеки — эта спека закрывает перекос. Числа v0.5.1 не менялись; все новые числа (u*, 1 709, 1 068, 20 161) — производные существующих осей.