← All agencies

Feed status · checked 2026-07-09

Capital Metro

Based on the feed this agency publishes

73.2 / 100

down 0.4 since 2026-07-08

Ahead of 65% of all tracked agencies and 82% of large agencies. Operates in Texas.

Covers 37 daysAccessibility gaps

Heads-up: The score fell 22 points in one step, from 75 on 2026-07-04 to 53 on 2026-07-05. A jump this size usually means the export changed rather than the service. Worth checking the run on this date. (checked 2026-07-05). This can be a brief vendor export glitch; watch the next update before acting.

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.1, validator 8.0.1.

Checked for changes 15 minutes ago; last changed 7 days ago.

Measured 4 of 4 score categories from the agency's own feed.

How we measured this

Confidence in this measurement: high.

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

Check the service alerts endpoint with your AVL vendor; it should return a fresh GTFS-Realtime protobuf on every request.

The service alerts realtime feed failed during sampling. When this feed is down, riders see scheduled times presented as if they were live.

⏱ Usually a vendor support ticket.worth about +8 points

Agencies here usually clear this within about 1 week (based on 5 observed fixes).

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

2343 of 2343 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

Fix 03

Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE').Likely your export tool

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.

⏱ Often a bulk fix in your scheduling software.worth about +8 points

Close the loop on each fix. Read the guide, make the change in your tool, and let the next run verify it — the scorecard shows the fix; the agency publishes it.

  1. Check the service alerts endpoint with your AVL vendor; it should return a fresh GTFS-Realtime protobuf on every request. · Read the fix guide

    Make the change. Make this change in whatever tool produces your feed, then re-export.

    Prove it cleared. The next scorecard run re-checks this automatically and, once it is gone, mints a dated receipt. See this feed's dated fix log.

  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.

    Prove it cleared. The next scorecard run re-checks this automatically and, once it is gone, mints a dated receipt. See this feed's dated fix log.

  3. Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE'). · Read the fix guide

    Make the change. Make this change in whatever tool produces your feed, then re-export.

    Prove it cleared. The next scorecard run re-checks this automatically and, once it is gone, mints a dated receipt. See this feed's dated fix log.

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

Correctness69.2 / 100

The MobilityData validator flagged 5 kinds of issue across 3672 instances (0 error, 3666 warning, 6 informational).

Freshness61.7 / 100

Service data covers the next 37 days.

Rider experience74.9 / 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 published.

Accessibility37.5 / 100

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

FaresLegacy fares

Fares are applied to trips.

Realtime quality89.6 / 100

Sampled 9 times: 2 of 3 feeds healthy; 96.4% of scheduled trips had live predictions; 98.0% of vehicles on their route; predictions ran a median of 25s ahead of schedule.

Routes and stops

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

Skip to route and stop data

Basemap: OpenFreeMap, © OpenStreetMap contributors. Routes and stops: this agency's GTFS feed.

Routes in Capital Metro's feed
RouteTypeLine color
1 1-North Lamar/South CongressBusteal
10 10-South 1st/Red RiverBusteal
103 103-Manchaca FlyerBusbrown
105 105-South 5th FlyerBusbrown
111 111-South Mopac FlyerBusbrown
135 135-Dell LimitedBusbrown
142 142-Metric FlyerBusbrown
152 152-Round Rock Tech Ridge LimitedBusbrown
171 171-Oak Hill FlyerBusbrown
18 18-Martin Luther KingBusteal
2 2-Rosewood/CESAR CHAVEZBusteal
20 20-RiversideBusteal
201 201-Southpark MeadowsBusteal
214 214-Northwest FeederBusteal
217 217-Montopolis FeederBusteal
228 228-VA ClinicBusteal
233 233-Decker/Daffan LnBusteal
243 243-Wells BranchBusteal
271 271-Del ValleBusteal
3 3-Burnet/ManchacaBusteal
30 30-Barton Creek/Bull CreekBusteal
300 300-Springdale/OltorfBusteal
310 310-Parker/WickershamBusteal
311 311-StassneyBusteal
315 315-Ben WhiteBusteal
318 318-Westgate/SlaughterBusteal
320 320-Manor RoadBusteal
322 322-Chicon/CherrywoodBusteal
324 324-Georgian/OhlenBusteal
325 325-Metric/RundbergBusteal
333 333-William CannonBusteal
335 335 35th/38thBusteal
337 337-Koenig/Colony ParkBusteal
339 339-TuscanyBusteal
345 345-45thBusteal
350 350-Airport BlvdBusteal
383 383-ResearchBusteal
392 392-BrakerBusteal
4 4-7th StreetBusteal
465 465-MLK/University of TexasBusteal
466 466-Kramer/DomainBusteal
481 481-Night Owl North LamarBusteal
483 483-Night Owl RiversideBusteal
484 484-Night Owl South LamarBusteal
485 485-Night Owl 7th Street/CameronBusteal
486 486-Night Owl South CongressBusteal
490 490-HEB ShuttleBusteal
491 491-AllandaleBusteal
492 492-DelwoodBusteal
493 493-EastviewBusteal
5 5-Woodrow/LamarBusteal
50 50-Round Rock TechridgeBusteal
550 550-Metro Rail Red LineTram / light railred
640 640-Forty AcresBusteal
642 642-West Campus/UTBusteal
656 656-Intramural Fields/UTBusteal
661 661-Far West/UTBusteal
663 663-Lake Austin/UTBusteal
670 670-North RiversideBusteal
672 672-LakeshoreBusteal
7 7-Duval / Dove SpringsBusteal
800 800 PLEASANT VALLEYBusbrown
801 801-N Lamar S CongressBusbrown
803 803-Burnet/S LamarBusbrown
837 837-EXPO CENTERBusbrown
935 935-Tech Ridge ExpressBusred
980 980-North Mopac ExpressBusred
982 982-Pavilion ExpressBusred
985 985-Leander/Lakeline DirectBusred
990 990-Manor/Elgin ExpressBusred

This feed has 2343 stops.

List every stop
  • Riverside/Burton
  • 2237 Riverside/Willow Creek
  • 2507 Riverside/Pleasant Valley
  • 4411 Oltorf/Huntwick
  • 2401 Wickersham/Oltorf
  • Wickersham/Cromwell
  • 2207 Wickersham/Sheringham
  • 4825 Riverside/Kirksey
  • 5401 Riverside/Faro
  • Ruiz Library
  • Riverside/Faro
  • 4823 Riverside/Crossing Place
  • 2100 Wickersham/Riverside
  • Wickersham/Sheringham
  • 2300 Wickersham/Cromwell
  • 2440 Wickersham/Oltorf
  • Oltorf East NB (Pleasant Valley/Oltorf)
  • Sheringham NB (Pleasant Valley/Sheringham)
  • Riverside/Willow Creek
  • Riverside/Town Creek
  • 1600 Riverside/Summit
  • 400 Cesar Chavez/Trinity
  • 2231 Guadalupe/West Mall UT
  • Speedway/35th
  • Speedway/39th
  • 4301 Speedway/43rd
  • 108 45th Street/Avenue D
  • 408 45th Street/Avenue A
  • 619 45th/Guadalupe
  • 918 45th/Lamar
  • Sunshine Station (NB)
  • 4801 Sunshine (Criss Cole Rehab)
  • 1100 49th/Grover
  • 1200 51st/Grover
  • 5113 Woodrow/North
  • 5223 Woodrow/North Loop
  • 5413 Woodrow/Houston
  • 5515 Woodrow/Houston
  • 5701 Woodrow/Theckla
  • 5819 Woodrow/Koenig
  • Woodrow/Alguno
  • Woodrow/Alegria
  • 6523 Woodrow/Brentwood
  • Woodrow/Dwyce
  • 7115 Woodrow/Piedmont
  • Woodrow/Pasadena
  • Woodrow/Morrow
  • 7717 Woodrow/Princeton
  • 1700 Anderson/Wooten Park
  • Anderson/Mullen
  • Jackie Robinson/Delano
  • 1420 Webberville/Fort Branch
  • 12TH/WEBBERVILLE
  • 4600 12th/Springdale
  • 12th/Cometa
  • 3522 12th/E M Franklin
  • 3250 12th/Airport
  • 12th/Harvey
  • 2900 12th/Alexander
  • 12th/Cedar
  • 2204 12th/Chestnut
  • 1914 12th/Chicon
  • 1700 12th/Leona
  • 1400 12th/Angelina
  • 1220 12th/San Bernard
  • 12th/IH-35
  • 12th/Branch
  • 12th/Navasota
  • 1819 12th/Chicon
  • 2601 12th/Cedar
  • 2863 12th/Alexander
  • 3245 12th/Airport
  • 3403 12th/Greenwood
  • 3525 12th/E M Franklin
  • 1201 Webberville/12th
  • 1419 Webberville/Fort Branch
  • 4021 Tannehill/Samuel Huston
  • 1194 Rundberg/Teasdale
  • 838 Rundberg/Middle Fiskville
  • RUNDBERG/NORTHCREEK
  • Georgian/Home Pl.
  • Georgian/Elliott
  • Georgian/Jennifer
  • Georgian/Powell
  • 8000 Georgian/Anderson
  • 7700 Northcrest/Anderson
  • Crestland/Meadowview
  • 7106 Guadalupe/St Johns
  • Guadalupe/Swanee
  • 105 Highland Mall/Jonathan
  • 5600 Avenue F/56th
  • Duval/51st
  • Duval/48th
  • Duval/43rd
  • 4002 Duval/41st
  • Duval/33rd
  • 3200 Duval/32nd
  • Duval/30th
  • San Jacinto/Dean Keeton NW Corner
  • 2324 San Jacinto/24th
  • UT Stadium SB (San Jacinto/23rd)
  • 2098 SAN JACINTO/21ST
  • 715 Riverside/Alameda
  • 1005 East Riverside/Travis Heights
  • Riverside/Kenwood
  • 1724 Burton/Woodland
  • 1920 Burton/Mariposa
  • 2310 Parker/Oltorf
  • 2504 Parker/Braxton
  • 2718 Parker/Royal Hill
  • Woodward/Ben White NW Corner
  • Freidrich/Directors
  • 4600 Freidrich/St Elmo
  • 2035 Teri/Merritt
  • Dove Springs SB (Pleasant Valley/Stassney)
  • Village Square SB (Pleasant Valley/Village Square)
  • 6100 Pleasant Valley/Dove Springs
  • 6406 Pleasant Valley/Creek Bend
  • 6107 Pleasant Valley/Turnstone
  • Village Square NB (Pleasant Valley/Village Square)
  • Dove Springs NB (Pleasant Valley/Stassney)
  • 2522 Stassney/Chaparral
  • 2408 Stassney/Palo Blanco
  • 2008 Teri/Pepper
  • 4801 Freidrich/Teri
  • 4601 Freidrich/City Yard
  • 4217 Freidrich/St Elmo
  • 4115 Freidrich/Woodward
  • Woodward/Ben White SE Corner
  • 1901 Woodward/Parker
  • 3101 Parker/Wickshire
  • 2801 Parker/Royal Hill
  • 2501 Parker/Braxton
  • 2301 Parker/Oltorf
  • 2001 Burton/Mariposa
  • Burton/Valley Hill Cir.
  • 1801 Burton/Woodland
  • 1000 East Riverside/Travis Heights
  • 150 Riverside/Congress
  • 2031 San Jacinto/21st
  • 2525 San Jacinto/Dean Keeton
  • Duval/Bellevue
  • Duval/32nd
  • Duval/Harris
  • 3717 Duval/38th
  • 4017 Duval/41st
  • Duval/Park
  • 4433 Duval/45th
  • 4533 Duval/45th
  • 4803 Duval/48th Street
  • Duval/Bruning
  • 5613 Avenue F/Koenig
  • 6902 Airport Blvd/Guadalupe
  • Guadalupe/Kennistson
  • 7125 Guadalupe/St Johns
  • 7417 Guadalupe/Crestland
  • 7601 Northcrest/Prairie Dell
  • Georgian/Red Oak
  • Georgian/Walnut
  • Georgian/Little Walnut
  • Georgian/Home Place
  • 9013 Georgian/Fawnridge
  • 307 Rundberg/North Creek
  • 7346 Lamar/Sugaree
  • 1127 St Johns/Grand Canyon
  • Berkman/US 290 NW Corner
  • 6208 Berkman/Glen Valley
  • 5810 Berkman/Sweetbriar
  • Berkman/Cloverleaf
  • 4612 Springdale/Touchstone
  • 4300 Springdale/Martin Luther King
  • Springdale/Oak Cliff
  • Springdale/Glomar
  • 1200 Springdale/12th
  • 1150 Springdale/Webberville
  • 1106 Springdale/Ledesma
  • 1050 Springdale/Prock
  • 1018 Springdale/Goodwin
  • 1006 Springdale/Airport
  • 3600 Govalle/Gunter
  • 3200 Govalle/Tillery
  • Govalle/Webberville
  • 850 Pleasant Valley/Webberville
  • 820 Pleasant Valley/Lyons
  • 7th Street SB (Pleasant Valley/7th)
  • Roy G Guerrero SB (Pleasant Valley/Lakeshore)
  • Oltorf East SB (Oltorf/Pleasant Valley)
  • 2030 Oltorf/Willow Creek
  • 2201 Burton/Oltorf
  • Burton/Riverside
  • Elmont/Pleasant Valley/1
  • Roy G Guerrero NB (Pleasant Valley/Lakeshore)
  • 517 Pleasant Valley (Krieg Field)
  • 501 Pleasant Valley/5th
  • 7th Street NB (Pleasant Valley/7th)
  • 819 Pleasant Valley/Lyons
  • 851 Pleasant Valley/Webberville
  • 3601 Govalle/Gunter
  • 1017 Springdale/Goodwin
  • 1053 Springdale/Prock
  • 1107 Springdale/Ledesma
  • 1161 Springdale/Webberville
  • 1207 Springdale/12th
  • Springdale/Leslie
  • 1819 Springdale/Martin Luther King
  • Berkman/Larkwood
  • 6001 Berkman/Briarcliff
  • 6207 Berkman/Glen Valley
  • 6509 Berkman/Wheless
  • Berkman/US 290 SE Corner
  • Berkman/US 290 NE Corner
  • 1008 St Johns/Bethune
  • 900 St Johns/Bennett
  • 7100 Roland Johnson/St Johns
  • 6970 Roland Johnson/Huntland
  • 300 Huntland/Brenda
  • 6500 Jonathan Dr (Highland Mall)
  • 7401 Lamar/St Johns
  • Exposition/Warren
  • Exposition/Mountain Laurel
  • Exposition/Northwood
  • 2728 Exposition (Casis Elementary)
  • 2525 Enfield/Norwalk
  • 1801 Enfield/Hartford
  • 1603 Enfield/West Lynn
  • Oltorf/Alta Vista
  • 1101 Oltorf/Alta Vista
  • 1313 Oltorf/Schriber
  • 1605 Oltorf/IH 35
  • 1747 Oltorf/Parker
  • 710 Oltorf/East Side
  • Enfield/Pease
  • 1728 Enfield/Hartford
  • 2600 Enfield/Norwalk
  • Enfield/Hopi
  • 6594 1st/William Cannon
  • 6403 S 1st/Eberhart
  • 6001 S 1st/Flournoy
  • 5201 S 1st/Ramble
  • 5001 S 1st/Emerald Wood
  • 4617 S 1st/Orland
  • 4401 S 1st/St Elmo
  • 4217 S 1st/Radam
  • 3837 S 1st/Ben White
  • 3715 1st/South Center
  • 3361 S 1st/Lightsey
  • 3001 S 1st/Powell
  • 2701 S 1st/Cumberland
  • 2529 S 1st/Herndon
  • 2401 S 1st/Oltorf
  • and 2093 more (see the full list on the map or in the GeoJSON)

Over time

Overall score across the last 20 checks — down 0.4 since 2026-07-08.

2026-06-19: 80.12026-06-20: 79.82026-06-21: 79.52026-06-22: 79.12026-06-23: 78.82026-06-24: 78.52026-06-25: 78.22026-06-26: 77.82026-06-27: 77.52026-06-28: 77.22026-06-29: 76.92026-06-30: 76.52026-07-01: 76.12026-07-02: 75.82026-07-04: 75.02026-07-05: 53.12026-07-06: 58.22026-07-07: 57.82026-07-08: 73.62026-07-09: 73.2
Show the numbers
Overall score by check, with the change from the previous check
CheckScoreChange
2026-06-1980.1 first check
2026-06-2079.8 down 0.3
2026-06-2179.5 down 0.3
2026-06-2279.1 down 0.4
2026-06-2378.8 down 0.3
2026-06-2478.5 down 0.3
2026-06-2578.2 down 0.3
2026-06-2677.8 down 0.4
2026-06-2777.5 down 0.3
2026-06-2877.2 down 0.3
2026-06-2976.9 down 0.3
2026-06-3076.5 down 0.4
2026-07-0176.1 down 0.4
2026-07-0275.8 down 0.3
2026-07-0475.0 down 0.8
2026-07-0553.1 down 21.9
2026-07-0658.2 up 5.1
2026-07-0757.8 down 0.4
2026-07-0873.6 up 15.8
2026-07-0973.2 down 0.4

What changed since your last check

What changed in this feed

Overall score fell 0.4 points since 2026-07-08.

Same feed file as 2026-07-08; 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.

What changed over time

On 2026-06-19 this feed started at grade B. On 2026-06-20 the grade moved from B to C. On 2026-07-05 the grade moved from C to F. On 2026-07-08 the grade moved from F to C. As of 2026-07-09 it holds grade C.

A plain-language history of this feed, newest first.

Everything we checked

Beyond the grade

Opportunities that do not change your grade today: fare detail, on-demand service, and deeper accessibility data.

Some fixes we can make for you

These are the safe mechanical fixes, applied to a copy of your feed. They change only what is certain and leave everything else untouched. Review the diff before you publish.

Run it yourself on your own copy of the feed: scorecard autofix <feed.zip> --out corrected.zip

NTD certification readiness Ready

Published at a public URL, valid, and current: the three things the NTD GTFS requirement asks of a feed all hold here. Only your own D-10 certification makes that official; this is a heads-up, not a determination.

Published Ready
Published at a public URL.
Valid Ready
Passes validation with no errors.
Current Ready
Service data covers the next 37 days.
agency_id matches your NTD ID Not aligned
Your feed's agency_id is CM; your National Transit Database ID is 60048. A feed that serves several agencies (a shared regional feed) can legitimately carry more than one agency_id, so a difference here is a heads-up, not an error. Optionally set the agency_id for your service to 60048 in agency.txt (and the matching agency_id in routes.txt) so the feed lines up with your NTD record. It is a convenience, not a required feed change: FTA also links agency_id to your NTD ID on your P-50 form.
shapes.txt covers your trips Ready
All 21787 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 and confirm it once a year. This box is a heads-up on whether yours looks ready; it is not the official sign-off.

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). Aligning agency_id with your NTD ID lets the feed line up with your NTD record; the July 2025 final rule links the two on the P-50 form rather than requiring that feed change, and 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. States wheelchair access on 0% of stops and 100% of trips; the mark needs 90% of each.

Valid Met
Passes validation with no errors.
Current Met
Service data covers the next 37 days.
Accessible Not yet
States wheelchair access on 0% of stops and 100% 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.

Realtime reliability

The realtime feed responded on 89.5% of 105 checks over the last 16 days, with 53s median lag.

Sampled on a schedule between full scores, so this tracks uptime and freshness over time rather than at a single moment.

Prediction accuracy

Arrival predictions ran a median 25s early versus the schedule, and stayed within 394s nine times in ten. They were on time (about a minute early to five late) 50.7% of the time. 98.0% 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 37 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

A data-quality lens, not a compliance determination. Each category shows this feed's score and the standards it relates to: the FTA National Transit Database GTFS requirement, the MobilityData grading scheme, and the Google Transit gate. Read the full standards crosswalk.

Correctness 69 / 100
GTFS Schedule best practices, checked by the MobilityData validator. MobilityData grading: stop locations, route names and colors. Google Transit: a feed must pass validation to stay in Maps.
Freshness 62 / 100
The FTA National Transit Database expectation of a valid, current feed. Google Transit: an expired calendar drops the agency from Maps.
Rider experience 75 / 100
GTFS Best Practices for rider-facing fields. MobilityData grading: stop names and headsigns.
Realtime quality 90 / 100
GTFS-Realtime best practices: a stable URL, high uptime, and frequent updates.

Show your grade

Put a live badge on your agency site or feed README. It updates daily and links back to this scorecard.

Capital Metro GTFS data quality grade: C

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/capital-metro/2026-07-09.json and never overwritten, pinning the grade, category scores, rubric version, validator version, and the scored feed's sha256 as they stood on 2026-07-09. Use it in a board packet, an NTD narrative, 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.