Brown Family Sports · course analysis
2026 Servus Edmonton Half Marathon · 16 August 2026 · what the organiser published, what was certified, and what my watch recorded
A half marathon has to be exactly 21.0975 km. Somebody proves that by riding a bicycle with a counter on the wheel along the route, and a governing body issues a certificate. That certificate is the official answer, and for this race it exists — you can read it yourself, it's linked below.
Separately, the race puts a map on its website. That map is a drawing of the route. Nobody measured it with a bicycle; someone traced it on a screen. A drawing and a measurement are different things, and here they disagree by +753 m.
My watch says I ran 21.95 km. That's further than the certified distance. But GPS watches always over-read a little — they wobble, and they cut corners as arcs — so a long watch on its own proves nothing. The interesting part is where the extra came from. If I'd gone the wrong way, the extra would pile up in one place. It doesn't. It's spread evenly across the whole course, which is what a watch does normally, and also what a genuinely longer route would do.
So the honest answer is: my watch and the race's own map agree with each other, and both are longer than the certificate. Whether that means the course ran long or a lot of watches read long, you can't tell from one runner. You can tell from a hundred.
racepoint.ca/json/race_data_x_86.json → lines.route[1], line_id 1173, name "21K". 264 vertices. This is the line the site's “21K” checkbox draws. The organiser labels it 21,098 m — the geometry they drew for it is +753 m longer than its own label.
World Athletics / AIMS certificate CAN-2025-056A, measurer Marcel LaMontagne (Grade A), measured 2026-05-31, race date 2026-08-16, expires 2029-12-31. Registered via Athletics Canada. We hold the certificate, not its polyline — the per-kilometre GPS waypoints live in the measurer's full report, which is not published.
COROS, 5,094 points, 1 s sampling, median step 2.93 m, no dropouts. Jitter-filtered 21.94 km — only 7 m of the total is sub-1.5 m noise, so this is a clean track.
One pill per 500 m of course, named for the streets it runs between and tagged with how much further my watch travelled than the posted line over that stretch. Click a pill to zoom the map to that segment. Grey is inside GPS noise; the orange one is the turnaround.
Line B has no polyline to draw — the certificate fixes its length and its anchors, not its shape. The two gold markers are the only certified geometry that exists in public. Note where the green posted line sits relative to the turn-point marker.
The certificate is not just a number. Its map sheet defines the course by a street-by-street list and two GPS anchors, and it states the measurement convention:
That matters twice over. It tells us the certified distance describes a specific lane discipline, not an abstract centreline. And it tells us the per-kilometre waypoints exist — which is exactly the missing piece needed to put line B on this table.
The certificate names two exact spots on the ground: the start/finish line on Jasper Av, and the turn point — a mark on the curb by a manhole on Valleyview Cres. Those coordinates are printed on a scanned map, so a couple of digits were hard to read; I settled them by testing which reading actually lands on the road instead of squinting at the image. Distance from each fixed point to each line:
My track passes 0.9 m from the certified turn point — I turned where the certificate says to turn. The posted line misses that same point by 51.7 m. At the one place where the certificate pins the course to a physical mark, the published map is the line that disagrees.
The course chopped into 500 m pieces. For each piece: how long it is on the race's map, how far my watch says I actually travelled over it, and the difference. The last two columns are how far sideways I was from their line — normal running-the-tangents drift, not a wrong turn. All figures are metres except the first column. Click any row to zoom the map to it.
| Race km | Streets | Their map | My watch | Difference | Typically off | Worst off |
|---|---|---|---|---|---|---|
| 0.00–0.50 | Jasper Av | 500 | 507.6 | +7.6 | 2.0 | 13.5 |
| 0.50–1.00 | Jasper Av | 500 | 504.2 | +4.2 | 1.9 | 3.6 |
| 1.00–1.50 | Jasper Av | 500 | 499.9 | -0.1 | 2.7 | 6.5 |
| 1.50–2.00 | Jasper Av | 500 | 501.9 | +1.9 | 4.9 | 6.1 |
| 2.00–2.50 | Jasper Av | 500 | 499.1 | -0.9 | 4.7 | 6.1 |
| 2.50–3.00 | Jasper Av | 500 | 506.9 | +6.9 | 5.0 | 6.6 |
| 3.00–3.50 | Jasper Av → 102 Av | 500 | 492.3 | -7.7 | 2.0 | 6.1 |
| 3.50–4.00 | 102 Av | 500 | 499.9 | -0.1 | 3.4 | 5.0 |
| 4.00–4.50 | 102 Av → 130 St → 104 Av | 500 | 482.0 | -18.0 | 3.9 | 8.3 |
| 4.50–5.00 | 104 Av → 132 St → 102 Av MUP | 500 | 497.9 | -2.1 | 1.4 | 2.5 |
| 5.00–5.50 | 102 Av MUP → 102 Av → St. George's Cr | 500 | 504.1 | +4.1 | 2.6 | 3.3 |
| 5.50–6.00 | St. George's Cr | 500 | 492.0 | -8.0 | 1.6 | 3.4 |
| 6.00–6.50 | St. George's Cr → Ravine Dr | 500 | 504.9 | +4.9 | 1.7 | 3.3 |
| 6.50–7.00 | Ravine Dr | 500 | 503.7 | +3.7 | 1.3 | 2.1 |
| 7.00–7.50 | Ravine Dr → 142 St → Summit Dr | 500 | 499.4 | -0.6 | 2.1 | 4.0 |
| 7.50–8.00 | Summit Dr → Riverside Dr | 500 | 502.6 | +2.6 | 1.0 | 2.5 |
| 8.00–8.50 | Riverside Dr → 95 Av | 500 | 504.2 | +4.2 | 1.2 | 3.0 |
| 8.50–9.00 | 95 Av → 142 St → Valleyview Dr | 500 | 495.8 | -4.2 | 4.0 | 4.9 |
| 9.00–9.50 | Valleyview Dr | 500 | 506.6 | +6.6 | 1.9 | 3.7 |
| 9.50–10.00 | Valleyview Dr → 91 Av → 139 St | 500 | 493.7 | -6.3 | 0.9 | 2.3 |
| 10.00–10.50 | 139 St → 90 Av → Valleyview Cr | 500 | 500.6 | +0.6 | 0.9 | 3.1 |
| 10.50–11.00 | Valleyview Cr | 500 | 608.4 | +108.4 | 1.9 | 29.6 |
| 11.00–11.50 | Valleyview Cr → Valleyview Dr | 500 | 496.6 | -3.4 | 3.6 | 5.5 |
| 11.50–12.00 | Valleyview Dr → 90 Av → 140 St | 500 | 508.3 | +8.3 | 2.2 | 4.4 |
| 12.00–12.50 | 140 St → 91 Av → Valleyview Dr | 500 | 499.3 | -0.7 | 3.1 | 4.8 |
| 12.50–13.00 | Valleyview Dr → 142 St | 500 | 503.4 | +3.4 | 1.1 | 3.6 |
| 13.00–13.50 | 142 St → 95 Av | 500 | 496.7 | -3.3 | 1.4 | 3.5 |
| 13.50–14.00 | 95 Av → Riverside Dr | 500 | 496.1 | -3.9 | 1.9 | 3.3 |
| 14.00–14.50 | Riverside Dr → Summit Dr | 500 | 504.9 | +4.9 | 1.3 | 3.8 |
| 14.50–15.00 | Summit Dr → 142 St → Ravine Dr | 500 | 496.9 | -3.1 | 3.5 | 6.2 |
| 15.00–15.50 | Ravine Dr | 500 | 499.9 | -0.1 | 2.8 | 4.6 |
| 15.50–16.00 | Ravine Dr → St. George's Cr | 500 | 494.1 | -5.9 | 1.4 | 4.7 |
| 16.00–16.50 | St. George's Cr → 102 Av | 500 | 494.6 | -5.4 | 1.5 | 3.6 |
| 16.50–17.00 | 102 Av → 132 St | 500 | 497.0 | -3.0 | 1.5 | 3.9 |
| 17.00–17.50 | 132 St → 104 Av → 130 St | 500 | 491.9 | -8.1 | 1.8 | 3.0 |
| 17.50–18.00 | 130 St → 102 Av | 500 | 497.0 | -3.0 | 3.3 | 9.4 |
| 18.00–18.50 | 102 Av → 124 St | 500 | 506.3 | +6.3 | 3.5 | 7.6 |
| 18.50–19.00 | 124 St → Jasper Av | 500 | 500.5 | +0.5 | 7.4 | 12.0 |
| 19.00–19.50 | Jasper Av | 500 | 494.8 | -5.2 | 2.0 | 10.5 |
| 19.50–20.00 | Jasper Av | 500 | 501.7 | +1.7 | 5.4 | 8.0 |
| 20.00–20.50 | Jasper Av | 500 | 500.9 | +0.9 | 4.9 | 11.4 |
| 20.50–21.00 | Jasper Av | 500 | 500.0 | -0.0 | 2.0 | 8.7 |
| 21.00–21.50 | Jasper Av | 500 | 504.4 | +4.4 | 7.4 | 11.7 |
| 21.50–21.85 | Jasper Av | 351 | 356.4 | +5.5 | 4.0 | 7.6 |
Read the difference column. 43 of 44 pieces sit inside ordinary GPS wobble — the typical piece is out by just 4.1 m in 500. Over the whole race that adds to +98 m (0.45%), and I was a typical 2.42 m sideways from their line. I ran the route they published. There is no detour hiding in this table.
One piece breaks the pattern: Valleyview Cr, 10.50–11.00 km, at +108 m. That is the turnaround, and it is where their drawn line stops 51.7 m short of the turn point the certificate names. I ran out to the real turn and back; their map doesn't draw that bit. So this one is their drawing falling short, not me running extra.
The certified street list is a palindrome hinged on “Valleyview Cr — reverse routing”, so the turn point sits at half the certified distance. Splitting my run there:
The two halves carry 4.08% and 4% — the same rate, to within a rounding error. The excess accumulates uniformly. A missed turn, a detour, or a mis-set cone would load one half and not the other. This does not. Whatever the +852 m (4.04%) gap against the certified distance is, it is spread evenly over the whole course — which is what a systematically longer route, or a systematically long-reading watch, looks like, and is not what a race-day detour looks like.
The turnaround is only +98 m of the +852 m. It is nowhere near the whole story. Split the gap at its natural seam and it goes almost all one way:
Nearly nine tenths of the discrepancy is between the organiser's own map and the organiser's own certificate. It has nothing to do with how I ran. I tracked their published line to within 0.45%.
It isn't a sloppy drawing either. Straighten the published line until every point is within 3 m of where it was and it only loses 13 m; within 5 m, only 45 m. The same test on my GPS track loses 61 m and 104 m. Neither line is padded with wobble. Both describe a genuine 21.85-ish km path.
So the +753 m is about corners. A course is certified along the shortest route a runner could legally take — the tangents. A map traced along the road follows every bend. On this route that difference is huge, and we can price it: the same map data contains a version of the identical route drawn with straight chords across the corners. It runs 786 m shorter, and lands -33 m from the certified distance. The two versions sit on top of each other for 89.1% of the course and part company only at the bends.
So the most likely story, stated as a hypothesis rather than a finding: the certificate measures the tangent line, and I ran the bends. On a course with roughly forty turns and a river-valley section of switchbacks, that is worth several hundred metres before a watch's own error is counted at all. The part I can't yet check is whether the tangents were even available — the certificate says corners were to be coned and marshalled, and cones hold you wide. If the corners were coned as specified, then nobody in the field could run the line the course was measured along, and every watch in the race would read long by a similar margin.
Which is a prediction, and predictions can be checked.
5 tracks from the 2026 half have since been measured through the identical pipeline — same haversine, same certified baseline, no smoothing applied to any of them. One is set aside because that runner's watch kept recording after the finish, leaving 4 in the statistics. Names are withheld; this is other people's race data and the aggregate makes the point without it.
I got one half of my prediction wrong and should say so. I wrote that other tracks would cluster tightly around mine. They don't — they spread 392 m, from 2.82% to 4.68%. That is not a cluster.
But the spread is the stronger result. If a course is simply mis-measured, every runner is long by the same amount — a constant offset. If the gap is about which line you run, you get a spread with a floor above zero. That is exactly the shape here: nobody came within +595 m of the certified distance, and even the tightest runner in the group over-read by 2.82% — still well outside the 0.5–1.5% a GPS watch is expected to add on any course.
And the median lands on the drawn route. The median over-read is +820 m; the organiser's own published line is +753 m longer than certified. Those agree to 66 m — around 0.3% of the course. The typical runner ran the map's bend-following line, and that line is roughly +753 m longer than the number on the certificate.
Every one of them passed within 2 m of the certified turn point and turned at almost exactly half their total distance. Nobody took a wrong turn. They ran the same course, on the same line, and all came up long together.
Line B cannot go on the table above. The certificate fixes its length, its start, its turn and its streets, but not its shape between those points. Two things would close it:
Until one of those lands, the honest statement is the narrow one: my track matches the published route to 0.45%, the published route is +753 m longer than the certified distance it claims to depict, and the discrepancy does not localise anywhere along the course.
Everything above is derived from these five things. Nothing on this page is a recollection or an estimate. Where a file was downloaded, its SHA-256 prefix is given so you can confirm you're looking at the same bytes I was.
sha256 db4a0dc0b903fc69…sha256 2514238ffe85fa2f….lines.route[1], line_id 1173, named "21K" — this is
the line the site's own 21K checkbox draws
(showhideLine(myRD.lines.route[1], this)). Its display_length field reads
21098. Map credited to RacePoint, created_by
craigstevenlaw, last updated 2026-06-23.sha256 2b986cea428a5b17… · retrieved 2026-08-18sha256 fadae5a7131f4235…analyze-three-lines.mjs · sha256 cdbdae6f23075136…label-bins.mjs · sha256 73fdd0ae0322f05d…three-lines.json · sha256 c1bcf16181301c5c…line_id 2671, "21K Markers", at
21.06 km. An earlier version of this page treated it as a
measurement line and localised a deviation against it. No control on the race's map renders it,
it sits a median 0 m from line A, and it differs only by cutting diagonal chords across corners — in
places straight through buildings. It is a coarser drawing of the same route. Every hotspot built on
it was an artifact, and all of it is withdrawn.If you think any of this is wrong, the fastest way to show it is to check the two certificates against the map data yourself — both are one click away. Corrections are welcome and will be published.
Your GPS file is one more data point toward an answer that no screenshot can give. It's measured in your own browser — the raw file never has to leave your device unless you choose to archive it — and it goes into a median, not a headline. Pick your distance:
Brown Family Sports Inc. · rebuilt 2026-08-19 · Sources: certificate CAN-2025-056A (World Athletics / AIMS, via acroad.ca) · racepoint.ca race_data_x_86.json · COROS GPX. Raw files, hashes and the analysis script are archived; the earlier conclusion drawn from the “21K Markers” line (21.06 km) is withdrawn.