2026-12-28 · 42.20 km
Race-day readiness
If you hold your current 66 load per day
Form above about +10 on the day is where most people race well. Cutting volume to roughly 55% for the last 14 days moves you from +0 to +17 without losing meaningful fitness.
The course
Attach the course and the pacing below stops being a guess about a flat road. Upload the organiser GPX, or point at a run where you covered the same ground.
Training block
16 weeks · peaks at 96 km in week 13
Built from what you are running now, not from a template. Volume rises across the block, backs off every fourth week, and the heaviest week lands just before the taper. Every session is a band off your own curve, so it stays right as you get fitter.
You are running 86% of what the plan asks, most weeks. That is worth taking seriously in the other direction: the race projections assume the training in the plan, so either the plan needs to come down to meet you, or they are optimistic.
| Week | Phase | Volume | Long run | Key sessions |
|---|---|---|---|---|
| 1 · 16 to go | Base | 60 km | 15.6 km |
Steady 4:35–4:51 /km
20-30 min continuous, comfortably hard
Strides 3:46–3:58 /km
6 x 20 s relaxed and fast off a jog |
| 2 · 15 to go | Base | 63 km | 16.4 km |
Steady 4:35–4:51 /km
20-30 min continuous, comfortably hard
Strides 3:46–3:58 /km
6 x 20 s relaxed and fast off a jog |
| 3 · 14 to go | Base | 66 km | 17.2 km |
Steady 4:35–4:51 /km
20-30 min continuous, comfortably hard
Strides 3:46–3:58 /km
6 x 20 s relaxed and fast off a jog |
| 4 · 13 to go | Base easy | 48 km | 12.6 km |
Steady 4:35–4:51 /km
20-30 min continuous, comfortably hard
Strides 3:46–3:58 /km
6 x 20 s relaxed and fast off a jog |
| 5 · 12 to go | Base | 72 km | 18.8 km |
Steady 4:35–4:51 /km
20-30 min continuous, comfortably hard
Strides 3:46–3:58 /km
6 x 20 s relaxed and fast off a jog |
| 6 · 11 to go | Base | 75 km | 19.5 km |
Steady 4:35–4:51 /km
20-30 min continuous, comfortably hard
Strides 3:46–3:58 /km
6 x 20 s relaxed and fast off a jog |
| 7 · 10 to go | Build | 78 km | 23.5 km |
Threshold 4:16–4:27 /km
3 x 8 min with 2 min jog
Intervals 4:00–4:12 /km
6 x 3 min hard with 2 min jog |
| 8 · 9 to go | Build easy | 57 km | 17.0 km |
Threshold 4:16–4:27 /km
3 x 8 min with 2 min jog
Intervals 4:00–4:12 /km
6 x 3 min hard with 2 min jog |
| 9 · 8 to go | Build | 84 km | 25.3 km |
Threshold 4:16–4:27 /km
3 x 8 min with 2 min jog
Intervals 4:00–4:12 /km
6 x 3 min hard with 2 min jog |
| 10 · 7 to go | Build | 87 km | 26.2 km |
Threshold 4:16–4:27 /km
3 x 8 min with 2 min jog
Intervals 4:00–4:12 /km
6 x 3 min hard with 2 min jog |
| 11 · 6 to go | Peak | 90 km | 30.7 km |
Race pace 4:35–4:51 /km
2 x 20 min at goal pace inside the long run
Threshold 4:16–4:27 /km
4 x 8 min with 2 min jog |
| 12 · 5 to go | Peak easy | 65 km | 22.2 km |
Race pace 4:35–4:51 /km
2 x 20 min at goal pace inside the long run
Threshold 4:16–4:27 /km
4 x 8 min with 2 min jog |
| 13 · 4 to go | Peak | 96 km | 32.7 km |
Race pace 4:35–4:51 /km
2 x 20 min at goal pace inside the long run
Threshold 4:16–4:27 /km
4 x 8 min with 2 min jog |
| 14 · 3 to go | Taper | 72 km | 18.0 km |
Sharpener 4:16–4:27 /km
10 min easy, 6 x 90 s at race effort, 10 min easy |
| 15 · 2 to go | Taper | 53 km | 13.2 km |
Sharpener 4:16–4:27 /km
10 min easy, 6 x 90 s at race effort, 10 min easy |
| 16 · 1 to go | Taper | 34 km | 8.4 km |
Sharpener 4:16–4:27 /km
10 min easy, 6 x 90 s at race effort, 10 min easy |
A schedule, not a prescription. It has no idea whether you slept, and the readiness read on the dashboard is the thing that should override it.
Fuelling
for 3:31:27 of running
60-90 g an hour, and above 60 g it has to be a glucose-and-fructose mix, roughly 2:1. Glucose transport saturates near 60 g/h, so taking more of a single-sugar gel mostly leaves it in your stomach.
Drink to thirst inside this range rather than to a schedule. Overdrinking dilutes your blood sodium, which is more dangerous than mild dehydration and does put runners in hospital every year.
Roughly when
| At | Take | Running total |
|---|---|---|
| 8:24 | 22 g | 22 g |
| 25:11 | 22 g | 44 g |
| 41:58 | 22 g | 66 g |
| 58:45 | 22 g | 88 g |
| 1:15:33 | 22 g | 110 g |
| 1:32:20 | 22 g | 132 g |
| 1:49:07 | 22 g | 154 g |
| 2:05:54 | 22 g | 176 g |
| 2:22:41 | 22 g | 198 g |
| 2:39:29 | 22 g | 220 g |
| 2:56:16 | 22 g | 242 g |
| 3:13:03 | 22 g | 264 g |
Spaced evenly rather than crammed late: the gut empties at a rate, and a backlog does not clear once you are working hard. Nothing in the last ten minutes, because it would not be absorbed in time to matter.
For a race this long, 36-48 hours of high-carbohydrate eating beforehand measurably helps. It is about eating more carbohydrate, not more food -- and the training taper is what makes room for it. Aim for 8–12 g of carbohydrate per kilo of body weight per day, for the two days before.
These are the published consensus ranges (Jeukendrup 2014; the joint position stand of the Academy of Nutrition and Dietetics, Dietitians of Canada and the ACSM, 2016), not personal advice. Gut tolerance is individual and 90 g/h is a trained capacity rather than a starting point — practise it in training, never first on race day.
Split targets
Slightly negative — 1% steadier out, 1% quicker back
| Checkpoint | Projected | Goal |
|---|---|---|
| 5K | 25:18 | 23:20 |
| 10K | 50:37 | 46:41 |
| 15K | 1:15:55 | 1:10:01 |
| 20K | 1:41:13 | 1:33:21 |
| 25K | 2:06:08 | 1:56:20 |
| 30K | 2:30:57 | 2:19:12 |
| 35K | 2:55:45 | 2:42:05 |
| 40K | 3:20:33 | 3:04:57 |
| Finish | 3:31:27 | 3:15:00 |
, so the check has to wait for the parsed document. addEventListener('DOMContentLoaded', function () { try { var dm = ['standalone', 'minimal-ui', 'fullscreen', 'window-controls-overlay']; if (!document.getElementById('frozen-note') && (navigator.standalone || dm.some(function (m) { return matchMedia('(display-mode: ' + m + ')').matches; }))) { var pk = 'portal-installed', reg = JSON.parse(localStorage.getItem(pk) || '{}'); reg.Run315 = Date.now(); localStorage.setItem(pk, JSON.stringify(reg)); } } catch (e) { /* private mode - ignore */ } }); // Installable, and readable on the train. See templates/sw.js. if ('serviceWorker' in navigator) { addEventListener('load', function () { navigator.serviceWorker.register('/Run315/sw.js'); }); }