The Algorithm

HOW RUNCOACHBUILDS YOUR PLAN.

Every plan is a deterministic function of your inputs. No machine learning, no black box: seven rules, twelve weeks, one plan calibrated to your physiology.

01

What you provide

Eight inputs drive the full plan. Each one unlocks a specific layer of the algorithm.

ExperienceSets starting threshold time, determines doubles eligibility, and caps volume ramp sensitivity.
Race time + distanceFeeds the VDOT derivation. All training paces descend from this single number.
Easy paceBack-calculates an approximate VDOT when no race result is available.
Threshold heart rateDefines HR zone boundaries directly. Providing this skips the max HR and age steps.
Max heart rateDerives threshold zone as 81–85% and easy zone as 65–75% of max HR.
AgeTanaka formula fallback: maxHR = 208 − 0.7 × age. Used only when no HR data is given.
Weekly kilometresSets the volume baseline. Determines template pool eligibility and session strategy.
Days per weekSets a weekly volume ceiling and drives the singles vs. doubles decision.
Available daysSlots for threshold session assignment and easy run placement.
Preferred threshold daysOverrides auto-assignment. At least one rest day is enforced between interval sessions.

02

Fitness calibration

When you provide a race result, RunCoach solves for your VDOT using the Daniels–Gilbert formula. This single number encodes your current aerobic ceiling and sets every training pace.

// v = distance (m) / time (min) t = time (min)
VO₂(v) = −4.6 + 0.182258v + 0.000104v²
%VO₂max(t) = 0.8 + 0.1894393e−0.012778t + 0.2989558e−0.1932605t
VDOT = VO₂(v) / %VO₂max(t)

Heart rate data flows through a three-tier priority chain. Higher tiers override lower ones.

1

Threshold HR supplied

Zones set directly. Easy zone derived as threshold ÷ 0.855 × [0.65, 0.75]. Max HR estimated.

2

Max HR supplied

Threshold zone = 81–85% maxHR. Easy zone = 65–75% maxHR.

3

Age only

Tanaka formula: maxHR = 208 − 0.7 × age. Zones then derived as in tier 2.

EASY
THR
ABOVE
EASY 65–75% max HRTHR 81–85% max HRABOVE 85%+ max HR

03

The 12-week structure

The plan runs for exactly twelve weeks across three four-week blocks. Each block has the same internal shape: two progressive build weeks, one hold week at the same load, and one recovery week at 70% of the prior block's peak.

WkPhaseVolumeThreshold
1Build ABaseStarting time
2Build A+1 stepStarting time
3Build BHold+1 step
4Recovery×0.70Reduced
5Build A+2 steps+1 step
6Build A+3 steps+1 step
7Build BHold+2 steps
8Recovery×0.70Reduced
9Build A+4 steps+2 steps
10Build A+5 steps+2 steps
11Build BHold≤ 30 min cap
12Recovery×0.70Reduced
Volume curve — 40 km/week base
Build weekRecovery week (×0.70)

04

Session strategy

Volume and experience determine your session pattern. The algorithm selects the highest-intensity strategy you qualify for, then applies a ramp-up downgrade in block-start weeks to limit acute load.

MonTueWedThuFriSatSun
Two SinglesAll runnersEasyINTRVLEasyINTRVLRestLongRest
Half Double≥ 40 km/wk · not beginnerEasyAM+PMEasyINTRVLRestLongRest
Two Doubles≥ 55 km/wk · not beginnerEasyAM+PMEasyAM+PMRestLongRest

On block-start weeks (1, 5, 9): Two Doubles downgrades to Half Double; Half Double downgrades to Two Singles.

05

Interval templates

Each threshold session draws from one of three pools. The algorithm matches your target threshold minutes to the appropriate pool, picks a template, and calculates the maximum whole-rep count that meets the validity constraints.

SHORT POOL

Singles · ramp-up weeks

WorkRecovery
1 min30 sec
2 min1 min
3 min1 min
4 min1 min

LONG POOL

Singles · AM doubles

WorkRecovery
4 min1 min
5 min1 min
8 min1 min
10 min1 min

CONTINUOUS

Weeks 9–11 · once/week max

WorkRecovery
15 min1 min
20 min

Rep calculation

reps = floor(targetMinutes / workMinutes)
valid if: reps ≥ 2, reps ≤ 20, total work ≥ 13 min

06

Volume rules

Weekly target volume is a deterministic function of your starting mileage, capped by a per-day ceiling derived from training day count. Long runs and easy runs are derived fractions of the weekly target.

Peak volumemin(base × 1.4, daysCap)
Ramp increment(peak − base) / 6 steps
Recovery volumepriorPeak × 0.70
Long run targetmin(32 km, max(35% × weekKm, minSession))
Easy run targetlongRun / 2.5, capped at 22 km

Days per week volume ceiling

4 days

60 km

5 days

80 km

6 days

100 km

7 days

120 km

Starting threshold time (minutes)

Weekly volumeBeginnerIntermediateAdvanced
< 40 km/wk10 min12 min15 min
40–54 km/wk12 min15 min18 min
≥ 55 km/wk18 min20 min

07

Flags

The plan generator emits warning flags when inputs hit a rule boundary. Flags don't block generation; they document the decisions made on your behalf.

  • Beginner: plan locked to Two Singles — doubles are disabled for beginner experience level.
  • Double days not selected: plan locked to Two Singles.
  • Fewer than 4 training days: plan locked to Two Singles.
  • Two or fewer training days: plan is minimal — 3 or more days recommended for full structure.
  • Weekly volume under 20 km: consider building more base before starting threshold work.
  • Max HR estimated from threshold HR.
  • No threshold days selected — auto-assigned: [days].
  • Weekly volume capped: your training day count cannot safely absorb this mileage.

Ready to run

Build your plan.

Start the questionnaire →

Have a suggestion?

Get in touch.

Ideas for new features, algorithm improvements, or anything else — send them through.