GPX route difficulty analyzer

Upload a GPX file, or pick one of the routes recorded on the author's own rides, and this tool scores the difficulty from 0 to 100, draws a grade-coloured elevation profile, points out the hardest kilometres and estimates how long the ride will take you based on your FTP. Everything runs locally in your browser: the file never leaves your device.

...or upload your own GPX file

The analysis runs entirely in your browser: the GPX file is never uploaded. The 0-100 score is our own scale; next to it we show the classic grand tour category of the biggest climb on the route.

How is route difficulty calculated?

The GPX file gives us track points with coordinates and elevation. Distance comes from the haversine formula on the earth ellipsoid, and the track is resampled to even steps. Elevation gain is summed with threshold smoothing, which discards GPS noise, and gradients are measured over 100 metre windows so that a single bad point cannot inflate the maximum. Those components feed the score:

score 0-100 = weighted sum of four components:
  - route distance
  - elevation gain per kilometre
  - the steepest sections (100 m windows)
  - surface (paved / unpaved)

climb category = average gradient [%] x length [m]
  (classic thresholds: 8000 -> Cat 4 ... 80000 -> HC)

The exact weights and thresholds of our scale are our own calibration, tuned against routes the author has ridden personally, so they are described qualitatively rather than published as raw coefficients. The climb category, by contrast, uses the classic, openly stated product of gradient and length. The ride time estimate is built segment by segment from the same physics model as the climb time calculator.

Why a score at all, when Strava already shows elevation gain? Because gain alone misranks routes: 30 km with sharp ramps can be harder than 60 flat kilometres with the same total climbing spread thinly. The score puts distance, gain density, steepness and surface into one number, and the A-E class translates it into the kind of rider the route suits. For a single climb rather than a whole route, use the climb time calculator, and set your zones first in the FTP calculator so the time estimate is grounded in your real fitness.

Frequently asked questions

What makes a cycling route difficult?
Four things: distance, elevation gain per kilometre, the steepest sections, and surface. A 19 mile route with 2,000 ft of climbing tires you more than a flat 37 miles. The 0-100 score here combines all four into one number, and the A-E letter translates that into the level of rider the route actually suits.
How is elevation gain calculated from a GPX file?
GPS elevation data is noisy: a head unit can invent tens of metres of climbing on a flat road. So we only sum rises larger than a threshold of a few metres, a standard technique called threshold smoothing. It means our figure can be lower than the raw total your app shows, and closer to what your legs experienced.
What do the climb categories HC, 1, 2, 3 and 4 mean?
They are the grand tour convention: Cat 4 is a short, easy climb, Cat 1 is long and steep, and HC (hors catégorie, beyond category) is reserved for the hardest mountains. In practice the category follows the product of average gradient and climb length. We show the category of the biggest climb on the route alongside our own 0-100 score.
How accurate is the ride time estimate?
Time is computed segment by segment from a physics model assuming a steady all-day pace (70% of FTP) and descents capped at 34 mph, with no stops, wind or traffic. For typical routes it lands within 10-15% of real riding time. Treat it as a floor to which you add breaks.
Is my GPX file uploaded anywhere?
No. The whole analysis happens in your browser: the file is read locally, processed and never sent. You can safely analyse private routes, including ones that start at your front door.