Feed status · checked 2026-09-05
Edmonton Transit Service (ETS)
Based on the official feed source on file
Service mode Tram + Bus
First scorecard for this agency
Catalogued in Alberta, Canada.
A data-quality and completeness lens to help an agency improve its GTFS feed. Not an official compliance determination from any transit program. New to this? How to read your scorecard. Interactive view of this scorecard. Rubric v1.3, validator 8.0.1.
Measured 4 of 4 score categories from the official feed URL on file.
How we measured this
Confidence in this measurement: high.
- All four score categories were measured this run.
- Realtime was sampled in one bounded window of 9 snapshots.
- The feed was downloaded from the official feed URL on file.
Confidence describes how much the pipeline could measure this run, not the feed itself. It never changes the grade.
Top things to fix
Remove retired stops from the export, or add them back to the trips that should serve them.Likely your export tool
Some stops exist in the feed but no trip ever stops at them. Riders may walk to a stop where no transit vehicle is scheduled to arrive.
⏱ A review pass in your scheduling software.worth about +8 points in its category
Pick a darker/lighter route_text_color for the flagged routes.
Some route colors don't contrast with their text color. Route badges get hard to read, most of all for riders with low vision.
⏱ One field per route.worth about +4 points in its category
Drop the short name from route_long_name and keep the long name descriptive, like 'Downtown via 5th Ave'.
Some route long names repeat the route's short name inside them. Apps show both names together, so riders see the number twice, like '5 5 Downtown'.
⏱ One field per flagged route.worth about +4 points in its category
Finding handoff
Move one finding to a recheck
Select one finding. Copy the request, make the change in the feed-producing tool, then compare the next complete run.
- Feed evidence
- Some stops exist in the feed but no trip ever stops at them.
- Next action
- Remove retired stops from the export, or add them back to the trips that should serve them.
- Recheck
- Publish the changed feed at the same URL. On the next complete, comparable scorecard run, confirm that this finding is no longer reported.
Copy handoff text
- Feed evidence
- Some route colors don't contrast with their text color.
- Next action
- Pick a darker/lighter route_text_color for the flagged routes.
- Recheck
- Publish the changed feed at the same URL. On the next complete, comparable scorecard run, confirm that this finding is no longer reported.
Copy handoff text
- Feed evidence
- Some route long names repeat the route's short name inside them.
- Next action
- Drop the short name from route_long_name and keep the long name descriptive, like 'Downtown via 5th Ave'.
- Recheck
- Publish the changed feed at the same URL. On the next complete, comparable scorecard run, confirm that this finding is no longer reported.
Copy handoff text
How to make and check these changes
Check the result on the published feed. Read the guide, make the change in your tool, and use the next comparable run to see whether the finding is still reported. Only an action or ticket record can attribute who made the change.
Remove retired stops from the export, or add them back to the trips that should serve them. · Read the fix guide
Make the change. Make this change in whatever tool produces your feed, then re-export.
Check the result. The next scorecard run checks this finding again. If a comparable check no longer reports it, the feed's clearance log records that result. This confirms feed state, not who made the change. Self-check a feed before you publish.
Pick a darker/lighter route_text_color for the flagged routes. · Read the fix guide
Make the change. Make this change in whatever tool produces your feed, then re-export.
Check the result. The next scorecard run checks this finding again. If a comparable check no longer reports it, the feed's clearance log records that result. This confirms feed state, not who made the change. Self-check a feed before you publish.
Drop the short name from route_long_name and keep the long name descriptive, like 'Downtown via 5th Ave'.
Make the change. Make this change in whatever tool produces your feed, then re-export.
Check the result. The next scorecard run checks this finding again. If a comparable check no longer reports it, the feed's clearance log records that result. This confirms feed state, not who made the change. Self-check a feed before you publish.
Rider view: what this feed publishes
A quick read of rider-facing information in this feed.
- Schedule visibility
- The feed's last published service date is in 84 days.
- Published accessibility data
- Accessibility information is stated for 93.9% of stops and 100% of trips. This measures published data, not whether stops or vehicles are physically usable.
- Fare information
- Fare information is published using GTFS Fares v2.
- Realtime information
- Live-arrival data covered 90.6% of scheduled trips in the sampled window.
Important: This does not rate service reliability. Riders should confirm current service alerts, fares, and accessibility accommodations with the transit operator before traveling.
Send your vendor a fix request
You may not control the GTFS export yourself. Copy this and send it to whoever runs your scheduling software export. It names each fix with the validator notice and a guide link.
Score by category
The MobilityData validator flagged 6 kinds of issue across 270 instances (0 error, 267 warning, 3 informational).
Service data covers the next 84 days.
94% of stops state wheelchair accessibility (94% marked accessible, 0% marked not accessible). This measures what the feed publishes, not whether a stop is physically usable. Fare data is published.
94% of stops state accessibility (94% marked accessible). Reflects what the feed states, not verified physical usability.
2 accessibility depth signals
32 route badge(s) pair a color and text color below the WCAG 4.5:1 contrast bar (Capital, 202, 204, 205, 401, and more).
Consider: Adjust route_color or route_text_color so each pair clears 4.5:1. Often switching the text between black and white is enough.
6100 stop name(s) use abbreviations or symbols a screen reader may mispronounce, with no spoken form set ("50 Street & 122 Avenue", "Wayne Gretzky Drive S & 118 Avenue", "73 Street & 111 Avenue", and more).
Consider: Add tts_stop_name with the spoken form, e.g. 'Main Street and Second Avenue', for the affected stops.
Opportunities to strengthen the data, not deductions from the sub-score above. States what the second accessibility lens can check from the feed, not verified physical usability.
Fares are applied to trips.
Sampled 9 times: 3 of 3 configured feeds healthy; 90.6% of scheduled trips had live predictions; 90.2% of vehicles on their route; predictions ran a median of 0s behind schedule.
Routes and stops
Each route is drawn once, using the longest shape its trips follow; stops are the dots.
This feed has 6791 stops.
The route and stop data is ready below. Load the map only when you want the geographic view. It uses additional data.
Basemap: OpenFreeMap, © OpenStreetMap contributors. Routes and stops: this agency's GTFS feed.
- 001A (teal)
- 001B (teal)
- 002 (teal)
- 003 (teal)
- 004 (teal)
- 005 (teal)
- 006 (teal)
- 007 (teal)
- 008 (teal)
- 009 (teal)
- Capital (teal)
- Metro (red)
- Valley (green)
- 031 (orange)
- 051 (teal)
- 052 (teal)
- 053 (teal)
- 054 (teal)
- 055 (teal)
- 056 (teal)
- CapRep (teal)
- 101 (teal)
- 102 (teal)
- 103 (teal)
- 104 (teal)
- 106 (teal)
- 107 (teal)
- 108 (teal)
- 109 (teal)
- 110X (orange)
- 111 (teal)
- 112 (teal)
- 113 (teal)
- 114 (teal)
- 116 (teal)
- 117 (teal)
- 118 (teal)
- 119 (teal)
- 120X (orange)
- 121 (teal)
- 122 (teal)
- 124 (teal)
- 127 (teal)
- 128 (teal)
- 130X (orange)
- 140X (orange)
- 150X (orange)
- 201 (black)
- 202 (brown)
- 203 (black)
- 204 (teal)
- 205 (teal)
- 208 (pink)
- 211 (purple)
- 401 (orange)
- 403 (purple)
- 404 (yellow)
- 411 (gray)
- 413 (teal)
- 414 (pink)
- 415 (green)
- 420 (teal)
- 430 (gray)
- 430S (gray)
- 431 (brown)
- 432 (pink)
- 433 (gray)
- 433S (teal)
- 440 (red)
- 440S (red)
- 441 (yellow)
- 441S (red)
- 442 (pink)
- 442S (pink)
- 443 (white)
- 443S (white)
- 450 (teal)
- 451 (purple)
- 451S (purple)
- 500X (orange)
- 501 (teal)
- 502 (teal)
- 503 (teal)
- 504 (teal)
- 505 (teal)
- 506 (teal)
- 507 (teal)
- 508 (teal)
- 509A (teal)
- 509B (teal)
- 511 (teal)
- 512 (teal)
- 513 (teal)
- 514 (teal)
- 515 (teal)
- 516 (teal)
- 517 (teal)
- 518 (teal)
- 519 (teal)
- 521 (teal)
- 523 (teal)
- 524 (teal)
- 525 (teal)
- 526 (teal)
- 527 (teal)
- 540 (teal)
- 560 (teal)
- 589 (yellow)
- 610 (teal)
- 611 (teal)
- 612 (teal)
- 613 (teal)
- 614 (teal)
- 615 (teal)
- 616 (teal)
- 617 (teal)
- 618 (teal)
- 620 (teal)
- 621 (teal)
- 622 (teal)
- 623 (teal)
- 625 (teal)
- 626 (teal)
- 627 (teal)
- 628 (teal)
- 630 (teal)
- 631 (teal)
- 632 (teal)
- 633 (teal)
- 634 (teal)
- 635 (teal)
- 636 (teal)
- 638 (teal)
- 642 (teal)
- 646 (teal)
- 647 (teal)
- 650 (teal)
- 651 (teal)
- 652 (teal)
- 653 (teal)
- 654 (teal)
- 655 (teal)
- 656 (teal)
- 657 (teal)
- 658 (teal)
- 659 (teal)
- 660 (teal)
- 661 (teal)
- 662 (teal)
- 663 (teal)
- 664 (teal)
- 665 (teal)
- 667 (teal)
- 668 (teal)
- 669 (teal)
- 671 (teal)
- 673 (teal)
- 674 (teal)
- 678 (teal)
- 681 (teal)
- 682 (teal)
- 683 (teal)
- 684 (teal)
- 685 (teal)
- 691 (teal)
- 692 (teal)
- 700X (orange)
- 701 (teal)
- 702 (teal)
- 703 (teal)
- 704 (teal)
- 705 (teal)
- 706 (teal)
- 707 (teal)
- 708 (teal)
- 709 (teal)
- 712 (teal)
- 713 (teal)
- 715 (teal)
- 716 (teal)
- 717 (teal)
- 718 (teal)
- 719 (teal)
- 721 (teal)
- 722 (teal)
- 723 (teal)
- 724 (teal)
- 727 (teal)
- 729 (teal)
- 747 (teal)
- 900X (orange)
- 901 (teal)
- 902 (teal)
- 903 (teal)
- 904 (teal)
- 905 (teal)
- 906 (teal)
- 907 (teal)
- 908 (teal)
- 909 (teal)
- 910X (orange)
- 912 (teal)
- 913 (teal)
- 914 (teal)
- 915 (teal)
- 916 (teal)
- 917 (teal)
- 918A (teal)
- 918B (teal)
- 919 (teal)
- 920X (orange)
- 921 (teal)
- 922 (teal)
- 923 (teal)
- 924 (teal)
- 925 (teal)
- 926 (teal)
- 930X (orange)
- A12 (yellow)
- A13 (black)
- A14 (teal)
- A21 (brown)
- A22 (gray)
- A23 (black)
- A24 (orange)
- A3 (green)
- A31 (teal)
- A32 (pink)
- A33 (green)
- A4 (orange)
- A5 (teal)
- A6 (brown)
- A7 (pink)
- A8 (green)
- A9 (blue)
- F1 (teal)
- 600 (green)
- 610 (black)
- 611 (red)
- 1 (yellow)
- 10 (purple)
| Route | Type | Line color |
|---|---|---|
| 001A Downtown - Capilano | Bus | teal |
| 001B Downtown - Capilano | Bus | teal |
| 002 West Edmonton Mall - Stadium - Clareview | Bus | teal |
| 003 Westmount - Stadium | Bus | teal |
| 004 Lewis Farms - University - Capilano | Bus | teal |
| 005 Westmount - Downtown - Coliseum | Bus | teal |
| 006 Davies - Southgate | Bus | teal |
| 007 West Edmonton Mall - Downtown | Bus | teal |
| 008 Abbottsfield - Downtown - University | Bus | teal |
| 009 Southgate - Eaux Claires | Bus | teal |
| Capital Capital Line | Tram / light rail | teal |
| Metro Metro Line | Tram / light rail | red |
| Valley Valley Line | Tram / light rail | green |
| 031 Leger - University | Bus | orange |
| 051 Castle Downs - University | Bus | teal |
| 052 Northgate - West Edmonton Mall | Bus | teal |
| 053 West Clareview - Mill Woods | Bus | teal |
| 054 West Edmonton Mall - West Clareview | Bus | teal |
| 055 Meadows - Southgate - West Edmonton Mall | Bus | teal |
| 056 Meadows - Leger - West Edmonton Mall | Bus | teal |
| CapRep Capital Line Replacement Service | Bus | teal |
| 101 Stadium - Abbottsfield | Bus | teal |
| 102 Kingsway - Coliseum - Abbottsfield | Bus | teal |
| 103 Eaux Claires - Castle Downs - Kingsway | Bus | teal |
| 104 Coliseum - East Clareview | Bus | teal |
| 106 Dunvegan - Northgate - Belvedere | Bus | teal |
| 107 Belvedere - West Clareview | Bus | teal |
| 108 Belvedere - East Clareview | Bus | teal |
| 109 Northgate - Castle Downs - Hudson | Bus | teal |
| 110X Eaux Claires - Downtown | Bus | orange |
| 111 Concordia - Westmount | Bus | teal |
| 112 Castle Downs - Eaux Claires | Bus | teal |
| 113 West Clareview - Northgate | Bus | teal |
| 114 West Clareview - Coliseum | Bus | teal |
| 116 Abbottsfield - East Clareview | Bus | teal |
| 117 Eaux Claires - West Clareview | Bus | teal |
| 118 Eaux Claires - West Clareview | Bus | teal |
| 119 Eaux Claires - West Clareview | Bus | teal |
| 120X Eaux Claires - Government Centre | Bus | orange |
| 121 Clareview - Fraser - Evergreen | Bus | teal |
| 122 Eaux Claires - Lago Lindo - Klarvatten | Bus | teal |
| 124 Westmount - Eaux Claires | Bus | teal |
| 127 Northgate - White Oaks Square - Castle Downs | Bus | teal |
| 128 Northgate - Londonderry | Bus | teal |
| 130X Baturyn - Eaux Claires - Government Centre | Bus | orange |
| 140X Palisades - Kingsway Express | Bus | orange |
| 150X Rapperswill - Gov'T Centre | Bus | orange |
| 201 Downtown Edmonton Loop | Bus | black |
| 202 Kingsway Tc Via Nait | Bus | brown |
| 203 Uofa Via Westmount | Bus | black |
| 204 Uofa Express | Bus | teal |
| 205 West Edmonton | Bus | teal |
| 208 Government Centre Express | Bus | pink |
| 211 Downtown Edmonton Express | Bus | purple |
| 401 Ordze - Downtown | Bus | orange |
| 403 Ordze - Government Centre | Bus | purple |
| 404 Ordze - University Of Alberta | Bus | yellow |
| 411 Bethel - Downtown | Bus | gray |
| 413 Bethel - Government Centre | Bus | teal |
| 414 Bethel - University Of Alberta | Bus | pink |
| 415 Bethel - Nait | Bus | green |
| 420 Bethel - Millennium Place | Bus | teal |
| 430 Bethel - Emerald Hills | Bus | gray |
| 430S School Special | Bus | gray |
| 431 Bethel - Emerald Hills | Bus | brown |
| 432 Bethel - Summerwood | Bus | pink |
| 433 Bethel - Clarkdale | Bus | gray |
| 433S School Special | Bus | teal |
| 440 Bethel - Heritage Hills | Bus | red |
| 440S School Special | Bus | red |
| 441 Bethel - Ordze - Regency | Bus | yellow |
| 441S School Special | Bus | red |
| 442 Bethel - Nottingham | Bus | pink |
| 442S School Special | Bus | pink |
| 443 Bethel - Ordze - Glen Allan | Bus | white |
| 443S School Special | Bus | white |
| 450 Bethel - Centre In The Park | Bus | teal |
| 451 Bethel - Ordze - Woodbridge | Bus | purple |
| 451S School Special | Bus | purple |
| 460 Cambrian | Bus | pink (no shape in feed) |
| 500X Meadows - Macewan | Bus | orange |
| 501 Davies - Capilano | Bus | teal |
| 502 Davies - South Campus | Bus | teal |
| 503 Davies - Millbourne - Woodvale | Bus | teal |
| 504 Meadows - Davies | Bus | teal |
| 505 Davies - Pylypow Industrial | Bus | teal |
| 506 Davies - Meadows - Maple | Bus | teal |
| 507 Tamarack - Southgate | Bus | teal |
| 508 Meadows - Mill Woods | Bus | teal |
| 509A Mill Woods - Millbourne | Bus | teal |
| 509B Mill Woods - Millbourne | Bus | teal |
| 511 Mill Woods - Downtown | Bus | teal |
| 512 Mill Woods - South Edmonton Common | Bus | teal |
| 513 Mill Woods - Knottwood | Bus | teal |
| 514 Mill Woods - Millhurst | Bus | teal |
| 515 Mill Woods - Meadows | Bus | teal |
| 516 Mill Woods - Laurel - Meadows | Bus | teal |
| 517 Mill Woods - Southwood | Bus | teal |
| 518 Mill Woods - Century Park | Bus | teal |
| 519 Mill Woods - Century Park | Bus | teal |
| 521 Mill Woods - Century Park | Bus | teal |
| 523 Mill Woods - Downtown | Bus | teal |
| 524 Bonnie Doon - Holyrood | Bus | teal |
| 525 Bonnie Doon - Ritchie | Bus | teal |
| 526 Mill Woods - Millbourne Woodvale | Bus | teal |
| 527 Mill Woods - Millbourne | Bus | teal |
| 540 Beaumont To Edmonton | Bus | teal |
| 560 Spruce Grove - Downtown Edmonton | Bus | teal |
| 589 Edmonton Waste Management Centre - Coliseum | Bus | yellow |
| 610 O'Leary - Lago Lindo | Bus | teal |
| 611 Cardinal Leger - Lago Lindo | Bus | teal |
| 612 O'Leary - Brintnell | Bus | teal |
| 613 O'Leary - Rapperswill | Bus | teal |
| 614 O'Leary - Queen E. - Baturyn | Bus | teal |
| 615 Hudson - St. Carlo Acutis | Bus | teal |
| 616 Mary Butterworth - Lago Lindo - Klarvatten | Bus | teal |
| 617 Mary Butterworth - Eaux Claires | Bus | teal |
| 618 Sir John Thompson - Rapperswill | Bus | teal |
| 620 J.J. Bowlen - Lazerte - Brintnell | Bus | teal |
| 621 M.E. Lazerte - Crystallina Nera | Bus | teal |
| 622 Stadium - Concordia University | Bus | teal |
| 623 O'Leary - Crystallina Nera | Bus | teal |
| 625 O'Leary - Palisades | Bus | teal |
| 626 O'Leary - Cy Becker | Bus | teal |
| 627 Eastglen - Bannerman | Bus | teal |
| 628 Steele Heights - Cy Becker | Bus | teal |
| 630 Austin O'Brien - Silver Berry | Bus | teal |
| 631 Austin O'Brien - Maple | Bus | teal |
| 632 Capilano-Vimy Ridge | Bus | teal |
| 633 Austin O'Brien - Coliseum - Clareview | Bus | teal |
| 634 Mcnally - Tamarack | Bus | teal |
| 635 Mcnally - Silver Berry | Bus | teal |
| 636 Mcnally - Davies | Bus | teal |
| 638 Lakewood - Orchards | Bus | teal |
| 642 Lakewood - Mill Woods | Bus | teal |
| 646 Elder Dr. Whiskeyjack - Mill Woods | Bus | teal |
| 647 Elder Dr. Whiskeyjack - Laurel | Bus | teal |
| 650 Riverbend School - Leger | Bus | teal |
| 651 Avalon - Southgate | Bus | teal |
| 652 Strathcona - Southgate | Bus | teal |
| 653 Strathcona - Davies | Bus | teal |
| 654 Strathcona - Belgravia - Windsor Park | Bus | teal |
| 655 Strathcona - South Campus | Bus | teal |
| 656 Allendale - Strathcona | Bus | teal |
| 657 Leger - Strathcona Hs | Bus | teal |
| 658 Fr. M. Mccaffery - Rutherford | Bus | teal |
| 659 Fr. M. Mccaffery - Macewan | Bus | teal |
| 660 Century Park - Harry Ainlay | Bus | teal |
| 661 Harry Ainlay - Mill Woods | Bus | teal |
| 662 Harry Ainlay - Louis St. Laurent - Century Park | Bus | teal |
| 663 Fr. M. Mccaffery - Chappelle | Bus | teal |
| 664 Walker - A. Anderson - M. Mccaffery | Bus | teal |
| 665 Charlesworth - Dr. Anne Anderson | Bus | teal |
| 667 Century Park - Dr. Anne Anderson | Bus | teal |
| 668 Chappelle - Dr. Anne Anderson | Bus | teal |
| 669 Keswick - Fr. M. Mccaffery | Bus | teal |
| 671 Alex Janvier - Wem | Bus | teal |
| 673 Hillcrest - Wem | Bus | teal |
| 674 H.E. Beriault - Lewis Farms | Bus | teal |
| 678 Jasper Place - Alex Janvier - Lewis Farms | Bus | teal |
| 681 Ross Sheppard - A. Macdonald - Lewis Farms | Bus | teal |
| 682 Archbishop Macdonald - Leger | Bus | teal |
| 683 Arch Macdonald - Ross Sheppard - Castle Downs | Bus | teal |
| 684 Archbishop Macdonald - Ross Sheppard - Lago Lindo | Bus | teal |
| 685 Ross Sheppard - A. Macdonald - Lewis Farms | Bus | teal |
| 691 Amiskwaciy - Kingsway | Bus | teal |
| 692 Victoria School - Wem | Bus | teal |
| 700X Century Park - Heritage Valley | Bus | orange |
| 701 Southgate - Kingsway | Bus | teal |
| 702 Southgate - South Campus | Bus | teal |
| 703 Leger - South Campus | Bus | teal |
| 704 Southgate - Southpark | Bus | teal |
| 705 Century Park - Southgate | Bus | teal |
| 706 Leger - Southgate | Bus | teal |
| 707 Century Park - Southgate | Bus | teal |
| 708 Century Park - Southgate | Bus | teal |
| 709 Century Park - Southgate | Bus | teal |
| 712 Century Park - Yellowbird | Bus | teal |
| 713 Century Park - Twin Brooks | Bus | teal |
| 715 Leger - Century Park | Bus | teal |
| 716 Leger - Century Park | Bus | teal |
| 717 Leger - Century Park | Bus | teal |
| 718 Leger - Century Park | Bus | teal |
| 719 Century Park - Chappelle | Bus | teal |
| 721 Century Park - Rutherford - Desrochers | Bus | teal |
| 722 Century Park - Rutherford - Allard | Bus | teal |
| 723 University - Parkallen | Bus | teal |
| 724 Leger - Brander Gardens - South Campus | Bus | teal |
| 727 Heritage Valley - Chappelle | Bus | teal |
| 729 Leger - Century Park | Bus | teal |
| 747 Century Park - Edmonton International Airport | Bus | teal |
| 900X Lewis Farms - Downtown | Bus | orange |
| 901 Jasper Place - Downtown | Bus | teal |
| 902 Nait - University | Bus | teal |
| 903 Jasper Place - Kingsway | Bus | teal |
| 904 West Edmonton Mall - Westmount | Bus | teal |
| 905 Northgate - Westmount | Bus | teal |
| 906 West Edmonton Mall - Westmount | Bus | teal |
| 907 West Edmonton Mall - Westmount | Bus | teal |
| 908 Jasper Place - Westmount | Bus | teal |
| 909 Jasper Place - Westmount | Bus | teal |
| 910X West Lymburn - Lessard - South Campus | Bus | orange |
| 912 Lewis Farms - Jasper Place | Bus | teal |
| 913 West Edmonton Mall - Jamieson Place | Bus | teal |
| 914 West Edmonton Mall - Jasper Place | Bus | teal |
| 915 West Edmonton Mall - Jasper Place | Bus | teal |
| 916 West Edmonton Mall - Lewis Farms | Bus | teal |
| 917 West Edmonton Mall - Lewis Farms | Bus | teal |
| 918A West Edmonton Mall - Lessard | Bus | teal |
| 918B West Edmonton Mall - Lessard | Bus | teal |
| 919 Lewis Farms - Secord | Bus | teal |
| 920X Lewis Farms - University Express | Bus | orange |
| 921 Jasper Place - Westview Village | Bus | teal |
| 922 Lewis Farms - Rosenthal | Bus | teal |
| 923 West Edmonton Mall - Oleskiw | Bus | teal |
| 924 Jasper Place - Rio Terrace | Bus | teal |
| 925 West Edmonton Mall - Jasper Place | Bus | teal |
| 926 Lewis Farms - Stillwater | Bus | teal |
| 930X The Grange - South Campus | Bus | orange |
| A12 Campbell - Akinsdale | Bus | yellow |
| A13 Akinsdale - Campbell | Bus | black |
| A14 Sturgeon Hospital - St Albert North | Bus | teal |
| A21 Heritage Lakes - Riel | Bus | brown |
| A22 Riel - Heritage Lakes | Bus | gray |
| A23 Heritage Lakes - Riel | Bus | black |
| A24 The Gardens | Bus | orange |
| A3 Riverside | Bus | green |
| A31 Heritage Lakes - The Gardens | Bus | teal |
| A32 Akinsdale - Campbell - Pineview - Forest Lawn | Bus | pink |
| A33 Sturgeon - Forest Lawn - Woodlands - Braeside | Bus | green |
| A4 Lacombe - Deer Ridge | Bus | orange |
| A5 Deer Ridge - Lacombe | Bus | teal |
| A6 Deer Ridge - North Ridge | Bus | brown |
| A7 Sturgeon Hospital - Erin Ridge - Oakmont | Bus | pink |
| A8 Oakmont - Erin Ridge - Sturgeon Hospital | Bus | green |
| A9 Sturgeon - Kingswood - Woodlands | Bus | blue |
| F1 Farmers Market Shuttle | Bus | teal |
| 600 Fort Saskatchewan | Bus | green |
| 610 Westpark | Bus | black |
| 611 Downtown | Bus | red |
| 1 Leduc - Nisku - Edmonton | Bus | yellow |
| 10 Leduc - Nisku - Eia | Bus | purple |
List every stop
- Abbottsfield Transit Centre
- Abbottsfield Transit Centre
- 50 Street & 122 Avenue
- Wayne Gretzky Drive S & 118 Avenue
- 73 Street & 111 Avenue
- 101 Street & 104 Avenue
- 38 Street & 114 Avenue
- Rossdale Road & 96 Avenue
- 97 Street & 109A Avenue
- 96 Street & 111 Avenue
- 102 Street & 111 Avenue
- 84 Street & 118 Avenue
- Alex Taylor Road & Jasper Avenue
- 90 Street & 118 Avenue
- 48 Street & 114 Avenue
- 32 Street & 111 Avenue
- 40 Street & 114 Avenue
- 54 Street & 118 Avenue
- 102 Street & 111 Avenue
- 68 Street & 118 Avenue
- Fort Road & Mount Lawn Road
- 107 Street & Jasper Avenue
- 54 Street & 121 Avenue
- 48 Street & 121 Avenue
- 46 Street & 114 Avenue
- 95 Street & 108 Avenue
- 97 Street & 118 Avenue
- Wayne Gretzky Drive S & 112 Avenue
- 124 Street & 111 Avenue
- 80 Street & 118 Avenue
- Bellamy Hill & 98 Avenue
- 34 Street & Abbottsfield Road
- 124 Street & 103 Avenue
- 97 Street & 120 Avenue
- 101 Street & 105 Avenue
- 95 Street & 102A Avenue
- Kingsway & 111 Avenue
- 44 Street & 121 Avenue
- Abbottsfield Road & 119 Avenue
- 95 Street & 115 Avenue
- 82 Street & 125 Avenue
- 38 Street & 108 Avenue
- 103 Street & 118 Avenue
- 38 Street & 106 Avenue
- 62 Street & 112 Avenue
- 101 Street & 103 Avenue
- 40 Street & 121 Avenue
- Groat Road & 118 Avenue
- 34 Street & 116A Avenue
- 32 Street & Abbottsfield Road
- Bellamy Hill & 99 Avenue
- 50 Street & 121 Avenue
- 38 Street & 109 Avenue
- 105 Street & 118 Avenue
- 46 Street & 118 Avenue
- 121 Street & Jasper Avenue
- St Albert Trail & 114 Avenue
- 76 Street & 118 Avenue
- 88 Street & 112 Avenue
- 84 Street & 110 Avenue
- 92 Street & Norwood Boulevard
- 109 Street & Jasper Avenue
- Abbottsfield Road & 120 Avenue
- 54 Street & 123 Avenue
- 109 Street & 110 Avenue
- 45 Street & 118 Avenue
- 87 Street & Jasper Avenue
- 103 Street & 118 Avenue
- 82 Street & 112 Avenue
- 64 Street & 118 Avenue
- 122 Street & Jasper Avenue
- Kingsway RAH Transit Centre
- Kingsway RAH Transit Centre
- Kingsway RAH Transit Centre
- Kingsway RAH Transit Centre
- Kingsway RAH Transit Centre
- Kingsway RAH Transit Centre
- 109 Street & 103 Avenue
- 109 Street & 103 Avenue
- Central Lions Recreation Centre
- St Albert Trail & 113 Avenue
- Kingsway RAH Transit Centre
- Kingsway RAH Transit Centre
- Kingsway RAH Transit Centre
- Kingsway RAH Transit Centre
- Kingsway RAH Station
- Kingsway RAH Station
- NAIT - Blatchford Market Station
- NAIT - Blatchford Market Station
- MacEwan Station
- MacEwan Station
- 99 Street & Jasper Avenue
- 85 Street & 118 Avenue
- 113 Street & 111 Avenue
- 99 Street & 103A Avenue
- 62 Street & 118 Avenue
- 97 Street & 120 Avenue
- 123 Street & Jasper Avenue
- 97 Street & 111 Avenue
- 95 Street & 111 Avenue
- 106 Street & 111 Avenue
- 97 Street & 103A Avenue
- 76 Street & 118 Avenue
- 109 Street & 104 Avenue
- 97 Street & 103A Avenue
- 95 Street & 103A Avenue
- 95 Street & 107 Avenue
- 103 Street & 103 Avenue
- 105 Street & 103 Avenue
- 82 Street & 112 Avenue
- 108 Street & 103 Avenue
- 107 Street & 111 Avenue
- 59 Street & 118 Avenue
- 102 Street & 104 Avenue
- 82 Street & 114 Avenue
- 124 Street & 107 Avenue
- 104 Street & 104 Avenue
- 82 Street & 118 Avenue
- 82 Street & 117 Avenue
- Fort Road & 122 Avenue
- 97 Street & 103A Avenue
- 95 Street & 103A Avenue
- 95 Street & 117 Avenue
- 106 Street & 103 Avenue
- 96 Street & 103A Avenue
- 86 Street & 122 Avenue
- 82 Street & 115 Avenue
- 50 Street & 114 Avenue
- 101 Street & MacDonald Drive
- 75 Street & Fort Road
- 54 Street & 121 Avenue
- 95 Street & 111 Avenue
- 61 Street & 118 Avenue
- 95 Street & 114 Avenue
- 106 Street & 114 Avenue
- 74 Street & 112 Avenue
- 32 Street & 118 Avenue
- 66 Street & 118 Avenue
- 105 Street & 122 Avenue
- Groat Road & 107 Avenue
- 95 Street & 109 Avenue
- 95 Street & 115 Avenue
- 88 Street & 112 Avenue
- 73 Street & 111 Avenue
- 97 Street & 106 Avenue
- 36 Street & 121 Avenue
- 95 Street & 108A Avenue
- 95 Street & 116 Avenue
- 34 Street & 116A Avenue
- 89 Street & Rowland Road
- 43 Street & 118 Avenue
- 38 Street & 118 Avenue
- 34 Street & 114 Avenue
- 50 Street & 123 Avenue
- 90 Street & Jasper Avenue
- 42 Street & 118 Avenue
- 82 Street & 112 Avenue
- 97 Street & 110 Avenue
- 57 Street & 118 Avenue
- 90 Street & Jasper Avenue
- 69 Street & 118 Avenue
- 42 Street & 121 Avenue
- 95 Street & Jasper Avenue
- 95 Street & 113 Avenue
- McDougall Hill & Grierson Hill
- 111 Street & 111 Avenue
- 40 Street & 121 Avenue
- 97 Street & 107 Avenue
- 82 Street & 122 Avenue
- 97 Street & Jasper Avenue
- 73 Street & 112 Avenue
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- Coliseum Transit Centre
- 64 Street & 112 Avenue
- 97 Street & 111 Avenue
- 95 Street & Jasper Avenue
- 106 Street & 117 Avenue
- 55 Street & 118 Avenue
- 106 Street & 113 Avenue
- 106 Street & 117 Avenue
- 50 Street & 112 Avenue
- 38 Street & 121 Avenue
- 82 Street & 118 Avenue
- 101 Street & 111 Avenue
- 82 Street & 118 Avenue
- 70 Street & 118 Avenue
- 101 Street & 117 Avenue
- 55 Street & 112 Avenue
- 86 Street & 114 Avenue
- 124 Street & Stony Plain Road
- 34 Street & 119 Avenue
- 124 Street & 102 Avenue
- 101 Street & 102 Avenue
- 82 Street & Jasper Avenue
- 41 Street & 118 Avenue
- 100 Street & 102 Avenue
- 95 Street & 103A Avenue
- 93 Street & Jasper Avenue
- 97 Street & 107 Avenue
- 102 Street & MacDonald Drive
- 88 Street & 118 Avenue
- 46 Street & 121 Avenue
- Thornton Court & Jasper Avenue
- 103 Street & 122 Avenue
- 95 Street & 117 Avenue
- 82 Street & 120 Avenue
- 47 Street & 118 Avenue
- 100 Street & Jasper Avenue
- 95 Street & 122 Avenue
- 95 Street & 122 Avenue
- 86 Street & 112 Avenue
- 40 Street & 114 Avenue
- 95 Street & 111 Avenue
- 124 Street & 114 Avenue
- 60 Street & 112 Avenue
- 105 Street & Jasper Avenue
- 122 Street & 111 Avenue
- 110 Street & 111 Avenue
- 53 Street & 118 Avenue
- 54 Street & 120 Avenue
- 46 Street & 114 Avenue
- 86 Street & 114 Avenue
- 97 Street & 122 Avenue
- 97 Street & 103 Avenue
- 69 Street & 112 Avenue
- 32 Street & 107A Avenue
- 124 Street & 111 Avenue
- 97 Street & 108 Avenue
- 66 Street & 118 Avenue
- Fort Road & 121 Avenue
- 97 Street & 118 Avenue
- 95 Street & 118 Avenue
- 101 Street & 116 Avenue
- 100 Street & 102A Avenue
- Wayne Gretzky Drive S & 118 Avenue
- 97 Street & 108 Avenue
- 34 Street & 118 Avenue
- 38 Street & 110 Avenue
- Government Transit Centre
- Government Transit Centre
- and 6541 more (see the full list on the map or in the GeoJSON)
Over time
This is the first scorecard for this agency. A trend and a "what changed" summary appear here once it has been checked more than once.
Everything we checked
10 findings, ordered by severity.
Show every finding
- Warning416 instances
416 of 6791 stops don't say whether a wheelchair user can board there.
Riders who use wheelchairs can't plan a trip when accessibility is marked 'unknown'; apps show no information at all.
Fix: Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops. (A column in stops.txt; your scheduling software likely has it.)
Finding code: scorecard_wheelchair_boarding_unknown · Read the fix guide · See GTFS Schedule reference (opens the GTFS Schedule reference on an external site)
- Warning261 instances
Some stops exist in the feed but no trip ever stops at them.
Riders may walk to a stop where no transit vehicle is scheduled to arrive.
Fix: Remove retired stops from the export, or add them back to the trips that should serve them. (A review pass in your scheduling software.)
Finding code: stop_without_stop_time · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
- Warning11 instances
11 of 117 trips scheduled during the sampling window had no live predictions.
Riders on those trips get schedule times labeled as live. Caltrans asks that every trip you run shows up in TripUpdates.
Fix: Ask your AVL vendor to check that every vehicle assignment reaches TripUpdates. School-day and tripper runs are the ones most often left out. (A vendor data-mapping question.)
Finding code: scorecard_rt_trip_coverage · Read the fix guide · See GTFS-Realtime reference (opens the GTFS-Realtime reference on an external site)
- Warning3 instances
Some route colors don't contrast with their text color.
Route badges get hard to read, most of all for riders with low vision.
Fix: Pick a darker/lighter route_text_color for the flagged routes. (One field per route.)
Finding code: route_color_contrast · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
- Warning3 instances
Some route long names repeat the route's short name inside them.
Apps show both names together, so riders see the number twice, like '5 5 Downtown'.
Fix: Drop the short name from route_long_name and keep the long name descriptive, like 'Downtown via 5th Ave'. (One field per flagged route.)
Finding code: route_long_name_contains_short_name · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
- Info305 instances
This feed maps paths inside its stations. It includes step-free routes with an elevator.
Riders can be routed through the station, and wheelchair users can see whether a step-free route exists.
Fix: No action needed. (None.)
Finding code: scorecard_station_pathways
- Info1 instance
Some files contain columns that are not part of the GTFS spec.
Harmless to riders, but apps ignore these columns and they can hide typos in real column names.
Fix: Check the flagged column names for misspellings of standard GTFS fields; remove them if they are vendor extras. (A quick look at the flagged files.)
Finding code: unknown_column · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
- Info1 instance
The feed includes a file that is not part of the GTFS spec.
Apps ignore files they don't know, and a stray file can hide a misspelled standard file name.
Fix: Check the flagged file name for a typo of a standard GTFS file. Remove it if it is a vendor extra. (A quick look at the flagged file.)
Finding code: unknown_file · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
- Info1 instance
Unused station (flagged by the MobilityData validator).
See the linked rule for what this affects.
Fix: Review the rule documentation for 'unused_station' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed. (Varies.)
Finding code: unused_station · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
- Info1 instance
feed_info.txt has no technical contact (feed_contact_email or feed_contact_url).
App makers and state data programs have nobody to email when they spot a problem. Small errors then sit in the feed for months.
Fix: Add feed_contact_email to feed_info.txt. (One field.)
Finding code: scorecard_no_feed_contact · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
Beyond the grade
Opportunities that do not change your grade today: fare detail, on-demand service, and deeper accessibility data.
The feed lists fare products but has no rider_categories.txt to say who each fare is for.
Consider: Add rider_categories.txt for the fares you already offer. Then point your fare products at those categories.
Conformance mark Awarded
This feed earns the conformance mark: valid, current, and stating wheelchair access on nearly every stop and trip.
- Valid Met
- Passes validation with no errors.
- Current Met
- Service data covers the next 84 days.
- Accessible Met
- States wheelchair access on 94% of stops and 100% of trips.
In plain words: earn this mark when your feed passes validation, has not expired, and says whether nearly every stop and trip is wheelchair accessible.
A pass credential for a feed that is valid, current, and states wheelchair access on nearly every stop and trip. Accessibility here measures what the feed publishes, not whether a stop is physically usable. How the conformance mark works.
Can riders use it?
Checks beyond structural validation: places where the feed is valid but a rider still could not travel.
- 261 of 6581 boardable stops are never served by any trip. Riders see these stops in apps and on the map but can never catch anything there, which erodes trust in the data. Remove stops no route serves, or add the trips that should call at them.
These do not change the grade. They catch trips with no rideable leg and stops no trip serves, the kind of gap a trip planner trips over.
Realtime reliability
The realtime feed responded on 100.0% of 7 checks over the last 1 day, with 18s median lag.
Sampled on a schedule between full scores, so this tracks uptime and freshness over time rather than at a single moment.
Live predictions vs schedule
Arrival predictions ran right on the schedule, and stayed within 0s nine times in ten. They were on time (about a minute early to five late) 98.3% of the time. 90.2% of reported vehicle positions sat on or near the published route shape.
From the last full realtime sample: how far live arrival predictions sat from the schedule, and whether vehicle positions fell on the route. These feed the realtime score; they change no other category.
Clears the Google and Apple Maps four-week coverage bar. This feed has 84 days of service ahead, clearing the four-week (28-day) window Maps asks for. No validator errors either, so riders keep seeing this agency in their trip planners; warnings lower the grade here but do not remove a feed from Maps.
How this agency maps to the standards
The scorecard is a data-quality lens, not a compliance determination. Its universal references describe good GTFS and useful rider information. Useful references here are GTFS Schedule Best Practices, GTFS-Realtime Best Practices, MobilityData grading scheme, Google Transit publication guidance. Read the full standards crosswalk.
- Correctness 82 / 100
- GTFS Schedule best practices, checked by the MobilityData validator. MobilityData grading covers stop locations, route names, and colors. Google Transit requires a feed to pass validation for publication.
- Freshness 100 / 100
- GTFS Schedule best practices call for a dataset that stays current. An expired calendar can remove service from Google Transit and other rider trip planners.
- Rider experience 91 / 100
- GTFS Best Practices for rider-facing fields. MobilityData grading covers stop names and headsigns.
- Realtime quality 95 / 100
- GTFS-Realtime best practices: a stable URL, high uptime, and frequent updates.
Cite this record
This page updates on every check. The record below does not: it is the dated file this grade came from, published at https://gtfsscorecard.org/data/artifacts/edmonton-transit-service/2026-09-05.json and never overwritten, pinning the grade, category scores, rubric version, validator version, reader archive profile, and the scored feed's sha256 as they stood on 2026-09-05. Use it in a board packet, a regulatory filing, or a research citation instead of linking the live page, whose content will differ on your next visit.
Citing the tool itself rather than one agency's record? Use the repo's CITATION.cff.