Калькулятор на сайте — это форма, которая принимает параметры клиента и возвращает цифру: стоимость, срок, оплачиваемый вес, прибыль с единицы товара. Собрать такую форму с помощью ИИ и правда быстро. Но быстро — не значит «попросил и получил».
Разберу на живом примере. Это калькуляторы «Международного Экспедитора» — четыре инструмента для расчёта доставки, таможенных платежей, объёмного веса и юнит-экономики товара из Китая.

Что считают эти четыре калькулятора
Первый — доставку. Маршрут, вид груза, вес, объём, способ перевозки; на выходе вилка стоимости и срок по каждому доступному варианту.
Второй — таможенные платежи по стоимости товара и характеристикам поставки. Это предварительная оценка, а не работа декларанта, и в интерфейсе так и написано.
Третий — объёмный вес для LCL и FCL. Сравнивает фактический вес с объёмом и показывает, какая из двух цифр пойдёт в расчёт. Отвечает на вопрос, который клиенты задают чаще всего: почему 850 кг стоят как 1050.
Четвёртый — юнит-экономику товара из Китая для маркетплейсов: закупка, логистика, платежи, цена продажи, прибыль с единицы.
Логика всех четырёх лежит в одном JavaScript-файле, ставки — в одном конфиге. Это важнее, чем звучит, и к этому я ещё вернусь.
Что спокойно отдаётся модели
Разметка формы. Опишите поля, типы значений и единицы измерения — модель соберёт блоки маршрута, веса, объёма, способа перевозки. У калькулятора доставки таких полей семнадцать: писать их руками скучно и незачем.
Карточка результата. Вилка цены, срок, сравнение способов, короткий вывод, подсказки у полей, сообщения об ошибках — обычная вёрстка по обычным правилам.
Однотипные обработчики: считать значения, запустить расчёт, обновить результат, сохранить состояние, собрать параметры для заявки. Четыре калькулятора — четыре почти одинаковых набора. Здесь модель экономит день работы.
И перевод готовой формулы в код. Не «придумай формулу», а «вот правило, перенеси его в JavaScript». Разница принципиальная: в первом случае бизнес-решение принимает модель, во втором — человек.

Чего отдавать нельзя
Цифры.
Модель выдумывает ставки уверенно и правдоподобно. Тариф за килограмм, порог, коэффициент, срок — всё это выглядит как аккуратный коммерческий расчёт и на глаз не проверяется. Ошибка в десять процентов вернётся к вам с клиентом, который приехал с распечаткой.
Поэтому ставки через модель не проходят вообще. Они лежат в отдельном конфиге, и рядом с каждой цифрой записано, откуда она взята и когда сверялась. Здесь медианы сняты с прайсов и калькуляторов 23 конкурентов, а дата сверки стоит прямо на странице, рядом с курсом.
Второе правило — один конфиг на всё. Страница услуги, витрина цен и калькулятор читают одно и то же значение. Пока цифра хранилась в трёх местах, она в трёх местах и разъезжалась: услуга обещала одно, витрина показывала другое, форма считала по третьему.
Какими моделями это делать
Массовую работу делает дешёвая модель — уровня gpt-5.6-terra, порядка 0,07 доллара за миллион токенов. Формы, разметка, повторяющиеся обработчики, подсказки: ей этого хватает.
Формулы, пороги, округления и ветвления по видам груза стоит прогнать через модель посильнее: sol — около 0,25 доллара, astra — около 0,50. Дороже в 3,5 и 7 раз, но и работы для неё в разы меньше.
Вся генерация четырёх калькуляторов обошлась в единицы центов.
Только дорогая модель не отменяет тесты. Она хорошо ловит ошибку в условии или в порядке применения коэффициентов, а сходимость расчёта всё равно проверяют на реальных числах.
Почему расчёт идёт в браузере
Ставки один раз уезжают на страницу как JSON, дальше считает JavaScript. Клиент меняет вес — цифра меняется сразу, без запроса к серверу.
Отсюда требование к конфигу. У ставки должно быть внятное имя, единица измерения и источник, а формула обязана брать именно ту единицу, в которой значение проверяли. Тариф за килограмм, молча посчитанный как тариф за тонну, — самая дешёвая по трудозатратам и самая дорогая по последствиям ошибка в таком коде.
Версия скрипта равна дате обновления ставок. Поменяли цифры — у всех посетителей новый расчёт, без разговоров про очистку кеша.
Расчёт можно переслать ссылкой
Состояние формы пишется в адрес страницы и в localStorage. Тот, кто открыл ссылку, видит не пустой калькулятор, а тот же маршрут, вес, объём и способ перевозки, которые выбрал отправитель.
Это меняет характер разговора. Менеджер и клиент смотрят на одну конфигурацию, а не восстанавливают её по памяти в переписке.
localStorage закрывает другой сюжет: ушёл со страницы, вернулся через час — поля на месте. Для формы из семнадцати полей это не мелочь.
Одна оговорка: состояние из ссылки надо проверять при загрузке. Чужая или устаревшая ссылка легко принесёт пустой параметр или тип груза, которого в конфиге уже нет.
В заявку уезжают параметры расчёта
Менеджер получает не «интересует доставка», а строку вида: «Авто, Китай — Москва; 850 кг / 4,20 м³ (к оплате 1050 кг); 283 500 – 368 550 ₽; срок 15–25 дней; дешевле всего Море LCL, быстрее всего Авиа».

Первый контакт начинается не с нуля. Видно маршрут, массу, объём, оплачиваемый вес, вилку цены и то, что клиенту важнее — деньги или скорость.
Условие тут одно. Название способа перевозки должно попадать в заявку тем же словом, которое видел человек. Добавили в форму новый вариант — проверьте, что по дороге в CRM он не превратился в служебный код.
Что сломалось на этом проекте
Арифметика была верной. Развалился текст.
В сводке результата строка склеивалась из частей: «Доставка » плюс способ, плюс маршрут, плюс двоеточие. Человек, пришедший по ссылке с неполными параметрами, видел: «Доставка , : 850 кг / 4,20 м³».
Модель пишет такие склейки как обычный текст и пустые значения не проверяет. Так что тестировать пришлось руками: загрузка без параметров, обрезанная ссылка, неизвестное значение, нулевой объём, повторный расчёт после очистки формы.
И отдельно — пороги. Один и тот же груз прогоняют на значении ниже порога, на самом пороге и сразу после него. Условие любит срабатывать на единицу раньше.
Что это даёт по SEO
Калькулятор закрывает запросы, на которые статья отвечает плохо: «объёмный вес», «расчёт таможенных платежей», «калькулятор доставки». Статья объясняет принцип. Форма принимает данные и возвращает персональный ответ.

Дальше работают три эффекта. Человек задерживается, потому что что-то делает, а не читает. Ссылку на свой расчёт есть смысл переслать — у статьи такого повода нет. И заявка приходит с параметрами, то есть поисковый интерес превращается в обращение, которое видно в CRM.
Чего калькулятор не делает — так это не поднимает позиции сам по себе. Он не заменяет посадочные страницы под коммерческие запросы и не отменяет работу с текстом, ссылками и технической частью.
Отдельно стоящая форма, не связанная со страницами услуг, не приносит почти ничего. Работает цепочка: страница услуги ведёт к расчёту, расчёт объясняет следующий шаг, шаг заканчивается заявкой с параметрами.
Частые вопросы
Можно ли попросить ИИ написать калькулятор целиком?
Большую часть реализации — да: форму, обработчики, карточку результата, подсказки. Ставки, нормативы и проверенные правила — нет. Их держат в отдельном конфиге с источником и датой сверки, а формулы сверяют на известных примерах.
Почему расчёт в браузере, а не на сервере?
Ставки приезжают на страницу один раз как JSON, дальше считает JavaScript. Изменение поля не требует запроса, поэтому цифра обновляется мгновенно.
Сколько стоит такая разработка по токенам?
Четыре калькулятора — единицы центов. Экономия берётся из распределения работы: массовый код пишет дешёвая модель, дорогая проверяет формулы и пороги.
Поднимет ли калькулятор позиции?
Сам по себе — нет. Он отвечает на практические запросы, удерживает действием, даёт повод сослаться и приносит заявки с параметрами. Позиции появляются, когда он встроен в структуру сайта, а не живёт отдельной страницей.
Сравните модели перед запуском
Тарифы, лимиты и список моделей — на стороне сервиса. Если что-то разойдётся с описанным здесь, напишите: поправим материал и проставим новую дату проверки.
Открыть каталог моделей«SEO Разум» не продаёт доступ к API и не является поставщиком токенов.