pace24.app
← All Journal articles

Training

Our Planner Followed Its Own Rules. The Athletes Lost Fitness.

We ran our season planner on made-up riders who never skip a session. Delivery was near perfect and fitness still fell. Then we graded all 172 limits in the engine against their sources.

The pace24 team5 min read

Key takeaways

  • We ran our season planner on made-up riders who never miss a session. Most finished the 14 weeks with a lower fitness score than they started with.
  • An early version gave every rider the same week. Fixing that took on-plan delivery from 5 of 18 riders to 18 of 18. Fitness still fell.
  • Doing the plan and building fitness are separate questions. A plan can be followed perfectly and still be too small.
  • We graded all 172 limits in our engine against their sources. One held up as a planning input. 144 had no source, an invented number, or a source that said something else.
  • Today the engine plans from the hours you state and treats its own numbers as defaults. It does not refuse a session you ask for.

About this post: every athlete here is made up, every result comes from a simulator we wrote, and it covers riding only. "Fitness score" is the 42-day weighted average of daily training load that most training software shows. It is a model, not a measurement of anyone's body. No real athlete's data was used.

Meet the rider we used most. Eight to twelve hours a week, a fitness score of 70, five sessions a week, a race on the Sunday of week 14. The rider does every session the planner hands over. No illness, no bad weeks, no excuses.

We expected the score to climb, dip a few points in the taper, and land roughly where it started. It did not.

First, a bug: everyone got the same week

Before fitness fell, something odder showed up. In the first version of the test, 18 riders with different hours and different starting fitness were all given the same week: 276 load at four sessions a week, 345 at five, in every phase of the season. Four or five rides of 69, over and over.

Only 5 of the 18 landed within 10 percent of their plan, and those were the ones whose plan happened to cross that fixed number on its way past. The session picker ranked workouts by difficulty before it looked at load, so it could not hit a target. We fixed the order, among other things, and 18 of 18 then landed within 10 percent.

That should have been the good news.

Then the plan worked and fitness fell

Here is how far the score moved by race day across the 18 riders: three weekly-hour bands, three starting levels.

Starting fitness scoreChange by race day
30from -5.6 to +5.2
50from -9.4 to -21.6
70from -20.9 to -39.5

Four riders finished at or above their start, and all four began at 30. And here is the rider we followed week by week.

WhenPlanned loadScore at the end
Start69.9
Base, week 354372.5
Build, week 947065.9
Peak, week 1243264.6
Taper, week 1328260.5
Race week, 1418856.8

Delivery was within 1 percent of the plan in weeks 2 to 12. The rider did what the plan said. Later fixes to the workout library lifted race day to 59.0, still almost eleven points down.

Judge a week by two numbers: how much of the plan was delivered, and how big the plan was next to what you already carry. High on the first and low on the second is a well-run detraining plan.

Where the points went

Three base weeks added 2.6 points. After that, the limits let build and peak weeks sit only about 10 percent above the load that keeps the score flat: a hard day could carry at most 1.2 times an easy day's load, hard sessions were held to two in six days, the long ride was capped for short events, and easy rides sat at the line. Together that was worth about 0.9 points a week.

On the way down, recovery weeks ran at 63 percent of the last normal week, the taper at 58 percent of the load that keeps the score flat, race week at 38 percent. Those took 16 points off the peak of 72.5, eight of them in the last two weeks, which any taper costs.

Each limit had a plausible reason. Stacked, they let the plan add under a point a week and charged much more to take it back.

So we graded the limits

We listed every limit in the engine, 172 of them, and graded each against its evidence. A means a sourced rule used as a planning input. B means a source exists but supports guidance, and we used it as a block. C means no source, an invented number, or a source that does not say what the code claimed.

One earned an A: your own stated weekly hours. Twenty-seven were B. A hundred and forty-four were C. Two examples:

The long-ride cap. A session longer than 1.5 times your longest of the past 28 days was cut or refused. The nearest evidence we found is a 2025 study of 5,205 runners, tracking injuries against how far one run overshot the longest of the previous 30 days. It is observational and about running distance. Our 1.5 is not from it, and the code itself called the number a lab setting with no source. We applied it to minutes of riding.

The 10 percent rule. Our notes said faster weekly growth "raises injury risk". The best test we found put 532 novice runners on either a gradual 13-week programme built on the rule or a standard 8-week one. 20.8 percent of the gradual group were injured, against 20.3 percent of the standard group. A fair default, not a safety result, and we had been enforcing it like one.

What changed

The engine now plans from the hours you state and keeps its numbers as defaults of the plan, not checks on you. Ask for a 300-minute ride and you get one. The week re-plans around it and shows what moved. A change to your calendar still waits for your tap, because that is consent, not a limit. A check in our build fails if a cap or a gate creeps back in.

What we have not shown

We have not shown that the version without the limits builds fitness. Every simulator row we ran kept a copy of the old limits, so the unblocked engine is unmeasured. The riders are made up, ride only, with flat histories and perfect compliance. Whether a rider who asks for more than the old limits allowed ends up fitter or hurt, this work does not say.

What it does show is narrower: most of our limits had no evidence behind them as hard stops, and together they held the plan below where the rider started.

Want a plan that starts from your hours and not from our guesses? Get early access.

Sources

  • Our own simulator studies of the season planner (14-week event seasons, 18 made-up riders, 2026-10) and the decision record that followed, which holds the audit of the 172 limits.
  • Schuster Brandt Frandsen, Hulme and Parner (2025). How much running is too much? Identifying high-risk running sessions in a 5200-person cohort study. British Journal of Sports Medicine 59(17), 1203-1210: doi.org/10.1136/bjsports-2024-109380
  • Buist, Bredeweg and van Mechelen (2008). No effect of a graded training program on the number of running-related injuries in novice runners. American Journal of Sports Medicine 36(1), 33-39: doi.org/10.1177/0363546507307505
  • No real athlete data, and no data of Strava origin, was used.

The pace24 team

Notes from the team building the coach.