AI для финансиста
Нейросеть для прогноза продаж и выручки: ChatGPT строит rolling forecast без Excel
На разборе с ученицей курса в мае мы считали разницу между её прежним прогнозом и расчётом через ChatGPT: прежний способ — прибавить к прошлогодней выручке процент, который на словах согласовал собственник, — растягивался на два часа один раз в год и не давал ответа, что делать с сезонным пиком в третьем квартале. Расчёт через нейросеть с декомпозицией тренда и сезонности занял 35 минут и добавил то, чего не было в ручном прогнозе вообще — доверительный интервал. В этой статье показываю, как через chatgpt.com построить rolling forecast продаж и выручки по историческим данным, даю 10 готовых промптов и три кейса из практики учениц курса. Я Натали Васильева, эксперт по нейросетям и продюсер онлайн-школы «Финансовый директор | Мастер CFO», работаю с AI в финансовых задачах с февраля 2023 года.
Что такое rolling forecast и чем он отличается от обычного бюджета
Прямой ответ: rolling forecast — это скользящий прогноз, который пересчитывается каждый месяц на фиксированный горизонт вперёд, обычно 12 месяцев, в отличие от статичного годового бюджета, который утверждается раз в год и не меняется до декабря.
Классический годовой бюджет составляется осенью на следующий календарный год и живёт неизменным двенадцать месяцев. Проблема очевидна уже в феврале: рынок изменился, появился новый конкурент, спрос сдвинулся, а план на бумаге остался прежним. Финансовый директор либо игнорирует расхождение, либо тратит недели на внеплановую корректировку бюджета вручную.
Именно этот разрыв между статичным планом и живой реальностью бизнеса чаще всего и приводит финансистов к идее rolling forecast — не потому что методика модная, а потому что она снимает регулярную боль. Собственник задаёт вопрос «сколько мы заработаем в этом году» не один раз в декабре, а практически каждый месяц, особенно если бизнес растёт быстро или, наоборот, переживает турбулентность. Статичный бюджет на такой вопрос отвечает всё хуже с каждым прошедшим месяцем года, потому что фактические условия неизбежно расходятся с предположениями, заложенными в бюджет ещё осенью.
Rolling forecast устроен иначе. Каждый месяц в него добавляется свежий факт за закрытый период, а горизонт прогноза сдвигается на месяц вперёд. Если в январе прогноз строился на период февраль-январь следующего года, то в феврале, после закрытия месяца, он пересчитывается на март-февраль. Компания всегда смотрит на 12 месяцев вперёд, а не на остаток текущего календарного года, который с каждым месяцем сокращается.

Rolling forecast сдвигает окно прогноза каждый месяц, статичный бюджет фиксируется один раз в год.
Ученица курса, финдир того самого производителя упаковочных материалов из кейса ниже, перешла на rolling forecast не потому, что изучила методологию на курсе, а потому что три квартала подряд объясняла собственнику один и тот же разрыв между бюджетом и фактом: план на год не поспевал за сезонным пиком в третьем квартале. Скользящий прогноз снял этот разговор: план стал живым документом, который признаёт изменения каждый месяц, а не оправдывается за них раз в квартал.
Технически rolling forecast требует того же самого набора данных, что и обычный бюджет: история продаж, выручки, ключевых расходов. Разница не в данных, а в частоте и механике пересчёта. Именно поэтому эта задача хорошо ложится на нейросеть — регулярный, структурированный пересчёт по одному и тому же шаблону не требует творчества, требует дисциплины и скорости, а это ровно то, в чём ChatGPT выигрывает у ручного Excel.
Есть и промежуточный формат — quarterly rolling forecast, когда пересчёт делается не каждый месяц, а раз в квартал, но горизонт всё равно скользящий на 4-6 кварталов вперёд. Это компромисс для компаний, где ежемесячный пересчёт избыточен из-за низкой волатильности бизнеса, но статичный годовой план всё равно слишком жёсткий.
Если вы уже строите годовой бюджет через нейросеть, механика rolling forecast встраивается в этот процесс естественно — я подробно показывала базовую логику AI-бюджетирования в статье ChatGPT для бюджетирования финансового директора, и rolling forecast логично рассматривать как следующий шаг после того, как в компании уже отлажен процесс регулярного прогноза расходов.
Есть и третье, менее очевидное различие между rolling forecast и обычным бюджетом — уровень детализации и направление построения. Годовой бюджет обычно строится «сверху вниз»: собственник или совет директоров задаёт целевой рост, а финансовый отдел раскладывает его по статьям и месяцам, подгоняя цифры под уже утверждённую цель. Rolling forecast строится «снизу вверх», от фактических данных к прогнозу, и поэтому честнее отражает реальную траекторию бизнеса, даже если эта траектория менее амбициозна, чем хотелось бы собственнику. Это создаёт естественное напряжение: бюджет обычно оптимистичнее rolling forecast, и финансовому директору приходится объяснять руководству, почему две цифры расходятся и какая из них ближе к реальности для операционных решений.
На консультациях с ученицами курса частый вопрос — не заменяет ли rolling forecast годовой бюджет полностью. Ответ — нет, они решают разные задачи. Годовой бюджет фиксирует целевые показатели, под которые выстраивается система мотивации, KPI отделов, лимиты расходов. Rolling forecast — рабочий инструмент оперативного управления, который показывает наиболее вероятную траекторию с учётом свежих данных, независимо от того, куда изначально целились в бюджете. В идеале компания ведёт оба документа параллельно и раз в квартал сверяет, насколько бюджет ещё соответствует реальности, показанной rolling forecast. Если расхождение растёт три квартала подряд, это сигнал не корректировать прогноз под бюджет, а пересматривать сам бюджет.
Ещё один практический нюанс: rolling forecast не обязан быть таким же детальным, как годовой бюджет. Бюджет часто расписывается по десяткам статей расходов и центров ответственности, потому что от него зависит распределение полномочий и лимитов внутри компании. Rolling forecast для оперативных решений обычно достаточно вести на уровне выручки, объёма продаж и 5-7 крупнейших статей затрат — избыточная детализация только замедляет ежемесячный пересчёт, не добавляя точности прогнозу на уровне компании в целом.
Почему точечный прогноз без доверительного интервала вводит в заблуждение
Прямой ответ: любой прогноз — это оценка с погрешностью, а не точное число, и если модель или финансист называет одну цифру без вилки, решение на основе этой цифры рискованно.
Финансисты привыкли к культуре точных чисел: баланс должен сойтись до рубля, отчёт о прибылях и убытках не терпит округлений. Прогноз работает по другим правилам — это вероятностная оценка будущего, и чем дальше горизонт от последней известной точки факта, тем шире должен быть разброс возможных значений.
Представим прогноз выручки на 6 месяцев вперёд. Значение «12 400 000 рублей» без контекста звучит убедительно и провоцирует принять решение так, будто это гарантированный факт. Но реалистичный прогноз выглядит иначе: «от 10 800 000 до 14 100 000 рублей, наиболее вероятное значение около 12 400 000». Разница между этими двумя формулировками не абстрактная: с диапазоном закупщик заложит резерв сырья на случай, если факт окажется ближе к верхней границе, а с точечной цифрой у него нет оснований резервировать вообще ничего сверх плана — и при отклонении вверх компания упускает продажи из-за нехватки сырья. Похожая логика работает и при прогнозе дебиторской задолженности — я разбирала её в статье ChatGPT для управления дебиторской задолженностью, где точечная оценка «когда клиент заплатит» тоже вводит в заблуждение без вилки вероятностей.
Если не попросить диапазон явно, ChatGPT почти всегда выдаёт одно число — так короче и это самый частый формат ответа на вопрос “спрогнозируй выручку” без уточнений. Этого нужно избегать намеренным промптом: прямо просить пессимистичный, базовый и оптимистичный сценарий и объяснение, откуда берётся ширина каждого.

Доверительный интервал расширяется по мере удаления от последней известной точки — это нормальное поведение прогноза, а не признак ошибки.
Расширение интервала на дальнем горизонте — не баг модели, а математическое свойство любого прогноза временных рядов. Прогноз на следующий месяц опирается почти целиком на свежий факт, а прогноз на 11-й месяц вперёд уже во многом строится на предположениях о том, что тренд и сезонность сохранятся. Чем длиннее эта цепочка допущений, тем больше в ней может накопиться неопределённости.
На практике я прошу ChatGPT показывать три линии на графике: пессимистичный сценарий, базовый (наиболее вероятный) и оптимистичный. Это визуально сразу объясняет собственнику, что прогноз — не гарантия, а диапазон вероятного будущего, внутри которого компания должна планировать резервы.
Есть простой способ проверить, насколько адекватна ширина интервала, который вам выдала модель. Попросите ChatGPT посчитать интервал не только логически, но статистически — на основе фактического разброса ошибок прошлых прогнозов, если у вас уже накопилась история пересчётов. Если такой истории ещё нет, можно ориентироваться на стандартное отклонение остатка после декомпозиции ряда: чем оно больше относительно среднего уровня продаж, тем шире должен быть интервал уже на первом прогнозе. Модель, которая выдаёт узкий интервал при высоком историческом разбросе значений, скорее всего, недооценивает неопределённость, и это стоит перепроверить отдельным промптом.
Ширина интервала — это ещё и управленческий сигнал сама по себе, не только техническая деталь. Если пессимистичный и оптимистичный сценарии на 12-й месяц расходятся в полтора-два раза, это означает, что бизнес работает в зоне высокой неопределённости — новый рынок, нестабильный спрос, короткая история. Такой картине соответствует консервативная политика найма и запасов. Если разброс узкий и сценарии почти сходятся, бизнес предсказуем, и можно позволить себе более смелые решения на основе базового сценария.
Что такое временной ряд и декомпозиция тренда простыми словами
Временной ряд — это последовательность значений показателя (выручка, продажи), измеренных через равные промежутки времени. Декомпозиция — разложение этого ряда на три составляющие: долгосрочный тренд, повторяющуюся сезонность и случайный шум.
Финансисты без статистического образования часто путают тренд с полным описанием будущего, забывая, что реальные продажи почти всегда колеблются вокруг тренда из-за сезонности и случайных факторов. Понимание трёх компонент временного ряда — это база, без которой прогноз превращается в гадание.
Тренд — это направление движения показателя без учёта сезонных колебаний: растёт бизнес, падает или стагнирует в среднем за длительный период. Тренд считается через сглаживание — усреднение по скользящему окну, которое убирает краткосрочный шум и показывает общее направление.
Сезонность — это регулярно повторяющиеся колебания, привязанные к календарю: пик продаж перед Новым годом, спад в январе, всплеск в сентябре у товаров для школы. Сезонность повторяется из года в год с похожей амплитудой, если структура бизнеса не менялась кардинально.
Остаток (шум) — это то, что не объясняется ни трендом, ни сезонностью: случайные колебания спроса, разовые сделки, эффекты, которые модель не может предсказать заранее. Чем меньше доля остатка в общей вариации ряда, тем точнее будет прогноз — модель просто не может предсказать чистый случайный шум, как бы хорошо она ни была настроена.
Когда вы просите ChatGPT «спрогнозировать продажи», по умолчанию модель может смешать все три компоненты в одно текстовое рассуждение. Если явно попросить показать декомпозицию отдельно — тренд отдельным графиком, сезонность отдельным графиком, — вы получаете возможность проверить логику модели, а не просто поверить готовому числу.
Есть два основных способа математически разложить ряд на компоненты, и полезно понимать разницу, даже не углубляясь в формулы. Аддитивная модель предполагает, что фактическое значение равно сумме тренда, сезонности и остатка — она подходит, когда сезонные колебания примерно одинаковы в абсолютных числах независимо от уровня тренда. Мультипликативная модель предполагает, что значения перемножаются, а не складываются — она подходит, когда сезонные колебания растут пропорционально самому тренду, например, если пиковый месяц всегда даёт примерно на 40% больше среднего, а не на фиксированную сумму в рублях.
Для растущего бизнеса чаще подходит мультипликативная модель: по мере роста компании абсолютный размер сезонного пика тоже растёт, а не остаётся фиксированной суммой. ChatGPT сам выбирает подходящий тип декомпозиции, если явно не указать, но лучше спросить модель, какой вариант она использовала и почему — иногда выбор влияет на итоговый прогноз сильнее, чем кажется на первый взгляд, особенно на длинных горизонтах, где сезонная компонента накапливается за несколько циклов.
Как подготовить данные для прогноза продаж правильно
Нужен один файл с историей минимум за 12, а лучше за 24-36 месяцев: дата периода, выручка, объём продаж в штуках или сделках. Без достаточной длины истории прогноз технически построится, но окажется ненадёжным на любом горизонте дальше 1-2 месяцев.
Самая частая причина слабого прогноза — недостаточная история, а не ограничение модели. Финансист выгружает последние 6-8 месяцев, потому что «остальное уже неактуально», и удивляется, почему модель не видит сезонность и промахивается с прогнозом на предновогодний пик.
Минимальный набор данных для рабочего прогноза:
- Дата периода — месяц и год, единообразный формат по всей выгрузке
- Выручка за период в рублях
- Объём продаж в штуках, сделках или другой натуральной единице — нужен, чтобы отделить прогноз объёма от прогноза выручки
- Флаг аномалий — отдельный столбец, где отмечены месяцы с разовыми выбросами: крупная разовая сделка, форс-мажор, сбой учёта
- Внешние факторы, если они известны заранее — плановое расширение ассортимента, запуск нового канала продаж, изменение цены
Если истории меньше 24 месяцев, честно скажите об этом в промпте: «данных за 14 месяцев, сезонность оцени приблизительно, отметь в ответе низкую уверенность в сезонной компоненте». ChatGPT построит прогноз по доступным данным и явно обозначит ограничение, а не будет молчать о нём.
Отдельный источник ошибок — смешение выручки по отгрузке и выручки по оплате в одной таблице без пометки. Если часть истории считалась по отгрузке, а часть по факту оплаты из-за смены учётной политики, временной ряд получает скрытый разрыв, который модель интерпретирует как реальное изменение тренда. Перед загрузкой стоит свериться с бухгалтерией, что методика признания выручки не менялась внутри анализируемого периода — а если менялась, явно отметить точку перехода.
Ещё один момент, который часто упускают финансисты, впервые строящие прогноз через нейросеть, — единообразие периодизации. Если часть месяцев в выгрузке содержит 4 недели, а часть 5 из-за того, что отчётный период выровнен по неделям, а не по календарным месяцам, в ряде появляется искусственная волатильность, которую модель может принять за реальные колебания спроса. То же касается количества рабочих дней: февраль короче января почти всегда, и если бизнес чувствителен к количеству рабочих дней (B2B-продажи, услуги с почасовой тарификацией), стоит либо нормализовать выручку на рабочий день, либо явно указать это в промпте, чтобы модель не интерпретировала естественный февральский спад как ухудшение тренда.
Финансисту, который готовит выгрузку впервые, полезно на этом же этапе решить, в какой валюте вести расчёт, если часть выручки приходит в иностранной валюте. Курсовые колебания способны исказить рублёвый тренд не хуже сезонности — резкий скачок курса создаст в истории всплеск или провал, никак не связанный с реальным объёмом продаж. Для чистоты прогноза объёма и структуры спроса иногда полезнее строить ряд в валюте контракта, а курсовую составляющую прогнозировать отдельно и накладывать поверх операционного прогноза.

Пять колонок минимального набора данных для прогноза: без флага аномалий модель включит выбросы в тренд как реальную динамику.
Как найти и очистить выбросы в истории продаж перед прогнозом
Прямой ответ: выброс — это значение, которое сильно отклоняется от общего паттерна ряда и вызвано разовой причиной, а не закономерностью, и если его не пометить, модель встроит случайность в постоянный тренд.
Классический пример: в марте компания заключила разовую крупную сделку на 3 миллиона рублей при обычной месячной выручке 800 000. Если это значение просто лежит в таблице наравне с остальными, модель может интерпретировать март как начало нового, более высокого уровня продаж и завысить весь последующий прогноз.
Есть простое статистическое правило для быстрой проверки: если значение месяца отклоняется от скользящего среднего за последние 6 месяцев больше чем на два стандартных отклонения, это кандидат на выброс, который стоит проверить вручную. ChatGPT легко считает это правило в коде и подсвечивает подозрительные месяцы, но окончательное решение — выброс это или новый уровень бизнеса — должен принимать человек, знающий контекст сделки.
На практике порог в два стандартных отклонения — это отправная точка, а не догма. Для бизнеса с высокой естественной волатильностью продаж (проектные продажи, редкие крупные тендеры) двух стандартных отклонений может быть мало — вы будете помечать как выброс почти каждый второй месяц, что бессмысленно. Для стабильного розничного бизнеса с предсказуемым потоком клиентов, наоборот, порог в два отклонения может быть избыточно мягким и пропустить настоящую аномалию. Попросите ChatGPT сначала посчитать историческую волатильность именно вашего ряда и предложить порог, соответствующий вашей отрасли, а не применять универсальное правило без проверки.
Не каждое отклонение — ошибка, которую нужно убрать из данных. Если компания вышла на новый канал продаж и с этого момента стабильно растёт на новом уровне, это не выброс, а сдвиг тренда, и его нужно оставить в истории как есть. Разница между выбросом и структурным сдвигом определяется тем, повторяется ли новый уровень в последующих периодах или это было единичное событие.
Практический подход, который я рекомендую: не удалять аномальные значения из таблицы физически, а добавить отдельный столбец-флаг «выброс: да/нет» с коротким комментарием причины. Так модель видит полную историю, но явно знает, какие точки не стоит использовать при расчёте базового тренда, и может показать прогноз в двух вариантах — с выбросами и без них.
Ещё один тип аномалии, который легко пропустить, — не разовый скачок, а временный сдвиг на несколько месяцев подряд. Например, госзаказчик задержал оплату крупного контракта на квартал, и в отчётности этот квартал выглядит слабым не из-за падения спроса, а из-за кассового разрыва в признании выручки. Если считать выручку по оплате, такие эпизоды создают провалы, которые не отражают реальную динамику продаж. Здесь помогает второй ряд данных — отгрузки или подписанные акты, а не только фактические платежи — как контрольная точка для проверки, действительно ли просел спрос или это временная задержка в деньгах.
Отдельно стоит различать сезонный минимум и выброс вниз. Если каждый январь компания традиционно показывает низкие продажи из-за постпраздничного затишья у клиентов, это не аномалия, а часть регулярного паттерна, и её нельзя помечать как выброс — иначе модель потеряет реальную сезонность при расчёте индекса. Проверка простая: если низкое значение повторяется в одном и том же календарном месяце из года в год с похожей амплитудой, это сезонность. Если оно случилось один раз и не имеет аналога в предыдущих годах, это кандидат на выброс.
Готовые промпты для прогноза продаж и выручки в ChatGPT
Ниже 10 промптов, которые закрывают полный цикл: от базового прогноза до сценарного анализа и сравнения версий между собой. Каждый промпт можно скопировать и адаптировать под структуру своих данных.
Промпт 1. Базовый rolling forecast на 12 месяцев
Ты финансовый аналитик с опытом прогнозирования выручки
для среднего бизнеса. Проанализируй прикреплённую таблицу
с историей продаж и выручки за последние [укажи число]
месяцев.
Задача: построй прогноз выручки и объёма продаж на
следующие 12 месяцев. Разложи ряд на тренд, сезонность
и остаток, покажи расчёт в коде на Python.
Для каждого месяца прогноза дай три значения: пессимистичный
сценарий, базовый (наиболее вероятный), оптимистичный.
Не давай точечное число без диапазона.
Формат ответа: таблица месяц/пессимистичный/базовый/
оптимистичный + график с тремя линиями.
Промпт 2. Поиск и разметка выбросов в истории
Ты финансовый аналитик, который проверяет качество
исторических данных перед прогнозированием.
Проанализируй прикреплённую историю продаж за [период].
Найди месяцы, которые отклоняются от скользящего среднего
за 6 месяцев больше чем на два стандартных отклонения.
Для каждого найденного месяца объясни, почему он аномален,
и предложи: это разовый выброс, который стоит исключить
при расчёте тренда, или начало нового устойчивого уровня
продаж. Покажи расчёт в коде.
Промпт 3. Декомпозиция сезонности по товарным группам
Ты финансовый аналитик, специализирующийся на анализе
сезонности спроса. У меня есть история продаж по [число]
товарным группам за [период, минимум 24 месяца].
Задача: для каждой группы отдельно посчитай индекс
сезонности по месяцам (отношение фактических продаж
месяца к среднемесячному значению года). Покажи, какие
группы наиболее подвержены сезонности, а какие продаются
стабильно весь год.
Формат: таблица товарная группа × месяц с индексом
сезонности, короткий вывод по каждой группе.
Промпт 4. Прогноз выручки с учётом планового изменения цены
Ты финансовый аналитик. Построй прогноз выручки на
[горизонт] месяцев с учётом планового повышения средней
цены на [процент]% с [дата вступления в силу].
Раздели прогноз на два компонента: рост от объёма продаж
(на основе исторического тренда) и рост от цены
(механическое умножение на коэффициент повышения).
Учти, что рост цены может снизить объём продаж —
рассмотри три сценария эластичности спроса: объём не
меняется, падает на 5%, падает на 10%. Покажи итоговую
выручку по каждому сценарию.
Промпт 5. Сравнение прогноза с фактом за прошлый период (backtesting)
Ты финансовый аналитик, который проверяет качество модели
прогнозирования методом бэктестинга.
Используй данные только до [месяц N] из прикреплённой
таблицы, построй прогноз на [месяц N+1] – [месяц N+3].
Затем сравни прогноз с реальным фактом за эти месяцы,
который я дам отдельно.
Посчитай процент отклонения прогноза от факта по каждому
месяцу (MAPE — mean absolute percentage error). Объясни,
в какую сторону модель чаще ошибается — завышает или
занижает — и почему.
Промпт 6. Прогноз при запуске нового канала продаж
Ты финансовый аналитик. У компании появляется новый канал
продаж [например: маркетплейс, розничная точка] с [дата
запуска]. Исторических данных по этому каналу нет.
Задача: построй прогноз выручки компании в целом на
[горизонт] месяцев, добавив к базовому тренду по
существующим каналам консервативную оценку выручки
нового канала на основе аналогичного запуска [опиши
похожий кейс, если был, или средние отраслевые показатели
выхода на плато].
Покажи отдельно вклад нового канала и вклад существующих
каналов в итоговый прогноз.
Промпт 7. Сценарный анализ трёх вариантов развития рынка
Ты финансовый аналитик. Построй три сценария прогноза
выручки на [горизонт] месяцев: базовый (текущий тренд
сохраняется), пессимистичный (падение спроса на [процент]%
из-за [причина: конкурент, макроэкономика, сезонный спад]),
оптимистичный (рост на [процент]% из-за [причина]).
Для каждого сценария покажи месячную динамику выручки
и итоговую сумму за весь горизонт. Дай короткую
рекомендацию, на какой сценарий ориентироваться при
планировании бюджета расходов и найма.
Промпт 8. Прогноз продаж по новому продукту без истории
Ты финансовый аналитик, специализирующийся на прогнозировании
запуска новых продуктов без собственной истории продаж.
У меня новый продукт [краткое описание], запуск через
[срок]. Есть история похожего продукта [опиши: категория,
цена, целевая аудитория] за [период].
Задача: построй прогноз продаж нового продукта на первые
[число] месяцев после запуска, используя кривую выхода
на плато аналогичного продукта как основу, скорректированную
на [укажи отличия: другая цена, другой канал, другой размер
аудитории].
Промпт 9. Проверка методики прогноза другой моделью
Ты финансовый аудитор, который проверяет прогноз, построенный
другой моделью или аналитиком.
Вот прогноз выручки на [горизонт], построенный [опиши
источник: другая нейросеть, ручной расчёт] на основе
методики [кратко опиши подход]: [вставь таблицу прогноза].
Проверь: логична ли динамика месяц к месяцу, учтена ли
сезонность корректно, нет ли резких скачков без объяснения.
Построй свой независимый прогноз на тех же исходных данных
и сравни расхождение по каждому месяцу.
Промпт 10. Итоговая сводка прогноза для собственника
Ты финансовый директор, который готовит короткую сводку
прогноза выручки для собственника бизнеса без финансового
образования.
На основе всех расчётов из этого диалога подготовь сводку
на одну страницу: прогноз выручки на следующие 12 месяцев
одной цифрой с диапазоном, три ключевых фактора, которые
могут сдвинуть прогноз в плюс или минус, и одна главная
рекомендация по управленческому решению на ближайший
квартал.
Пиши простым языком, без статистического жаргона, с
конкретными цифрами из расчётов, а не общими фразами.
Кейс 1: производственная компания построила rolling forecast за 35 минут
Ученица курса, финансовый директор небольшого производителя упаковочных материалов, вела учёт продаж помесячно в 1С за последние три года, но прогноз на следующий год каждую осень строила вручную в Excel: копировала прошлогодние цифры, прибавляла процент, который согласовывал собственник исходя из ощущений.
Она выгрузила 36 месяцев истории — выручку и объём продаж в тоннах — и загрузила в ChatGPT с промптом на базовый rolling forecast с декомпозицией сезонности. Продукция компании имела выраженный сезонный пик в третьем квартале, связанный с сезоном сбора урожая у клиентов из агросектора, и провал в первом квартале.
Модель построила индекс сезонности по месяцам: июль-август-сентябрь выходили с индексом около 1,4-1,6 (то есть на 40-60% выше среднемесячного уровня года), а январь-февраль проседали до 0,6-0,7. Раньше финдир закладывала в бюджет прибавку на третий квартал «процентов на 20-25 к среднему» — цифру, которую согласовывал собственник на словах, без расчёта по истории. Расчётный индекс показал, что фактический пик выше этой интуитивной оценки почти вдвое, и именно это расхождение объясняло, почему компания из года в год либо не успевала закупить сырьё под пик, либо закупала слишком рано и платила за лишнее хранение.
Расчёт вместе с проверкой формул декомпозиции занял 35 минут. Прежний метод — прогноз в Excel «на глаз» с прибавлением процента без учёта точной сезонности — занимал около двух часов один раз в год и всё равно оставлял ощущение неуверенности перед защитой бюджета у собственника. Теперь финдир пересчитывает прогноз каждый месяц по фиксированному промпту за 15-20 минут, добавляя свежий факт.
Первый пересчёт после внедрения не обошёлся без сюрприза: модель изначально включила в расчёт индекса сезонности один месяц, где сорвался контракт с крупным клиентом из-за его собственных проблем с оборотным капиталом — этот провал модель приняла за часть регулярного зимнего спада и слегка занизила зимний индекс. Пришлось вручную пометить этот месяц как выброс и пересчитать. После поправки прогноз на январь разошёлся с фактом в пределах 6-7% — для первого пересчёта нового процесса это финдир сочла приемлемым результатом. Собственник, увидев расчёт с доверительным интервалом и явным индексом сезонности вместо прикидки «на глаз», согласился планировать закупку сырья под диапазон, а не под одну цифру.
Через полгода регулярного использования финдир заметила побочный эффект, которого не ожидала: сам процесс подготовки данных для прогноза заставил бухгалтерию наводить порядок в первичной аналитике. Раньше часть выручки по некоторым клиентам разносилась по разным статьям без единой логики, и это не мешало обычной отчётности, но портило временной ряд для прогноза. Пришлось один раз навести порядок в справочнике аналитики, зато после этого и обычные управленческие отчёты стали точнее, не только прогноз.
Кейс 2: розничная сеть скорректировала прогноз после смены ассортимента
Финансист розничной сети детских товаров из шести точек столкнулась с задачей после того, как компания вывела из ассортимента одну крупную товарную категорию и заменила её на две новые с более высоким средним чеком. Историческая выручка по старой структуре ассортимента больше не была прямым ориентиром для будущего.

Смена ассортимента создала структурный сдвиг тренда — точку, после которой старую сезонность нельзя переносить без корректировки.
Она загрузила в ChatGPT полную историю за 30 месяцев с флагом «структурный сдвиг» на месяце смены ассортимента и попросила построить прогноз, используя для расчёта сезонности данные до сдвига (там было больше циклов), а для расчёта базового уровня выручки — только данные после сдвига, где новый ассортимент уже устоялся.
Первая версия промпта такого разделения не содержала, и модель усреднила всю историю целиком — старый и новый ассортимент вперемешку. Результат вышел заниженным примерно на 12-15% относительно факта последних двух месяцев: модель не могла отличить, где падение выручки от ухода старой категории, а где рост от нового, более дорогого ассортимента, и просто взяла среднее по обоим периодам. Финансист заметила расхождение, сравнив прогноз на ближайший месяц с уже известным фактом, и переписала промпт: явно указала, что сезонный индекс считать по данным до сдвига, а базовый уровень выручки — только по 6 месяцам после него.
После этой правки модель показала два отдельных компонента: сезонный индекс по старым 24 месяцам (сезонность в основном определяется общим потоком покупателей в магазин, а не конкретным товаром, поэтому осталась актуальной) и новый базовый уровень выручки по 6 месяцам после смены ассортимента — примерно на 18% выше прежнего среднемесячного уровня благодаря более высокому среднему чеку на новых категориях.
Итоговый прогноз на следующие 12 месяцев дал диапазон с базовым сценарием посередине, при этом ширина интервала на новом ассортименте вышла шире, чем была бы на старом при том же горизонте — 6 месяцев истории вместо 24 не позволяют сузить вилку так же уверенно. Расчёт вместе с исправлением промпта занял около 40 минут, включая обсуждение с финдиром, какие данные брать для каждого компонента.
Кейс 3: онлайн-школа спрогнозировала выручку по новому продукту без истории
Продюсер образовательного проекта, смежного с финансовой нишей, готовила запуск нового краткосрочного курса и хотела спрогнозировать выручку первого потока, не имея собственной истории продаж по этому конкретному продукту.
Она выгрузила в ChatGPT историю продаж двух похожих по формату и цене курсов за первые три месяца после запуска каждого, отметив ключевые различия: размер email-базы и телеграм-аудитории на момент запуска, длительность прогрева перед стартом продаж, наличие партнёрских анонсов.
Промпт попросил модель построить кривую конверсии первого потока по дням для обоих аналогов, нормализовать её относительно размера аудитории на момент старта продаж, а затем применить нормализованную кривую к текущему размеру аудитории нового курса.
Прогноз показал диапазон выручки первого потока от пессимистичного до оптимистичного сценария с разбросом примерно в 1,8 раза (базовый сценарий — где-то посередине этого диапазона), и явной оговоркой модели, что точность такого прогноза ниже, чем прогноза на основе прямой истории продукта — выборка всего из двух аналогов слишком мала для узкого доверительного интервала.
Фактическая выручка первого потока попала внутрь диапазона, ближе к базовому сценарию, чем к границам — отклонение от базового значения составило около 8%. Продюсер отмечает, что ценность расчёта была не столько в точности итоговой цифры, сколько в понимании динамики продаж по дням: модель показала, что на последние три дня перед закрытием набора приходится примерно 35-40% всего объёма продаж потока, и это позволило спланировать интенсивность рассылок именно на этот период, а не размазывать их равномерно по всему периоду продаж.
На втором потоке того же курса продюсер повторила расчёт, но уже с реальной историей продаж первого потока в качестве базы, а не с аналогами со стороны. Диапазон между пессимистичным и оптимистичным сценарием сузился примерно вдвое по сравнению с первым расчётом — с разброса 1,8 раза до чуть больше 1,3 раза. Это наглядно показывает общее правило: точность прогноза растёт нелинейно с каждым дополнительным циклом собственной истории, и самый неточный прогноз — всегда первый, построенный по чужим аналогам.
Rolling forecast продаж vs rolling forecast выручки: в чём разница
Прогноз продаж в штуках или сделках показывает физический объём спроса, прогноз выручки добавляет к этому объёму цену и структуру ассортимента — и эти два прогноза могут расходиться в направлении, даже если строятся по одной истории.
Представим ситуацию: объём продаж стабилен или даже немного растёт, но выручка падает. Причина почти всегда в структуре — сдвиг ассортиментного микса в сторону более дешёвых позиций, скидочные акции, изменение условий с оптовыми клиентами. Прогноз только по выручке не покажет эту причину, прогноз только по объёму её тоже не покажет — нужны оба показателя вместе, разложенные на компоненты.
| Что прогнозируем | Что показывает | Когда критично считать отдельно |
|---|---|---|
| Объём продаж (шт, сделки) | Физический спрос, загрузка производства/склада | Планирование закупки сырья, найма, логистики |
| Выручка (рубли) | Итоговый денежный результат | Финансовое планирование, бюджет, кассовый разрыв |
| Средний чек / цена | Связка между объёмом и выручкой | Ценовые решения, анализ ассортиментного микса |
ChatGPT удобно прогнозирует все три показателя в одном диалоге, если явно попросить: «спрогнозируй отдельно объём продаж, отдельно средний чек, а выручку получи их перемножением, а не отдельным независимым трендом». Такой подход снижает риск, что модель построит два несвязанных прогноза, которые математически не сходятся друг с другом.
Для компаний с широким ассортиментом полезно прогнозировать выручку не одной суммой, а по крупным товарным группам отдельно, особенно если группы двигаются в разных направлениях — одна растёт, другая падает. Сложенный вместе общий тренд может выглядеть нейтральным и скрывать две противоположные истории внутри бизнеса, которые требуют разных управленческих решений.
Средний чек как отдельная прогнозная переменная заслуживает особого внимания в бизнесах с длинным циклом продаж или редкими крупными сделками — консалтинг, B2B-поставки оборудования, продажа недвижимости. В таких моделях количество сделок в месяц может быть небольшим и волатильным, а прогноз общего числа сделок через классическую декомпозицию временного ряда даёт слишком широкий интервал, чтобы быть полезным. Здесь разумнее прогнозировать не помесячную выручку напрямую, а воронку: количество новых лидов, конверсию на каждом этапе, средний размер сделки и средний цикл от первого контакта до оплаты. ChatGPT неплохо справляется со сборкой такой воронки в один прогноз выручки, если дать историю по каждому этапу отдельно, а не только итоговую сумму по месяцам.
Как учесть внешние факторы, которых нет в истории продаж
Прямой ответ: чисто статистическая модель на основе истории не видит будущих событий — запуск нового канала, изменение цены, выход конкурента — и эти факторы нужно добавлять в промпт отдельным текстовым описанием, а не ждать, что модель угадает их сама.
Классическая ошибка — доверять прогнозу, построенному чисто на истории, в ситуации, когда компания знает о значимом будущем изменении: расширение штата продаж, запуск рекламной кампании с известным бюджетом, потеря крупного клиента, о котором уже известно заранее. Статистический тренд по определению экстраполирует прошлое, он не знает о том, что вы знаете о будущем.
Правильный подход — двухэтапный расчёт. Сначала попросить ChatGPT построить чисто статистический базовый прогноз по истории без корректировок. Затем отдельным промптом описать известные будущие факторы и попросить модель скорректировать базовый прогноз с явным объяснением, на сколько и почему меняется каждая цифра.
Список факторов, которые стоит явно проговаривать в промпте, если они известны:
- Плановое изменение цены — на сколько процентов и с какой даты
- Изменение штата продаж — найм или сокращение менеджеров, влияющих на объём сделок
- Запуск или закрытие канала продаж — новый маркетплейс, розничная точка, партнёрство
- Известная потеря или приобретение крупного клиента — если есть конкретная информация
- Макроэкономические факторы, специфичные для отрасли — сезонные субсидии, изменение регулирования, курсовые колебания для импортозависимых закупок
Важно разделять факторы, в которых вы уверены (подписанный контракт с новым клиентом), и факторы-предположения (собственник думает, что конкурент уйдёт с рынка). Первые можно закладывать в базовый сценарий, вторые — только в отдельный оптимистичный или пессимистичный сценарий, никогда не смешивая с базовым прогнозом как гарантированный факт.
Отдельная категория внешних факторов — макроэкономические и отраслевые, которые не зависят от компании, но напрямую влияют на спрос: ключевая ставка Центробанка для бизнесов с большой долей продаж в кредит или рассрочку, курс валют для импортозависимых закупок, изменения в налоговом или отраслевом регулировании. ChatGPT не имеет актуальных данных по этим показателям в реальном времени внутри диалога без доступа к интернету, поэтому такие вводные тоже нужно давать явно текстом, ссылаясь на официальные источники — сайт Банка России для ставки, официальную статистику Росстата для отраслевых индикаторов. Модель хорошо встраивает готовые цифры в расчёт, но не должна додумывать макроэкономический контекст самостоятельно.
Практический способ протестировать чувствительность прогноза к внешнему фактору — попросить модель показать, насколько сильно меняется итоговая выручка при изменении одного параметра на фиксированный шаг, оставляя остальные неизменными. Это называется анализом чувствительности, и он полезен, когда непонятно, какой из нескольких факторов рискует сильнее исказить прогноз. Если выручка чувствительна в первую очередь к курсу валюты, а не к темпам роста спроса, это меняет приоритеты в управлении рисками — возможно, стоит захеджировать валютный риск раньше, чем оптимизировать воронку продаж.
Частые ошибки при прогнозировании продаж через нейросеть
Ошибка первая — слишком короткая история. Прогноз на 12 месяцев по 8 месяцам данных технически построится, но модель либо проигнорирует сезонность полностью, либо додумает её по неполному циклу, и оба варианта дают ложную уверенность в результате.
Ошибка вторая — неочищенные выбросы. Одна разовая крупная сделка, не помеченная явно, способна сдвинуть весь расчётный тренд компании на несколько процентов вверх, и это искажение проникает во весь горизонт прогноза, а не только в тот месяц, где был выброс.
Ошибка третья — точечный прогноз без диапазона. Финансист получает от модели одно число, докладывает его собственнику как гарантию, а через три месяца объясняет расхождение как «ошибку нейросети», хотя правильнее было изначально запросить и показать доверительный интервал.
Ошибка четвёртая — игнорирование известных будущих изменений. Прогноз строится чисто на истории в ситуации, когда компания точно знает о плановом изменении цены или запуске нового канала, и это знание не попадает в промпт явным текстом.
Ошибка пятая — смешение выручки по отгрузке и по оплате в одном временном ряду без пометки точки перехода методики учёта, что создаёт ложный скачок или провал тренда, не связанный с реальным изменением бизнеса.
Ошибка шестая, менее очевидная — прогноз выручки по компании в целом там, где товарные группы движутся в разных направлениях. Общий тренд может выглядеть стабильным, скрывая растущий и падающий сегменты внутри, и решение, принятое на основе усреднённой цифры, окажется неверным для каждого сегмента по отдельности.
Ошибка седьмая — переобучение на последних месяцах в ущерб долгосрочному тренду. Если явно попросить модель «ориентироваться в основном на последние 3 месяца, потому что они самые актуальные», прогноз становится чрезмерно чувствительным к случайным колебаниям последнего квартала и теряет устойчивость. Последние месяцы важны, но не должны полностью перевешивать всю остальную историю — баланс между свежестью данных и устойчивостью тренда лучше доверить статистическому весу, а не жёстко фиксировать в промпте, что «только последние месяцы имеют значение».
Ошибка восьмая — забыть указать, в каких единицах и в какой валюте нужен ответ. Если компания ведёт учёт в рублях, но часть контрактов в долларах или юанях, а промпт не уточняет, в чём считать прогноз, модель может смешать валюты или использовать устаревший курс из своих обучающих данных вместо актуального. Явно указывайте валюту расчёта и, если нужно, фиксированный курс для перевода, который использовать в прогнозе.
Когда ChatGPT недостаточно и нужны специализированные инструменты прогнозирования
Прямой ответ: для рабочего прогноза выручки компании среднего размера ChatGPT справляется хорошо, но для промышленного прогнозирования с тысячами SKU, множественными факторами спроса и требованием автоматической переобучаемости лучше использовать специализированные инструменты.
Существуют библиотеки и модели, созданные конкретно для прогнозирования временных рядов: Prophet от Meta, классические статистические модели семейства ARIMA, а также более сложные нейросетевые архитектуры для временных рядов. Эти инструменты оптимизированы под задачи, где нужно прогнозировать одновременно десятки тысяч независимых рядов — например, спрос по каждому SKU в каждом магазине розничной сети — с автоматической настройкой параметров под каждый ряд.
ChatGPT, работая через код на Python внутри диалога, технически может вызвать те же библиотеки Prophet или statsmodels для расчёта ARIMA — современные модели умеют писать и выполнять такой код. Разница не в доступности алгоритмов, а в масштабе и автоматизации: диалоговый формат ChatGPT удобен для одного, максимум нескольких десятков временных рядов, которые финансист анализирует вручную и с которыми взаимодействует итеративно. Для конвейерной обработки тысяч рядов без участия человека нужна отдельная production-система, а не чат.

Граница применимости — не точность алгоритма, а масштаб задачи и потребность в автоматизации без участия человека.
Практический ориентир: если вы прогнозируете выручку компании целиком или по 5-15 крупным товарным группам и пересчитываете это раз в месяц вручную, ChatGPT — рабочий и достаточный инструмент. Если нужно прогнозировать спрос по каждому из 5000 SKU ежедневно и автоматически подгружать результат в систему управления закупками без участия человека, это задача для выделенного ML-инженера и production pipeline, а не для диалога в чате.
Есть и промежуточный вариант, который часто упускают из виду: не переход на полноценный ML-стек, а полуавтоматизация диалогового подхода. ChatGPT и Claude умеют работать через API, а значит, ту же логику расчёта, что вы отладили вручную в чате, можно обернуть в скрипт, который сам выгружает свежие данные раз в месяц, формирует промпт и сохраняет результат в таблицу. Это не требует найма ML-инженера — обычный скрипт на Python, который дергает API модели по расписанию, способен закрыть 80% пользы от production pipeline при кратно меньших трудозатратах на внедрение. Такой подход подходит компаниям, которые переросли ручной чат, но ещё не доросли до полноценной ML-команды.
Есть и обратная сторона вопроса, о которой финансисты редко задумываются: специализированные ML-инструменты требуют куда больше подготовительной работы на входе, чем кажется со стороны. Prophet и ARIMA не «понимают» бизнес-контекст — они не знают, что мартовский скачок это разовая сделка, а не новый уровень тренда, если вы не передали эту информацию в структурированном виде заранее. ChatGPT в диалоговом формате выигрывает именно тем, что позволяет объяснить контекст обычным языком, а не кодировать его в специальные параметры модели. Для бизнеса с частыми качественными изменениями — сменой ассортимента, каналов, ценовой политики — это ощутимое преимущество: не нужно переписывать код каждый раз, когда меняется бизнес-логика, достаточно переформулировать промпт.
Ещё один аргумент в пользу диалогового подхода на старте — стоимость ошибки во время обучения методике. Если финансист без опыта в статистике начинает сразу с Prophet или ARIMA, он рискует получить формально работающий код, который выдаёт правдоподобно выглядящие цифры на основе неверных допущений — например, не той периодичности сезонности или проигнорированных выбросов, — и не заметить ошибку, потому что не понимает, что происходит внутри модели. Диалог с ChatGPT, где на каждом шаге можно спросить «почему ты выбрал именно такой вес тренда» или «покажи, как ты обработал этот выброс», снижает этот риск: финансист учится на объяснениях модели, а не слепо доверяет чёрному ящику.
Как сверить прогноз ChatGPT со второй моделью
На прогнозе с короткой чистой историей и слабой сезонностью разница между нейросетями почти не заметна. Она проявляется на сложных рядах: сильная сезонность, несколько структурных сдвигов, короткая история с высокой волатильностью — там, где алгоритм должен принять неочевидное решение о весе тренда против сезонности.
Для важных решений — годовое бюджетирование, защита прогноза перед инвесторами, планирование крупных инвестиций под ожидаемый рост — я прогоняю тот же промпт и тот же файл через Claude Sonnet 4.6 и сверяю итоговые диапазоны. Расхождение в пределах доверительных интервалов друг друга — нормально и ожидаемо. Расхождение, когда базовые сценарии двух моделей не пересекаются даже интервалами, — сигнал перепроверить исходные данные или методику вручную.
Иногда полезно добавить в сверку третью модель — Gemini 2.5 хорошо справляется с длинными таблицами и может подсветить структурные проблемы в данных, которые пропустили две другие модели. Я не считаю обязательным гонять каждый прогноз через три модели сразу — это трата времени для большинства задач. Но если речь о цифре, которая ляжет в основу решения на несколько миллионов рублей — найм команды, крупная закупка, привлечение инвестиций — лишние 20 минут на третье мнение того стоят.
Полезная практика — попросить обе модели показать код расчёта и сравнить не только итоговые цифры, но и подход: одна модель могла сильнее сгладить выбросы, другая — отвести больше веса последним месяцам истории. Понимание причины расхождения ценнее, чем просто выбор «более оптимистичной» цифры для доклада собственнику.
Для разовой задачи с короткой историей и без critical decision на кону перепроверка второй моделью не обязательна — 15-20 минут на это не всегда оправданы. Она точно оправдана, когда от прогноза зависит решение с реальными деньгами: наём команды продаж под ожидаемый рост, крупная закупка сырья под сезонный пик, защита бюджета перед собственником или инвестором.
Как встроить rolling forecast в ежемесячный цикл отчётности
Разовый прогноз даёт снимок на конкретный момент, реальную пользу rolling forecast приносит только при регулярном пересчёте — это заложено в самом названии методики.
Практика, которую я рекомендую ученицам курса: закрепить один и тот же промпт-каркас и запускать пересчёт в первую неделю каждого месяца, сразу после закрытия предыдущего периода в учётной системе. При отлаженном процессе это занимает 15-20 минут — заметно меньше, чем первый расчёт, потому что структура запроса и формат вывода уже понятны и не требуют повторного продумывания.
Удобно вести отдельный чат в ChatGPT с историей всех прошлых прогнозов и просить модель сравнивать текущий пересчёт с предыдущим: «сравни прогноз на следующие 12 месяцев, построенный сейчас, с прогнозом месячной давности на тот же период, покажи, где и почему разошлись цифры». Такое сравнение показывает, стабилизируется прогноз со временем или продолжает сильно скакать от месяца к месяцу — второе обычно значит, что в истории ещё остались неочищенные выбросы или бизнес переживает структурные изменения.
Постепенно этот процесс можно довести до состояния, когда финдир тратит на ежемесячный rolling forecast не 20 минут вдумчивой работы, а 10 минут на проверку готового расчёта и обновление вводных факторов — если один раз выстроить связку выгрузки данных, промпта и привычного формата результата.
Регулярный rolling forecast логично встраивается в общий цикл управленческой отчётности вместе с другими ежемесячными расчётами — платёжным календарём, анализом дебиторской задолженности, факторным анализом отклонений план-факт. Если вы уже выстроили у себя связку регулярных промптов для анализа отклонений план-факт или для контроля кассовых разрывов и ликвидности, rolling forecast продаж встаёт в этот же ежемесячный ритм естественно — данные и логика подготовки файлов частично пересекаются, и финдир не создаёт с нуля отдельный процесс, а расширяет уже работающий.
Отдельный вопрос, который задают почти на каждом разборе с ученицами курса, — что делать, если в компании нет единого источника данных, и продажи приходится собирать из нескольких систем: CRM для сделок, 1С для отгрузок, банк-клиент для фактических поступлений. В этом случае первый шаг — не прогноз, а сведение источников в одну согласованную таблицу, и здесь тоже можно привлечь ChatGPT: попросите модель сверить выгрузки из разных систем за один и тот же период и подсветить расхождения больше определённого порога, прежде чем строить прогноз на потенциально противоречивых данных.
Как обезличить данные о продажах перед загрузкой в ChatGPT
Перед отправкой файла в публичную нейросеть замените названия конкретных клиентов на условные обозначения, если структура выручки явно раскрывает, кто именно из контрагентов сколько платит. Для прогноза важна динамика и структура временного ряда, а не привязка сумм к конкретным именам.
Если выручка компании сильно зависит от нескольких крупных клиентов и это видно по выгрузке, замените реальные названия на «Клиент 1», «Клиент 2» и так далее, сохранив относительные доли и динамику по каждому. Для целей прогноза это ничего не меняет — модели нужна структура ряда, а не юридическое лицо контрагента.
Документы под режимом коммерческой тайны, банковской тайны или NDA в публичную версию ChatGPT загружать не стоит вообще. Для таких случаев существуют корпоративные тарифы ChatGPT Team и аналогичные решения у других вендоров, где поставщик договорно гарантирует неиспользование данных для обучения моделей — но и это стоит сверять с актуальным пользовательским соглашением перед загрузкой чувствительной информации.
Отдельно стоит проверить точные суммы индивидуальных контрактов, если по ним можно однозначно идентифицировать конкретную сделку с конкретным контрагентом даже без указания имени — например, если сумма уникальна и публично привязана к известной новости о партнёрстве. В таких случаях округление сумм до диапазонов снижает риск случайной деанонимизации без потери ценности для прогноза.
Похожий принцип обезличивания я подробно разбирала в статье про анализ себестоимости и маржинальности через ChatGPT — там же есть таблица, какие поля данных можно оставлять как есть, а какие всегда требуют замены на условные обозначения перед загрузкой в публичную нейросеть.
Прогноз выручки для сезонного и несезонного бизнеса: разная логика
Прямой ответ: для ярко выраженного сезонного бизнеса главная задача прогноза — предсказать амплитуду и точный момент сезонного пика, для несезонного бизнеса — отследить малозаметные изменения тренда, которые легко потерять в шуме месячных колебаний.
Сезонный бизнес — розница детских товаров перед 1 сентября, кондитерка перед Новым годом, туристические услуги перед отпускным сезоном — живёт по календарю, который повторяется каждый год с относительно предсказуемой амплитудой. Здесь главный риск прогноза — не пропустить смещение пика во времени: если в прошлом году пик пришёлся на вторую неделю декабря, а в этом году потребительское поведение сдвинулось на первую неделю из-за более ранних промоакций маркетплейсов, точечный прогноз по прошлогоднему календарю ошибётся именно в тайминге, даже правильно предсказав общий объём за квартал.
Несезонный бизнес — консалтинг, подписочные SaaS-сервисы, B2B-поставки без выраженной сезонности — сталкивается с противоположной проблемой. Помесячные колебания здесь чаще случайны, чем закономерны, и велик соблазн реагировать на каждый месячный скачок как на смену тренда. Здесь ChatGPT полезен именно тем, что математически отделяет реальный сдвиг тренда от случайного шума — если попросить модель явно указать, укладывается ли отклонение текущего месяца в исторический разброс случайных колебаний или выходит за его границы.

Сезонный бизнес прогнозирует амплитуду и тайминг пика, несезонный — отделяет реальный сдвиг тренда от случайного шума.
Есть и смешанный тип — бизнес с несколькими наложенными сезонностями одновременно. Например, розничная сеть может иметь недельную сезонность (выходные продают больше будних), месячную (зарплатные дни в середине и конце месяца) и годовую (Новый год, лето). ChatGPT способен разложить ряд на несколько сезонных компонент одновременно, но для этого нужны данные с более высокой частотой, чем помесячные — минимум понедельные, а лучше подневные, если вы хотите поймать недельную сезонность в дополнение к годовой.
Как прогноз продаж связан с планированием денежного потока
Прогноз продаж и выручки — это только первый шаг к прогнозу движения денежных средств, и разница между этими двумя прогнозами регулярно становится источником неприятных сюрпризов у финансистов, которые останавливаются на первом шаге.
Выручка — это признанный доход по методу начисления, а не факт поступления денег на счёт. Между отгрузкой товара или оказанием услуги и реальным поступлением оплаты может пройти от нескольких дней до нескольких месяцев, в зависимости от условий отсрочки платежа с клиентами. Прогноз выручки на следующий квартал в 10 миллионов рублей не гарантирует, что эти 10 миллионов появятся на расчётном счёте в том же квартале — часть придёт с задержкой, а часть вообще может превратиться в просроченную дебиторскую задолженность.
Чтобы превратить прогноз выручки в прогноз денежного потока, нужен дополнительный параметр — средний срок оборачиваемости дебиторской задолженности по каждому крупному сегменту клиентов. Если у вас розничные продажи с оплатой день в день и одновременно оптовые поставки с отсрочкой 45 дней, прогноз денежного потока должен учитывать эту структуру отдельно для каждого канала, а не применять единый средний срок ко всей выручке компании.
ChatGPT легко считает эту трансформацию, если дать ему на входе прогноз выручки по сегментам и средний срок оборачиваемости по каждому — либо фактический исторический, либо целевой, если компания планирует ужесточить условия отсрочки. Результат такого расчёта — это уже не прогноз продаж, а прогноз кассовых поступлений, который логично встраивается в платёжный календарь и общий прогноз ликвидности компании.
Чек-лист: rolling forecast продаж и выручки за 30-40 минут
- Соберите историю минимум за 12, а лучше за 24-36 месяцев. Дата периода, выручка, объём продаж в штуках или сделках.
- Найдите и пометьте выбросы. Отдельным столбцом-флагом, не удаляя данные из истории физически.
- Обезличьте чувствительные данные. Замените названия крупных клиентов на условные обозначения, если структура выручки их раскрывает.
- Загрузите файл с чёткой ролью и горизонтом. Роль финансового аналитика, конкретный горизонт прогноза — 3, 6 или 12 месяцев.
- Потребуйте расчёт в коде на Python с декомпозицией. Тренд, сезонность и остаток отдельно, а не единое текстовое описание.
- Запросите доверительный интервал. Пессимистичный, базовый и оптимистичный сценарий вместо одной точечной цифры.
- Добавьте известные будущие факторы. Плановое изменение цены, запуск канала, наём или потерю крупного клиента — явным текстом в промпте.
- Сверьте прогноз с фактом за прошлый закрытый период. Быстрый бэктест на уже известных данных перед тем, как доверять расчёту на будущее.
Заключение: от разового прогноза к работающей системе
Разовый прогноз выручки через ChatGPT решает конкретную задачу за 30-40 минут. Но реальная ценность rolling forecast раскрывается только при регулярном пересчёте каждый месяц — тогда компания видит не застывшую картину из прошлого декабря, а актуальный горизонт на год вперёд, обновлённый свежим фактом.
Такая система строится не на одном удачном промпте, а на связке: регулярной выгрузке из учётной системы, зафиксированном промпт-каркасе под структуру вашего бизнеса, правилах разметки выбросов и обезличивания данных, которые не приходится придумывать заново каждый месяц.
Финансисты, которые проходят этот путь целиком — от первого неуверенного расчёта до устоявшейся ежемесячной практики, — обычно проходят одни и те же три стадии. На первой стадии прогноз воспринимается как разовый эксперимент: интересно посмотреть, что скажет нейросеть, но решения по-прежнему принимаются на основе интуиции и прошлогодних цифр. На второй стадии прогноз становится вспомогательным материалом для обсуждения с собственником, но ещё не главным ориентиром — к нему прислушиваются, но легко игнорируют, если цифра не совпадает с ожиданиями. На третьей стадии rolling forecast становится основным рабочим документом, с которым сверяются перед любым решением о найме, закупке или изменении цены, а расхождение с ним требует объяснения, а не наоборот. Переход между стадиями обычно занимает 3-6 месяцев регулярного использования — ровно столько нужно, чтобы накопить собственную историю точности прогноза и заслужить доверие внутри компании.
ChatGPT и другие нейросети не заменяют финансового директора в решении, что делать с прогнозом. Модель считает быстро, без усталости и без интуитивных искажений, но не знает контекста конкретных переговоров с ключевым клиентом и не чувствует рыночных сигналов, которые ещё не попали в цифры. Прогноз даёт материал для решения — решение всё равно принимает человек, который понимает бизнес шире, чем один временной ряд.
На курсе «AI-навыки финансиста» онлайн-школы «Финансовый директор | Мастер CFO» я показываю, как собрать эту систему целиком: от промптов под rolling forecast до автоматизации регулярной отчётности через связку нейросетей с Excel и 1С.
Записаться на курс «AI-навыки финансиста»
Если хотите для начала попробовать бесплатный формат — заберите запись эфира «Навигация по нейросетям для начинающих» и потренируйтесь на своих данных перед тем, как встраивать это в ежемесячный процесс.
Забрать запись эфира бесплатно
Об авторе
Натали Васильева. Эксперт по нейросетям и продюсер онлайн-школы «Финансовый директор | Мастер CFO». С нейросетями в работе финансиста с февраля 2023 года. Через курс «AI-навыки финансиста» прошли 800+ финансистов, главбухов и финдиров. Веду Telegram-канал @findir_pro, канал «АИ с Софьей и Натали» и MAX-канал школы. Личный набор инструментов: ChatGPT Plus, Claude Pro, Gemini Advanced.