Half marathon · Montreal · Oct 11, 2026
Reflections on my second half marathon
1:56:20 chip time · goal < 2:00:00 (−3:40) · April: 2:05:00
In April I ran my first half in 2:05 on years of easy running. My original plan was to prepare for a full marathon but when I finally decided, tickets were sold out (I didn't realize at that time how lucky I was).
I set to prepare for a half marathon instead and hired Claude Code as a personal coach. Six months later I ran 1:56:20. This is how the 19 weeks in between actually went, setbacks included.
- 19 weeks, Jun 1 to Oct 11
- 4 runs a week, never more
- 22.4 km longest run, past race distance
- ~50 km peak week, capped on purpose
Weekly volume
Base Peak Taper Race week
Kilometres per week from my Garmin log, rounded. Race week includes the 21.35 km race itself.
Six chapters
Wk 1 June My plan
Goal: under two hours, which is 5:41/km. I built the block on 80/20 Running by Matt Fitzgerald: about 80% of time at truly easy effort, 20% hard. Four runs a week, weekly volume capped at 50 km, strength work at home after the runs.
I also wanted to do a "home made" lactate threshold test to see if my zones could be calibrated.
Wk 3–6 June–July Everyone has a plan until they get punched in the mouth
An ankle niggle, then a respiratory virus that wiped out week 3, then early heel pain. The lactate threshold test got postponed five times for illness, heat and sleep. When I finally ran it on July 11 it gave me a threshold of 149 bpm at about 5:00/km, and from then on the zones were "educated guesses" instead of age based.
Wk 7–10 July–Aug Running and humidity
Summer brought dew points of 18–21°C for weeks. I ran by heart rate, not pace, and let pace go slow on bad days. The easy days stayed easy, and long runs showed almost no heart-rate drift. The aerobic engine was building faster than I expected.
Wk 11–14 August The hip flexor
Soon after the first fast sessions, a niggle appeared in the front of my hip and moved around for weeks. I first blamed rising volume. The data said otherwise: volume had been falling for five weeks. Two things had changed. I'd started speed work after years of only easy running, and my routes had drifted so that 12 runs in a row put most of the climbing in the second half, on tired legs. A physio later confirmed overload and capped my long runs at 15–16 km. I still got one 22.4 km run in before that, past race distance. I ran it mostly to build resilience and to prove to myself that even with pain, finishing was in the realm of what's possible.
Wk 15–16 September Learning to hold the pace
I skipped a planned 10K tune-up to protect the leg. Instead I practised goal pace, and I still have a hard time holding it and I'm planning to work on it.
Wk 17–19 Sep–Oct Taper and race
I cut volume by about 45% but kept short bits of race pace. Heart-rate drift on easy runs dropped from 4.2% to 2.2% as the leg fatigue cleared. On race day the course was flat for 8 km and then hilly to the end. I stuck to the plan, picked it up from km 10 with the hip quiet, and ran the second half almost 4 minutes faster than the first (Côte Berri included).
Race day: plan vs. what happened
| Checkpoint | Plan | Actual | Gap |
|---|---|---|---|
| 5 km | 28:40 | 28:58 | +0:18 |
| 10 km | 56:35 | 56:32 | −0:03 |
| 15 km | 1:24:30 | 1:23:37 | −0:53 |
| Finish | ~1:58:35 | 1:56:20 | −2:15 |
Race plan: start at 5:55–6:00 for 2 km, hold 5:35 to km 16, then run the last 5 km however I felt. Actual: km 3–16 averaged 5:29, km 17–21 averaged 5:11 with a 4:37 at km 20. Halves of 1:00:11 and 56:20. Fuel was two jelly bars at 40 and 80 minutes, rehearsed twice in training. 122nd of 344 in my age group.
Lessons
Thinking about the next race...
Easy means easy
Most of my improvement came from keeping easy runs under 133 bpm, even when it felt too slow. The 80/20 method paid off.
Lungs adapt faster than legs
My aerobic fitness was ready for speed work long before my hip flexors were. Tendons and muscles take weeks to months. Give them that time and no more skipping strength training.
Pacing is a skill
Being fit enough for a pace and being able to hold it are different things. Practice, practice, practice.
Taper cuts volume, not intensity
Fewer kilometres, same number of runs, with short race-pace pieces kept in. I arrived fresh instead of flat.
The first 5 km lie
I feel rusty until about km 5 every time. Knowing that kept me from panicking early in the race.
Training plan as code
I treated the training planning as a small software project. The plan was a markdown file in a git repo, and Claude Code acted as the coach: it read my run data, reviewed each week, and proposed edits to the plan.
.fit files: exported from Garmin after each runprocess_fit.py: idempotent parser, keyed by start timeactivities.csv laps.csv: per-run and per-lap history, in gittraining-plan.md: living plan, edited by me and Claude Code
- Small diffs only. Changes to the plan had to be minimal, and every change left a dated comment with its reason. The git history doubles as a training diary. This summary is based on those raw notes.
- Locked blocks. Sections I marked
<!-- locked -->were mine and off-limits to edits. - Per-second streams beat summaries. They caught chest-strap artifacts (a "162 bpm" at jogging pace was a dry strap in cold air) and showed where the climbing sat in each run.
- The AI was wrong sometimes. It blamed the hip flexor on a strength session that actually came a day after the symptom, and it called the race's elevation a glitch when the course really was hilly. I corrected it, and the corrections went into the plan too. ABC: Always Be Challenging.
Method based on 80/20 Running by Matt Fitzgerald (half-marathon Level 2 plan, adapted).
Gear: Garmin Instinct and a Garmin HRM 200 chest strap. Not medical advice; see a physio when something doesn't settle.