Перейти к основному содержимому

Методология расчётов

Коротко о том, как Мастерок считает материалы: откуда берутся нормы, через какие этапы проходит расчёт, как мы проверяем, что сайт и приложение дают одинаковые цифры, и в чём пределы применимости.

Источники норм

Расчёты Мастерок опираются на российские нормативные документы — ГОСТ, СНиП и СП. Мы не выдумываем коэффициенты и не копируем цифры из произвольных статей в интернете. Каждая формула привязана к конкретному документу или к справочнику производителя.

  • ГОСТ — государственные стандарты Российской Федерации. Например, ГОСТ 31108 для цементов, ГОСТ 13015 для бетонных конструкций, ГОСТ 6266 для гипсокартонных листов.
  • СНиП и СП — строительные нормы и своды правил (например, СП 71.13330 «Изоляционные и отделочные покрытия», СП 29.13330 «Полы», СП 22.13330 «Основания зданий и сооружений»).
  • Технические листы производителей — расход сухих смесей, клеёв, грунтовок, красок берётся из официальных data-sheet компаний, работающих на российском рынке в 2026 году (Knauf, Weber, Bergauf, Старатели, Основит, Ceresit, Tikkivala, Dali, Perfekta и др.).
  • Инженерная практика — для сценариев, которые нормативы не покрывают напрямую (например, типовой перерасход плиточного клея при диагональной укладке), используются устоявшиеся коэффициенты из строительной практики. Такие поправки оформляются отдельно и помечаются в коде как «практическая коррекция».

Этапы расчёта

Любой калькулятор на Мастерок разделяет вычисление на явные этапы — это наше жёсткое архитектурное правило. Магических формул, в которые одновременно зашиты норма, запас и упаковка, у нас нет.

  1. Нормализация входных данных — приведение единиц (мм → м), проверка диапазонов.
  2. Чистый математический расчёт — базовая потребность по нормативу.
  3. Практические поправки — подрезка, неровности, особенности материала.
  4. Запас — отдельный этап, а не скрытый множитель.
  5. Упаковка и округление до покупки — сколько мешков/рулонов/листов нужно реально купить.
  6. Формирование результата — точная потребность и итог к покупке показываются отдельно.

Три режима точности

У каждого калькулятора есть три режима — basic, realistic и professional. Это не маркетинг, а реальные множители, которые применяются на этапе практических поправок. Коэффициенты хранятся в отдельном конфиге (accuracy-profiles.json) и зависят от категории материала.

  • basic — нормативный расчёт с минимальными поправками. Подходит для простых помещений и типовых условий.
  • realistic — дефолт. Учитывает типичные условия реального ремонта: подрезку, неровности, ошибки и перерасход.
  • professional — осторожный режим для сложных условий и гарантированной закупки материала без недовоза на объект.

Между режимами действует жёсткий инвариант: basic ≤ realistic ≤ professional на одних и тех же входных данных. Этот инвариант проверяется автоматически в CI для каждого из 65+ калькуляторов — если кто-то случайно изменит коэффициент так, что режимы перестанут быть упорядоченными, сборка не пройдёт.

Упаковки и округление

Пользователь покупает не абстрактные «3,74 кг клея», а реальные мешки. Поэтому мы всегда:

  • сначала считаем точную потребность без округления;
  • применяем правила упаковки материала (мешок 25 кг, рулон 10 м, лист 1,2×2,5 м и т. д.);
  • округляем вверх до следующей целой упаковки;
  • показываем и точную цифру, и итог к покупке отдельными строками.

Внутренние промежуточные вычисления держим максимально точными. Округление происходит только на финальном этапе — иначе мелкие ошибки округления копятся и выдают заметно неверный результат на больших объёмах.

Верификация и тесты

Мастерок существует в двух средах — веб-сайт на Next.js и мобильное приложение на Flutter. Логика расчёта у них общая, но физически это два кодовых базиса. Чтобы они всегда давали одинаковый результат, используются три уровня проверок:

  • Единый источник спецификаций. Коэффициенты, упаковки и формулы каждого калькулятора хранятся в JSON-файлах (configs/calculators/*-canonical.v1.json). Из них автоматически генерируется Dart-код для приложения. Ручная синхронизация исключена.
  • Unit-тесты на каждом калькуляторе — golden-кейсы с заранее известными результатами. Запускаются в CI на каждый pull request.
  • Parity-тесты — отдельный набор, сверяющий веб и мобайл на одинаковых входах. Любое расхождение ловится в CI до релиза.
  • Sanity-валидаторы проверяют системные инварианты: итог к покупке ≥ точной потребности, нет смешения единиц, маленькие/большие/дробные входы не дают нулей или абсурда.

Обновления и пересмотр

Дата последнего осмысленного пересмотра контента — 2026-09-20. Она обновляется вручную при значимых изменениях формул или выходе новых редакций СП. Мы не «накручиваем» её автоматически на каждый билд — свежая дата должна означать реальную свежесть.

Если вы нашли ошибку в расчёте или заметили расхождение с нормативом, напишите Михалычу — это AI-ассистент, который видит текущий расчёт пользователя и может передать баг-репорт.

Ограничения

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

  • Для ответственных конструкций (фундаменты под многоэтажные дома, перекрытия, несущие стены) всегда требуется индивидуальный расчёт конструктором — наш калькулятор даёт ориентировочные объёмы, но не подменяет инженерную экспертизу.
  • Цены материалов, если пользователь не ввёл их сам, не подтягиваются с маркетплейсов. Реальные цены в регионе могут отличаться — вводите свои при необходимости.
  • Калькулятор не знает состояние ваших стен, ровность основания и поведение бригады. Практические поправки усреднены — при сложных условиях выбирайте режим professional.

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

Методология расчётов — Мастерок