VIA Rail 643 Ottawa – Toronto

View line VIA Rail

Ottawa 08:29 → Toronto 13:18 Daily 4 h 49 min · 13 stops VIA Rail

Running now · updated 11:07

Between Kingston and Napanee +31 min

Estimated arrival at Toronto 13:49 13:18 · 102 km/h

  1. Ottawa08:29
  2. Smiths Falls09:17
  3. Kingston10:32
  4. Napanee10:57
  5. Belleville11:17
  6. Cobourg11:57
  7. Toronto13:18

Today it is running worse than usual: typical arrival delay is +21 min; 6% of the last 16 runs arrived on time.

On-time · 30 days
6%
1/16 runs under 3 min
RT coverage: 15 full · 1 partial · 14 no data
On-time · 90 days
6%
1/16 runs under 3 min
RT coverage: 15 full · 1 partial · 74 no data
Typical delay
+21min
Median at arrival, 90 days
30 days: +21 min
P90
+39min
9 in 10 runs arrive with less than this
30 days: +39 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

  • Wed 14 Oct Max en route +47 min · last fix heading to Toronto +45 min
  • Sun 11 Oct Max en route +43 min · last fix heading to Toronto +41 min
  • Fri 9 Oct Max en route +37 min · last fix heading to Toronto +37 min
  • Tue 20 Oct Max en route +31 min · last fix heading to Kingston +31 min
  • Fri 16 Oct Max en route +31 min · last fix heading to Toronto +31 min

Distribution · 90 days

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

  • Early 0% · 0
  • On time 6% · 1
  • 3–10 min 19% · 3
  • 10–30 min 44% · 7
  • 30+ min 31% · 5

On-time by weekday

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

Stops and timetable

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

StopSched.Today
08:29Passed
08:45 / 08:50Passed
09:17 / 09:20Passed
09:49 / 09:52Passed
10:32 / 10:36Passed
10:57 / 10:59Next
11:17 / 11:20
11:31 / 11:33
11:57 / 11:59
12:07 / 12:09
12:35 / 12:38
12:58 / 13:00
13:18

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
Tue 20 OctKingston 11:04Partial coverage+31 min+31 min
Mon 19 OctToronto 13:27+9 min+13 min
Sun 18 OctToronto 13:43+24 min+26 min
Sat 17 OctToronto 13:190 min+3 min
Fri 16 OctToronto 13:49+31 min+31 min
Thu 15 OctToronto 13:46+28 min+28 min
Wed 14 OctToronto 14:03+45 min+47 min
Tue 13 OctToronto 13:45+27 min+27 min
Mon 12 OctToronto 13:29+11 min+17 min
Sun 11 OctToronto 13:59+41 min+43 min
Sat 10 OctToronto 13:25+8 min+13 min
Fri 9 OctToronto 13:55+37 min+37 min
Thu 8 OctToronto 13:34+17 min+22 min
Wed 7 OctToronto 13:34+16 min+18 min
Tue 6 OctToronto 13:33+16 min+19 min
Mon 5 OctToronto 13:26+8 min+9 min
Sun 4 OctToronto 13:19No data—
Sat 3 OctToronto 13:17No data—
Fri 2 OctToronto 13:17No data—
Thu 1 OctToronto 13:17No data—
Wed 30 SeptToronto 13:17No data—
Tue 29 SeptToronto 13:17No data—
Mon 28 SeptToronto 13:17No data—
Sun 27 SeptToronto 13:17No data—
Sat 26 SeptToronto 13:17No data—
Fri 25 SeptToronto 13:17No data—
Thu 24 SeptToronto 13:17No data—
Wed 23 SeptToronto 13:17No data—
Tue 22 SeptToronto 13:17No data—
Mon 21 SeptToronto 13:17No data—