~/ running/

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.

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

CheckpointPlanActualGap
5 km28:4028:58+0:18
10 km56:3556:32−0:03
15 km1:24:301:23:37−0:53
Finish~1:58:351: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.

  1. .fit files: exported from Garmin after each run
  2. process_fit.py: idempotent parser, keyed by start time
  3. activities.csv laps.csv: per-run and per-lap history, in git
  4. training-plan.md: living plan, edited by me and Claude Code

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.