About RouteLab

RouteLab plans a bike route on the map and writes it out as a GPX or TCX with the cues you want on the day: the turns, when to eat, when to drink, and what power to hold on the long climb.

It runs entirely in your browser. There is no RouteLab server, no account, and no upload. Routes are kept in this browser's IndexedDB and go nowhere else. It is a sibling of CritLab and CrossLab, and the three share their settings, your FTP and weight, and the intervals.icu key.

Drawing a route

Routing comes from BRouter. Straight line draws exactly what you click, for trails the router doesn't know. Changing the terrain re-routes the whole route, except any imported track, which keeps its line; undo puts it back.

Terrain and skill

At every level, RouteLab never routes on a sidewalk, a footway crossing without bike access, or anything tagged as closed to bikes. That also means a click beside a road attaches to the road, not the pavement next to it. The gravel levels treat a main road with a bike lane like a quiet street, so they take the lane rather than zig-zag through the side streets around it. On the gravel and quiet-road levels a corner costs more too, so the route sticks to the through road unless a detour is really worth it.

On the gravel and mountain-bike levels the dirt stands out: unpaved stretches of your route are striped brown, and dirt roads and tracks are drawn on the map (solid for a dirt road, dashed for a track). Turn them off in the layers menu or Settings.

Trail ratings

With the trail overlay on (the layers button on the map), rated trails are drawn in the colour of their sign:

Hover a trail for its name and grade. Trails closed to bikes are faded and dashed. The rated trails your route rides are listed under the route, with the hardest one; they're shown as a band along the elevation profile, and Add trail cues puts one at the start of each (BLK Wood Rat).

The router itself can't use IMBA grades (BRouter doesn't read that tag); the skill levels steer by the S-scale. Ratings come from OpenStreetMap's Overpass service, which can take half a minute for a new area and is sometimes too busy to answer. RouteLab keeps trying in the background and keeps what it gets for a month.

The grades are only as good as the map: plenty of trails have no mtb:scale at all and are treated as rideable. Under the stats you can see what the route actually uses: how much is paved, gravel or trail, and the hardest graded trail on it. Check that before you trust a line through unfamiliar woods.

You can also start from something you already have: drop in a .gpx, .tcx or .fit, or, with intervals.icu connected, trace one of your past rides. An imported track keeps its exact line. Waypoints and course points already in the file come in as cues.

Cues

Custom cues are anchored by distance from the start. "Eat every 20 km" is about distance, not about whichever corner you happen to be at, so if you change the route the cues stay at their kilometre marks. A cue that ends up past the finish after an edit is flagged and left out of the export.

Turn cues come from the router and follow the road, so they move whenever the route does. Sharp turns, U-turns and roundabouts are included by default; slight turns and keep-left/right are optional in Settings.

The time estimate

Each cue shows an ETA, and the preview for a repeating cue shows roughly how much time is between them. The estimate comes from physics, not an average speed. On every stretch of road it finds the speed at which your power balances gravity on that gradient, rolling resistance and air drag. The power is the target of any power cue covering that stretch, and otherwise a share of your FTP (70% unless you change it). Downhill speed is capped at 55 km/h. Mass, CdA and rolling resistance are the shared values CritLab uses, so if CritLab has fitted your CdA, RouteLab uses it too.

Exporting

Every cue becomes a point exactly on the track: its position is interpolated along the line and inserted as a track point. A waypoint that is merely near the line can be ignored by a head unit, or placed at distance zero so it fires at the start.

Copy link makes a link that opens the route in RouteLab, cues and all. The route is packed into the link itself (the part after #, which browsers never send to a server), so nothing is uploaded. Whoever opens it gets their own copy, saved in their browser; editing it doesn't change yours. The roads are routed again when it opens, with the same terrain, so the line is the same unless the map has changed there since. An imported track is carried exactly, which makes the link longer; for a very long one, send the GPX instead.

Privacy

RouteLab asks other services for things, and each one sees only what it is asked about. Map tiles come from the OpenStreetMap community tile servers (OpenStreetMap, CyclOSM or OpenTopoMap), which see the area you are looking at. Routes come from brouter.de, which sees the two points of each leg. Open-Meteo is asked for elevation only on straight-line legs and on imports that have none. Nominatim sees what you type into the search box. The intervals.icu key goes only to intervals.icu, and only when you ask for a ride or your FTP.