How it works
Most journey planners tell you the fastest way. TravelPlaner also tells you how likely you are to arrive on time and when to leave, based on how the buses, trams and trains on your route have actually run.
- Departures checked in the last 24 hours
- …
- Stops with a track record
- …
- Lines with a track record
- …
- Days of history collected
- …
In four steps
We watch every departure
Every 3 minutes we read Ruter's live feed for the whole network: every bus, tram, metro and ferry in Oslo and Akershus. We also check the busiest hubs for trains and other operators. For each departure we note when it should have left and when it actually left. The difference is the delay.
We build a track record
Those delays add up to a track record for every line at every stop, for each weekday and hour. For example: “bus 31 at Majorstuen on weekday mornings is usually 2 minutes late, and about 1 in 10 times more than 6 minutes late.”
We adjust for today
If a bus is already running late right now, we take that into account, most strongly for departures leaving soon. Rain, snow and strong wind in the weather forecast make late departures a bit more likely.
We check your changes
When a journey has a change, we work out how likely you are to miss the next service, counting the walk between stops. If you might miss it, we count the wait for the following one.
What the numbers mean
| You see | What it means |
|---|---|
| Chance on time | How often a trip like this gets you there by your arrival time. “9 in 10” means that on 9 days out of 10, it would. |
| Leave by | When to leave the door to catch this journey, including a couple of minutes to reach the stop. |
| Buffer | How many extra minutes to allow if you want to be on time 9 times out of 10. If you're signed in, you can pick 8 or 9.5 in 10 on your profile instead. |
| Fastest vs most reliable | The quickest journey isn't always the safest. When a slightly slower one is much more dependable, we point it out. |
| Risk (low, moderate, high) | A quick summary of the chance on time, and of how tight your changes are. |
| Score (0–100) | The chance on time, lowered a little when the unlucky days tend to be very late. |
How much to trust it
Every estimate shows a confidence label, so you know how much history it is based on:
- High: hundreds of observed departures at your stops at this time of day.
- Medium: some history, or history borrowed from nearby times.
- Low: little or no history yet. We then use cautious typical values for that kind of transport. Treat the number as a rough guide.
When a stop has too little history, we widen the view step by step: the same stop at nearby hours, then the whole line, then typical values. We tell you whenever we do.
The AI model
Next to the track-record statistics, we are training a machine-learning model: an AI that learns delay patterns from weeks of history, such as how rain, the time of day and each line interact. It could make estimates sharper. But it only replaces the current method if it proves itself:
- Tested on days it has never seen. It learns from older days and is graded on the most recent week. It has to beat the current method there.
- Tried quietly first. A promising model runs in the background next to real searches, and its guesses are compared with what actually happened, before anyone sees them.
- Switched on by a person. The model is never activated automatically. The track-record method stays as a safety net and takes over at once if the model has a problem.
- Explanations stay the same. Live delays, changes and confidence labels work exactly as described above. The model only sharpens the delay pattern of each ride.
A fair test needs about three weeks of collected history, so the first real evaluation is expected in mid-October 2026. The box above always shows which method is producing the estimates right now.
What it can't do
- It is an estimate, never a guarantee. Unusual days (accidents, strikes, big events) can be very different.
- Outside the Ruter area, only journeys through the busiest hubs have their own track record; others use line-wide or typical values.
- The weather effects are careful assumptions until there is enough history to measure them.
- We treat each ride in a journey separately, although on a bad day delays often come together.
Technical details, for the curious
- On time means arriving by your deadline. For “depart at” and “leave now” searches it means arriving no more than 3 minutes after the timetable.
- Track record: delays are stored per line, stop, weekday and hour (Norwegian time) as a histogram in one-minute steps, from 1 minute early to 30 minutes late. The most specific group with at least 20 observations is used: same stop, weekday and hour, then the same day type (Mon–Fri, Saturday, Sunday), then ±1 hour, then the whole line by day type and hour, then the whole line, then a default for the mode.
- Live delays move a ride's delay pattern 90% of the way towards the reported delay for departures within 30 minutes, fading to no adjustment 3 hours ahead.
- Weather stretches late delays by +10% for rain (≥ 0.5 mm/h), +20% for heavy rain (≥ 2 mm/h), +35% for snow or sleet and +10% for strong wind (≥ 15 m/s), capped at +60%.
- Changes are missed when the first ride's delay uses up the gap minus the walking time. Only half of the next ride's usual lateness is counted in your favour; a live delay counts in full. After a missed change or a cancellation, the expected wait comes from how often the line runs.
- Confidence: high means at least 200 stop-level observations for every ride, medium at least 30, low otherwise or whenever a default is used. Risk: low when the score is ≥ 80, moderate when it is ≥ 60, high below that, and raised when a change has a 10% (moderate) or 30% (high) chance of being missed. The score is lowered by up to 15% when the worst 5% of outcomes are much later than allowed.
- AI model: LightGBM, predicting the chance of each delay range for one stop call from the line, stop, transport mode, time of day, weekday and weather. It is evaluated with log loss, Brier score, median delay error and calibration against the statistical method on the most recent 7 days.