Brown Family Sports · course analysis

Three lines, 500 metres at a time

2026 Servus Edmonton Half Marathon · 16 August 2026 · what the organiser published, what was certified, and what my watch recorded

tl;dr

The plain-English version

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.

This replaces an earlier version that was wrong. That version treated a second polyline in the organiser's map data, labelled “21K Markers”, as a measurement line and localised a deviation against it. It is not a measurement line — it is a coarser drawing of the same route that cuts diagonal chords across corners. Every hotspot built on it was an artifact. This page is built only on sources that can be cited and checked, and it reaches a different conclusion.

The three lines

21.85 km

A · Posted

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.

21.10 km

B · Certified

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.

21.95 km

C · My GPX

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.

The map

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.

Whole course — 21.85 km
Pick a segment above to zoom in.

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.

What the certificate actually says

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:

“From start line on Jasper Av to finish line at same location, measured for certification runners restricted to Right of Centre in outbound & return directions, all corners are to be coned and marshalled.” — and separately, “All Km Waypoint locations (each km) are GPS referenced.”

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.

Checking both against the certificate's two fixed points

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:

Certified start/finish → nearest point on posted line
1.1 m
Certified start/finish → nearest point on my track
10.1 m
Certified turn point → nearest point on my track
0.9 m
Certified turn point → nearest point on posted line
51.7 m

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.

Every 500 m, side by side

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 kmStreetsTheir mapMy watchDifferenceTypically offWorst off
0.00–0.50Jasper Av500507.6+7.62.013.5
0.50–1.00Jasper Av500504.2+4.21.93.6
1.00–1.50Jasper Av500499.9-0.12.76.5
1.50–2.00Jasper Av500501.9+1.94.96.1
2.00–2.50Jasper Av500499.1-0.94.76.1
2.50–3.00Jasper Av500506.9+6.95.06.6
3.00–3.50Jasper Av → 102 Av500492.3-7.72.06.1
3.50–4.00102 Av500499.9-0.13.45.0
4.00–4.50102 Av → 130 St → 104 Av500482.0-18.03.98.3
4.50–5.00104 Av → 132 St → 102 Av MUP500497.9-2.11.42.5
5.00–5.50102 Av MUP → 102 Av → St. George's Cr500504.1+4.12.63.3
5.50–6.00St. George's Cr500492.0-8.01.63.4
6.00–6.50St. George's Cr → Ravine Dr500504.9+4.91.73.3
6.50–7.00Ravine Dr500503.7+3.71.32.1
7.00–7.50Ravine Dr → 142 St → Summit Dr500499.4-0.62.14.0
7.50–8.00Summit Dr → Riverside Dr500502.6+2.61.02.5
8.00–8.50Riverside Dr → 95 Av500504.2+4.21.23.0
8.50–9.0095 Av → 142 St → Valleyview Dr500495.8-4.24.04.9
9.00–9.50Valleyview Dr500506.6+6.61.93.7
9.50–10.00Valleyview Dr → 91 Av → 139 St500493.7-6.30.92.3
10.00–10.50139 St → 90 Av → Valleyview Cr500500.6+0.60.93.1
10.50–11.00Valleyview Cr500608.4+108.41.929.6
11.00–11.50Valleyview Cr → Valleyview Dr500496.6-3.43.65.5
11.50–12.00Valleyview Dr → 90 Av → 140 St500508.3+8.32.24.4
12.00–12.50140 St → 91 Av → Valleyview Dr500499.3-0.73.14.8
12.50–13.00Valleyview Dr → 142 St500503.4+3.41.13.6
13.00–13.50142 St → 95 Av500496.7-3.31.43.5
13.50–14.0095 Av → Riverside Dr500496.1-3.91.93.3
14.00–14.50Riverside Dr → Summit Dr500504.9+4.91.33.8
14.50–15.00Summit Dr → 142 St → Ravine Dr500496.9-3.13.56.2
15.00–15.50Ravine Dr500499.9-0.12.84.6
15.50–16.00Ravine Dr → St. George's Cr500494.1-5.91.44.7
16.00–16.50St. George's Cr → 102 Av500494.6-5.41.53.6
16.50–17.00102 Av → 132 St500497.0-3.01.53.9
17.00–17.50132 St → 104 Av → 130 St500491.9-8.11.83.0
17.50–18.00130 St → 102 Av500497.0-3.03.39.4
18.00–18.50102 Av → 124 St500506.3+6.33.57.6
18.50–19.00124 St → Jasper Av500500.5+0.57.412.0
19.00–19.50Jasper Av500494.8-5.22.010.5
19.50–20.00Jasper Av500501.7+1.75.48.0
20.00–20.50Jasper Av500500.9+0.94.911.4
20.50–21.00Jasper Av500500.0-0.02.08.7
21.00–21.50Jasper Av500504.4+4.47.411.7
21.50–21.85Jasper Av351356.4+5.54.07.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.

Where the extra distance builds up

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:

Certified distance at the turn (assumed half)
10549 m
My distance at the turn
10979 m
Excess, start → turn
+430 m (4.08%)
Excess, turn → finish
+422 m (4%)

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.

So what actually happened?

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:

Me vs the route they published
+98 m  (11.5%)
Their published route vs the certified distance
+753 m  (88.5%)

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.

Careful — that chorded line is not the answer. Its shortcuts reach 56 m and cut diagonally across intersections, through corner lots and buildings. No runner can take those lines, so its length is not a route anyone could run and I am not claiming it is the certified geometry. What it does give is a bracket: the real measured line has to sit between a drawing that follows every bend (21851 m) and one that cuts corners no human could (21065 m). The certified 21097.5 m sits near the bottom of that bracket — which is exactly where a properly measured shortest-possible route should sit.

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.

Now with 5 runners

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.

Runners over-reading the certified distance
5 of 5
Tightest track of the group
+595 m  (2.82%)
Median over-read
+820 m  (3.88%)
Widest track of the group
+987 m  (4.68%)
Typical GPS over-read for any road race
0.5–1.5%
Every runner's distance from the posted line
~1.5 m median
Every runner's closest pass to the certified turn point
within 2 m

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.

Two honest caveats on this group. 4 tracks is a small sample, self-selected from runners who were already curious about the distance — that skews toward people whose watches read long. And most were exported through a third-party service that applies its own processing before you get the file; a separate analysis of the same runners using noise-reduction landed 150–200 m lower than these raw figures. It reached the same conclusion by the same reasoning, but the exact metres depend on the method, and I would rather show the conservative raw number and say so. More tracks would fix both problems.

What is still missing, precisely

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:

1. The per-km GPS waypoints from Marcel LaMontagne's full measurement report — the certificate states they exist. Twenty-one certified points would let the certified line be chained at 1 km and compared directly.

2. More tracks. One watch cannot separate “the course ran long” from “this watch read long”. A median across many runners can. That is what the upload endpoints are for.

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.

Sources

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.

1 · The certified course
World Athletics / AIMS International Measurement Certificate CAN-2025-056A — 21097.5 m, measurer Marcel LaMontagne (AIMS Grade A), measured 2026-05-31, race date 2026-08-16, administrator Bernard Conway, expires 2029-12-31.
acroad.ca/certificates/2026/CAN-2025-056A.pdf
sha256 db4a0dc0b903fc69…
A second certificate, CAN-2025-108A ("Edmonton 2026 West Half Marathon"), carries an identical map sheet — same source, sha256 2514238ffe85fa2f….
Found via the Athletics Canada certified-course register: acroad.ca → Course Measurement → Certified Courses. Retrieved 2026-08-18.
2 · The published route
The race's own interactive map, reached from edmontonmarathon.caracepoint.ca/maps/edmonton.html?r=21, which loads racepoint.ca/json/race_data_x_86.json. Line A is 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-18
3 · My track
COROS watch export, 2026-08-16, gun 7:45 am. 5,094 track points at 1 s sampling, median step 2.93 m, no dropouts. Raw and jitter-filtered distances differ by only 7 m.
sha256 fadae5a7131f4235…
4 · Street names
Reverse geocoded from OpenStreetMap via the Nominatim API, sampling each segment's start, midpoint and end, then abbreviated to match the certificate's own conventions. Map data © OpenStreetMap contributors, ODbL. Basemap tiles © CARTO. Retrieved 2026-08-18.
5 · The analysis
Chainage by monotone map-matching onto line A, seeded at index 0 and capped at 3× actual movement per step — both guards matter, because the course is a loop and has an out-and-back pinch where a naive matcher jumps the gap. Distances are haversine on a sphere of radius 6 371 008.8 m. Certificate coordinates were transcribed from a raster map sheet and the ambiguous digits resolved by testing which reading lands on the road.
analyze-three-lines.mjs · sha256 cdbdae6f23075136…
label-bins.mjs · sha256 73fdd0ae0322f05d…
three-lines.json · sha256 c1bcf16181301c5c…
× · What I retracted
The same JSON contains 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.

Ran Edmonton on August 16? Add your track.

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.