from pathlib import Path html = """ Billing Predictor v2

Billing Predictor v2

Версия с правильной архитектурой фронта: сохранение сценариев в Supabase, загрузка по ссылке, недельная аналитика, ROMI по двум моделям и разбивка событий по календарным неделям.

Следующее списание
После пересчёта здесь появится ближайший прогнозный чардж.
До следующего порога
Остаток до ближайшего порога модели.
Прогнозных списаний
0
Сколько будущих чарджей помещается в текущий горизонт.
Текущий сценарий
Новый
Пока сценарий не сохранён в Supabase.

Параметры сценария

Заполняешь шапку, ниже таблицу дней. Для расчёта используется факт, если он включён, иначе план.

Важно: сначала вставь свои SUPABASE_URL и SUPABASE_ANON_KEY в код. Без этого сохранение и загрузка работать не будут.

ROMI факт

Два варианта расчёта: по сумме фактических списаний и по сумме факт spend. Выручка вводится вручную в тенге.

Факт выручка
₸0
Берётся из поля «Текущая факт выручка, ₸».
ROMI по фактическим списаниям
Затраты по факту списаний: —
ROMI по факт spend
Затраты по Spend факт: —

Календарь дневных данных

Недели визуально отделены. Под каждой неделей считается spend в долларах и тенге.

Неделя начинается с понедельника
Факт приоритетнее плана
Чарджи прогнозируются по линейной модели
Данные можно редактировать прямо в таблице
ДатаSpend факт, $Spend план, $Исп. фактФакт списание, $Время факт списанияМодель spend, $НеделяОстаток до порога EODПрогноз списанияВремя прогнозаОстаток дня после чарджаУдалить

Сохранённые сценарии

Здесь загружаются сценарии из Supabase. По клику сценарий подставляется в интерфейс.

Пока список пуст. Сначала сохрани хотя бы один сценарий.

Недельные итоги прогнозных событий

Здесь видно, сколько денег понадобится по неделям по ленте прогнозных чарджей.

Сначала пересчитай прогноз, чтобы здесь появились недельные суммы.

Лента прогнозных событий

События сгруппированы по календарным неделям. Так проще смотреть кассовую нагрузку на эту и следующую недели.

Пока нет событий. Нажми «Загрузить демо» или заполни таблицу и пересчитай.
""" path = Path('/mnt/data/billing_predictor_v2_tilda_supabase.html') path.write_text(html, encoding='utf-8') print(f"Saved to {path}")