Train VR 67 Helsinki – Oulu

Helsinki 14:14 → Oulu 23:10 Mon, Tue, Wed, Thu, Fri, Sun 8 h 56 min · 21 stops VR (Finland)

Running now · updated 15:54

Between Kouvola and Mäntyharju +1 min

Estimated arrival at Oulu 23:11 · 50 km/h

  1. Helsinki14:14
  2. Lahti15:06
  3. Kouvola15:37
  4. Mäntyharju16:24
  5. Pieksämäki17:33
  6. Siilinjärvi18:57
  7. Oulu23:10

Today it is running worse than usual: typical arrival delay is −2 min; 97% of the last 30 runs arrived on time.

On-time · 30 days
97%
29/30 runs under 3 min
RT coverage: 29 full · 1 partial · 0 no data
On-time · 90 days
92%
83/90 runs under 3 min
RT coverage: 89 full · 1 partial · 0 no data
Typical delay
−1min
Median at arrival, 90 days
30 days: −2 min
P90
+2min
9 in 10 runs arrive with less than this
30 days: +2 min

Last 30 days

Arrival delay at Oulu, in minutes. One bar per run.

  • On time (<3 min)
  • 3–10 min
  • 10–30 min
  • 30+ min
  • Partial coverage
  • No data

Worst days

  • Mon 3 Aug Max en route +120 min · last fix heading to — +120 min
  • Wed 26 Aug Max en route +57 min · last fix heading to — +57 min
  • Sat 8 Aug Max en route +43 min · last fix heading to — +36 min
  • Thu 17 Sept Max en route +28 min · last fix heading to — +28 min
  • Tue 18 Aug Max en route +16 min · last fix heading to — +16 min

Distribution · 90 days

90 runs with a known final delay. On time = under 3 min, the same cut the map uses.

  • Early 59% · 53
  • On time 33% · 30
  • 3–10 min 2% · 2
  • 10–30 min 2% · 2
  • 30+ min 3% · 3

On-time by weekday

  • 85% M n=13
  • 92% T n=13
  • 92% W n=13
  • 92% T n=13
  • 100% F n=13
  • 92% S n=12
  • 92% S n=13

Stops and timetable

Timetable of the latest run from the operator’s GTFS (21 stops).

StopSched.Today
14:14Passed
14:19 / 14:20Passed
14:29 / 14:31Passed
15:06 / 15:08Passed
15:37 / 15:47Passed
16:24 / 16:25Next
16:48 / 16:52
17:33 / 17:37
17:59 / 18:02
18:30 / 18:38
18:57 / 18:58
19:19 / 19:20
19:37 / 19:39
20:04 / 20:05
20:32 / 21:02
21:20 / 21:22
21:35 / 21:36
22:08 / 22:09
22:29 / 22:30
22:44 / 22:45
23:10

Each run is closed into train_runs (country, train number, service day) from the live positions. Final delay = last delay seen. Partial coverage: the feed stopped before the final stop (last value used, hatched in the chart). No data: a run without any valid delay; counts as neither on time nor late. Data collected since 11 July 2026.

Recent runs

DateLast stopFinalMax
Fri 9 OctKouvola 15:49Partial coverage0 min+3 min
Thu 8 OctOulu 23:39−2 min+1 min
Wed 7 OctOulu 23:39−2 min+2 min
Tue 6 OctOulu 23:39−2 min+21 min
Mon 5 OctOulu 23:39−1 min+1 min
Sun 4 OctOulu 23:33−5 min+1 min
Sat 3 Oct— 21:03+2 min+2 min
Fri 2 Oct— 23:37−2 min+1 min
Thu 1 Oct— 23:38−2 min+1 min
Wed 30 Sept— 23:56−2 min+1 min
Tue 29 Sept— 23:39−1 min+3 min
Mon 28 Sept— 23:37−2 min+3 min
Sun 27 Sept— 23:39−1 min+1 min
Sat 26 Sept— 21:04+2 min+2 min
Fri 25 Sept— 23:38−2 min—
Thu 24 Sept— 23:39−1 min+1 min
Wed 23 Sept— 23:42+2 min+4 min
Tue 22 Sept— 23:39−3 min+1 min
Mon 21 Sept— 23:36−3 min+28 min
Sun 20 Sept— 23:36−4 min+2 min
Sat 19 Sept— 20:47+1 min—
Fri 18 Sept— 23:37−3 min+1 min
Thu 17 Sept— 23:11+28 min+28 min
Wed 16 Sept— 21:170 min—
Tue 15 Sept— 23:35−4 min—
Mon 14 Sept— 23:410 min+2 min
Sun 13 Sept— 23:37−3 min+1 min
Sat 12 Sept— 21:17+1 min—
Fri 11 Sept— 23:38−2 min+1 min
Thu 10 Sept— 23:39−1 min+2 min