Калькулятор плана —
защита перед релизом

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

rAIner
Корень всех прошлых провалов: темп без усилия неинтерпретируем. 5:33/км — это либо лёгкий бег сильного бегуна, либо максимум новичка. Пока не знаем усилие — не знаем форму, и план уезжает в 7:52 или 8:00. Теперь усилие оцифровано (выбор из 4 описаний или пульс), и из него детерминированно считается всё остальное.
01 · Полный онбординг

Как это выглядит вживую

Весь диалог: цель (точка Б) → замер формы (точка А) → честный вердикт → ввод плавающего расписания. Каждое число в ответах бота посчитал калькулятор.
Привет! Я rAIner — твой беговой коуч. Соберу план под тебя за пару минут. Начнём с цели. 🎯
На какую дистанцию целишься?
5 км10 км21.1 км42.2 км
21.1 км
Когда забег? Введи дату в формате ДД.ММ.ГГГГ — ровно так, иначе не посчитаю срок.
в конце августа
Не понял дату. Нужен формат ДД.ММ.ГГГГ, например 29.08.2026.
29.08.2026
10 недель до старта. Теперь померяю твою форму — точку А. Сколько километров был твой последний бег? Введи число, например 4.5.
4.5
За сколько пробежал? Формат ММ:СС, например 25:00.
25:00
Как этот бег ощущался? Это определяет всю форму — выбери точно по описанию:

🟢 Спокойно — дышал носом, болтал бы свободно, мог бы ещё столько же
🟡 Бодро — дышал глубже, говорил фразами с паузами, ещё немного бы пробежал
🟠 Тяжело — дышал ртом, только короткие фразы, хватило бы ещё на 10–15 мин
🔴 Максимум — задыхался, говорить не мог, выложился как на гонке
🟢 Спокойно🟡 Бодро🟠 Тяжело🔴 Максимум➕ Ввести пульс
🟠 Тяжело
Понял. Это VDOT 35.9. Твои рабочие темпы: лёгкий 6:39, темпо 5:33, интервалы 5:05/км.
Сколько примерно бегаешь в неделю сейчас?
меньше 1515–25 км25–40 км40–60 кмбольше 60
15–25 км
Самая длинная пробежка за последний месяц?
меньше 55–10 км10–15 км15–20 кмбольше 20
5–10 км
Сколько дней в неделю готов бегать?
3456
5
Свёл форму (VDOT 35.9) и срок (10 недель). Вот честные варианты цели — выбери кнопкой:

🎯 6:00 /км — амбициозно, впритык, форму подтянем ровно под это
🏁 Просто добежать — тоже амбициозно, но с запасом по уверенности

Быстрее ~5:24/км за 10 недель я обещать не стану — форму столько не нарастить. Невозможных вариантов в кнопках нет.
🎯 6:00 /км🏁 Просто добежать
🎯 6:00 /км
Готово. Вот твой план — посмотри первую неделю:
10 недель: база → развитие → пик → подводка · длинная дорастёт до ~18 км · старт 20 км/нед
Длинная 7 км6:39/км · Z2
Темпо 4 км5:33/км · Z4
Интервалы 3 км5:05/км · Z5
Лёгкий 3 км6:39/км · Z2
Лёгкий 3 км6:39/км · Z2
Сессии не привязаны к дням: каждое утро я смотрю восстановление и спрашиваю «бежим или отдых», подставляю нужную из остатка недели. Берём?
✅ Согласовать✏️ Изменить план
✅ Согласовать
Принято. Три тяжёлых подряд не дам, длинную не потеряем — структуру держу я, день выбираешь ты.
Завтра в 07:00 — первое утро. До связи. 🏃
Каждый шаг детерминирован — ошибиться негде: где можно — узкие кнопки (дистанция, усилие, объём, длинная, дни, цель); где нужен ввод (дата, бег) — строгий формат с переспросом (видно на дате: «в конце августа» → «нужен формат ДД.ММ.ГГГГ»). Усилие описывает бот, человек только тапает цвет. В конце — план + «Согласовать / Изменить», а не молчаливый старт. Это бот, а не ChatGPT.
02 · Якорь формы

Твой бег под микроскопом

4.5 км / 5:33 — один и тот же бег, 4 разных усилия. Видно, почему мы спрашиваем усилие.
Как ощущалсяПризнакФорма (VDOT)ЛёгкийТемпоИнтервал
🟢 Спокойноболтал бы свободно, мог бы ещё столько же45.25:334:374:14
🟡 Бодро, комфортноцелыми фразами с паузами, ещё немного бы пробежал37.66:255:214:54
🟠 Тяжелокороткие фразы, хватило бы ещё на 10–15 мин35.96:395:335:05
🔴 Максимумговорить не мог, как на гонке33.67:005:515:22
Тот же бег как 🟢 даёт VDOT 45 и быстрые темпы, как 🔴 — VDOT 34 и медленные. Один вопрос про усилие убирает всю двоякость.
03 · Согласованность

Петля самопроверки

Бег 4.5 км / 5:33 на усилии 🟠 «тяжело» → форма VDOT 35.9. Темпо-темп из этой формы = 5:33/км. Твой бег был 5:33/км. Разница 0 с — петля замкнулась: усилие, которое ты назвал, совпадает с темпами, которые получит план. Раньше тут была дыра (7:52 против 5:33).
04 · Честный вердикт

Выполнимость твоей цели — полумарафон Floripa

Форма VDOT 35.9 · база ~20 км/нед · длинная 10 км. Вердикт по двум замкам: форма + объём.
Цель темпа8 нед10 нед14 нед20 нед
просто добежать⛔ Нереалистичноне хватит базы — сдвинь дату⚠️ Амбициозно✅ Достижимо✅ Достижимо
6:00/км⛔ Нереалистичноне хватит базы — сдвинь дату⚠️ Амбициозно✅ Достижимо✅ Достижимо
5:45/км⛔ Нереалистичноне хватит базы — сдвинь дату⚠️ Амбициозно✅ Достижимо✅ Достижимо
5:30/км⛔ Нереалистичноне хватит базы — сдвинь дату⚠️ Амбициозно✅ Достижимо✅ Достижимо
5:00/км⛔ Нереалистичноне хватит базы — сдвинь дату⛔ Нереалистичнореально ~5:24/км⛔ Нереалистичнореально ~5:15/км⚠️ Амбициозно
4:30/км⛔ Нереалистичноне хватит базы — сдвинь дату⛔ Нереалистичнореально ~5:24/км⛔ Нереалистичнореально ~5:15/км⛔ Нереалистичнореально ~5:01/км
Система не обещает невозможного: где не хватает срока или базы — честно говорит, и предлагает реальную альтернативу. Сдвинешь срок или базу — пересчитается.
05 · Универсальность

Работает не только для тебя — вот планы, на которых я проверял

Без WHOOP и без Strava, на одних ответах. У каждого — своя точка А и точка Б, и свой честный вердикт.
Новичок✅ Достижимо
точка А С нуля: 3 км тяжело по 9:00 → VDOT 20.0 · E 10:20 (Z2) · T 8:45 (Z4) · I 8:04 (Z5)
точка Б полумарафон «просто добежать», 24 недели
Средний⚠️ Амбициозно
точка А 5 км комфортно по 6:00 → VDOT 34.1 · E 6:55 (Z2) · T 5:47 (Z4) · I 5:18 (Z5)
точка Б полумарафон из 5:30/км, 16 недель
Быстрый✅ Достижимо
точка А 10 км на пороге по 4:30 → VDOT 46.6 · E 5:25 (Z2) · T 4:30 (Z4) · I 4:07 (Z5)
точка Б марафон из 4:40/км (~3:17), 18 недель
Завышенная цель⛔ Нереалистично
точка А тот же средний бегун (VDOT 34.1)
точка Б марафон из 3:30 (4:58/км) за 8 недель
Система честно отказывает: не успеть нарастить базу (объём). Совет: сдвинуть дату или взять дистанцию короче.
06 · Твой ритм

Плавающее расписание — день за днём

Тренировки не привязаны к дням недели. Неделя — набор сессий; каждое утро ты сам решаешь «бежим или отдых», система предлагает оптимальную из остатка, ты можешь свапнуть.
УтроТвой выборЧто система предложилаПочему
День 1🏃 бежимДлинная 12 км (длинная)ценное вперёд
День 2😴 выбрал отдыхвосстановление
День 3😴 выбрал отдыхвосстановление
День 4🏃 бежимТемпо 6 км (качество)ценное вперёд
День 5🏃 бежимИнтервалы 5 км (качество)ценное вперёд
День 6🏃 бежимЛёгкий 5 км (лёгкая)после 2 жёстких — только лёгкое
День 7😴 выбрал отдыхвосстановление
Итог недели: сгорело: Лёгкий 5 км (лёгкие — буфер, не переносим). Длинная и качество защищены, лишнее лёгкое сгорает — без снежного кома в следующую неделю.
07 · Самоатака

Я пытался это сломать — вот что вернул калькулятор

Прежде чем защищать — атаковал сам. 132 проверки · все зелёные · ниже каждый кейс прогнан вживую.
АтакаВходЧто вернул калькулятор
Мусор на входе0 км / −время / «blazing»✓ ValueError — план не строится
Абсурдный бег3 км за 6:00 как «спокойно»✓ VDOT зажат потолком = 85 (макс 85)
Противоречие усилияодин бег 4.5/5:33 как 🟢→🔴✓ VDOT 45 → 38 → 36 → 34 (строго вниз)
Невозможная цель (темп)10 км из 35:00, база ок✓ нереалистично → совет ~5:10/км
Невозможная цель (объём)марафон за 5 нед с 10 км/нед✓ нереалистично → двигай дату (не «беги медленнее»)
«Просто добежать»цель без темпа✓ не падает → судит по объёму: достижимо
3 жёстких подряд?после 2 жёстких просим бег✓ предложит «easy» (лёгкое), жёсткое блокирует
В этом проходе нашёл и закрыл две дыры: (1) «просто добежать» без целевого темпа роняло проверку; (2) когда блокирует объём, система советовала «беги медленнее» — обман, базу медленным темпом не построить. Обе починены и закреплены тестами.
08 · Без зависимостей

Что НЕ требуется

Ни одна формула не требует WHOOP или Strava. Пульс — опциональный, более точный путь; если его нет, усилие берётся из описаний. WHOOP включён только у тебя — для сверки, что ты реально попадаешь в нужную зону. Будущий пользователь проходит онбординг на одних вопросах.
rAIner · детерминированный беговой калькулятор · 4 градации усилия · спек согласуется до релиза