VIA Rail 646 Toronto – Ottawa
Alerts for train 646
Alerts are saved per line, not per trip id, so they keep working when the operator changes the timetable. This train runs on line VIA Rail.
It has not run yet today
Last recorded run: Friday 23 October +18 min
Next service: today 16:38 from Toronto · Sun 25 Oct
Last 30 days
Arrival delay at Ottawa, in minutes. One bar per run.
- On time (<3 min)
- 3–10 min
- 10–30 min
- 30+ min
- Partial coverage
- No data
Worst days
- Thu 22 Oct Max en route +118 min · last fix heading to Ottawa +118 min
- Sun 18 Oct Max en route +34 min · last fix heading to Ottawa +31 min
- Fri 16 Oct Max en route +29 min · last fix heading to Ottawa +25 min
- Fri 9 Oct Max en route +27 min · last fix heading to Ottawa +25 min
- Fri 23 Oct Max en route +22 min · last fix heading to Ottawa +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 0% · 0
- 3–10 min 0% · 0
- 10–30 min 75% · 6
- 30+ min 25% · 2
On-time by weekday
- — M n=0
- — T n=0
- — W n=0
- 0% T n=3
- 0% F n=3
- — S n=0
- 0% S n=2
Stops and timetable
Timetable of the latest run from the operator’s GTFS (5 stops).
| Stop | Sched. |
|---|---|
| 16:38 | |
| 17:09 / 17:11 | |
| 18:13 / 18:15 | |
| 20:23 / 20:26 | |
| 20:46 |
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
| Date | Last stop | Final | Max |
|---|---|---|---|
| Fri 23 Oct | Ottawa 21:04 | +18 min | +22 min |
| Thu 22 Oct | Ottawa 22:45 | +118 min | +118 min |
| Sun 18 Oct | Ottawa 21:17 | +31 min | +34 min |
| Fri 16 Oct | Ottawa 21:11 | +25 min | +29 min |
| Thu 15 Oct | Ottawa 21:02 | +16 min | +18 min |
| Sun 11 Oct | Ottawa 21:01 | +15 min | +22 min |
| Fri 9 Oct | Ottawa 21:11 | +25 min | +27 min |
| Thu 8 Oct | Ottawa 20:59 | +13 min | +16 min |
| Sun 4 Oct | Ottawa 20:47 | No data | — |
| Fri 2 Oct | Ottawa 20:45 | No data | — |
| Thu 1 Oct | Fallowfield 19:59Partial coverage | No data | — |
| Sun 27 Sept | Ottawa 20:45 | No data | — |
| Fri 25 Sept | Ottawa 20:45 | No data | — |
| Thu 24 Sept | Fallowfield 19:59Partial coverage | No data | — |
| Sun 20 Sept | Ottawa 20:45 | No data | — |
| Fri 18 Sept | Ottawa 20:45 | No data | — |
| Thu 17 Sept | Fallowfield 19:59Partial coverage | No data | — |
| Sun 13 Sept | Ottawa 20:45 | No data | — |
| Fri 11 Sept | Ottawa 20:45 | No data | — |
| Thu 10 Sept | Fallowfield 19:59Partial coverage | No data | — |
| Sun 6 Sept | Ottawa 20:45 | No data | — |
| Fri 4 Sept | Ottawa 20:45 | No data | — |
| Thu 3 Sept | Fallowfield 19:59Partial coverage | No data | — |
| Sun 30 Aug | Ottawa 20:45 | No data | — |
| Fri 28 Aug | Ottawa 20:45 | No data | — |
| Thu 27 Aug | Fallowfield 19:59Partial coverage | No data | — |
| Sun 23 Aug | Ottawa 20:45 | No data | — |
| Fri 21 Aug | Ottawa 20:45 | No data | — |
| Thu 20 Aug | Fallowfield 19:59Partial coverage | No data | — |
| Sun 16 Aug | Ottawa 20:46 | No data | — |