Analyze a Race Course

Understand the shape of a course before race day. Upload a GPX to break it into its major climbs and descents — each with length, gain, average grade, and steepness — and find the largest continuous ascent (the crux). The analysis runs in your browser; a trail and surface check sends the course only when you ask for it.

Drop a course GPX here, or click to choose

Your file stays on your device unless you choose to check its trails.

Know the course before you toe the line

A finish time is decided by a course's climbs — how many, how long, how steep, and where they fall. This tool reads a GPX and breaks the route into its major climbs and descents in the order you'll meet them, so you can plan effort, fuelling, and where to hold back. It works for any course: a race you found online, a rehearsal loop, or your own route.

Crux, longest, and steepest climbs

The crux, which we call the largest continuous ascent, is the climb that gains the most height — often the section that makes or breaks the day. The tool also flags the longest sustained climb and the steepest pitch, and labels every segment by average grade (gentle, moderate, steep, very steep, or extreme).

Match it to your training

Once you know the crux, use the route comparison tool to check that your rehearsal route rehearses similar climbing, or the race pages to open the official course directly.

Privacy

Your GPX is parsed in your browser, and the climb analysis runs there. The trail and surface check is the one exception: when you press its button, the course line and its heights (no names, times, heart rate or other file data) are sent to TrailSplits’ own router, which matches them to OpenStreetMap paths. They are used for that answer only and not stored.

Frequently asked questions

How do I analyze a race course?

Upload the course GPX (or open this tool from a race page to load the official course). TrailSplits breaks it into its major climbs and descents in order, with length, gain, average grade, and a steepness class for each — plus the largest continuous ascent and a climb-density read. A race page shows the same sections for its course.

How are climbs detected?

The heights are smoothed over 100 m either side, as for every route's climb on TrailSplits. Climb: Rises at 3 % or more, through dips of less than 30 m and flatter stretches shorter than 1 km, at least 50 m in all. Descents follow the same rules downhill; everything between is "Between climbs". The thresholds are the same for every course, so two courses compare.

What do the steepness labels mean?

They come from the average grade of a segment: gentle (under 4%), moderate (4–8%), steep (8–12%), very steep (12–20%), and extreme (20%+).

What is the "crux"?

We call it the largest continuous ascent: The climb that gains the most height. A climb rises at 3 % or more (read over 400 m), carries on through dips of less than 30 m and flatter stretches shorter than 1 km, and rises at least 50 m in all. It is the climb that gains the most, not necessarily the steepest or the slowest part of the day; the tool also flags the longest and steepest climbs.

Is it free and private?

Yes. It is free, and the climb analysis runs entirely in your browser. Only if you press “Check trails and surfaces” are the course line and its heights (nothing else from the file) sent to TrailSplits’ own router, which matches them to OpenStreetMap paths and does not store them.