Turnover DSI
Расчёт DSI (Days Sales of Inventory) — полный пайплайн данных
1С:УНФ · Источник
📦 Продажи
ОтчётОРозничных
ОтчётОРозничных
📦 Движения
РегистрНакопления
РегистрНакопления
📦 Остатки
РегистрИтогов
РегистрИтогов
📦 ЧекиККМ
Разбивка каналов
Разбивка каналов
▼
2_reload_job_dwh.py
Слой движений · stg_
stg_SalesRevenue · COGS · Qty
stg_InventoryFinancialInvDelta (все движения)
stg_InventoryFinTotalsОстатки сегодня
stg_KKMAllLinesРозница / Интернет
Слой словарей · dict_
dict_StoresМагазины
dict_NomenclatureТовары + артикул
dict_CharacteristicsАкции / скидки
dict_BrandsБренды
dict_SuppliersПоставщики
dict_AnalyticsCategoriesДерево категорий
▼
4_build_daily_fact.sql — Reverse-running balance: stg → fct
Слой фактов · fct_
fct_DailyMetrics
~4.5М строк · Только дни с движением (с 2025-01-01)
Date · StoreRef · ItemRef · CharacteristicRef · SalesQty · Revenue · COGS · EndOfDayInvQty/Val
~4.5М строк · Только дни с движением (с 2025-01-01)
Date · StoreRef · ItemRef · CharacteristicRef · SalesQty · Revenue · COGS · EndOfDayInvQty/Val
▼
5_build_dsi_mart.sql — Date Spine + Carry-forward тихих дней: fct → mart
Слой мартов · mart_ ✦ КЛЮЧЕВОЙ СЛОЙ
mart_DSI_DailyInventory
~78М строк · rolling 365 дней · только розница
~78М строк · rolling 365 дней · только розница
✓ ВСЕ дни (включая тихие)
✓ Остаток = carry-forward
✓ HasMovement флаг
✓ Скользящий год (rolling)
💡 DSI = SUM(Остаток_сс) / SUM(COGS) — тихие дни больше не выпадают из знаменателя
▼
Слой представлений · vw_
vw_DSI_Analytics
17 полей · Читаемые имена · Без комбо-логики
Дата · Магазин · Товар · Артикул · Характеристика · Бренд · Поставщик · Группа 1-4 · Остаток_сс · Продажи_сс · Выручка · Количество · ЕстьДвижение
17 полей · Читаемые имена · Без комбо-логики
Дата · Магазин · Товар · Артикул · Характеристика · Бренд · Поставщик · Группа 1-4 · Остаток_сс · Продажи_сс · Выручка · Количество · ЕстьДвижение
▼
Metabase · Аналитика
📊 Model #102
DWH — DSI Analytics v2
DWH — DSI Analytics v2
📈 Дашборд
DSI по товару/магазину
DSI по товару/магазину
dwh_validator.py
✅
Нажмите «Запустить валидатор» чтобы начать проверку
Итог:
📂
Перетягніть файл xlsx або натисніть для вибору
Звіт 1С: Залишки • xlsx-формат
validate_1c_reports.py
📋
Завантажте файл і натисніть «Запустити»
Ітог:
2_reload_job_dwh.py
🔄
Нажмите «Запустить ETL» чтобы начать загрузку данных
Итог: