Run315

Everything, not the last twelve weeks

The ledger

1.0 years on record

2,773 km

across 261 runs and 221 hours, since September 2025.

That is 6.9% of the way round the equator.

Next milestone

5,000 km

2,227 km to go.

100 500 1,000 2,500 5,000 10,000 25,000 50,000

Habit

53
Week streak
Consecutive weeks with a run in them.
53
Longest ever
53
Weeks with a run
3
Races finished
2 more to reach 5.

Streaks are counted in weeks, not days, and that is a deliberate choice. A daily streak rewards running on the days you should not, which is how people get hurt. A week with a run in it is a habit; a run every single day is a compulsion with a badge attached.

2026 so far

against the same point last year

1997km
This year to day 250
15 km by this point last year.

Last year's record does not go back far enough to compare against -- this is effectively your first full year.

Compared like for like: only the part of last year that had happened by this date counts, because eleven months against twelve is not a decline.

Year by year

2 years

YearDistance RunsHours LongestAscent
2026 so far 1997 km 178 158 25.5 km 17953 m
2025 776 km 83 62 19.9 km 8079 m

Everything you have climbed

2.9 Everests

Everest is 8849 m, in the Himalaya. How you climb →

, 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'); }); }
Static demo. A synthetic athlete, frozen to files — every page here is the real app rendering real analysis, but anything that writes (Garmin sync, adding a race, the coach review) is switched off, because a file server has nothing to write to. Source & how to run it for real.