Transit report card
How 119 Canadian transit agencies compare on four things riders feel: frequent service near home, how much service there is for each resident, how early and late it runs, and how much is left on weekends. Built November 5, 2026 from each agency's published schedule and the 2021 census. For how reliably they actually run, see which agencies run on time.
- A 4
- B 27
- C 55
- D 30
- F 3
| Agency | Grade | ||||||
|---|---|---|---|---|---|---|---|
| 1 | Toronto Transit Commission Toronto, ON | A 3.9 | A 87% | A 2.9 h | A 24 h | B 75% | 2,794,356 |
| 2 | TransLink Vancouver Vancouver +30, BC | A 3.8 | A 54% | A 2.0 h | A 24 h | B 68% | 2,642,182 |
| 3 | Société Transport Montréal Montréal +14, QC | A 3.8 | A 51% | A 2.0 h | A 24 h | B 65% | 2,004,235 |
| 4 | MiWay Mississauga, ON | A 3.5 | A 52% | A 1.8 h | A 24 h | C 53% | 717,961 |
| 5 | BC Transit Victoria Saanich +20, BC | B 3.5 | B 32% | B 1.8 h | A 22.5 h | C 62% | 394,755 |
| 6 | Kingston Transit Kingston +1, ON | B 3.5 | C 25% | B 1.6 h | A 22.4 h | B 71% | 150,428 |
| 7 | Réseau Transport Capitale Québec +4, QC | B 3.5 | B 41% | B 1.6 h | A 23.4 h | C 58% | 588,777 |
| 8 | Hamilton Street Railway Hamilton, ON | B 3.4 | B 34% | B 1.5 h | A 22.7 h | C 63% | 569,353 |
| 9 | Winnipeg Transit Winnipeg, MB | B 3.3 | B 44% | A 1.9 h | A 21.4 h | D 40% | 749,607 |
| 10 | Brampton Transit Brampton +1, ON | B 3.3 | B 34% | B 1.7 h | A 23.9 h | C 52% | 733,061 |
| 11 | Guelph Transit Guelph, ON | B 3.2 | C 27% | B 1.6 h | A 21.5 h | C 56% | 143,740 |
| 12 | Calgary Transit Calgary +1, AB | B 3.2 | D 15% | A 1.9 h | A 23.0 h | C 64% | 1,328,947 |
| 13 | Grand River Transport Kitchener +4, ON | B 3.2 | B 31% | B 1.3 h | A 21.6 h | C 58% | 565,228 |
| 14 | Halifax Transit Halifax +2, NS | B 3.1 | C 23% | B 1.7 h | A 21.3 h | C 52% | 440,042 |
| 15 | London Transit Commission London, ON | B 3.1 | C 22% | B 1.6 h | A 20.6 h | C 53% | 422,324 |
| 16 | Burlington Transit Burlington, ON | B 3.1 | B 45% | C 1.0 h | A 20.7 h | C 50% | 186,948 |
| 17 | Whitehorse Transit Whitehorse, YT | B 3.1 | C 19% | A 2.5 h | C 16.0 h | A 95% | 28,201 |
| 18 | Edmonton Transit Service Edmonton +5, AB | B 3.0 | C 21% | B 1.7 h | A 23.7 h | C 50% | 1,277,183 |
| 19 | OC Transpo Ottawa, ON | B 3.0 | D 14% | B 1.7 h | A 24 h | C 54% | 1,017,449 |
| 20 | BC Transit Whistler Whistler, BC | B 3.0 | F 0% | A 4.2 h | A 22.4 h | A 100% | 13,982 |
| 21 | Thunder Bay Transit Thunder Bay, ON | B 2.9 | D 15% | B 1.2 h | B 18.7 h | B 69% | 108,843 |
| 22 | Roam Transit Canmore +2, AB | B 2.9 | F 0% | A 2.2 h | B 19.0 h | A 104% | 25,299 |
| 23 | Ville de Drummondville Drummondville, QC | B 2.9 | D 10% | A 3.3 h | B 18.9 h | C 57% | 79,258 |
| 24 | GOVA Transit Greater Sudbury / Grand Sudbury, ON | B 2.7 | C 16% | C 1.0 h | B 19.3 h | C 61% | 166,004 |
| 25 | Transit Windsor Windsor +2, ON | B 2.7 | C 24% | C 1.0 h | A 20.7 h | D 44% | 285,905 |
| 26 | Réseau Transport Longueuil Longueuil +4, QC | B 2.7 | D 6% | B 1.7 h | A 22.0 h | D 46% | 436,785 |
| 27 | Saskatoon Transit Saskatoon, SK | B 2.6 | D 10% | B 1.3 h | B 19.4 h | C 53% | 266,141 |
| 28 | Durham Region Transit Oshawa +7, ON | B 2.6 | D 12% | C 0.8 h | A 24 h | C 60% | 696,867 |
| 29 | Transport en Commun Mont Tremblant Mont-Tremblant, QC | B 2.6 | F 0% | C 0.9 h | A 20.1 h | A 102% | 10,992 |
| 30 | BC Transit Kamloops Kamloops +1, BC | B 2.5 | D 6% | C 1.1 h | B 19.9 h | C 53% | 101,817 |
| 31 | BC Transit Kelowna Kelowna +6, BC | B 2.5 | D 13% | C 0.9 h | A 21.7 h | D 49% | 215,007 |
| 32 | Codiac Transpo Moncton +2, NB | C 2.5 | D 6% | C 1.1 h | B 18.2 h | C 63% | 128,168 |
| 33 | Société Transport Laval Laval, QC | C 2.5 | F 0% | B 1.3 h | A 23.0 h | C 61% | 438,366 |
| 34 | Barrie Transit Barrie, ON | C 2.4 | F 0% | C 1.0 h | A 20.2 h | B 68% | 147,829 |
| 35 | Société Transport Outaouais Gatineau, QC | C 2.4 | F 0% | A 1.8 h | A 20.9 h | D 42% | 291,041 |
| 36 | Regina Transit Regina, SK | C 2.4 | F 0% | B 1.4 h | B 19.8 h | C 54% | 226,404 |
| 37 | Société de Transport de Sherbrooke Sherbrooke, QC | C 2.4 | F <1% | B 1.8 h | A 21.5 h | D 38% | 172,950 |
| 38 | Red Deer Transit Red Deer, AB | C 2.4 | F 1% | C 1.1 h | B 18.9 h | B 66% | 100,844 |
| 39 | BC Transit Nanaimo Nanaimo +11, BC | C 2.4 | F 2% | C 1.0 h | A 20.0 h | C 59% | 150,121 |
| 40 | Sault Ste. Marie Transit Sault Ste. Marie, ON | C 2.3 | D 6% | C 1.1 h | B 18.2 h | C 57% | 72,051 |
| 41 | Oakville Transit Oakville, ON | C 2.3 | D 13% | C 1.0 h | B 18.6 h | D 38% | 213,759 |
| 42 | BC Transit Sunshine Coast Sechelt +6, BC | C 2.3 | F 0% | C 1.1 h | A 20.5 h | C 57% | 29,131 |
| 43 | STC Pierre de Saurel Sorel-Tracy +2, QC | C 2.3 | F 0% | C 0.9 h | A 21.3 h | C 60% | 39,319 |
| 44 | BC Transit Prince George Prince George +9, BC | C 2.2 | F 0% | C 0.9 h | A 20.9 h | C 60% | 87,635 |
| 45 | Société Transport Lévis Lévis +1, QC | C 2.1 | F 4% | C 1.0 h | B 19.7 h | D 36% | 156,500 |
| 46 | Belleville Transit Belleville, ON | C 2.1 | F 0% | C 0.9 h | B 19.2 h | C 60% | 55,071 |
| 47 | BC Transit Squamish Squamish +4, BC | C 2.1 | F 0% | C 0.9 h | B 19.5 h | C 58% | 24,134 |
| 48 | Niagara Region Transit St. Catharines +5, ON | C 2.1 | F 3% | C 0.9 h | B 18.5 h | C 56% | 363,718 |
| 49 | Timmins Transit Timmins, ON | C 2.1 | D 13% | C 0.9 h | C 16.9 h | D 49% | 41,145 |
| 50 | York Region Transit Markham +8, ON | C 2.1 | F 2% | C 0.9 h | A 23.8 h | D 44% | 1,173,103 |
| 51 | Metrobus Transit St. John's +2, NL | C 2.1 | F <1% | C 1.1 h | B 18.3 h | C 55% | 155,959 |
| 52 | exo Sainte Julie Sainte-Julie, QC | C 2.1 | F 0% | B 1.5 h | A 20.8 h | F 23% | 30,045 |
| 53 | exo Sud Ouest Châteauguay +5, QC | C 2.1 | F 0% | C 0.9 h | A 21.9 h | D 49% | 129,920 |
| 54 | Brandon Transit Brandon, MB | C 2.1 | F 0% | D 0.7 h | A 20.2 h | C 57% | 51,313 |
| 55 | Cornwall Transit Cornwall, ON | C 2.0 | D 8% | D 0.7 h | C 17.9 h | C 54% | 47,845 |
| 56 | BC Transit Salt Spring Island Saltspring Island, BC | C 2.0 | F 0% | D 0.6 h | C 17.2 h | A 90% | 11,635 |
| 57 | T3 Transit Charlottetown +2, PE | C 2.0 | C 16% | C 0.8 h | C 16.3 h | D 45% | 56,310 |
| 58 | Lethbridge Transit Lethbridge, AB | C 2.0 | F 0% | C 0.8 h | B 18.3 h | C 61% | 98,406 |
| 59 | BC Transit Revelstoke Revelstoke, BC | C 2.0 | F 0% | C 0.8 h | D 15.8 h | A 80% | 8,275 |
| 60 | exo Sorel Varennes Varennes +3, QC | C 2.0 | F 0% | C 1.2 h | A 21.9 h | F 29% | 49,759 |
| 61 | BC Transit Fraser Valley Region Abbotsford +13, BC | C 1.9 | F 0% | D 0.6 h | B 19.3 h | C 59% | 309,094 |
| 62 | exo Terrebonne Mascouche Terrebonne +1, QC | C 1.9 | F 0% | C 0.8 h | A 21.0 h | D 42% | 171,127 |
| 63 | exo Laurentides Saint-Jérôme +15, QC | C 1.9 | F 0% | D 0.8 h | A 22.1 h | D 45% | 407,005 |
| 64 | Regional Municipality of Wood Buffalo Wood Buffalo, AB | C 1.9 | F 0% | C 1.0 h | B 18.9 h | D 42% | 72,326 |
| 65 | Temiskaming Transit Temiskaming Shores +1, ON | C 1.9 | F 0% | D 0.8 h | C 16.9 h | B 68% | 10,623 |
| 66 | North Bay Transit North Bay, ON | C 1.9 | F 0% | C 1.0 h | B 18.3 h | D 47% | 52,662 |
| 67 | Fredericton Transit Fredericton +1, NB | C 1.8 | F 0% | B 1.2 h | C 17.0 h | D 45% | 64,186 |
| 68 | Orillia Transit Orillia, ON | C 1.8 | F 0% | C 0.9 h | C 16.5 h | C 59% | 33,411 |
| 69 | Société de Transport de Trois Rivières Trois-Rivières, QC | C 1.8 | F 0% | C 0.8 h | B 18.8 h | D 45% | 139,163 |
| 70 | BC Transit Powell River Powell River +2, BC | C 1.8 | F 0% | C 1.0 h | C 16.4 h | C 58% | 16,937 |
| 71 | exo Richelieu Beloeil +7, QC | C 1.8 | F 0% | C 0.9 h | A 21.1 h | F 25% | 82,527 |
| 72 | exo L'Assomption Repentigny +5, QC | C 1.8 | F 0% | D 0.6 h | A 22.0 h | D 39% | 142,512 |
| 73 | Ville de Saint Jean sur Richelieu Saint-Jean-sur-Richelieu, QC | C 1.7 | F 0% | D 0.5 h | A 20.8 h | D 43% | 97,873 |
| 74 | exo Chambly Richelieu Carignan Chambly +4, QC | C 1.7 | F 0% | C 0.8 h | A 21.0 h | F 25% | 64,802 |
| 75 | Société Transport Shawinigan Shawinigan, QC | C 1.7 | F 0% | D 0.5 h | C 17.8 h | C 63% | 49,620 |
| 76 | Medicine Hat Transit Medicine Hat, AB | C 1.7 | F 0% | D 0.6 h | C 16.2 h | B 67% | 63,271 |
| 77 | BC Transit Hazelton Terrace +12, BC | C 1.7 | F 0% | C 0.9 h | C 17.1 h | D 49% | 27,283 |
| 78 | BC Transit Merritt Merritt +1, BC | C 1.7 | F 0% | D 0.6 h | C 16.2 h | B 67% | 8,688 |
| 79 | exo Le Richelain Roussillon Saint-Constant +5, QC | C 1.7 | F 0% | C 0.9 h | A 22.0 h | F 11% | 112,629 |
| 80 | Milton Transit Milton, ON | C 1.6 | F 0% | D 0.6 h | B 18.5 h | D 46% | 132,979 |
| 81 | Saint John Transit Saint John +3, NB | C 1.6 | F 0% | D 0.7 h | B 18.1 h | D 42% | 105,607 |
| 82 | Sarnia Transit Sarnia +1, ON | C 1.6 | F 0% | C 0.9 h | C 16.1 h | C 51% | 73,977 |
| 83 | BC Transit Comox Valley Courtenay +6, BC | C 1.6 | F 0% | D 0.5 h | B 18.3 h | D 47% | 63,287 |
| 84 | Société Transport Rimouski Rimouski, QC | C 1.6 | F 0% | D 0.4 h | C 16.5 h | B 65% | 48,935 |
| 85 | Lindsay Transit Kawartha Lakes, ON | C 1.5 | F 0% | F 0.3 h | D 14.9 h | A 100% | 79,247 |
| 86 | exo La Presqu'île Vaudreuil-Dorion +7, QC | C 1.5 | F 0% | D 0.5 h | A 20.0 h | F 23% | 118,064 |
| 87 | BC Transit West Kootenay Nelson +15, BC | D 1.5 | F 0% | C 0.8 h | B 18.4 h | F 20% | 53,671 |
| 88 | BC Transit Campbell River Campbell River +4, BC | D 1.5 | F 0% | D 0.6 h | C 16.6 h | C 53% | 40,704 |
| 89 | BC Transit North Okanagan Vernon +8, BC | D 1.5 | F 0% | D 0.6 h | C 16.0 h | C 57% | 89,386 |
| 90 | BC Transit Port Alberni Port Alberni +3, BC | D 1.4 | F 0% | D 0.5 h | D 15.9 h | C 58% | 21,951 |
| 91 | BC Transit Cowichan Valley North Cowichan +15, BC | D 1.4 | F 0% | D 0.5 h | B 18.4 h | D 35% | 79,050 |
| 92 | Stratford Transit Stratford, ON | D 1.4 | D 6% | C 0.9 h | D 15.9 h | F 7% | 33,232 |
| 93 | Grande Prairie Transit Grande Prairie, AB | D 1.3 | F 0% | D 0.5 h | D 15.2 h | C 57% | 64,141 |
| 94 | BC Transit South Okanagan Similkameen Penticton +9, BC | D 1.3 | F 0% | D 0.5 h | C 16.9 h | D 38% | 74,282 |
| 95 | BC Transit Prince Rupert Prince Rupert, BC | D 1.2 | F 0% | C 0.9 h | D 14.9 h | D 34% | 12,300 |
| 96 | Ville de Rouyn Noranda Rouyn-Noranda, QC | D 1.1 | F 0% | F 0.3 h | D 15.7 h | D 45% | 42,313 |
| 97 | Gabriola Community Shuttle Nanaimo B, BC Old schedule | D 1.1 | F 0% | D 0.6 h | F 11.4 h | C 50% | 4,500 |
| 98 | St. Thomas Transit St. Thomas, ON | D 1.1 | F 0% | F 0.3 h | F 10.5 h | C 60% | 42,840 |
| 99 | Ride CK Chatham-Kent, ON | D 1.0 | F 0% | F 0.3 h | D 14.9 h | D 46% | 103,988 |
| 100 | Prince Albert Transit Prince Albert, SK | D 1.0 | F 0% | D 0.6 h | D 15.4 h | F 26% | 37,756 |
| 101 | Hinton Transit Hinton, AB | D 1.0 | F 0% | F 0.4 h | F 13.4 h | C 50% | 9,817 |
| 102 | BC Transit Fort St. John Fort St. John, BC | D 0.9 | F 0% | D 0.5 h | F 13.3 h | D 42% | 21,465 |
| 103 | Ville de Saint Hyacinthe Saint-Hyacinthe, QC Old schedule | D 0.8 | F 0% | F 0.3 h | C 16.2 h | F 12% | 57,239 |
| 104 | Orangeville Transit Orangeville, ON | D 0.8 | F 0% | F 0.3 h | D 14.2 h | D 42% | 30,167 |
| 105 | Yellowknife Transit Yellowknife, NT | D 0.8 | F 0% | D 0.5 h | F 13.1 h | D 32% | 20,340 |
| 106 | BC Transit East Kootenay Cranbrook +8, BC | D 0.8 | F 0% | F 0.3 h | D 15.0 h | F 27% | 49,543 |
| 107 | BC Transit Quesnel Quesnel +3, BC | D 0.8 | F 0% | D 0.5 h | D 14.0 h | F 28% | 16,183 |
| 108 | Miramichi Transit Miramichi, NB | D 0.8 | F 0% | D 0.5 h | F 11.2 h | D 31% | 17,692 |
| 109 | BC Transit Mt. Waddington Port Hardy +5, BC | D 0.7 | F 0% | D 0.6 h | F 12.4 h | F 15% | 7,233 |
| 110 | BC Transit Ashcroft Cache Creek Clinton Cache Creek, BC | D 0.7 | F 0% | C 0.9 h | F 7.8 h | F 0% | 969 |
| 111 | Midland Transit Midland +1, ON | D 0.7 | F 0% | F 0.3 h | F 12.3 h | D 37% | 27,894 |
| 112 | BC Transit Williams Lake Williams Lake, BC | D 0.7 | F 0% | D 0.5 h | F 13.4 h | F 18% | 10,947 |
| 113 | BC Transit Smithers Smithers +1, BC | D 0.7 | F 0% | F 0.3 h | F 11.9 h | D 30% | 6,852 |
| 114 | Simcoe County LINX New Tecumseth +5, ON | D 0.7 | F 0% | F 0.2 h | D 15.6 h | F 9% | 169,293 |
| 115 | Quinte Transit Quinte West +1, ON | D 0.6 | F 0% | F 0.2 h | D 15.0 h | F 15% | 72,264 |
| 116 | BC Transit 100 Mile House One Hundred Mile House, BC | D 0.5 | F 0% | D 0.5 h | F 9.4 h | F 0% | 1,928 |
| 117 | Moose Jaw Transit Moose Jaw, SK Old schedule | F 0.4 | F 0% | F 0.3 h | F 11.3 h | F 0% | 33,665 |
| 118 | BC Transit Dawson Creek Dawson Creek, BC | F 0.3 | F 0% | F 0.3 h | F 9.9 h | F 0% | 12,323 |
| 119 | BC Transit Creston Creston, BC | F 0.3 | F 0% | F 0.3 h | F 8.9 h | F 0% | 5,583 |
Not graded
Regional and intercity services mostly stop where another agency is the main local service, so dividing their service among those residents would mislead. Their schedules are still measured on their own pages.
- Aquabus · Regional service · stops reach 39,615 residents
- BC Ferries · Regional service · stops reach 4,513 residents
- BC Transit Clearwater · Regional service · stops reach 3,898 residents
- BC Transit Pemberton Valley · Regional service · stops reach 4,052 residents
- Bili · Regional service · stops reach 20,238 residents
- Denman Island Bus Service · Regional service · stops reach 430 residents
- exo · Regional service · stops reach 109,194 residents
- Flixbus Central · Regional service · stops reach 3,639 residents
- Flixbus Eastern · Regional service · stops reach 131,317 residents
- Flixbus Mountain · Regional service · stops reach 37,535 residents
- Flixbus Pacific · Regional service · stops reach 6,104 residents
- Flixbus Saskatchewan · Regional service · stops reach 27,980 residents
- GO Transit · Regional service · stops reach 773,421 residents
- Grand River Transport Ion · Regional service · stops reach 32,554 residents
- Hornby Island Bus · Regional service · stops reach 467 residents
- Hullo Ferries · Regional service · stops reach 2,884 residents
- L'Inter des Laurentides · Regional service · stops reach 21,306 residents
- Maritime Bus · Regional service · stops reach 36,341 residents
- Middlesex County Connect · Regional service · stops reach 14,118 residents
- MRC Haut Saint-Laurent · Regional service · stops reach 8,712 residents
- MRC Montcalm · Regional service · stops reach 19,596 residents
- Ontario Northland · Regional service · stops reach 70,635 residents
- PC Connect · Regional service · stops reach 20,013 residents
- Réseau Express Métropolitain · Regional service · stops reach 61,879 residents
- Ride Norfolk · Regional service · stops reach 6,016 residents
- RITC Transcollines · Regional service · stops reach 42,520 residents
- Société Traversiers Quebec · Regional service · stops reach 4,146 residents
- Toronto Harbour Ferries · Regional service · stops reach 15,395 residents
- Union Pearson Express · Regional service · stops reach 31,023 residents
- VIA Rail · Regional service · stops reach 139,708 residents
- West Coast Trail Express · Regional service · stops reach 4,953 residents
How the grades work
- Frequent service nearby
- The share of residents who live within 500 m, in a straight line, of a stop where one route comes every 15 minutes or better in the same direction in every hour from 7:00 a.m. to 7:00 p.m. on a weekday.
- Service per resident
- Scheduled hours in service in a typical week, times 52, divided by residents. Each trip counts from its first departure to its last arrival, so time between trips is left out.
- Service day
- Hours from the first weekday departure anywhere on the network to the last.
- Weekend service
- Saturday and Sunday service hours as a share of a weekday's. A day without service counts as none.
| Measure | A | B | C | D |
|---|---|---|---|---|
| Frequent service nearby | 50%+ | 30%+ | 15%+ | 5%+ |
| Service per resident | 1.8 h+ | 1.2 h+ | 0.8 h+ | 0.4 h+ |
| Service day | 20.0 h+ | 18.0 h+ | 16.0 h+ | 14.0 h+ |
| Weekend service | 80%+ | 65%+ | 50%+ | 30%+ |
Each measure earns 0 to 4 points, F to A, with partial points between grade lines. The overall grade is their average, rounded like a grade point average, and agencies are ranked by it. Grade lines are fixed rather than curved, so a grade changes only when that agency's service does.
Agencies are graded on the municipalities they mainly serve: those where their stops reach more residents than any other agency's, and at least 10% of them. An agency whose stops mostly reach people elsewhere is listed as regional. A typical week is the busiest weekday, Saturday and Sunday in the next two weeks of each schedule. Where people live comes from the population of each census dissemination area, spread evenly over its land. Straight-line distance overstates how close some stops are on foot, so these figures are a ceiling on real access.