How the five-hour prep is going
Planned vs. actual weekly mileage, all 17 weeks
Plan v4 targets with actual mileage layered on as the dark inner bar. Actuals count approved, published runs only, so a week can briefly show less than was really run. Week 1 was adopted retroactively — run 10–16 Aug, before the v3 document existed.
One shared scale: every track runs from zero to the peak week. The tick is the week's target — watch it march right through the build and retreat through the taper — and the dark bar is what was actually run, with the percentage as the completion signal.
Full week-by-week table & text equivalent →
The ladder — longest run ever, climbing toward race day
What this is, and how it steers the plan
The marathon is a time-on-feet problem before it is a speed problem, so the plan's primary progression lever is the duration of the longest run — measured in hours, because in Singapore heat pace is an output, not a target. Each rung is a new longest-ever run; the tick is that week's planned time cap, and the track runs the full five-hour race target. The ladder deliberately tops out at 3:15–3:30 (about 70% of race day): running longer than that in training costs more in bone and tendon risk than it returns in fitness. The final 30% is bought with the taper, fueling, and conservative pacing.
How it adapts: a rung only gets attempted when the previous one was absorbed — next-morning checks stable, recovery back to baseline within 48 hours. If those gates fail, the rung waits. Missed rungs are never made up; the plan drops volume, not safety margin.
Longest so far: 1:39 — 33% of the five-hour race target. The ladder tops out at 3:15–3:20 in the Week 9–10 peak, about 65–70%, by design: the remaining distance is what the descent, the fueling, and conservative pacing are for. ★ marks a longest-ever run.
Proven readiness — the rehearsal checklist
What this is, and how it steers the plan
Fitness doesn't finish a marathon; systems do — fueling, pacing evidence, gear, gut tolerance. Any one of them failing can end the race regardless of aerobic shape. Each item below is a named rehearsal from the plan that either happened or didn't: a count, not a score, with no formula behind it — which is why this exists while a “readiness” number does not.
How it adapts: the checklist feeds decisions directly. The minimum-viable-peak item guards against under-training (the quiet failure mode of a cautious plan) — if it isn't ticked by Week 14, the Week 13 go/no-go must formally re-scope the race goal rather than hoping. And “nothing new on race day” means an unticked item late in the block is itself a decision trigger, not a footnote.
1 of 10 proven. Each item is a named rehearsal from the plan that either happened or didn't — a count, not a score. Nothing new on race day means every one of these must be ticked before 4 December.
- ◯ Fuel practice begun (≥30 g/h on a 75 min+ run)
Gut training starts in Week 3; the gut is trainable and race-day fueling must be, too. - ✓ Long run ≥ 2:30
Time on feet is the durability currency; 2:30 arrives around Week 7. - ◯ Long run ≥ 3:00
The deep-durability zone; the Week 9–10 peak. - ◯ ≥50 g/h held on a long run
The Week 9 fueling step. - ◯ ≥60 g/h held, gut untroubled
The race dose for a five-hour finisher — 30 g/h is bonk management, not race fueling. - ◯ Half-marathon tune-up raced (Week 11)
The only pacing evidence that predates race day; it sets the marathon pacing plan. - ◯ Marathon-effort blocks inside a long run (Week 12)
Race pace has to be calibrated at race intensity — and the gut tested at that intensity. - ◯ Fueled long run ≥ 26 km — the minimum viable peak
The plan's anti-under-training guard, expected in the Week 9–10 peak: without one by Week 13, the go/no-go must formally re-scope the goal. - ◯ Dress rehearsal completed (Week 14)
Race breakfast, kit, anti-chafe, fuel, start time — at reduced volume under v4. - ◯ Go/no-go decided from evidence (Week 13)
Time goal, completion, or run-walk — chosen from data in Week 13, never on race morning.
This week's sessions — planned vs. actual
Week 8, Build phase. Sessions come from the day-level plan in Supabase, not a hand-edited table; run status reflects approved, published runs only.
| Date | Session | Plan | Status |
|---|---|---|---|
| Mon 28 Sep | Rest / mobility | — | — |
| Tue 29 Sep | Easy 6 km, flat | 6 km | Today |
| Tue 29 Sep | Strength A | — | Today |
| Wed 30 Sep | Medium-long run 11 km | 11 km | Upcoming |
| Thu 1 Oct | Easy 5 km, flat | 5 km | Upcoming |
| Fri 2 Oct | Rest | — | Upcoming |
| Fri 2 Oct | Strength B | — | Upcoming |
| Sat 3 Oct | Short easy 3 km, flat | 3 km | Upcoming |
| Sun 4 Oct | Long run 23 km (cap 2:50) ★ Farthest-ever long run | 23 km, cap 2:50, fuel ≥45 g/h | Upcoming |
Weekly load — duration first
Plan v4 is duration-led: the marathon is a time-on-feet problem, so minutes and long-run share are the primary exposure readouts and distance is context. Session-RPE load (effort × minutes, summed for the week) is the internal-load backbone — it survives heat, hills, and a flaky optical sensor. Amber days count the control loop's cautions; symptom detail stays private.
| Week | Target | Run | Time on feet | Longest run | Long-run share | Session-RPE load | Amber days |
|---|---|---|---|---|---|---|---|
| W0 (v2) | — | 47.5 km | 5:24 | 1:55 | 30% | — | — |
| W1 | 31 km | 30.8 km | 4:10 | 1:39 | 40% | — | 1 |
| W2 | 20 km | 40.7 km | 5:48 | 1:48 | 31% | — | 1 |
| W3 | 23 km | 34.7 km | 4:56 | 2:11 | 43% | — | 0 |
| W4 | 26 km | 17.7 km | 2:33 | 1:33 | 57% | — | 1 |
| W5 | 30 km | 28.9 km | 4:06 | 2:31 | 63% | — | 0 |
| W6 | 35 km | 20 km | 2:37 | 1:24 | 50% | — | 0 |
| W7 | 40 km | 0 km | 0:00 | — | — | — | 1 |
| W8 | 46 km | 0 km | 0:00 | — | — | — | 0 |
Where the heart rate actually went — time in zone
Each bar is one run on a shared duration scale, split by where the heart rate actually spent its time — Garmin's zones, minutes hidden in the hover. Plan v4 wants nearly everything in the teal half; rust is the honest measure of how often a run drifted above easy. Zone boundaries are calibrated against an earlier VO₂ max test; heart rate is currently wrist-optical, which is noisy beat-to-beat but reliable for time-in-zone totals like these.
Daily gate status
The last two weeks of daily gate statuses from the adaptive control loop — green (execute as planned), green-easy (wearable-only signal: run easy, no quality), amber (hold or reduce), red (stop; reported symptoms only, never a wearable verdict). Symptom detail stays private; the status is the public record.
Training load & interruptions
Recent training load (a plainly described rolling comparison of the last few weeks' mileage) needs at least a few completed weeks to mean anything — it's Awaiting Data. Week 2 is a reduce week advised by Dr. Varun Reddy: several minor lower-leg issues — a heel with a morning-pain pattern, a right knee, a right calf — are being managed at reduced volume. Details in the review entry and the injury & interruption log.
Layer B — Health observations
What's happening to my health
The Garmin-fed markers below are reporting live data. Everything that needs a clinic, a cuff, or a gym test is still Awaiting Data — an accurate state, not a broken page. Each row links to a full explanation of what appears, why, and what unlocks it.
| Category | Marker | Status |
|---|---|---|
| Cardiorespiratory | VO₂ max | 48.4 mL/kg/min · 18 Sep |
| Recovery | Resting heart rate | 56 bpm avg (7d) |
| Recovery | Sleep | 6.3 h/night avg (7d) |
| Body composition | Weight | Awaiting Data |
| Body composition | Body fat & muscle mass | Awaiting Data |
| Strength | Strength benchmarks | Awaiting Data |
| Cardiometabolic | Blood pressure | Awaiting Data |
| Cardiometabolic | Glucose | Awaiting Data |
| Laboratory | Selected blood tests | Awaiting Data |
Full health observations index, grouped by category → · How these will be measured →