директор и машина · стратегия · запись № 045 · · Давид Герштейн
Динамическая финансовая модель вместо таблицы на один раз
Динамическая финансовая модель — это таблица или сервис с формулами вместо фиксированных цифр: при загрузке новых данных план пересчитывается автоматически за 1–2 часа вместо 16 часов ручной работы, а не переписывается заново каждые несколько недель. Строится на связке CRM → лист с формулами → ИИ-проверка допущений → отчёт для планёрки. Без разделения понятий разрыв между целью и планом может достигать 2,4×, как в разборе ниже.
Содержание · 7 разделов
- Чем обычная таблица отличается от динамической финансовой модели
- Механика: как собрать динамическую финмодель, которая пересчитывается сама
- ИИ-связка: пересчёт и аудит допущений
- Что видно в цифрах
- Экономика: что это стоит и что даёт
- Юнит-экономика как основа, без которой формулы бессмысленны
- Чек-лист: с чего начать в понедельник
Суммы в разборе пересчитаны на условную компанию — пропорции, механика и выводы реальные.
Собственник условной компании принёс на встречу презентацию стратегии на год. Открыл на второй странице и спросил: «Это выручка или авансы?» Финдиректор задумался. В компании принято, что аванс — это 37–40% от суммы договора. Если оборот в 9 миллионов рублей в месяц — это авансовые платежи, то полная сумма заключённых договоров за тот же месяц — около 23 миллионов. Если это уже выручка по факту исполнения — то 9 миллионов и есть потолок. Разница между двумя трактовками одной и той же строки — около 14 миллионов рублей в месяц. Ни один план не выдерживает такой неопределённости в базовом определении. Именно с этой путаницы и начинается разговор о динамической финансовой модели: без чёткого разделения понятий любая таблица считает не то, что нужно.
Это не разовая накладка. Это симптом таблицы, которая не понимает, что считает. Финмодель, собранная один раз в феврале, к маю уже врёт: изменились каналы, вырос курс закупки, отдел продаж перевыполнил план на 40%, а хвалить некого — сама стратегия оказалась неверной изначально. Переписывать её вручную каждые три недели — это 16 часов работы аналитика при ставке около 1500 ₽/час, то есть 24 000 ₽ каждый раз, когда меняется хоть один канал или курс (оценка). А если рынок штормит сильнее обычного и переписывать план приходится не раз в квартал, а каждый месяц — нагрузка на финансовую функцию утраивается, притом что она и так тонет в текучке.
Чем обычная таблица отличается от динамической финансовой модели
Классическая финмодель — это таблица с зафиксированными цифрами: план продаж на январь, на февраль, на март. Как только реальность отклоняется от плана хотя бы на один канал — таблица не пересчитывается, она просто становится неправдой. Дальше два варианта: либо её тихо игнорируют, либо кто-то садится и переписывает вручную, теряя день-два.
Похожий разрыв между целью и планом — предмет отдельного разбора: в статье о стоимости стратегического планирования показано, как компания получила расхождение в 2,4 раза между целью стратегии и текущим операционным планом. Причина там была не в саботаже — часть цифр считалась в договорах, часть в авансах, часть просто устарела за пару месяцев. Собственник в такой ситуации обычно задаёт один и тот же вопрос — «за счёт чего мы дадим больше?» — и таблица с зафиксированными числами на него ответить не может: она не знает, за счёт какого канала растёт цифра, потому что канал не привязан к формуле, он вписан руками.
Динамическая модель отличается одним: цифры в ней — не числа, а формулы, ссылающиеся на факт. Растёт SEO на 5% в месяц — план на следующий месяц меняется сам. Меняется доля авансов — модель это видит и не путает с выручкой. Это не про Excel против сервиса, это про архитектуру: где источник истины, кто его обновляет и что делает с этим формула.
Механика: как собрать динамическую финмодель, которая пересчитывается сама
Ниже — последовательность, которую можно повторить с командой из финансиста, аналитика и одного разработчика на стороне (или без него, если хватает Google Apps Script).
- Зафиксировать источник факта. Продажи и авансы — из CRM (amoCRM/Bitrix24) через API или выгрузку. Лиды по каналам — из сквозной аналитики или рекламных кабинетов. Один источник на одну метрику, без ручного ввода «на глаз». Если CRM сама искажает даты сделок — вся модель наследует эту ошибку; про типичный случай такого сдвига — в разборе, как Битрикс24 подменял даты сделок.
- Развести понятия. Отдельные строки для «сумма договора», «аванс к оплате», «выручка по факту исполнения». В компании из легенды это даёт разницу около 14 млн ₽/мес — без разведения строк модель врёт по определению.
- Заложить формулу роста, а не число. Вместо «план на февраль — 10 млн» пишем «план = факт прошлого месяца × (1 + темп_роста)», где темп_роста — отдельная ячейка, которую меняет финансист по факту, а не переписывает весь план.
- Разбить по каналам и рынкам отдельно. Общий план ничего не говорит о механике. Собственник требует конкретики: за счёт SEO или за счёт SMM. Модель должна показывать долю каждого канала в приросте, а не агрегированную цифру.
- Настроить еженедельный слепок. Каждый четверг — фиксация факта по трём блокам: маркетинг (лиды), продажи (сделки), авансы (₽). Это не отменяет месячный пересчёт стратегии, а даёт ранний сигнал, если что-то пошло не так внутри месяца.
- Проверять допущения перед тем, как показывать план собственнику. Не учтены бонусы менеджеров, необоснован скачок продаж — это типовые дыры, которые нужно ловить до совещания, а не на нём.
Это ровно то, о чём один раз уже писал коллега в разборе стратегии как рабочего инструмента — там про то, зачем стратегия вообще нужна руководителю среднего звена. Здесь — про то, как сделать, чтобы цифры в ней сами не устаревали.
ИИ-связка: пересчёт и аудит допущений
Формулы делают арифметику. ИИ в этой связке решает две задачи: объясняет отклонение простыми словами для еженедельного отчёта и ловит логические дыры в сгенерированной стратегии — тот самый случай, когда прогноз звучит убедительно, но не учитывает бонусы продаж или строится на непроверенном допущении.
Схема конвейера: CRM (amoCRM/Bitrix24) → выгрузка факта в Google Sheets по расписанию (Apps Script, триггер по четвергам в 9:00) → формулы пересчитывают план → облачная функция дергает LLM с промптом на анализ отклонений → результат пишется в отдельный лист «Комментарии» → уведомление в Telegram, если отклонение больше 15%.
Ты — финансовый аналитик компании. На вход дан JSON с плановыми
и фактическими показателями за неделю по трём блокам: маркетинг,
продажи, авансы. Формат входа:
{
"period": "2026-W35",
"plan": {"leads": 210, "deals": 36, "advance_rub": 2250000},
"fact": {"leads": 185, "deals": 33, "advance_rub": 2040000},
"channel_mix_fact": {"seo": 0.31, "telegram": 0.29, "smm": 0.22, "pr": 0.18}
}
Задача:
1. Посчитай отклонение факта от плана в процентах по каждому блоку.
2. Определи, какой блок дал наибольший вклад в отклонение.
3. Если отклонение по лидам больше 10% — предположи вероятную
причину, опираясь на channel_mix_fact (просадка конкретного канала).
4. Присвой risk_flag: green (до 5%), yellow (5-15%), red (свыше 15%).
5. Дай одно конкретное действие для встречи в четверг, без общих фраз
вроде "улучшить маркетинг".
Ответ верни строго в JSON, без пояснений вокруг.
Модель для этого шага — дешёвая (уровня GPT-4o-mini или аналог): задача рутинная, формат жёсткий, риск ошибки невысокий, а гонять её нужно каждую неделю по нескольким менеджерам и трём блокам — дорогая модель тут не окупается.
Пример ответа модели:
{
"period": "2026-W35",
"deviation_leads_pct": -11.9,
"deviation_deals_pct": -8.3,
"deviation_advance_pct": -9.3,
"top_driver": "leads",
"likely_cause": "просадка SEO-канала на 22% против среднего",
"risk_flag": "yellow",
"action": "проверить индексацию новых страниц, добавленных в июле"
}
Второй промпт — аудит стратегии, которую сгенерировал сам ИИ (или человек в связке с ИИ) перед показом собственнику. Здесь цена ошибки выше: если пропустить пункт про бонусы или необоснованный прогноз роста, план утвердят и потом будут удивляться, откуда дыра в бюджете.
Ты — CFO, проверяющий черновик годовой стратегии перед защитой у собственника. На вход — текст стратегии (до 3000 слов) и список контрольных пунктов: - учтены ли премии и бонусы сотрудников в фонде оплаты труда; - подтверждён ли прогноз роста ссылкой на конкретный канал/источник, а не общей фразой "рынок растёт"; - совпадают ли единицы измерения (годовая выручка vs месячный бюджет, договоры vs авансы); - есть ли временные маркеры (когда именно ожидается каждый показатель). Для каждого пункта верни: найдено/не найдено, цитату из текста (если найдено) и рекомендацию, если не найдено. Не переформулируй цифры, если не уверен в их источнике — помечай как "не подтверждено".
Здесь нужна модель дороже (уровня GPT-4o или o1-подобная): задача — не арифметика, а логический аудит длинного текста, ошибка стоит дороже, чем разница в цене токенов.
{
"bonuses_included": "не найдено",
"growth_source_confirmed": "частично — SEO подтверждён, SMM нет",
"units_consistent": "не найдено — годовая цифра сравнивается с месячным бюджетом",
"time_markers_present": "не найдено",
"verdict": "не готово к защите",
"top_fix": "развести годовые и месячные цифры, указать источник роста по SMM"
}
Инженерная обвязка: Apps Script крутится в самой таблице, вызов LLM — через облачную функцию (чтобы не хранить ключ API в открытом скрипте), лог ошибок пишется в отдельный лист «Errors», при сбое вызова — повторная попытка через 10 минут, при второй неудаче — сообщение в Telegram-канал финансового отдела. Если источник факта (CRM) не отдал данные — модель не запускается вообще, а не считает по пустым ячейкам: это частая причина «красивых, но лживых» отчётов.
Что видно в цифрах
Пример разбивки по каналам, которую собственник требовал от каждого руководителя направления: не агрегированный процент роста, а доля каждого канала в лидах, с фиксацией прогресса год к году. Конверсии по каналам ниже — ориентировочные (оценка), сам факт роста доли SEO с 5% до 35% — по опыту практики.
| Канал | Доля лидов, 2025 | Доля лидов, план 2026 | Конверсия в сделку (оценка) |
|---|---|---|---|
| SEO | 5% | 35% | 18% |
| Telegram | 40% | 30% | 12% |
| SMM | 30% | 20% | 9% |
| PR и прочее | 25% | 15% | 7% |
Такая таблица отвечает на вопрос собственника «за счёт чего?» — SEO дал самый резкий рост доли (с 5% до плановых 35%), при этом конверсия по нему выше всех остальных каналов (по оценке). Без разбивки по каналам эта информация тонет в общей цифре «плюс 20% лидов».
Второй срез — разрыв между целью и текущим планом, который и запускает всю историю с динамической моделью. Ниже — свой пример на цифрах текущей компании, чтобы показать, откуда берётся такой разрыв при путанице с авансами и выручкой.
В текущий операционный план на год заложено 45 млн ₽. Цель по стратегии — 108 млн ₽, это ровно годовой темп при сохранении текущего оборота 9 млн ₽/мес. Разрыв — 2,4×.
Дело не в арифметике — план собирался вручную из разных источников с разными единицами измерения (часть строк — по договорам, часть — по авансам), отсюда и просвет между целью и планом. Формула роста при загрузке факта такой разрыв показывает сразу, а не через квартал, когда собственник случайно откроет обе цифры рядом.
Экономика: что это стоит и что даёт
Возьмём условную компанию из легенды: 8 менеджеров продаж, оборот 9 млн ₽/мес, средний чек — около 180 тыс. ₽ (около 50 сделок в месяц).
Стоимость внедрения (разово, оценка): сборка формул и связки с CRM — 20–25 часов аналитика (~1500 ₽/час) и 10–15 часов разработчика на Apps Script и вебхук (~2000 ₽/час). Итого около 30 000–37 500 ₽ у аналитика плюс 20 000–30 000 ₽ у разработчика — совокупно 50 000–67 500 ₽ разово (оценка).
Эксплуатация (в месяц, оценка): вызовы LLM для еженедельного анализа отклонений (4 запуска в месяц на дешёвой модели) и для месячного аудита стратегии (1 запуск на модели подороже) — ориентировочно 2 000–4 000 ₽/мес суммарно на токены. Подробный разбор счетов за ИИ-инструменты — в отдельном материале про реальные расходы на ИИ.
Эффект: ручная пересборка стратегии занимала около 16 часов аналитика за раз (оценка). По опыту такой практики это происходило вынужденно каждые три недели — план устаревал из-за смены канала, курса закупки или просто хода месяца. С формулами пересчёт занимает 1–2 часа проверки допущений, значит экономия — порядка 14 часов на цикл × 1500 ₽/час ≈ 21 000 ₽ за один пересчёт. Три недели — это примерно 1,4 цикла в месяц (30 дней ÷ 21 день), поэтому месячная экономия времени аналитика — около 21 000 ₽ × 1,4 ≈ 29 000 ₽/мес. Формула для своего случая: (часы ручной пересборки − часы проверки с формулами) × ставка аналитика в час × число пересчётов в месяц. Отдельно не учтён риск утверждения плана с разрывом в 2,4 раза — в деньгах он точно не измеряется, но стоит дороже одного часа работы, если дойдёт до совета директоров необнаруженным. Что мы не считаем эффектом: время, которое аналитик освободил, но потратил на другую отчётность, а не на новые задачи с добавленной стоимостью, — это перераспределение часов, а не деньги в кассе.
При вложениях в 50 000–67 500 ₽ на старте и экономии около 29 000 ₽/мес система окупается примерно за 2–2,5 месяца эксплуатации — и это без учёта снятого риска ошибочного плана, который сложнее оценить в деньгах, но который дороже одного цикла пересборки.
Этот эффект — только от самой механики формул и еженедельного слепка. Он не включает эффект от отдельного решения ввести финансиста на сбор дебиторки или от смены схемы мотивации руководителей — это отдельные инициативы с отдельной экономикой, которые нельзя суммировать с эффектом модели напрямую. Если параллельно менялась и мотивация, и модель — сдвиг даёт связка этих мер, а вклад отдельно взятой финмодели выделить в чистом виде нельзя.
Юнит-экономика как основа, без которой формулы бессмысленны
Динамическая модель пересчитывает верхнеуровневые цифры правильно только если знает маржу и точки экономики на уровне направления. Без этого формула роста в 5% в месяц может расти при падающей марже — и план будет «зелёным», пока касса не покажет обратное. Собственнику стоит требовать от каждого руководителя направления знание юнит-экономики буквально наизусть: сколько зарабатывает направление, какая маржа, какие точки роста и просадки — это база, без которой любая динамическая модель считает красивые, но пустые числа. Похожая логика разбора по разрывам — в материале о том, где теряются деньги между лидами и продажами: без верных единиц измерения на каждом шаге воронки любая модель считает красиво, но неправильно.
Чек-лист: с чего начать в понедельник
- Развести в текущей таблице строки «сумма договора», «аванс», «выручка по факту» — если сейчас это одна строка, разрыв в трактовке уже где-то есть.
- Заменить хотя бы одну зафиксированную цифру плана на формулу от факта прошлого периода — начать с одного канала, не с всей модели сразу.
- Назначить день фиксации факта (четверг — по опыту практики) и три блока: маркетинг, продажи, авансы.
- Разбить план по каналам и рынкам отдельно — агрегированная цифра не отвечает на вопрос «за счёт чего».
- Прогнать текущую стратегию через промпт-аудит на пропущенные бонусы и неподтверждённые допущения, прежде чем нести её на совет.
- Проверить, знает ли руководитель каждого направления свою маржу и юнит-экономику наизусть — без этого формула роста бессмысленна.
Частые вопросы
Финансовую модель лучше делать в Excel/Google Sheets или в отдельном сервисе?
Для 90% средних компаний хватает Google Sheets или Excel с формулами и API-подтяжкой данных из CRM — сервис оправдан, только если моделей больше пяти и их надо шарить с внешними инвесторами.
Чем интерактивная стратегия отличается от обычной презентации?
Презентация — застывший снимок на дату защиты. Интерактивная стратегия — файл с формулами, который сам пересчитывает прогноз при подгрузке факта за неделю или месяц, и показывает, где план разошёлся с реальностью и почему.
Как часто нужно пересчитывать динамическую модель?
Технически — хоть каждый день, но для управленческих решений достаточно раз в неделю (факт по продажам) и раз в месяц (полный пересчёт стратегии с учётом внешних факторов).
#аналитика и отчётность #деньги #ии и нейросети
Новые разборы — письмом, в день выхода. Без дайджестов ради дайджестов: нет статьи — нет письма.