Routing methodology

How AusBUG calculates a bicycle route

AusBUG does not simply find the shortest line. We assign different costs to paths, streets and roads, then ask BRouter to find the lowest-cost legal connection. This page documents the production rules, their trade-offs and their current limits.

Production methodologyReviewed 7 August 2026Applies to the AusBUG web, iOS and Android route planners
Overview

The short version

Network data

OpenStreetMap roads, paths, access rules, surfaces and bicycle-route relations.

Routing engine

A self-hosted BRouter service using AusBUG's custom bicycle profiles.

Rider preference

Paths, Paths / Lanes, or Paths / Lanes / Roads changes the cost of each option.

Decision

BRouter searches the connected network for the route with the lowest total cost.

Safe preference, not a safety guarantee

A low cost means a way matches the selected profile. It is not a certification that the infrastructure is safe, open, comfortable or suitable for every rider. Conditions can differ from the map, and every rider must use their own judgement.

Process

From two points to one route

1

Waypoints

The start, finish and any points placed between them.

2

Preferences

A routing profile plus the unpaved and ferry switches.

3

Network

BRouter matches the points to its OpenStreetMap-derived network.

4

Cost search

Every candidate link receives access, distance, turn and elevation costs.

5

Result

The lowest-total-cost route is returned with geometry and route instructions.

Routes with intermediate waypoints are calculated one leg at a time so the route follows the points the rider deliberately placed. A waypoint is therefore an instruction, not merely a suggestion.

Core idea

What a routing cost means

Researchers often call this cost impedance. A cost factor of 1 is the baseline. A factor of 4 makes each metre of that link count roughly like four baseline metres during route selection. It does not make the physical road four times longer, and it is not the same as the ETA.

Simplified model

total route cost ≈ Σ(distance × way cost) + turns + access transitions + elevation

BRouter evaluates the complete connected route. It does not greedily choose the nicest-looking street one intersection at a time.

Using the Paths profile

1 km residential street × cost 4 = 4,000

3 km cycleway × cost 1 = 3,000

The three-kilometre cycleway can win, despite being much longer.

Using Paths / Lanes / Roads

1 km residential street × cost 1 = 1,000

3 km cycleway × cost 1.5 = 4,500

The direct residential street is likely to win.

These examples deliberately omit turns, elevation, access penalties and small profile adjustments. They explain the trade-off; they do not reproduce a complete BRouter calculation.

Preferences

The three AusBUG profiles

1

Paths

Makes a large detour worthwhile when it can keep the rider on dedicated paths.

cyabikepath
2

Paths / Lanes

Balances dedicated paths, recognised cycle routes and lower-order streets.

cyabalanced
3

Paths / Lanes / Roads

Prefers a more direct ride using residential streets and suitable roads.

cyaroads

Recognised cycling routes

In the balanced and roads profiles, an OpenStreetMap international, national, regional or local bicycle-route relation receives a baseline cost of 1 before applicable access, surface and direction penalties. The Paths profile deliberately ignores route-relation status and judges the way itself.

Production values

Cost factors by road and path type

The table below shows the normal base costs used by the current profiles. Lower is preferred. “Bicycle-designated” means the routing data includes a recognised bicycle permission or designation; it does not necessarily mean there is a protected lane.

AusBUG BRouter cost factors by profile and way type
Typical wayPathsPaths / LanesPaths / Lanes / Roads
Dedicated cycleway111.5
Paved residential street41.11
Paved service road41.31.2
Tertiary road, bicycle-designated811
Tertiary road, not bicycle-designated2021
Secondary road, bicycle-designated1021.5
Secondary road, not bicycle-designated3053
Primary road, bicycle-designated1543
Primary road, not bicycle-designated35108
Trunk road, bicycle-designatedBlocked610
Trunk road, not bicycle-designatedBlockedBlocked25
Steps404040

Values are rounded to omit a small 0.05 non-cycle-route adjustment.

The Paths profile’s unmarked tertiary, secondary and primary figures include its additional unsafe-road penalty of 5.

Track and path costs vary with surface, bicycle designation and OpenStreetMap track grade, so they cannot be represented by one honest number.

Beyond road class

Access, surfaces and other rules

Legal bicycle access

Ways tagged private, closed to bicycles, requiring a sidepath, or otherwise inaccessible receive very high costs. A way cost of 10,000 is BRouter’s effective “does not exist” value.

Dismounting and walking

Where bicycle access is unavailable but pedestrian access exists—including an explicitbicycle=dismount section—AusBUG adds an access penalty of 4 to the normal way cost. This preserves some connections but is not a literal walking-speed model.

One-way streets

Bicycle one-way rules and mapped contraflow exceptions are respected. If walking against the direction is legally possible, BRouter can apply a penalty: 4 on a local way, rising to 20, 30 or 50 on tertiary, secondary or primary roads. Roundabouts receive 60.

Unpaved preference

Surface tags and track grades affect path costs. Turning on “avoid unpaved” adds 20 to known unpaved ways. This is a strong deterrent, not an absolute prohibition, so an unavoidable unpaved connection can still be returned.

Steps

Steps are currently allowed but receive a cost factor of 40. They should normally appear only when they solve a connection that would otherwise require a large detour.

Ferries

Ferries are allowed by default with a 5.67 distance factor and a fixed entry penalty of 10,000. Turning on “avoid ferries” changes their cost to 10,000, which removes them from the available network.

Turns

A normal turn has a fixed cost of 90. Roundabouts have no standard turn cost. Recognised bicycle routes also avoid the ordinary turn penalty, helping BRouter stay on a coherent signed route.

Elevation

The profiles are elevation-aware. They use BRouter’s bicycle physics model and elevation buffers, with a 1.5% cutoff to reduce sensitivity to small slopes and elevation noise. Elevation can therefore change the chosen line as well as the initial time estimate.

A separate calculation

How ride time is estimated

The route cost above chooses the geometry. It is not presented to riders as minutes. BRouter returns an initial travel time, then AusBUG attempts to replace that with a community-based estimate after the route has drawn.

15 m

Route sampling interval

The route is sampled regularly to find nearby infrastructure speed data.

5+

Minimum observations

A segment needs at least five speed samples before its own average is used.

25 sec

Victorian signal allowance

Each clustered traffic-signal intersection found along a Victorian route adds an average delay.

  1. 1

    AusBUG matches points along the selected route to nearby OpenStreetMap cycling-infrastructure segments.

  2. 2

    Where enough aggregated rider observations exist, the segment’s observed average speed is used.

  3. 3

    Where evidence is sparse, AusBUG falls back to an infrastructure-category average, then an overall average. The final fallback is 18 km/h.

  4. 4

    In Victoria, mapped traffic signals along the route are clustered into intersections and an average 25-second delay is added for each one. No signal delay is currently added outside that dataset's coverage.

Route preference and ETA answer different questions

BRouter answers “which connected line best matches this preference?” The community model then answers “how long might riding that line take?” The fastest displayed ETA is not automatically the route with the lowest preference cost.

What riders see

Route choice versus map colours

Routing profile

The profile decides which line BRouter returns. The three production profiles chiefly use road class, dedicated cycleway/path status, bicycle designation, route relations, surface, access and direction.

Infrastructure display

After routing, AusBUG interprets returned OpenStreetMap tags to colour sections as separated or shared paths, protected, buffered or basic lanes, sharrows and ordinary roads.

A coloured protected-lane label does not prove that the production profile assigned a unique protected-lane cost. At present, lane protection types are more detailed in the display layer than in the three production routing cost functions.
Transparency

What production routing does not yet know

  • It does not currently use live motor-traffic volumes, congestion or Google traffic data when choosing a bicycle route.
  • It does not yet assign a formal Level of Traffic Stress (LTS) to every production road section and intersection.
  • Emergency, flood, fire, crash and community-hazard map layers do not currently alter the BRouter cost automatically.
  • The three production profiles do not comprehensively distinguish painted, buffered and physically protected on-road lanes during route selection.
  • OpenStreetMap is community maintained. Missing, outdated or inconsistent tags can produce an unexpected route or colour.
  • Routing tiles are snapshots rather than a live view of OpenStreetMap, so an OSM correction will not appear immediately.
  • A cost model cannot observe temporary construction, surface damage, personal confidence, accessibility needs or conditions on the ground.

AusBUG is researching traffic-stress routing and richer road-volume inputs separately. They will not be described as production behaviour until their data, direction handling and route outcomes have been validated.

FAQ

Common questions

Why did AusBUG use a road I was trying to avoid?

Most mismatches are penalised rather than absolutely blocked. If the safer network is disconnected, the alternative detour is extremely long, or OpenStreetMap lacks the expected tags, a short road section may still produce the lowest total cost. Try the Paths profile or place an intermediate waypoint.

Why is the Paths route so much longer?

Its residential-road cost is four times the dedicated-cycleway baseline, and major unmarked roads are penalised much more heavily. A substantial detour can therefore be intentional rather than an error.

Does ‘avoid unpaved’ guarantee a sealed route?

No. It adds a strong cost of 20 to known unpaved links. It cannot penalise an unknown or incorrectly mapped surface, and it can still use an unpaved link when that is the only practical connection.

Does AusBUG tell riders to walk through high-stress gaps?

Not automatically. It permits costly pedestrian-accessible links where cycling access is unavailable, including explicit dismount sections, but it does not currently convert every high-stress road into a walking segment.

Can I correct a routing problem?

Check the way in OpenStreetMap first. Correcting access, surface, cycleway, one-way or route-relation tagging improves the underlying public data. For an AusBUG profile issue, send us the start, finish, selected profile and a screenshot through the contact page.

Sources

Technical references

Want to discuss the methodology?

We welcome feedback from riders, researchers, planners and OpenStreetMap contributors.

Contact AusBUG