Your First ChatGPT Training Plan Prompt, Line by Line
Most people’s first attempt at a ChatGPT training plan prompt looks like this:
“Write me a 16-week marathon training plan.”
And ChatGPT will absolutely write one. It’ll be four runs a week, it’ll peak at 20 miles, it’ll have a three-week taper, and it will be the median of every marathon plan ever scraped off the internet. It knows nothing about you. It doesn’t know you ran 18 miles last Sunday or that you’ve never run more than six. Both those runners get the same plan.
The fix isn’t a better model. It’s a better prompt. Below, I build one prompt from nothing, adding a single line at a time, and show what each line actually does to the output. Every version was run in ChatGPT (GPT-5.2, October 2025). The plans are real generations, trimmed for space.
The baseline: what “write me a plan” gets you
Here’s week 1 and week 12 of the plan from that bare prompt:
WEEK 1
Mon Rest
Tue 4 miles easy
Wed Cross-train 30 min
Thu 4 miles easy
Sat 6 miles long run
Sun Rest
WEEK 12 (peak)
Mon Rest
Tue 6 miles w/ 5 x 800m @ 5K pace
Wed Cross-train 40 min
Thu 5 miles easy
Sat 20 miles long run
Sun Rest
Week 1 is 14 miles. Week 12 is 31 miles plus the cross-training. That’s a 121% increase in volume over 11 weeks, with the long run going from 6 to 20. If you’re already running 35 miles a week, week 1 is a waste of eleven days. If you’re running 12, week 12 will break you. The plan is safe for nobody in particular because it’s designed for everybody.
Now let’s fix it.
Line 1: current weekly mileage, with the actual number
Add this:
“I currently run 28-32 miles per week across 5 runs, and have held that for the last 8 weeks.”
Two things happened. The plan now starts at 30 miles instead of 14, and more importantly, ChatGPT stopped inventing a ramp-up phase. Here’s the new week 1:
WEEK 1 (30 miles)
Mon Rest
Tue 6 easy
Wed 7 w/ 4 x 1 mile @ threshold
Thu 5 easy
Fri Rest or 30 min easy
Sat 4 easy
Sun 8 long
The phrase “held that for the last 8 weeks” is doing more work than the mileage number itself. Without it, models hedge: they assume 30 miles was a one-off peak and build a conservative base phase anyway. With it, you’re telling the model your aerobic base is established, and it goes straight into structured work. Try removing just that clause and regenerating. You’ll usually get three weeks of easy running inserted at the front that you don’t need.
Go further and give it the shape of your week, not just the total. “28-32 miles across 5 runs” is a different runner from “28-32 miles across 3 runs.” The second runner has long sessions and long gaps, which changes what’s safe to add.
Line 2: a recent race result, in time and distance
“I ran 10K in 47:20 six weeks ago on a flat course, still feeling strong at the finish.”
This is the line that turns a volume plan into a paced plan. Before it, your workouts say “threshold pace” and “5K pace” and you’re left to guess. After it, you get numbers:
WEEK 1 (30 miles)
Tue 6 easy @ 9:45-10:15
Wed 7 total: 4 x 1 mile @ 7:25-7:35, 90s jog
Thu 5 easy @ 9:45-10:15
Sat 4 easy
Sun 8 long @ 9:30-10:00
Goal marathon pace: 8:15-8:25/mile (3:38-3:42 finish)
47:20 for 10K is roughly 7:37/mile. The threshold pace it gave me, 7:25-7:35, is slightly faster than 10K race pace, which is aggressive. Threshold should sit closer to your hour-race effort, meaning around 7:45-7:55 for this runner. This is exactly the sort of thing you’re supposed to catch, and it’s why the race result matters twice over: it gives the model something to compute from, and it gives you something to check the computation against.
The “still feeling strong at the finish” clause matters too. It tells the model that 47:20 wasn’t an all-out effort, so your true fitness is slightly better than the time suggests. Say the opposite (“I blew up at 8K and hung on”) and you’ll get a more conservative pace band and usually a note recommending you retest before committing to goal paces.
No recent race? Use a hard effort you actually did: a parkrun, a Strava segment PR, a tempo run where you know the pace and how it felt. “I held 8:10/mile for 40 minutes and it was a 7/10 effort” is a usable input. A Garmin VO2max estimate is not, because it’s derived from heart rate data the model can’t see and is routinely off by 3-5 ml/kg/min on either side.
Line 3: constraints, stated as hard rules
Here’s where most prompts quietly fail. You get a beautiful plan with a Wednesday track session and a Saturday long run, and you have five-a-side on Wednesdays and your kid’s football on Saturday mornings. So you shuffle it yourself, and now the hard days are stacked, and the plan’s structure is gone.
Say it up front:
“Constraints: I can’t run Mondays or Thursdays. Long runs must be Saturday or Sunday. Weekday runs cap at 60 minutes because of work. I have gym access but no treadmill.”
Watch what it does:
WEEK 1 (30 miles)
Tue 7 total: 4 x 1 mile @ 7:45-7:55 (55 min)
Wed 5 easy (50 min)
Fri 5 easy (50 min)
Sat 4 easy + strides
Sun 9 long @ 9:30-10:00
Four running days instead of five, because two are unavailable. The 60-minute cap forced it to move volume into the weekend: the long run went from 8 to 9 miles in week 1 to keep the weekly total intact. That’s a real consequence you should notice, because it means your long run will be a larger share of your week than standard plans assume. In peak weeks this version had a 22-miler in a 42-mile week, 52% of total volume. Most coaches want the long run under 35%. That’s a trade-off you might accept, but you should accept it knowingly rather than discover it in week 14.
When a constraint forces a compromise, ask the model to name it: “If my constraints make the plan riskier than a standard build, say so explicitly and tell me where.”
Line 4: injury history, specific and dated
“Injury history: right Achilles tendinopathy, symptomatic Jan-Mar 2025, resolved with heel raises. Currently pain-free but it grumbles after back-to-back hard days or any hill work over 20 minutes.”
Vague injury history (“I’ve had some Achilles trouble”) produces a generic warning paragraph and no change to the plan. Dated, specific history produces structural changes:
WEEK 1 (30 miles)
Tue 7 total: 4 x 1 mile @ 7:45-7:55 — FLAT route only
Wed 5 easy + calf raises 3 x 12 eccentric
Fri 5 easy
Sat 4 easy + strides on grass
Sun 9 long, rolling terrain, no sustained climbs
Note: no hill repeats in this plan. Hill strength substituted
with gym work (calf raises, single-leg press) on Wed and Sat.
It removed hill repeats entirely, put 48 hours between the two hardest sessions, and added the eccentric loading protocol that resolved it last time. Three concrete changes from one sentence. The pattern that unlocks this is naming the trigger, not just the injury. “Grumbles after back-to-back hard days” tells the model exactly which scheduling pattern to avoid. Compare with just naming the body part, which gives it nothing to act on.
This is also where you should be most sceptical of the output. ChatGPT will confidently prescribe rehab protocols. The eccentric calf raise protocol it suggested is legitimate (it’s essentially the Alfredson protocol, which has decent evidence behind it), but I’ve also seen these models recommend stretching for tendinopathy, which is broadly the wrong approach for a tendon under load. Anything that looks like treatment, run past a physio. Anything that’s a scheduling change, you can act on yourself.
Line 5: the goal, with a date and a purpose
“Goal: Manchester Marathon, 12 April 2026. Target sub-3:40. This is my second marathon; first was 4:02 in 2023 where I faded badly from mile 20.”
The date sets the calendar. Today is 30 September 2025, so that’s 28 weeks out, which is longer than a standard marathon block. Given the date, the model built a 10-week base phase before an 18-week specific block, rather than compressing everything or padding a 16-week plan with filler.
The fade detail changed the workout selection more than the time target did. Here’s peak week from the final version:
WEEK 22 of 28 (44 miles)
Tue 9 total: 2 x 3 miles @ 8:05-8:15 (MP), 3 min float
Wed 6 easy + strength
Fri 6 easy
Sat 5 easy + 6 x 20s strides
Sun 20 long: 12 easy, then 8 @ 8:15-8:25 marathon pace
Practice race fuelling: 60g carb/hr from mile 6
Marathon-pace work inside the long run, fuelling practice written into the session, and a progression structure that puts the hard miles at the end when you’re tired. That’s a direct response to “faded badly from mile 20.” A plan built for a 3:40 target alone would give you more raw speed work. A plan built for a runner who fades gives you late-run specificity.
The whole prompt
I'm training for Manchester Marathon on 12 April 2026, targeting
sub-3:40.
Current fitness: 28-32 miles/week across 5 runs, held for the
last 8 weeks. 10K in 47:20 six weeks ago on a flat course, still
feeling strong at the finish.
Background: second marathon. First was 4:02 in 2023, faded badly
from mile 20.
Constraints: can't run Mondays or Thursdays. Long runs Saturday
or Sunday only. Weekday runs cap at 60 minutes. Gym access, no
treadmill.
Injury history: right Achilles tendinopathy, symptomatic Jan-Mar
2025, resolved with eccentric heel raises. Pain-free now but
grumbles after back-to-back hard days or hill work over 20 min.
Build me a week-by-week plan to race day. For each week give me
total mileage and each session with distance, pace target and
purpose. Flag any week where volume increases more than 10% over
the previous week. Every fourth week should be a down week at
roughly 75% of the prior week's volume. Where my constraints
force a compromise versus a standard build, say so.
That last paragraph is the output specification, and it’s the part people skip. “Flag any week where volume increases more than 10%” makes the model audit its own progression, and it catches its own mistakes maybe two-thirds of the time. Asking for session purpose alongside pace gives you something to check: if a session’s stated purpose is “aerobic development” but the pace is 7:30/mile, one of those two things is wrong.
For the fuller version of this process, including how to run the same prompt through Claude and compare the two plans for disagreements (which is genuinely useful, they diverge most on taper structure and long-run length), see building your own plan with ChatGPT and Claude.
What to check in the output before you run a step of it
Take the plan and check five things against your own data. It takes ten minutes.
| Check | What good looks like | Where to verify |
|---|---|---|
| Week-1 volume vs. your actual last 4 weeks | Within 10% of your average | Strava “Weekly Totals” or Garmin Connect training history |
| Peak week vs. week 1 | Typically 40-60% increase over a full block | Sum the plan’s weekly totals |
| Long run share of peak week | Under 35% of weekly volume | Arithmetic |
| Easy pace vs. your actual easy pace | Should match what you already run, not be faster | Strava, filter runs tagged easy, check median pace |
| Hard days per week | 2, occasionally 3, never 4 | Count sessions with a pace target faster than easy |
The easy pace check catches the most common failure I see. Models frequently set easy pace as a fixed offset from race pace, often 90 seconds slower per mile, and for a runner who genuinely trains easy at 10:30 that produces an “easy” pace of 9:07. You’d then run every easy mile 80 seconds too fast for six months. Compare against what you actually run and tell the model directly: “my easy runs average 10:25/mile, use that.”
Your prompt isn’t finished when the plan appears. Six weeks in, when you’ve got real data, paste your last month back into the same conversation: weekly mileage, how the key sessions went, what your legs feel like on Monday morning. “Here’s what actually happened, adjust the remaining weeks.” That’s where the difference between a document and a plan shows up.