docs(labs): согласованы четыре расследования выручки

Зачем: превратить шесть идей факультативов в связный раздел из четырех работ.
Что: определены результаты работ и наблюдение за заказами через Airflow.
Проверка: git diff --check; порядок обновления данных сверен с кодом дагов.
This commit is contained in:
ddadmin committed 2026-09-22 03:32:16 -04:00
1 parent 090df8a715
commit ddb186f841
1 file changed
+41 -16
+41 -16
View File
@@ -149,28 +149,53 @@
## 4. Факультативы — пять разделов
Ниже перечислены только названия сюжетов и их уроки. Материал, формы и способы
проверки остаются в [инвентаризации](../research/2026-08-31-labs-inventory.md).
Ниже перечислены сюжеты, их уроки и принятые решения по форме заданий. Исходный
материал и способы проверки — в
[инвентаризации](../research/2026-08-31-labs-inventory.md).
### Почему выручка не сходится
Этот раздел рекомендован первым из факультативов. Он открывается после ступени
1 основной программы: материал живет на стенде с этапа 6.
Этот раздел рекомендован первым из факультативов и открывается после ступени
1 основной программы. Шесть сюжетов собраны в четыре лабораторные: три
расследования готовых данных и одно наблюдение во времени. Опоздания,
изменение выручки и история отмен используют одну историю заказов, поэтому
для них выбрана общая работа вместо трех отдельных.
- **Почему трекер недосчитывает покупки (#186).** Разрыв воронки подтверждений
показывает потерянные события и границу доверия к двум источникам.
- **Куда пропали покупки (#186).** Учащийся сравнивает подтверждения и события
покупки, находит заказы без события и объясняет разрыв воронки конкретными
заказами.
- **Почему повтор покупки завышает выручку (#187).** Движок убирает технический
дубль строки, а повтор одной покупки приходится находить по деловому ключу.
- **Какая позиция объясняет разницу в сумме.** Расхождение суммы нужно
разложить до конкретной вычеркнутой позиции и объяснить до копейки.
- **Был ли отмененный заказ оплачен.** Текущее состояние не заменяет историю, а
некоторые различия после истечения срока хранения сырых данных уже не
восстановить.
- **Когда отчет за день можно считать окончательным (#188).** Отчет за день
становится окончательным лишь после того, как источник больше не может
изменить этот день.
- **Почему выручка за день еще меняется.** Внутри окна изменяемости выручка
движется, а после закрытия дня фиксируется.
Учащийся сравнивает сумму событий с суммой по уникальным покупкам и
подтверждает, что разница равна вкладу повторов. Другие причины расхождения
с выручкой магазина при этом остаются.
- **Какая позиция объясняет разницу в сумме.** Учащийся сопоставляет корзину
из сырого `ecommerce` с позициями заказа, находит удаленный товар и объясняет
разницу до копейки. Для точных цен нужен исходный JSON: в готовых массивах
событий цены округлены до рублей.
- **Почему вчерашняя выручка меняется сегодня (#188).** Учащийся наблюдает один
день по мере поступления слепков: появляются опоздавшие заказы, меняются
статусы и выручка. По сохраненным состояниям объясняет причины изменений,
определяет момент закрытия дня и отделяет доказанную оплату отмененного
заказа от случаев, в которых историю оплаты восстановить нельзя.
В четвертой лабораторной учащийся сам собирает историю одного дня оформления
заказов. Перед наблюдением он ставит `world_live` на паузу и дожидается
завершения начатых прогонов. Затем продвигает
мир по одному модельному дню через `world_next_day` и после каждого запуска
выполняет `etl_pipeline`. Только после завершения конвейера сохраняет дату
слепка, состояния отдельных заказов и выручку выбранного дня. Эти результаты
позволяют сравнить наблюдения даже после удаления сырых слепков. Готовые
слепки и сочетание готового примера с собственным наблюдением отклонены:
учащийся может получить нужную историю на стенде и сам увидеть, как новые
данные меняют уже рассчитанный отчет.
День считается закрытым после получения и обработки последнего слепка
семидневного окна изменяемости; этот слепок доставляется следующим модельным
днем. Одного совпадения сумм в соседних наблюдениях для такого вывода
недостаточно. История отмен тоже имеет границу: оплата и отмена между двумя
дневными слепками могут остаться невидимыми. Отсутствие наблюдаемой оплаты
не доказывает, что оплаты не было.
### Тонкий анализ данных