Как устроен калькулятор на этом сайте: конфиг, формула, PDF

· Василий Жерновой· Цены и бюджет

Калькулятор на этом сайте устроен не как форма с одной формулой и не как нейросеть, которая угадывает цену. Посетитель отвечает на семь вопросов, типизированный конфиг хранит ставки и коэффициенты, а чистая функция считает вилку стоимости и срок. Результат сохраняет версию прайса, поэтому старый расчёт можно объяснить после обновления цен. PDF-смета получает уже готовые строки из того же результата и ничего не пересчитывает. Такая схема сложнее таблицы в браузере, зато цена на экране, в сохранённой ссылке и в документе не расходится, а каждое правило можно проверить автоматическим тестом.

Где в калькуляторе живёт правда

У расчёта нет отдельной цены «для страницы» и второй цены «для PDF». Поток данных идёт в одном направлении:

СлойЧто в нём хранитсяЧего он не делает
Анкетаответы посетителя: тип сайта, страницы, функции, срочностьне считает деньги
Конфигбазовые вилки, надбавки, коэффициенты и срокине знает конкретного посетителя
Движокприменяет правила к ответам и возвращает строки расчётане пишет текст «на глаз»
Сессияответы, результат и версия использованного прайсане меняется вместе с будущими ценами
PDFпечатает состав, вилку и оговорки из результатане запускает вторую формулу

В коде это разделено буквально: вопросы описаны отдельно, конфигурация цен — отдельно, а функция расчёта не обращается ни к базе, ни к почте, ни к внешнему сервису. Ей передают ответы и конкретную версию конфига; на выходе получают одинаковый результат для одинакового набора данных.

Такую функцию удобно проверять на границах. Например, тест может одновременно зафиксировать минимальную и максимальную часть вилки, надбавку за срочность и срок в рабочих днях. Если новое правило случайно меняет старый сценарий, это видно до публикации.

Зачем хранить версию прайса

Цена услуги меняется, а уже выданная смета не должна переписываться задним числом. Поэтому активный прайс хранится как версия. Новый набор ставок добавляется рядом со старым, а не заменяет его внутри прежних расчётов.

Практический пример: человек получил ссылку на расчёт в октябре, а в ноябре владелец изменил стоимость дополнительной функции. Новый посетитель увидит ноябрьскую вилку. Октябрьская ссылка продолжит показывать октябрьский состав и сможет назвать версию, по которой была посчитана. Это не обещание сохранить цену навсегда — срок действия предложения задаётся отдельно, — а возможность понять происхождение каждой строки.

Тот же принцип полезен не только студии сайтов. Он нужен окнам, мебели, ремонту, перевозкам и печати: везде, где меняется прайс, но старое предложение должно оставаться читаемым. О том, как цена связана с объёмом самого проекта, есть отдельный разбор стоимости сайта.

Почему нейросеть не считает деньги

Языковая модель может разобрать фразу «нужен каталог с фильтрами и личным кабинетом» и превратить её в значения анкеты. Но складывать ставки, назначать скидку и выбирать срок должна программа с явными правилами.

Причины практические:

  • один запрос к модели может дать разные формулировки;
  • модель способна добавить функцию, которой нет в прайсе;
  • через полгода из ответа модели нельзя восстановить точную формулу;
  • тест не докажет, что свободный текст всегда даст одну и ту же сумму.

В октябре 2026 года такой же подход описал автор разбора ИИ-сметчика на Хабре: модель понимает документы и ведёт диалог, а арифметику, ограничения и проверки выполняет код. На этом сайте необязательный ИИ-ввод заканчивается до движка: после него остаётся обычная анкета, которую можно показать человеку и исправить.

Как из результата получается PDF

PDF получает не сырые ответы, а нормализованный результат: название позиции, пояснение, нижнюю и верхнюю границу, срок и общие оговорки. Генератор документа раскладывает эти данные по шаблону с локальным шрифтом. Браузер для этого не запускается, поэтому документ не зависит от ширины экрана и CSS страницы.

Это важная граница ответственности. Шаблон отвечает за вид документа, движок — за числа, конфиг — за ставки. Если поменять оформление PDF, цена не изменится. Если добавить новое правило цены, его сначала увидят тесты движка, а уже потом экран и документ.

На публичной странице нет реквизитов посетителя, пока он сам не попросит смету по почте и не даст отдельное согласие. Путь заявки после нажатия кнопки разобран в статье «Куда пропадают заявки с сайта».

Что меняется для другого бизнеса

Архитектура остаётся той же, но готового универсального конфига нет. Перед разработкой нужно письменно определить:

  1. какие ответы действительно меняют цену;
  2. где допустима точная сумма, а где только вилка;
  3. какие варианты несовместимы;
  4. откуда берутся ставки и кто их обновляет;
  5. какие строки должны попасть в предложение;
  6. в какой момент расчёт превращается в заявку менеджеру.

Если правила укладываются в несколько независимых полей, может хватить готового конструктора. Отдельная разработка нужна, когда есть зависимости, версии прайса, сохранённый результат, PDF или передача параметров в CRM. Эти границы и два пресета описаны на странице услуги «Калькулятор и КП».

Самый короткий способ проверить описанный поток — пройти калькулятор сайта: ответы превращаются в строки расчёта, затем тот же результат открывается по отдельной ссылке.

Коротко

  • Деньги считает чистая функция по типизированному конфигу, а не интерфейс и не языковая модель.
  • Сессия помнит версию прайса, поэтому старый расчёт не переписывается после обновления ставок.
  • Экран, сохранённая ссылка и PDF используют один готовый результат.
  • ИИ может разобрать свободное описание в параметры, но не назначает цену.
  • Для нового бизнеса сначала описываются правила и исключения, а затем собирается интерфейс.

Частые вопросы

Можно ли показать точную цену вместо вилки?

Можно, если все влияющие на стоимость параметры известны до разговора и в задаче нет скрытых работ. Когда часть объёма выясняется только после просмотра материалов, честнее показать нижнюю и верхнюю границу и перечислить, что её изменит.

Что произойдёт после обновления цен?

Новые расчёты получат новую активную версию прайса. Уже сохранённый результат останется связан с той версией, на которой был создан, поэтому его строки можно воспроизвести и объяснить.

Обязательно ли отправлять PDF по почте?

Нет. Результат можно показать только на экране или дать ссылку. Почта нужна, когда документ действительно помогает менеджеру и клиенту продолжить разговор; тогда форма требует отдельного согласия на обработку адреса.

Можно ли подключить такой калькулятор к существующему сайту?

Обычно да, если платформа позволяет добавить серверную логику или безопасно вызвать отдельный сервис. До оценки нужно проверить способ встраивания, формы, авторизацию админки и то, где будет храниться версия прайса.

Почему не оставить все формулы в Excel?

Excel может остаться источником ставок, если владельцу так удобнее. Но правила нужно валидировать при импорте, сохранять их версию и считать на сервере; иначе случайная правка таблицы немедленно изменит публичный результат без истории и тестов.

Проверить свой сайт

Статья статьёй, а как с этим на вашем сайте? Проверю публичную страницу и покажу наблюдения — без регистрации и контактов.

Как устроен калькулятор на этом сайте: конфиг, формула, PDF — Жерновой