2026-07-13 · 21.10 km
Run 56 days ago.
Result
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.
Fuelling
for 1:37:42 of running
30-60 g of carbohydrate an hour. A single sugar is fine at this rate; the gut absorbs it without help.
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 |
|---|---|---|
| 14:37 | 22 g | 22 g |
| 43:51 | 22 g | 44 g |
| 1:13:05 | 22 g | 66 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.
Postmortem
No run linked to this race yet. Pick the one you ran and the splits get compared against the plan, kilometre by kilometre.
, 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'); }); }