diff --git a/docs/specs/2026-09-01-labs-program.md b/docs/specs/2026-09-01-labs-program.md index 87f2627..e90985c 100644 --- a/docs/specs/2026-09-01-labs-program.md +++ b/docs/specs/2026-09-01-labs-program.md @@ -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`. Только после завершения конвейера сохраняет дату +слепка, состояния отдельных заказов и выручку выбранного дня. Эти результаты +позволяют сравнить наблюдения даже после удаления сырых слепков. Готовые +слепки и сочетание готового примера с собственным наблюдением отклонены: +учащийся может получить нужную историю на стенде и сам увидеть, как новые +данные меняют уже рассчитанный отчет. + +День считается закрытым после получения и обработки последнего слепка +семидневного окна изменяемости; этот слепок доставляется следующим модельным +днем. Одного совпадения сумм в соседних наблюдениях для такого вывода +недостаточно. История отмен тоже имеет границу: оплата и отмена между двумя +дневными слепками могут остаться невидимыми. Отсутствие наблюдаемой оплаты +не доказывает, что оплаты не было. ### Тонкий анализ данных