How to read these numbers
Why every maximum states a distance
The gradient of a road depends on the distance you measure it over. The same hill can honestly be 32% over 2 m, 29% over 5 m and 25% over 100 m — all three at once. A “maximum gradient” without a distance is unfalsifiable, which is why signs, cycling databases and GPS platforms so often disagree: they are answering different questions. Every value here is a window maximum: the steepest stretch of exactly that plan-distance anywhere on the climb.
Why 2 m and 3 m are “diagnostic”
A window gradient is computed from two terrain samples, so elevation noise propagates as σ ≈ √2 × σelev / window. The source surveys quote ±15 cm RMSE absolute vertical accuracy; what a short window differences is the relative error between two nearby cells, which is smaller because systematic components (datum, sensor calibration, strip adjustment) are largely shared between neighbours — we use roughly ±10 cm per sample as a conservative local figure. With that, the raster-noise uncertainty alone is:
| Window | 2 m | 3 m | 5 m | 10 m | 25 m | 50 m | 100 m |
|---|---|---|---|---|---|---|---|
| 1σ noise | ±7.1 pp | ±4.7 pp | ±2.8 pp | ±1.4 pp | ±0.6 pp | ±0.3 pp | ±0.14 pp |
Two caveats on that table. It assumes the endpoint errors are independent; bilinear interpolation and a shared LiDAR point cloud correlate nearby samples, which damps random noise but means correlated errors (canopy, road benches, embankments) are not covered — so read it as a floor for random noise, not a total error budget. And at 2 m the noise is as large as the differences being claimed, with the systematic errors worst there too: a metre of centreline placement error moves the line onto road camber or verge, and interpolation smooths features shorter than about two raster cells. There is also a physical point — 2 m is only around two bicycle wheelbases (a wheelbase is roughly 1 m), so a 2 m maximum is a ramp the bike momentarily spans, not a sustained pitch anyone rides.
We publish 2 m and 3 m values anyway, greyed and labelled diagnostic, because that is where headline claims live: gradient signs, platform “max grade” figures and record adjudications typically match the 2–10 m scale. Diagnostic windows exist to interpret those claims. They are never used in rankings. For the same reason, windows of 10 m and below are displayed as whole percentages — at ±1.4 pp or more of noise, a decimal place would be faux precision. Stored OCL documents keep full precision.
Quality interventions
Three tiers, in increasing force — raw data is never modified:
≈ the surface model sits well above
the terrain along this window (tree canopy, walls, buildings), so the
bare-ground model there is built from fewer laser returns: the value
stands but is less certain — rankings and ladders mark it with
≈.
excluded the window crossed ground where the
terrain model does not represent the road — a physical discontinuity, a
mapped bridge/tunnel, or dense plantation whose cross-sections show no
road bench at all (the surveyed “ground” there is canopy):
the maximum shown is the steepest clean stretch and the
displaced raw reading is noted.
needs review the final numbers still
trip plausibility checks and await human scrutiny.
Measurement confidence — the A/B/C/D/U letters
Every climb carries a single letter summarising how much trust to place in its numbers. It is deliberately not called a “grade” or a “category” — in cycling both of those words mean the gradient itself. The letter says nothing about how steep the hill is; it describes the evidence:
High (A) — 1 m LiDAR, standard windows clean: no canopy
flags, no re-sited maxima, nothing unresolved.
Good (B) — sound but with minor caveats: a ≤2 m source, or
1 m data where standard windows needed intervention (canopy ≈
flags, re-sited maxima).
Limited (C) — a 2–5 m source, or standard windows that
could not be cleanly placed after artifact exclusion.
Low (D) — coarse fallback data; short-window maxima
suppressed.
Needs confirmation (U) — the numbers trip our own plausibility
checks and await human review — or your local knowledge: treat as
provisional.
The letters are what the machine-readable OCL documents carry (compact and stable); these pages show the words. Only High, Good and Needs confirmation occur in the current dataset — Limited and Low exist for future regions with coarser elevation data.
Rankings on the front page include confidence A/B only; U climbs are listed separately as provisional discoveries. Two things deliberately do not affect the letter: extent questions (“should the climb start earlier?” — they concern the climb’s definition, not the measurement), and ≈ flags on the 2–3 m diagnostic rows — those windows are never headline values, so a climb can honestly show ≈ there and still carry high confidence in the numbers that matter.
What “Matches” means
The Matches column records external evidence matched to OUR measured object — lists that include it, and documentation physically on the road. Matching is best-effort and ongoing; the measurement never depends on it:
Listed — the climb appears on an external list we record
(books, championship venues, race routes), cited by numbered footnote.
Membership facts only: we never copy a list’s own measurements.
sign: 32% (2025) — a physical gradient sign documented on the
road, with the year of the observation. Signs get repainted (one of our
climbs went 25% → 32% between observations), so the date is part
of the fact. Where the sign is known through OpenStreetMap’s
record of it rather than a direct observation, the entry says
“via OSM” — strong evidence, but not a photographed
sign.
tag: 25% (2026) — an OpenStreetMap incline value or
mapper estimate, dated by the map snapshot we read it from. Weaker
evidence than a sign: usually right, but some tags are impressions
rather than sign readings — our measurements test them either way.
— — not yet matched against documented climbs. The
survey measures every road meeting its criteria from mapping and
LiDAR data alone; matching those measurements against books, race
records and lists is a separate, ongoing, best-effort layer — an
unmatched climb may be famous locally. The matching is also something
anyone can do with our open data, and reports of known names are the
quickest way a climb gets matched.
Seen a sign we don’t show, or one that has changed? Submit an update (no account needed; photos welcome via the GitHub option there) — on-the-ground observations outrank everything here.
What these numbers are not
They are terrain-model measurements along the mapped road centreline — not asphalt surveys. The programme distinguishes three levels of confidence, in increasing strength:
LiDAR measured — every climb here: a transparent algorithm
applied to professionally flown, quality-controlled national elevation
data, with the uncertainties above.
Field checked — an on-the-ground observation corroborates the
picture: a sign, a rider’s report, a spot check. Valuable
anomaly detection, but a point observation cannot validate a windowed
average.
Survey validated — a survey-grade elevation profile of the road
itself (levelling or RTK at metre intervals) confirms the ladder. This
is planned for a small set of deliberately varied test roads — clean
terrain, tree canopy, walls and buildings, extreme gradient — because
validating the method’s behaviour there validates it
everywhere.
No climb currently claims the survey-validated tier; until one does, treat short-window values as estimates with the uncertainties above.