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:25

Between Lahti and Kouvola 0 min

Estimated arrival at Oulu 23:10 · 83 km/h

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

Today it is running worse than usual: typical arrival delay is −1 min; 100% of the last 28 runs arrived on time.

On-time · 30 days
100%
28/28 runs under 3 min
RT coverage: 27 full · 1 partial · 2 no data
On-time · 90 days
93%
82/88 runs under 3 min
RT coverage: 87 full · 1 partial · 2 no data
Typical delay
−1min
Median at arrival, 90 days
30 days: −1 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

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

  • Early 56% · 49
  • On time 38% · 33
  • 3–10 min 1% · 1
  • 10–30 min 2% · 2
  • 30+ min 3% · 3

On-time by weekday

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

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:47Next
16:24 / 16:25
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
Wed 21 OctKouvola 15:24Partial coverage0 min—
Tue 20 OctOulu 23:33−6 min+3 min
Mon 19 OctOulu 23:400 min+2 min
Sun 18 OctOulu 23:41−1 min+8 min
Sat 17 OctKajaani 21:04+2 min+2 min
Fri 16 OctOulu 23:39−1 min+3 min
Thu 15 OctOulu 23:38−2 min+2 min
Wed 14 OctOulu 23:39−1 min+3 min
Tue 13 OctOulu 23:35−4 min+1 min
Mon 12 OctOulu 23:38−2 min+4 min
Sun 11 Oct— 23:38No data—
Sat 10 Oct— 21:02No data—
Fri 9 OctOulu 23:390 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