← All agencies

Feed status · checked 2026-08-01

Washington Metropolitan Area Transit Authority (WMATA) Bus

Based on the feed this agency publishes

Service mode Bus

39.9 / 100

unchanged since 2026-07-31

Catalogued in District of Columbia.

Feed expiredAccessibility gapsRealtime access needed

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.

Checked for changes 16 hours ago; last fetch returned HTTP 401.

Measured 3 of 4 score categories from the Mobility Database's mirror copy of the feed.

How we measured this

Confidence in this measurement: provisional.

  • Realtime quality was not measured this run. It does not count against the grade.
  • The agency's own feed URL was unreachable, so the Mobility Database's hosted mirror copy was scored instead.

Confidence describes how much the pipeline could measure this run, not the feed itself. It never changes the grade.

Top things to fix

Fix 01

Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change.Likely your export tool

Service data ended 588 day(s) ago. When the calendar runs out, trip planners stop showing this agency even though the buses are still running. Riders are told the service does not exist.

⏱ Usually one export setting; export on a schedule so it never lapses again.worth about +100 points in its category

Fix 02

Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops.Likely your team

9271 of 9271 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.

⏱ A column in stops.txt; your scheduling software likely has it.worth about +25 points in its category

Fix 03

Set wheelchair_accessible on every trip. If every vehicle is accessible, this may be one default; otherwise use the value for each trip.Likely your export tool

87158 of 87158 trips don't say whether the vehicle is wheelchair accessible. Even with accessible stops, riders need to know the bus itself can take them.

⏱ A default or per-trip field in your export.worth about +15 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
Service data ended 588 day(s) ago.
Next action
Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change.
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.

  1. Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change. · 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.

  2. Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops. · 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.

  3. Set wheelchair_accessible on every trip. If every vehicle is accessible, this may be one default; otherwise use the value for each trip. · 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.

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 was 588 days ago.
Published accessibility data
Accessibility information is stated for 0% of stops and 0% of trips. This measures published data, not whether stops or vehicles are physically usable.
Fare information
No fare information is published in the feed.
Realtime information
Realtime-feed availability and live-arrival coverage are not known from this scorecard.

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.

Send the agency a note

Supporting this agency? Copy this and email it to them. It names what lapsed, why it matters to riders, and the one setting to change.

Score by category

Correctness59.0 / 100

The MobilityData validator flagged 10 kinds of issue across 823 instances (0 error, 817 warning, 6 informational).

Freshness0.0 / 100

Service data ended 588 day(s) ago. Trip planners have likely already dropped this feed.

Rider experience45.0 / 100

0% of stops state wheelchair accessibility (0% marked accessible, 0% marked not accessible). This measures what the feed publishes, not whether a stop is physically usable. Fare data is not published.

Accessibility0 / 100

0% of stops state accessibility (0% marked accessible). Reflects what the feed states, not verified physical usability.

2 accessibility depth signals

  • 7 route badge(s) pair a color and text color below the WCAG 4.5:1 contrast bar (16Y, 79, K9, MW1, REX, 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.

  • 9269 stop name(s) use abbreviations or symbols a screen reader may mispronounce, with no spoken form set ("Madison Dr+Monroe Av", "Madison Dr+Monroe Av", "Madison Dr+Harrison Av", 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.

Realtime qualityNot yet measured

This agency publishes realtime, but the feed needs an access key we don't have yet. Nothing here counts against the grade.

Routes and stops

Each route is drawn once, using the longest shape its trips follow; stops are the dots.

This feed has 9271 stops.

Skip to route and stop data

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.

  • 10A (red)
  • 10B (red)
  • 11Y (gray)
  • 16A (red)
  • 16C (red)
  • 16E (red)
  • 16M (red)
  • 16Y (teal)
  • 17B (gray)
  • 17G (gray)
  • 17K (gray)
  • 17M (gray)
  • 18G (gray)
  • 18J (gray)
  • 18P (gray)
  • 1A (red)
  • 1B (red)
  • 1C (teal)
  • 21C (red)
  • 22A (teal)
  • 22F (teal)
  • 23A (red)
  • 23B (red)
  • 23T (red)
  • 25B (teal)
  • 26A (teal)
  • 28A (red)
  • 28F (gray)
  • 29G (gray)
  • 29K (red)
  • 29N (red)
  • 2A (teal)
  • 2B (red)
  • 31 (red)
  • 32 (red)
  • 33 (red)
  • 36 (red)
  • 38B (red)
  • 3F (teal)
  • 3Y (gray)
  • 42 (red)
  • 43 (red)
  • 4B (teal)
  • 52 (red)
  • 54 (red)
  • 59 (teal)
  • 60 (teal)
  • 62 (teal)
  • 63 (teal)
  • 64 (teal)
  • 70 (red)
  • 74 (teal)
  • 79 (teal)
  • 7A (red)
  • 7M (red)
  • 80 (red)
  • 83 (red)
  • 86 (red)
  • 89M (teal)
  • 8W (gray)
  • 90 (red)
  • 92 (red)
  • 96 (teal)
  • A12 (red)
  • A2 (red)
  • A31 (gray)
  • A32 (gray)
  • A33 (gray)
  • A4 (teal)
  • A6 (red)
  • A7 (red)
  • A8 (red)
  • B2 (red)
  • B21 (teal)
  • B22 (teal)
  • B24 (teal)
  • B27 (gray)
  • C11 (gray)
  • C12 (teal)
  • C13 (gray)
  • C14 (teal)
  • C2 (red)
  • C21 (teal)
  • C22 (teal)
  • C26 (teal)
  • C29 (teal)
  • C4 (red)
  • C8 (teal)
  • D12 (teal)
  • D14 (teal)
  • D2 (teal)
  • D31 (gray)
  • D32 (gray)
  • D33 (gray)
  • D34 (gray)
  • D4 (gray)
  • D51 (gray)
  • D6 (gray)
  • D8 (teal)
  • E2 (teal)
  • E4 (red)
  • F1 (teal)
  • F12 (teal)
  • F13 (teal)
  • F14 (teal)
  • F4 (red)
  • F6 (teal)
  • F8 (teal)
  • G12 (teal)
  • G14 (teal)
  • G2 (teal)
  • G8 (teal)
  • H12 (teal)
  • H2 (red)
  • H4 (gray)
  • H6 (teal)
  • H8 (teal)
  • H9 (teal)
  • J1 (red)
  • J12 (teal)
  • J2 (red)
  • K12 (teal)
  • K2 (gray)
  • K6 (red)
  • K9 (teal)
  • L12 (red)
  • L2 (teal)
  • L8 (teal)
  • M4 (teal)
  • M6 (teal)
  • MW1 (teal)
  • N2 (teal)
  • N4 (teal)
  • N6 (teal)
  • NH1 (teal)
  • NH2 (teal)
  • P12 (red)
  • P18 (gray)
  • P6 (gray)
  • Q2 (red)
  • Q4 (red)
  • Q6 (red)
  • R1 (teal)
  • R12 (teal)
  • R2 (teal)
  • R4 (teal)
  • REX (teal)
  • S2 (red)
  • S35 (gray)
  • S41 (gray)
  • S9 (teal)
  • T14 (teal)
  • T18 (red)
  • T2 (teal)
  • U4 (teal)
  • U5 (teal)
  • U6 (teal)
  • U7 (teal)
  • V12 (teal)
  • V14 (teal)
  • V2 (red)
  • V4 (red)
  • V7 (red)
  • V8 (red)
  • W1 (teal)
  • W14 (gray)
  • W2 (teal)
  • W3 (teal)
  • W4 (red)
  • W45 (gray)
  • W47 (gray)
  • W5 (teal)
  • W6 (teal)
  • W8 (teal)
  • X2 (red)
  • X3 (gray)
  • X8 (teal)
  • X9 (teal)
  • Y2 (red)
  • Y7 (red)
  • Y8 (red)
  • Z2 (gray)
  • Z6 (teal)
  • Z7 (gray)
  • Z8 (red)
Routes in Washington Metropolitan Area Transit Authority (WMATA) Bus's feed
RouteTypeLine color
10A ALEXANDRIA-PENTAGONBusred
10B HUNTING POINT-BALLSTONBusred
11Y MT VERNON EXPRESSBusgray
16A COLUMBIA PIKEBusred
16C COLUMBIA PIKEBusred
16E COLUMBIA PIKEBusred
16M COLUMBIA PIKE - NATIONAL LANDINGBusred
16Y COLUMBIA PK-FARRAGUT SQUAREBusteal
17B KINGS PARKBusgray
17G KINGS PARK EXPRESSBusgray
17K KINGS PARK EXPRESSBusgray
17M KINGS PARKBusgray
18G ORANGE HUNTBusgray
18J ORANGE HUNTBusgray
18P BURKE CENTREBusgray
1A WILSON BLVDBusred
1B WILSON BLVDBusred
1C FAIR OAKS-DUNN LORINGBusteal
21C LANDMARK-HOLMES RUN PARKWAYBusred
22A BARCROFT-SOUTH FAIRLINGTONBusteal
22F BARCROFT-SOUTH FAIRLINGTONBusteal
23A MCLEAN-CRYSTAL CITYBusred
23B MCLEAN-CRYSTAL CITYBusred
23T MCLEAN-CRYSTAL CITYBusred
25B CARLIN SPRINGS ROADBusteal
26A ANNANDALE-EAST FALLS CHURCHBusteal
28A LEESBURG PIKEBusred
28F SKYLINE CITYBusgray
29G ANNANDALEBusgray
29K ALEXANDRIA-FAIRFAXBusred
29N ALEXANDRIA-FAIRFAXBusred
2A WASHINGTON BLVD.-DUNN LORINGBusteal
2B FAIR OAKS-JERMANTOWN ROADBusred
31 WISCONSIN AVENUEBusred
32 PENNSYLVANIA AVENUEBusred
33 WISCONSIN AVENUEBusred
36 PENNSYLVANIA AVENUEBusred
38B BALLSTON-FARRAGUT SQUAREBusred
3F LANGSTON BLVD - MCPHERSON SQ LBusteal
3Y LANGSTON BLVD - MCPHERSON SQBusgray
42 MOUNT PLEASANTBusred
43 MOUNT PLEASANTBusred
4B PERSHING DR.-ARLINGTON BLVDBusteal
52 14TH STREETBusred
54 14TH STREETBusred
59 14TH STREET LIMITEDBusteal
60 FORT TOTTEN-PETWORTHBusteal
62 TAKOMA-PETWORTHBusteal
63 TAKOMA-PETWORTHBusteal
64 FORT TOTTEN-FEDERAL TRIANGLEBusteal
70 GEORGIA AVENUE-7TH STREETBusred
74 CONVENTION CTR-SW WATERFRONTBusteal
79 GEORGIA AVENUE METROEXTRABusteal
7A LANDMARK-NORTH FAIRLINGTONBusred
7M MARK CENTER-PENTAGONBusred
80 NORTH CAPITOL STREETBusred
83 COLLEGE PARKBusred
86 COLLEGE PARKBusred
89M LAURELBusteal
8W FOXCHASE-SEMINARY VALLEYBusgray
90 U STREET-GARFIELDBusred
92 U STREET-GARFIELDBusred
96 EAST CAPITOL STREET-CARDOZOBusteal
A12 MARTIN LUTHER KING JR HWYBusred
A2 ANACOSTIA-WASHINGTON HIGHLANDS LBusred
A31 MINNESOTA AVE - ANACOSTIABusgray
A32 MINNESOTA AVE - ANACOSTIABusgray
A33 MINNESOTA AVE - ANACOSTIABusgray
A4 ANACOSTIA-FORT DRUMBusteal
A6 ANACOSTIA-LIVINGSTONBusred
A7 ANACOSTIA-LIVINGSTONBusred
A8 ANACOSTIA-LIVINGSTONBusred
B2 BLADENSBURG ROAD-ANACOSTIABusred
B21 BOWIE STATE UNIVERSITYBusteal
B22 BOWIE STATE UNIVERSITYBusteal
B24 BOWIE-BELAIRBusteal
B27 BOWIE-NEW CARROLLTONBusgray
C11 CLINTONBusgray
C12 HILLCREST HEIGHTSBusteal
C13 CLINTONBusgray
C14 HILLCREST HEIGHTSBusteal
C2 GREENBELT-TWINBROOKBusred
C21 CENTRAL AVENUEBusteal
C22 CENTRAL AVENUEBusteal
C26 CENTRAL AVENUEBusteal
C29 CENTRAL AVENUEBusteal
C4 GREENBELT-TWINBROOKBusred
C8 COLLEGE PK-NORTH BETHESDABusteal
D12 SOUTHERN AVE-SUITLANDBusteal
D14 OXON HILL-SUITLANDBusteal
D2 GLOVER PARK-DUPONT CIRCLEBusteal
D31 16TH ST - TENLEYTOWNBusgray
D32 16TH ST - TENLEYTOWNBusgray
D33 16TH ST - TENLEYTOWNBusgray
D34 16TH ST - TENLEYTOWNBusgray
D4 IVY CITY - FRANKLIN SQUAREBusgray
D51 CONGRESS HGHTS - GEORGETOWNBusgray
D6 SIBLEY HOSP STADIUM-ARMORYBusgray
D8 HOSPITAL CENTERBusteal
E2 IVY CITY-FORT TOTTENBusteal
E4 MILITARY ROAD-CROSSTOWNBusred
F1 CHILLUM ROADBusteal
F12 ARDWICK INDUSTRIAL PARK SHUTTLEBusteal
F13 CHEVERLY-WASHINGTON BUS PARK LNBusteal
F14 SHERIFF ROAD-CAPITOL HEIGHTS LNBusteal
F4 NEW CARROLLTON-SILVER SPRING LNBusred
F6 NEW CARROLLTON-FORT TOTTENBusteal
F8 LANGLEY PARK-CHEVERLYBusteal
G12 GREENBELT-NEW CARROLLTONBusteal
G14 GREENBELT RD - GOOD LUCK RDBusteal
G2 P STREET-LEDROIT PARKBusteal
G8 RHODE ISLAND AVENUEBusteal
H12 MARLOW HEIGHTS-TEMPLE HILLSBusteal
H2 CROSSTOWNBusred
H4 CROSSTOWNBusgray
H6 BROOKLAND-FORT LINCOLNBusteal
H8 PARK ROAD-BROOKLANDBusteal
H9 PARK ROAD-BROOKLANDBusteal
J1 BETHESDA-SILVER SPRINGBusred
J12 MARLBORO PIKEBusteal
J2 BETHESDA-SILVER SPRINGBusred
K12 FORESTVILLEBusteal
K2 TAKOMA-FORT TOTTENBusgray
K6 NEW HAMPSHIRE AVE-MARYLANDBusred
K9 NEW HAMPSHIRE AVE-MD LIMITED LNBusteal
L12 LANDOVER RDBusred
L2 CONNECTICUT AVEBusteal
L8 CONNECTICUT AVE-MARYLANDBusteal
M4 NEBRASKA AVEBusteal
M6 FAIRFAX VILLAGEBusteal
MW1 METROWAY-POTOMAC YARDBusteal
N2 MASSACHUSETTS AVEBusteal
N4 MASSACHUSETTS AVEBusteal
N6 MASSACHUSETTS AVEBusteal
NH1 NATIONAL HARBOR - SOUTHERN AVEBusteal
NH2 NATIONAL HARBOR - KING STREETBusteal
P12 EASTOVER-ADDISON ROADBusred
P18 OXON HILL-FORT WASHINGTONBusgray
P6 ANACOSTIA-ECKINGTONBusgray
Q2 VEIRS MILL ROADBusred
Q4 VEIRS MILL ROADBusred
Q6 VEIRS MILL ROADBusred
R1 RIGGS ROADBusteal
R12 KENILWORTH AVENUEBusteal
R2 RIGGS ROADBusteal
R4 QUEENS CHAPEL ROADBusteal
REX RICHMOND HIGHWAY EXPRESSBusteal
S2 16TH STREETBusred
S35 FORT DUPONT SHUTTLEBusgray
S41 RHODE ISLAND AV-CARVER TERRBusgray
S9 16TH STREET METROEXTRABusteal
T14 RHODE ISLAND AVE-NEW CARROLLTONBusteal
T18 ANNAPOLIS ROADBusred
T2 RIVER ROADBusteal
U4 SHERIFF ROAD-RIVER TERRACEBusteal
U5 MAYFAIR-MARSHALL HEIGHTSBusteal
U6 MAYFAIR-MARSHALL HEIGHTSBusteal
U7 DEANWOOD-MINNESOTA AVE STABusteal
V12 DISTRICT HEIGHTS-SUITLANDBusteal
V14 DISTRICT HEIGHTS - SEAT PLEASANTBusteal
V2 CAPITOL HTS-MINNESOTA AVEBusred
V4 CAPITOL HTS-MINNESOTA AVEBusred
V7 BENNING HEIGHTS - ALABAMA AVENUEBusred
V8 BENNING HEIGHTS - ALABAMA AVENUEBusred
W1 SHIPLEY TERRACE - FORT DRUMBusteal
W14 BOCK ROADBusgray
W2 UNITED MEDICAL CTR-ANACOSTIA LNBusteal
W3 UNITED MEDICAL CTR-ANACOSTIA LNBusteal
W4 DEANWOOD-ALABAMA AVEBusred
W45 MT PLEASANT - TENLEYTOWNBusgray
W47 MT PLEASANT - TENLEYTOWNBusgray
W5 ANACOSTIA-BLUE PLAINSBusteal
W6 GARFIELD-ANACOSTIA LOOPBusteal
W8 GARFIELD-ANACOSTIA LOOPBusteal
X2 BENNING ROAD-H STREETBusred
X3 BENNING ROADBusgray
X8 MARYLAND AVEBusteal
X9 BENNING ROAD-H STREET LIMITEDBusteal
Y2 GEORGIA AVE-MARYLANDBusred
Y7 GEORGIA AVE-MARYLANDBusred
Y8 GEORGIA AVE-MARYLANDBusred
Z2 COLESVILLE - ASHTONBusgray
Z6 SILVER SPRING-FAIRLANDBusteal
Z7 LAUREL-BURTONSVILLE EXPRESSBusgray
Z8 SILVER SPRING-FAIRLANDBusred
List every stop
  • Old Fort Rd+Old PiscataWy Rd
  • Birchwood Dr+Fountain Rd
  • New Hampshire Av+Quebec St
  • Riggs Rd+Ruatan St
  • Greenbelt Rd+63 Av
  • Greenbelt Rd+63 Av
  • Southway+#11 Ct
  • Riggs Rd+Ruatan St
  • Connecticut Av+Manor Rd
  • Southway+#10 Court
  • River Rd+Carderock Springs Dr
  • Hanover Pkwy+#7800
  • Fenton St+Roeder Rd
  • Jones Mill Rd+Coquelin Ter
  • Georgia Av+Cameron St
  • University Bl+Seek Ln
  • University Bl+Seek Ln
  • Jones Mill Rd+Coquelin Ter
  • Mandan Rd+Hanover Pkwy
  • Georgia Av+Cameron St
  • Southway+#7 Court
  • N Washington St+Princess St
  • Hanover Pkwy+Mandan Rd
  • Southway+Ridge Rd
  • Greenbelt Rd+Cherrywood Ln
  • Lakeside Dr+Lakecrest Dr
  • Baltimore Av+Metzerott Rd
  • Beltway Plz+Cunningham Dr
  • Lanham-Severn Rd+Driscoll Dr
  • Helmont Dr+Fenwood Av
  • Greenbelt Rd+Branchville Rd
  • Greenbelt Rd+48 Av
  • Greenbelt Rd+48 Av
  • Lakeside Dr+Westway
  • Riggs Rd+Saranac St
  • Jones Bridge Rd+Altimont Ln
  • Jones Bridge Rd+Jones Bridge Ct
  • Rhode Island Av+MD 193
  • Colesville Rd+Spring St
  • Lakeside Dr+Westway
  • Ridge Rd+18 Ct
  • Rockville Pk+South Dr
  • Colesville Rd+Spring St
  • Jones Bridge Rd+Brierly Rd
  • Jones Bridge Rd+Brierly Ct
  • University Bl+Piney Branch Rd
  • Edmonston Rd+Breezewood Dr
  • Riggs Rd+Saranac St
  • Archives II Bldg Rdwy+Main Entrance
  • Georgia Av+Spring St
  • River Rd+Fenwy Dr
  • Ridge Rd+21 Ct
  • Yoakum Pkwy+Edsall Rd
  • Jones Bridge Rd+Montgomery Av
  • Jones Bridge Rd+Montgomery Av
  • Cherrywood Ln+Greenbelt Rd
  • New Hampshire Av+Ruatan St
  • Jones Bridge Rd+University Rd
  • Cherrywood Ln+#5510
  • Westway+Ridge Rd
  • New Hampshire Av+Ruatan St
  • S Reynolds St+#375 Brent Place Apt
  • Georgia Av+Spring St
  • Colesville Rd+S Noyes Dr
  • Jones Bridge Rd+University Rd
  • Rhode Island Av+University Bl
  • Jones Bridge Rd+Connecticut Av
  • MD 190+Congressional C C
  • Colesville Rd+S Noyes Dr
  • Edmonston Rd+Edmonston Ct
  • Birchwood Dr+Dunwoody Av
  • Jones Bridge Rd+Connecticut Av
  • Jones Bridge Rd+Platt Ridge Dr
  • Southway+Crescent Rd
  • Edmonston Rd+Edmonston Ct
  • Jones Bridge Rd+Hawkins Ln
  • Southway+Crescent Rd
  • University Bl+Piney Branch Rd
  • Jones Bridge Rd+Platt Ridge Dr
  • Old Fort Rd+#12309
  • Jones Bridge Rd+Hawkins Ln
  • Laurel-Bowie Rd+Rustic Hill Dr
  • Georgia Av+Ballard St
  • Georgia Av+Ballard St
  • Ridge Rd+Gardenway
  • Birchwood Dr+Livingston Rd
  • Baltimore Av+University Bl
  • Rhode Island Av+Apache St
  • Connecticut Av+Parsons Rd
  • Birchwood Dr+Livingston Rd
  • Crescent Rd+Gardenway
  • Breezewood Dr+Cherrywood Terr
  • Edmonston Rd+Springhill Ct
  • Crescent Rd+Gardenway
  • Connecticut Av+Montrose Dr
  • Colesville Rd+N Noyes Dr
  • Colesville Rd+N Noyes Dr
  • University Bl+Langley Dr
  • Ridge Rd+Hamilton Pl
  • Ridge Rd+33 Ct
  • Cherrywood Ln+Breezewood Dr
  • Fisher Rd+St Moritz Dr
  • River Rd+Bradley Bl
  • Riggs Rd+Apache St
  • Georgia Av+Noyes Dr
  • Rhode Island Av+Cherokee St
  • University Bl+Patton Dr
  • Georgia Av+Noyes Dr
  • Riggs Rd+Apache St
  • Ridge Rd+35 Ct
  • Guinea Rd+Bronte Dr
  • Ridge Rd+38 Ct
  • Rhode Island Av+Cherokee St
  • Edmonston Rd+Springhill Dr
  • River Rd+Harrington Dr
  • Burke Lake Rd+Grantham St
  • Southampton Dr+Ames Rd
  • Lanham-Severn Rd+Cowan Av
  • Metzerott Rd+Presidential Towers
  • Edmonston Rd+Springhill Dr
  • Baltimore Av+Cherokee St
  • Springhill Dr+Lakeside Dr
  • Baltimore Av+Cherokee St
  • Colesville Rd+Rowen Rd
  • Springhill Dr+Lakeside Dr
  • Southampton Dr+Ames Rd
  • Georgia Av+Highland Dr
  • Colesville Rd+Rowen Rd
  • Springhill Dr+Market Ln
  • Springhill Dr+Market Ln
  • Lanham-Severn Rd+Church La
  • Metzerott Rd+New Hampshire Av
  • Georgia Av+Highland Dr
  • Southampton Dr+#201
  • Riggs Rd+Adelphi Rd
  • Old Fort Rd+#12309
  • Zion Dr+Sideburn Rd
  • Cherrywood Ln+Cherrywood Ct
  • Riggs Rd+Adelphi Rd
  • River Rd+Durham Dr
  • Georgia Av+Grace Church Rd
  • Colesville Rd+Dale Dr
  • Southampton Dr+Ames Rd
  • Colesville Rd+Dale Dr
  • Southampton Dr+Ames Rd
  • Georgia Av+Grace Church Rd
  • Burke Lake Rd+Grantham St
  • Rhode Island Av+Fox St
  • Southampton Dr+Beacon Rd
  • Southampton Dr+Beacon Rd
  • University Bl E+E Wayne Av
  • Old Georgetown Rd+Alta Vista Rd
  • Galloway Dr+Colony Rd
  • River Rd+Congressional Pkwy
  • River Rd+Congressional Pkwy
  • University Bl+Buckingham Dr
  • Rhode Island Av+Fox St
  • Old Georgetown Rd+Alta Vista Rd
  • Baltimore Av+Erie St
  • 11 St+Myrtle Av
  • 11 St+Myrtle Av
  • Baltimore Av+Erie St
  • Northampton Dr+Avenel Rd
  • Georgia Av+Luzerne Av
  • Georgia Av+Luzerne Av
  • Northampton Dr+Avnel Rd
  • Colesville Rd+Sligo Creek Pkwy
  • Cherrywood Ln+Springhill Dr
  • Ridge Rd+Northway
  • Kenilworth Av+Crescent Rd
  • Rolling Rd+Lyngate Ct
  • Northampton Dr+Beacon Rd
  • Northampton Dr+Avenel Rd
  • Riggs Rd+Hughes Rd
  • Ridge Rd+Northway
  • Riggs Rd+Hughes Rd
  • River Rd+Belle Terre Wy
  • Northampton Dr+Beacon Rd
  • Northampton Dr+Colony Rd
  • Colesville Rd+Sligo Creek Pkwy
  • Connecticut Av+Beach Dr
  • Northampton Dr+Beacon Rd
  • New Hampshire Av+Fox St
  • Northampton Dr+Colony Rd
  • Colesville Rd+St Andrews Wy
  • University Bl E+E Schuyler Rd
  • N Washington St+Oronoco St
  • Ivy Ln+Crowne Plaza
  • New Hampshire Av+Fox St
  • Ivy Ln+#6404
  • University Bl E+E Schuyler Rd
  • Connecticut Av+Beach Dr
  • 9 St+Chapel Av
  • 9 St+Railroad Av
  • River Rd+Belle Terre Wy
  • Rhode Island Av+Kenesaw St
  • Old Georgetown Rd+Spruce Tree Av
  • Baltimore Av+Indian Ln
  • Colesville Rd+Franklin Av
  • Ivy Ln+Turner Pl
  • Ivy Ln+6303
  • Baltimore Av+Indian Ln
  • Guinea Rd+Bronte Dr
  • Riggs Rd+Buck Lodge Rd
  • Rhode Island Av+Kenesaw St
  • Ivy Ln+#6301
  • Georgia Av+Seminary Rd
  • Ridge Rd+Plateau Pl
  • Connecticut Av+Culver St X
  • Ridge Rd+Plateau Pl
  • Riggs Rd+Buck Lodge Rd
  • Georgia Av+Seminary Pl
  • Ft Washington Rd+Rexburg Av
  • Connecticut Av+Culver St
  • Old Georgetown Rd+Beech Dr
  • University Bl E+E Melbourne Av
  • Old Georgetown Rd+Beech Av
  • Ridge Rd+58 Ct
  • Cherrywood Ln+Ivy Ln
  • Adelphi Rd+19 Av
  • University Bl E+E Melbourne Av
  • Cherrywood Ln+Ivy Ln
  • River Rd+Newbridge Dr
  • Ridge Rd+#57 Court
  • Colesville Rd+Leighton Av
  • Cherrywood Ln+US Court House
  • Rhode Island Av+Hollywood Rd
  • Connecticut Av+Grace Episcopal School
  • Rhode Island Av+Hollywood Rd
  • Colesville Rd+Leighton Av
  • New Hampshire Av+Adelphi Rd
  • Connecticut Av+Grace Episcopal School
  • Baltimore Av+Hollywood Rd
  • Helmont Dr+Ironton Dr
  • Baltimore Av+Hollywood St
  • Old Georgetown Rd+Wyngate Dr
  • New Hampshire Av+Dilston Rd
  • University Bl E+E Franklin Av
  • Colesville Rd+Indian Spring Dr
  • Riggs Rd+Heatherwood Ct
  • Colesville Rd+Indian Spring Dr
  • Riggs Rd+Heatherwood Ct
  • Old Georgetown Rd+Ryland Dr
  • Connecticut Av+Dunnel Ln
  • Connecticut Av+Dunnel Ln
  • Old Georgetown Rd+Ryland Dr
  • Southampton Dr+Lancashire Dr
  • Rhode Island Av+Muskogee St
  • River Rd+Persimmon Tree Rd
  • Baltimore Av+Cherry Hill Rd
  • and 9021 more (see the full list on the map or in the GeoJSON)

Over time

Overall score across the last 4 checks — unchanged since 2026-07-31.

2026-07-25: 39.92026-07-30: 39.92026-07-31: 39.92026-08-01: 39.9
Show the numbers
Overall score by check, with the change from the previous check
CheckScoreChange
2026-07-2539.9 first check
2026-07-3039.9 no change
2026-07-3139.9 no change
2026-08-0139.9 no change

What changed since your last check

  • Correctness no change
  • Freshness no change
  • Rider experience no change

What changed in this feed

Overall grade and score held steady since 2026-07-31.

Same feed file as 2026-07-31; the published zip did not change.

Subscribe to this feed’s changes (Atom) to hear about grade drops in a reader, with no sign-up.

Everything we checked

14 findings, ordered by severity.

Show every finding
  • Error1 instance

    Service data ended 588 day(s) ago.

    When the calendar runs out, trip planners stop showing this agency even though the buses are still running. Riders are told the service does not exist.

    Fix: Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change. (Usually one export setting; export on a schedule so it never lapses again.)

    Finding code: scorecard_feed_expired · Read the fix guide · See GTFS Best Practices (opens GTFS Best Practices on an external site)

  • Warning87158 instances

    87158 of 87158 trips don't say whether the vehicle is wheelchair accessible.

    Even with accessible stops, riders need to know the bus itself can take them.

    Fix: Set wheelchair_accessible on every trip. If every vehicle is accessible, this may be one default; otherwise use the value for each trip. (A default or per-trip field in your export.)

    Finding code: scorecard_wheelchair_accessible_unknown · Read the fix guide · See GTFS Schedule reference (opens the GTFS Schedule reference on an external site)

  • Warning9271 instances

    9271 of 9271 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)

  • Warning791 instances

    Some rider-facing names are in ALL CAPS or all lowercase.

    ALL-CAPS stop and headsign names are harder to read in apps and are read awkwardly by screen readers.

    Fix: Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE'). (Often a bulk fix in your scheduling software.)

    Finding code: mixed_case_recommended_field · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning8 instances

    Some service calendars in the feed have already ended.

    Expired calendars are dead weight and can hide real schedule problems from your staff and vendors.

    Fix: Remove past service periods the next time you export the feed. (One setting in most export tools.)

    Finding code: expired_calendar · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning7 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)

  • Warning4 instances

    Some scheduled trips move faster between stops than a bus can.

    Usually a typo'd stop time; riders get arrival times no bus can meet.

    Fix: Check the flagged stop times for transposed minutes. (A few minutes per flagged trip.)

    Finding code: fast_travel_between_consecutive_stops · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning4 instances

    Some service calendars have no days of the week switched on.

    Trips tied to these calendars never run; they are dead data that can mask real schedule problems.

    Fix: Delete the empty calendars or set their service days. (A few minutes in your scheduling software.)

    Finding code: service_has_no_active_day_of_the_week · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    This feed's service calendar runs out within the next 7 days.

    When the calendar ends, Google Maps and other trip planners drop your agency entirely. Riders see no service at all.

    Fix: Export and publish an updated GTFS feed that covers at least the next 30 days of service. (Usually a re-export from your scheduling software.)

    Finding code: feed_expiration_date7_days · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    Some stops sit far from the route line they belong to.

    Trip planners may draw the bus route through the wrong streets or point riders to the wrong corner.

    Fix: Check the flagged stops' coordinates and the route shape in your scheduling software; re-snap whichever is misplaced. (A few minutes per flagged stop.)

    Finding code: stop_too_far_from_shape · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    Many of the feed's trips don't run at all in the next 7 days.

    It usually means old service periods are still in the export, making the feed bigger and harder to check.

    Fix: Trim past service periods the next time you export. (One setting in most export tools.)

    Finding code: trip_coverage_not_active_for_next7_days · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    The feed contains no fare information.

    Riders see 'fare unknown' in trip planners and can't budget their trip; visitors are most affected.

    Fix: Add fare_attributes.txt (or Fares v2 files) with your fare structure. If your service is fare-free, ask to have it marked fare-free instead. (A small file for most flat-fare systems.)

    Finding code: scorecard_no_fare_data · Read the fix guide · See GTFS Best Practices (opens GTFS Best Practices on an external site)

  • Info4 instances

    The feed has a stretch of two weeks or more with no service running.

    A long gap can mean dates were left out of the calendar. Apps then show no trips on those days.

    Fix: Check whether the gap is real, like a seasonal break; if not, add the missing dates to the calendar. (A review of your calendar dates.)

    Finding code: big_gap_in_service · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Info2 instances

    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)

NTD GTFS readiness Not ready

Resolve this before you certify on the D-10. Service data expired 588 days ago, so FTA would find the link out of date.

Published Ready
Published at a public URL.
Valid Ready
Passes validation with no errors.
Current Not ready
Service data expired 588 days ago, so FTA would find the link out of date.
agency_id provided Ready
agency.txt provides agency_id. For RY2026, keep one stable value for each NTD reporter represented in the feed and crosswalk each value on the P-50 form.
agency_id equals your NTD ID (optional) Different (allowed)
Your feed's agency_id is 1; your National Transit Database ID is 30030. A feed that serves several agencies (a shared regional feed) can legitimately carry more than one agency_id. The values do not need to equal the five-digit NTD ID, so this difference is allowed and carries no score. Confirm that P-50 crosswalks agency_id 1 to NTD ID 30030, and keep the feed value stable. Do not change it solely to make the two values equal.
shapes.txt covers your trips Ready
All 87158 trips have a shape in shapes.txt.

In plain words: if you report to the federal transit database, you have to publish a working, up-to-date feed, provide a stable agency_id for each represented reporter, and confirm the feed and P-50 crosswalk each year. This box is a heads-up; your filings are the official check.

A readiness signal mapping this feed to the FTA National Transit Database GTFS requirement (Report Year 2023 onward: a public, valid, current feed, certified annually on the D-10). For RY2026, each represented reporter needs a stable agency_id, unique within the feed and crosswalked to its five-digit NTD ID on P-50; the values do not need to be equal. FTA also requires shapes.txt in the published GTFS: Full Reporters from Report Year 2025, and Reduced, Rural, and Tribal Reporters from Report Year 2026. Not an official determination; your certification is the official check.

Conformance mark Not yet

This feed is close to the conformance mark. Service data expired 588 days ago. States wheelchair access on 0% of stops and 0% of trips; the mark needs 90% of each.

Valid Met
Passes validation with no errors.
Current Not yet
Service data expired 588 days ago.
Accessible Not yet
States wheelchair access on 0% of stops and 0% of trips; the mark needs 90% of each.

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.

Below the Google and Apple Maps four-week coverage bar. This feed's last day of service has passed, so Google and Apple Maps will stop showing your agency. Re-export with a calendar that covers at least the next four weeks.

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, FTA National Transit Database GTFS requirement. Read the full standards crosswalk.

Correctness 59 / 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. FTA NTD readiness also checks that the published feed is valid.
Freshness 0 / 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. FTA NTD readiness also checks that the published feed is current.
Rider experience 45 / 100
GTFS Best Practices for rider-facing fields. MobilityData grading covers stop names and headsigns.
Realtime quality Access needed to measure
GTFS-Realtime best practices: a stable URL, high uptime, and frequent updates.

Show your grade

Put a badge on your agency site or feed README. It updates after each completed scoring check and links back to this scorecard.

Washington Metropolitan Area Transit Authority (WMATA) Bus GTFS data quality grade: F

Prefer a shields.io style? Point a dynamic endpoint badge at the published badge.json.

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/washington-metropolitan-area-transit-authority-wmata/2026-08-01.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-08-01. 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.