VIA Rail 47 Ottawa – Toronto

View line VIA Rail

Ottawa 12:23 → Toronto 17:30 Daily 5 h 07 min · 10 stops VIA Rail

Running now · updated 15:02

Between Kingston and Belleville +8 min

Estimated arrival at Toronto 17:38 17:30 · 114 km/h

  1. Ottawa12:23
  2. Smiths Falls13:18
  3. Brockville13:54
  4. Kingston14:45
  5. Belleville15:26
  6. Guildwood16:58
  7. Toronto17:30

Today it is running worse than usual: typical arrival delay is +7 min; 47% of the last 15 runs arrived on time.

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

  • Mon 5 Oct Max en route +60 min · last fix heading to Toronto +60 min
  • Fri 9 Oct Max en route +35 min · last fix heading to Toronto +32 min
  • Tue 6 Oct Max en route +37 min · last fix heading to Toronto +29 min
  • Tue 13 Oct Max en route +34 min · last fix heading to Toronto +28 min
  • Wed 7 Oct Max en route +36 min · last fix heading to Toronto +27 min

Distribution · 90 days

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

  • Early 0% · 0
  • On time 47% · 7
  • 3–10 min 7% · 1
  • 10–30 min 33% · 5
  • 30+ min 13% · 2

On-time by weekday

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

Stops and timetable

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

StopSched.Today
12:23Passed
12:40 / 12:44Passed
13:18 / 13:20Passed
13:54 / 13:57Passed
14:22 / 14:24Passed
14:45 / 14:49Passed
15:26 / 15:30Next
16:33 / 16:36
16:58 / 17:00
17:30

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
Mon 19 OctBelleville 14:59Partial coverage+7 min+12 min
Sun 18 OctToronto 17:43+14 min+19 min
Sat 17 OctToronto 17:310 min+4 min
Fri 16 OctToronto 17:50+20 min+22 min
Thu 15 OctToronto 17:310 min+5 min
Wed 14 OctToronto 17:310 min+3 min
Tue 13 OctToronto 17:58+28 min+34 min
Mon 12 OctToronto 17:310 min+5 min
Sun 11 OctToronto 17:310 min+8 min
Sat 10 OctToronto 17:310 min+10 min
Fri 9 OctToronto 18:02+32 min+35 min
Thu 8 OctToronto 17:310 min+4 min
Wed 7 OctToronto 17:57+27 min+36 min
Tue 6 OctToronto 17:59+29 min+37 min
Mon 5 OctToronto 18:29+60 min+60 min
Sun 4 OctToronto 17:31No data—
Sat 3 OctToronto 17:31No data—
Fri 2 OctToronto 17:29No data—
Thu 1 OctToronto 17:29No data—
Wed 30 SeptToronto 17:29No data—
Tue 29 SeptToronto 17:29No data—
Mon 28 SeptToronto 17:29No data—
Sun 27 SeptToronto 17:29No data—
Sat 26 SeptToronto 17:29No data—
Fri 25 SeptToronto 17:29No data—
Thu 24 SeptToronto 17:30No data—
Wed 23 SeptToronto 17:29No data—
Tue 22 SeptToronto 17:29No data—
Mon 21 SeptToronto 17:29No data—
Sun 20 SeptToronto 17:29No data—