I've coached myself through three marathon blocks and a handful of halves, and the one thing that always broke down wasn't motivation — it was the spreadsheet. Every plan started clean: a column for Monday's easy run, a target long run that crept upward by a rule I made up. By week six the rule had exceptions, the exceptions had exceptions, and the file was doing more harm than the training.

So I built a generator that takes the inputs that actually matter — race distance, current weekly mileage, a target pace, and the date on the calendar — and produces the weeks between now and the start line.

What "personalized" actually means here

Most plan templates are static PDFs: "Week 1: 20 miles, Week 2: 22 miles." They ignore where you're starting, which is the only number that predicts whether you'll finish the block injured. The version I built computes the mileage gap between today and race week, then distributes it with a hard cap on weekly increase (usually 10%) and a built-in step-back week every fourth cycle so the body gets a down week. That's the whole "pace-based scheduling" idea: the plan bends to your current load instead of assuming you're fresh.

The honest part is what it doesn't do. It won't tell you your VO2 max or whether your left hip is the reason your stride feels off. It's arithmetic on inputs you give it. If you feed it a weekly mileage you haven't actually run in months, it will confidently build a plan that breaks you. Garbage in, pulled hamstring out.

Getting the plan off the screen

The part I underrated was getting the result somewhere my watch could read it. A plan you have to transcribe by hand dies in a Notes app. So the generator exports GPX and TCX — the two formats Garmin, Coros, and most Strava-connected watches accept for structured workouts. The TCX path was the annoying one: it needs per-lap target pace wrapped in the right XML schema, and a malformed file silently fails to upload rather than erroring. I ended up writing a tiny validator that checks the schema before offering the download, because a download that looks fine and isn't is worse than no export.

Running Training Plan handles the export without you touching XML, which is the only reason I still use it instead of my old spreadsheet.

What the analytics can and can't show

Progress analytics in a tool like this usually means: did you hit the assigned miles, and did your paces land in the target zones? That's useful as a compliance check — it answers "am I actually doing the work" rather than "do I feel fast." What it can't answer is whether the work is the right work for your body. A flat line of green checkmarks two weeks before race day might mean you're ready, or might mean you sandbagged the plan. The tool shows the trend; you read the context.

The limit I keep repeating to myself

This is a planning aid, not a coach and not medical advice. If something hurts in a way that isn't normal fatigue, the right move is a physio, not a regenerate button. I've shipped features that nudge you toward rest when logged effort drops, but those nudges are heuristics on your own inputs — they're not watching your form.

If you want to build something similar, start with the mileage math and the export, because those are the two things a spreadsheet does badly. Everything else is polish.

When I don't want to keep maintaining my own spreadsheet logic, Running Training Plan is the version I reach for — same pace math, exports included, nothing to debug at 5am.

FAQ

What distances does it cover?
The generator builds plans for 5K, 10K, half marathon, and full marathon, all from the same pace-and-date inputs.

Do I need a smartwatch to use it?
No. The plan reads fine as a list of workouts. The GPX/TCX export is only there if you want it pushed to a device.

Can it replace a running coach?
No. It schedules mileage from numbers you provide. A coach adjusts for how you actually move and recover, which this tool can't see.

Is my training data shared?
The plan is computed from what you enter; you decide what to keep. Treat any health tool as something to use, not something to hand your medical history to.