Audit Your Plan’s Load Curve Before You Run a Step of It
An AI plan generator will hand you sixteen weeks of workouts in about nine seconds. It will look organised. The paces will be plausible, the long runs will climb, the workout names will sound like things a coach says. What it will not tell you is whether the shape of the sixteen weeks is survivable, because the model was optimising for a plan that looks like other plans, not for your tendons.
So do the one thing almost nobody does: put the whole plan in a spreadsheet, week by week, and look at the curve before you run a single session of it. You can audit training plan load progression in roughly an hour, and that hour has a better return than any other hour you will spend on the block. A plan with a good curve and mediocre workouts beats a plan with beautiful workouts and a bad curve, every time.
Pick one load metric and stick with it
You do not need a sophisticated metric. Weekly duration in minutes is enough for this audit, and it has one big advantage over distance: it does not lie to you when your plan mixes 5:10/km intervals with 6:40/km easy running.
If your watch gives you something better, use it. Garmin Connect exposes Training Load per activity (EPOC-based, arbitrary units). Intervals.icu computes an HR-based Load for every run and, importantly, will show planned load if you sync your calendar from Garmin or upload the plan. TrainingPeaks does the same thing with planned TSS on the Performance Management Chart. Runalyze gives you TRIMP plus Foster monotony and strain, which is free and genuinely useful.
Where those tools fall short is planning. They’re built to show you what you already did. Runna, for instance, syncs upcoming workouts to Garmin and Strava, but there’s no “export my 16 weeks as CSV” button, and a ChatGPT-built plan lives in a chat window. So you type it in. Sixteen rows. Fifteen minutes.
Build the sheet
Header row, then one row per week. Five columns do the whole job:
A B C D E F
1 Week Minutes WoW % Prev-4 avg ACWR Hard min
2 1 210
3 2 235 =B3/B2-1
...
6 5 280 =B6/B5-1 =AVERAGE(B2:B5) =B6/D6
Fill C down from row 3, and D and E down from row 6 (you need four prior weeks before a ratio means anything). Column F is minutes spent at threshold pace or faster, including intervals and tempo blocks but not warm-ups. Format C as a percentage. That’s the whole instrument.
Then you look for three faults, in this order.
The worked example: a 16-week marathon plan
Here’s a real-shaped plan, the sort an AI generator produces for a runner who says “sub-4 marathon, I currently run about 35 km a week, four days available.”
Wk Min WoW ACWR Hard
1 210 ██████████████
2 235 ████████████████ +11.9%
3 255 █████████████████ +8.5%
4 200 █████████████ -21.6%
5 280 ███████████████████ +40.0% 1.24 40
6 300 ████████████████████ +7.1% 1.24 40
7 330 ██████████████████████ +10.0% 1.29 50
8 315 █████████████████████ -4.5% 1.11 35
9 345 ███████████████████████ +9.5% 1.13 55
10 360 ████████████████████████ +4.3% 1.07 55
11 465 ███████████████████████████████ +29.2% 1.38 85
12 470 ███████████████████████████████ +1.1% 1.27 80
13 455 ██████████████████████████████ -3.2% 1.11 75
14 420 ████████████████████████████ -7.7% 0.96 60
15 310 █████████████████████ -26.2% 0.71 45
16 170 ███████████ -45.2% 0.42 20
Weeks 1 through 10 are fine. Sensible increments, a down week at week 4, hard minutes creeping up slowly. If you only read the first half of the plan you would sign off on it.
Fault one: the spike
Week 11 jumps 105 minutes in one step, a 29% increase, and simultaneously takes hard minutes from 55 to 85. Two variables moved at once, both by a lot. The ACWR hits 1.38, which puts you in the zone where the injury-risk literature starts getting nervous, and the underlying mechanism is the part that matters more than the exact threshold: connective tissue adapts on a slower clock than your aerobic system, so the week you feel ready for is not the week your Achilles is ready for. That gap is the whole subject of training load and injury risk, and it’s why a single 29% week is worth more of your attention than the choice between 8×800m and 5×1200m.
Where do these spikes come from? Usually the generator has been told a peak weekly volume and a plan length, and it interpolates without checking the derivative. Week 11 is where the long run goes from 27 km to 32 km, and the model adds the extra 5 km on top of an unchanged midweek structure instead of trading anything away.
Fault two: the plateau at the top
Count the down weeks. There’s one at week 4. Week 8 drops 4.5%, which is noise, not recovery. After that, weeks 9 through 13 are five consecutive weeks at or near the ceiling: 345, 360, 465, 470, 455.
Five hard weeks in a row is where recreational runners break. Not because any single week is extreme, but because fatigue accumulates faster than it clears and you never get the 5 to 7 day window where the adaptation actually lands. Weeks 11 to 13 average 463 minutes with no relief, and by week 13 you are running the biggest long run of the block on legs that last had a genuine break nine weeks earlier.
The tell in the sheet is simple: if you scan column C and find no week below -15% for more than four rows, the plan has no recovery architecture.
Fault three: the taper that starts late
Peak week is 470 at week 12. Week 14 is 420, which is 89% of peak. That is not a taper, that’s a rounding error. The first real reduction arrives at week 15, which leaves nine days of actual unloading before a marathon.
A marathon taper wants roughly three weeks, stepping down to about 80%, 60% and 40% of peak volume while keeping intensity present and short. For a 5K you can get away with 8 to 10 days. This plan gives you two weeks, and the second of them is race week. The 35 km long run at week 13 sits 21 days out, which is defensible on its own, but stacked in front of a compressed taper it means you arrive at the start line still carrying week 13.
Rewrite the numbers, not the workouts
Fix the curve and leave the sessions mostly alone. Here’s the same plan with weeks 11 to 16 rebuilt:
| Week | Original | Revised | Change vs prior comparable week |
|---|---|---|---|
| 10 | 360 | 360 | +4.3% |
| 11 | 465 | 395 | +9.7% |
| 12 | 470 | 300 | down week, -24% |
| 13 | 455 | 425 | +7.6% (vs wk 11) |
| 14 | 420 | 340 | 80% of peak |
| 15 | 310 | 255 | 60% of peak |
| 16 | 170 | 170 | 40% of peak |
No week-over-week increase above 10%. Peak week ACWR of 1.21 instead of 1.38. A proper down week at 12, three taper weeks, and the whole block comes in at 78.6 hours instead of 85.3. You gave up seven hours of running and 45 minutes off your biggest week, and in exchange the plan stopped asking you to absorb a 29% jump in your eleventh week of accumulated fatigue.
One trap to note while you’re doing this: week 13 reads as +41.7% if you compare it to the week 12 down week. Always compare a post-recovery week to the last full week before it, or you’ll manufacture spikes that don’t exist and miss real ones hiding behind a deload.
What the weekly curve won’t show you
Distribution inside the week. A 32 km long run at 6:05/km is about 195 minutes, and in a revised 425-minute week that single run is 46% of your weekly load. The curve looks clean and the Sunday is still a cliff.
There are only two honest answers there, and both involve changing the plan rather than the chart: raise weekly volume so the long run drops toward 30 to 35% of the total, or cap the longest run at around three hours and accept 28 to 30 km as your ceiling. For a four-day-a-week sub-4 runner, the three-hour cap is usually the right call, and most AI generators will not offer it unless you ask.
Re-run the audit at the end of week 4 with your actual completed minutes from Strava or Garmin next to the planned ones. If you’ve been hitting 85% of planned volume, the peak weeks you approved on paper are now a bigger relative jump than they looked in September, and the sheet will tell you that in about four minutes.