runstory · methodology · open by design

How the score works — and how it got fair.

The scoring is the whole game, so we don't hide it. This is the honest history of how runstory learned to compare two very different athletes — an ultrarunner and a triathlete — without quietly favoring either one. Three versions. Two course-corrections. One stubborn lesson.

The lesson, up front

You can't measure two sports with one ruler.

A hundred miles on foot takes a full day and wrecks your legs for weeks. A hundred miles on a bike takes five hours. Three miles of swimming takes ninety minutes. Score them by distance and you don't measure effort — you measure which sport covers ground fastest. Every fix below is a step away from that mistake.

The evolution

Three versions of fairness

V1 Distance Tiers Season 0 · before Mar 2026
MeasuredRaw distance, banded into point tiers per sport. A 100-mile race = 25. A Full Ironman scored as one event = 20.
The ideaReward the biggest days. Simple, legible, easy to log against.
What brokeDistance isn't comparable across sports. The tiers were hand-set guesses, and a weekly cap flattened every honest big week down to the same ceiling.
Leaned toward the ultrarunner
V2 Run / Ride / Swim Tiers Season 1 · from Mar 2026
MeasuredThree sports only. Distance tiers again, plus a +2 race bonus and small effort modifiers.
The ideaStrip it to what Strava records cleanly. Add a nudge for racing and for intensity.
What brokeScoring each leg separately let a Full Ironman stack swim + bike + run into 26 race-day points — while a 100-miler scored 10. The longer, harder event earned less than half. The intensity nudge also punished the even, controlled pacing that defines ultra racing.
Lurched toward the triathlete
V3 Load + Performance Now · in calibration
MeasuredTwo honest currencies instead of one forced number.
The GrindTraining load as a threshold-anchored stress score: one hour at your own threshold = 100 points, in any sport. No cross-sport distance ratios — each effort is measured against that athlete's own ceiling.
The ArenaRaces scored as a percentage of the world-record performance for that exact event — distance and climb included. A great 100-miler and a great Ironman are judged by how close each came to its own sport's limit.
PlusA bounded correction for the downhill pounding that heart rate alone can't see — the one place the model trusts judgment, and says so.
Stopped forcing one number
See it move

The same race week, scored by each model

One ultrarunner runs a 100-mile mountain race. One triathlete finishes a Full Ironman the same week. Watch how the verdict swings — and how V3 stops pretending a single point total can settle it.

Race-week showdown
▲ Max — 100-mile mountain race  ·  ◆ Serhii — Full Ironman
What we hold to

Three rules that don't bend

01

Equal effort, equal points

Two athletes who tax themselves the same should score the same — even in different sports, even at different fitness levels. Everything is measured against your own threshold.

02

The better race wins

A race is scored by how close you came to your sport's world-record ceiling — not by how far the course happened to be. Quality beats raw distance.

03

We show our work

The formula is public, the trade-offs are named, and the one judgment call is labeled as a judgment call. If the score ever feels wrong, you can check why.

The honest fine print +
!Thresholds drive everything. The model is only as fair as each athlete's set thresholds (pace, power, heart rate). Stale numbers skew the score — they're re-checked each season.
!Heart rate misses the downhills. Descending is metabolically cheap but mechanically brutal — low heart rate, real muscle damage. We add a bounded descent-and-impact correction to runs so the eccentric pounding isn't invisible. It's the only tuned dial, and it's tuned in the open.
!V3 is in calibration. The framework is set; the constants are being fit against real training history before it becomes the official ledger. Numbers shown here are illustrative.
!Two ledgers, on purpose. "The Grind" rewards how much you trained; "The Arena" rewards how well you raced. We don't average them into one number, because they answer different questions.