VIA Rail 641 Ottawa – Toronto

View line VIA Rail

Ottawa 04:13 → Toronto 08:48 Mon, Tue, Wed, Thu 4 h 35 min · 9 stops VIA Rail

Running now · updated 07:38

Between Belleville and Cobourg +34 min

Estimated arrival at Toronto 09:22 08:48 · 128 km/h

  1. Ottawa04:13
  2. Fallowfield04:30
  3. Brockville05:32
  4. Kingston06:16
  5. Belleville06:56
  6. Cobourg07:31
  7. Toronto08:48

Today it is running worse than usual: typical arrival delay is +22 min; 13% of the last 8 runs arrived on time.

On-time · 30 days
13%
1/8 runs under 3 min
RT coverage: 7 full · 1 partial · 10 no data
On-time · 90 days
13%
1/8 runs under 3 min
RT coverage: 7 full · 1 partial · 44 no data
Typical delay
+22min
Median at arrival, 90 days
30 days: +22 min
P90
+51min
9 in 10 runs arrive with less than this
30 days: +51 min

Last 30 days

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

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

Worst days

  • Tue 6 Oct Max en route +77 min · last fix heading to Toronto +72 min
  • Thu 8 Oct Max en route +47 min · last fix heading to Toronto +42 min
  • Thu 15 Oct Max en route +30 min · last fix heading to Cobourg +30 min
  • Wed 7 Oct Max en route +26 min · last fix heading to Toronto +26 min
  • Tue 13 Oct Max en route +20 min · last fix heading to Toronto +18 min

Distribution · 90 days

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

  • Early 0% · 0
  • On time 13% · 1
  • 3–10 min 0% · 0
  • 10–30 min 50% · 4
  • 30+ min 38% · 3

On-time by weekday

  • 0% M n=2
  • 0% T n=2
  • 50% W n=2
  • 0% T n=2
  • — F n=0
  • — S n=0
  • — S n=0

Stops and timetable

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

StopSched.Today
04:13Passed
04:30 / 04:33Passed
05:00 / 05:02Passed
05:32 / 05:34Passed
06:16 / 06:19Passed
06:56 / 06:59Passed
07:31 / 07:33Next
07:41 / 07:43
08:48

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 10 July 2026.

Recent runs

DateLast stopFinalMax
Thu 15 OctCobourg 07:34Partial coverage+30 min+30 min
Wed 14 OctToronto 08:49+2 min+7 min
Tue 13 OctToronto 09:06+18 min+20 min
Mon 12 OctToronto 08:59+11 min+14 min
Thu 8 OctToronto 09:30+42 min+47 min
Wed 7 OctToronto 09:14+26 min+26 min
Tue 6 OctToronto 10:00+72 min+77 min
Mon 5 OctToronto 08:59+11 min+11 min
Thu 1 OctToronto 08:47No data—
Wed 30 SeptToronto 08:48No data—
Tue 29 SeptToronto 08:47No data—
Mon 28 SeptToronto 08:47No data—
Thu 24 SeptToronto 08:47No data—
Wed 23 SeptToronto 08:47No data—
Tue 22 SeptToronto 08:47No data—
Mon 21 SeptToronto 08:47No data—
Thu 17 SeptToronto 08:47No data—
Wed 16 SeptToronto 08:47No data—
Tue 15 SeptToronto 08:47No data—
Mon 14 SeptToronto 08:47No data—
Thu 10 SeptToronto 08:47No data—
Wed 9 SeptToronto 08:47No data—
Tue 8 SeptToronto 08:47No data—
Mon 7 SeptToronto 08:47No data—
Thu 3 SeptToronto 08:47No data—
Wed 2 SeptToronto 08:47No data—
Tue 1 SeptToronto 08:47No data—
Mon 31 AugToronto 08:48No data—
Thu 27 AugToronto 08:47No data—
Wed 26 AugToronto 08:47No data—