Feed status · checked 2026-08-01
Frederick County TransIT
Based on the feed this agency publishes
Service mode Bus
down 0.2 since 2026-07-31
Catalogued in Maryland.
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 77 minutes ago; last changed 77 minutes ago.
Measured 4 of 4 score categories from the agency's own feed.
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 6 snapshots.
- The feed was downloaded from the agency's own URL.
Confidence describes how much the pipeline could measure this run, not the feed itself. It never changes the grade.
Top things to fix
Review the rule documentation for 'stop_time_with_arrival_before_previous_departure_time' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.
Stop time with arrival before previous departure time (flagged by the MobilityData validator). See the linked rule for what this affects.
⏱ Varies.worth about +18 points in its category
Review the rule documentation for 'block_trips_with_overlapping_stop_times' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.
Block trips with overlapping stop times (flagged by the MobilityData validator). See the linked rule for what this affects.
⏱ Varies.worth about +12 points in its category
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
392 of 392 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
This feed is generated by your Passio system from the route and stop data they maintain. Send the fix list to your Passio contact.
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
- Stop time with arrival before previous departure time (flagged by the MobilityData validator).
- Next action
- Review the rule documentation for 'stop_time_with_arrival_before_previous_departure_time' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.
- 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
- Block trips with overlapping stop times (flagged by the MobilityData validator).
- Next action
- Review the rule documentation for 'block_trips_with_overlapping_stop_times' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.
- 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
- 392 of 392 stops don't say whether a wheelchair user can board there.
- Next action
- Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops.
- 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.
Review the rule documentation for 'stop_time_with_arrival_before_previous_departure_time' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.
Make the change. This feed is generated by your Passio system from the route and stop data they maintain. Send the fix list to your Passio contact.
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. See this feed's finding-clearance log.
Review the rule documentation for 'block_trips_with_overlapping_stop_times' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed.
Make the change. This feed is generated by your Passio system from the route and stop data they maintain. Send the fix list to your Passio contact.
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. See this feed's finding-clearance log.
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. This feed is generated by your Passio system from the route and stop data they maintain. Send the fix list to your Passio contact.
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. See this feed's finding-clearance log.
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 30 days.
- Published accessibility data
- Accessibility information is stated for 0% of stops and 84.6% 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
- One or more realtime feeds were reachable; live-arrival coverage is not known.
Important: This does not rate service reliability. Riders should confirm current service alerts, fares, and accessibility accommodations with the transit operator before traveling.
Send Passio a fix request
This feed is generated by your Passio system. Copy this and send it to your Passio contact; the fixes apply to the route and stop data behind your AVL setup. Each fix names the validator notice and a guide link.
Score by category
The MobilityData validator flagged 7 kinds of issue across 90 instances (32 error, 48 warning, 10 informational).
Service data covers the next 30 days.
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.
0% of stops state accessibility (0% marked accessible). Reflects what the feed states, not verified physical usability.
2 accessibility depth signals
5 route badge(s) pair a color and text color below the WCAG 4.5:1 contrast bar (40, 60, 61, EFS, ETS).
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.
16 stop name(s) use abbreviations or symbols a screen reader may mispronounce, with no spoken form set ("Bentz Street at Dill Avenue/4th Street", "Broadband Drive at Progress Drive (Riverside Corporate Park/Wells Fargo)", "Church St at CVS", 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.
Sampled 6 times outside service hours: 2 of 2 configured feeds healthy; 95.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 392 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.
- 10 (yellow)
- 20 (green)
- 40 (red)
- 50 (yellow)
- 51 (blue)
- 60 (teal)
- 61 (orange)
- 65 (teal)
- 80 (purple)
- ETS (gray)
- BJS (green)
- POR (brown)
- WLK (brown)
- 85 (gray)
- EFS (pink)
- NFS (purple)
- 15 (teal)
| Route | Type | Line color |
|---|---|---|
| 10 10 Connector | Bus | yellow |
| 20 20 Connector | Bus | green |
| 40 40 Connector | Bus | red |
| 50 50 Connector | Bus | yellow |
| 51 51 Connector | Bus | blue |
| 60 60 Connector | Bus | teal |
| 61 61 Connector | Bus | orange |
| 65 65 Connector | Bus | teal |
| 80 80 Connector | Bus | purple |
| ETS Emmitsburg Thurmont Shuttle | Bus | gray |
| BJS Brunswick Jefferson Shuttle | Bus | green |
| POR Point of Rocks Meet-the-MARC Shuttle | Bus | brown |
| WLK Walkersville Meet-the-MARC Shuttle | Bus | brown |
| 85 Route 85 Shuttle | Bus | gray |
| EFS East Frederick Shuttle | Bus | pink |
| NFS North Frederick Shuttle | Bus | purple |
| 15 15 Connector | Bus | teal |
List every stop
- Waverley Transfer Facility
- Frederick Towne Mall at Boscov's South Entrance
- Golden Mile Marketplace at Big Lots
- Golden Mile Marketplace at McCain Drive
- McCain Drive at David Lane Park
- McCain Drive at Hillcrest Drive
- Hillcrest Drive at Riggs Court
- Hillcrest Drive at Seneca Drive
- Seneca Drive at Himes Avenue
- Himes Avenue at Coralberry Court
- Himes Avenue at Bradley Court
- Ballenger Creek Plaza Shopping Center
- Farmbrook Drive at Glenrock Drive
- Farmbrook Drive at Farmhouse Drive
- Farmbrook Drive at Farmbrook Court
- Farmbrook Drive at Hames Court
- Farmbrook Drive at Crestwood Boulevard
- Crestwood Boulevard at Crabapple Drive
- Crestwood Boulevard at New Design Road
- New Design Road at Arbor Drive
- Kingsbrook Crossing Shopping Center
- Corporate Drive at New Design Road
- Francis Scott Key Mall
- Clarion Inn Frederick Event Center
- New Technology Way at Spectrum Drive eb
- Spectrum Drive at Garner Hotel
- Spectrum Drive at Golden Corral
- Spectrum Drive at M&T
- 5255 Westview Drive
- Crestwood Boulevard at Bank Court
- Crestwood Boulevard at Foxcroft Drive
- Walmart (Guilford)
- Kohl's (shelter)
- Crestwood Boulevard at Burning Bush Drive (East)
- Crestwood Boulevard at Burning Bush Drive (West)
- Crestwood Boulevard at Ballenger Creek Pike (West)
- Cawley Drive at shelter
- Ballenger Center Drive at Ballenger Creek Pike
- Solarex Court
- Himes Avenue at Primus Court
- Himes Avenue at Coralberry Court
- Himes Avenue at Seneca Drive
- Seneca Drive at Hillcrest Drive
- Hillcrest Drive at Hill Street
- Hillcrest Drive at McCain Drive
- McCain Drive at Lauren Court South
- McCain Drive at Orchard Way
- Transit Center - MARC Train Station
- South Carroll Street at East All Saints Street
- Clarke Place at South Market Street
- South Market Street at The Arc (shelter)
- Industry Lane south of Guilford Drive (after left turn)
- Industry Lane at Grove Road
- Grove Road at Route 85
- Grove Road at Route 85 (McDonalds)
- Target at Genstar Drive
- New Technology Way at Spectrum Drive wb
- Grove Road at Industry Lane
- Industry Lane at Guilford Drive
- Route 355/South Market Street at Noland
- East South Street at Carroll Street X
- Frederick Towne Mall at Meet-the-MARC stop on Waverley
- Key Parkway across from Elmwood Terrace Apartments
- Key Parkway at Hickory Hill Apartments
- Key Parkway at Old Camp Road
- Old Camp Road at Stonegate Park
- West Patrick Street at Norva Avenue
- West Patrick Street at James Street
- West South Street at Thomas Avenue
- West South Street at Center Street
- South Street at South Market Street
- North Market Street at 4th Street
- Square Corner (East Patrick Street at North Market Street)
- North Market Street at 3rd Street
- North Market Street at 6th Street
- West 7th Street at Motter Avenue/Bentz Street
- West 7th Street at Toll House Avenue- Hospital
- West 7th Street at Taney Avenue
- Military Road at Fort Detrick
- Old Farm Drive at Old Farm Station Shopping Center
- Walnut Ridge Shopping Center at Food Lion
- Tuscanney Drive at Greenspring Place
- Tuscanney Drive at Greenleaf Drive East
- Greenleaf Drive East at Christophers Crossing
- Whittier Drive at Somerford
- Whittier Drive across from Wetherburne Way
- Greenleaf Drive East at Tuscanney Drive
- Tuscanney Drive at Carroll Creek View Court
- Tuscanney Drive at Rosemont Avenue- CVS
- Rosemont Avenue at Rocky Springs Road
- Rosemont Avenue at Citizens Nursing Home
- Rosemont Avenue at Pizza Hut
- Baughman's Lane at Carroll Park Manor
- Key Pkwy at Bel Aire La Westbound
- Key Parkway west of Willowdale Drive
- Key Parkway at Baker Place Apartments
- North McCain Drive at north entrance to Home Depot
- Baughman's Lane at Belle Aire Farm
- Baughman's Lane at Rock Creek Park
- West Patrick Street at Bentz Street
- West Patrick Street at Jefferson Street
- West Patrick Street at College Terrace
- West Patrick Street at Kline Boulevard
- Frederick County Square
- Westridge Plaza at H Mart
- Frederick Shoppers World at Dollar General
- Willowdale Drive at Route 40
- Hillcrest Drive at Thornhill Place East
- Hillcrest Drive at Hillcrest Shopping Center South Entrance
- Hillcrest Drive at Route 40
- Transit Center - East Street Shelter
- East Patrick Street at Wisner Street
- East Patrick Street at Fairground Center
- East Patrick Street at Hamilton Avenue
- East Patrick Street at East Gate Plaza
- 75 Monocacy Boulevard- Royal Farms
- East South Street at Franklin Street
- Hillcrest Drive at Consett Place
- Hillcrest Drive at Tilman Place North
- Waverley Drive at Key Parkway
- Key Parkway at Elmwood Terrace Apartments East
- Key Parkway at McCain Drive
- Key Parkway at Willowdale Drive
- Key Parkway at Westridge Plaza (rear)
- Key Pkwy at Bel Aire La Eastbound
- Park Ridge Drive across from Creekside Apartments
- Bel Aire Lane at Schaffer Drive
- Schaffer Drive at Willowdale Drive
- Willowdale Drive at Thames Drive
- Montevue Lane at SriSai Bio Pharmeceutical
- Frederick County Health Department (shelter)
- Baughman's Lane at Walgreens
- Norva Avenue at Wyngate Drive (southbound)
- Prospect Plaza (southbound)
- Prospect Boulevard at Festival at Frederick Shopping Center South Entrance
- Center Street at Fieldpointe Boulevard
- Center Street at White Oak Place
- Center Street at Carrollton Drive
- Center Street at Madison Street
- Center Street at West South Street
- North Market Street at 8th Street
- North Market Street at YMCA
- 10th Street at Motter Avenue
- 14th Street at Motter Avenue
- Motter Avenue at Rose Hill Plaza
- Opossumtown Pike at Deervalley Drive
- Opossumtown Pike at Amber Drive shelter
- Frederick Community College shelter
- Amber Drive at Carriage Way
- Amber Drive at Hillmeade Square
- Hayward Road at Thomas Johnson Drive
- 61 Thomas Johnson Drive
- 67 Thomas Johnson Drive- North Amber Center
- 87 Thomas Johnson Drive
- 141 Thomas Johnson Drive- SRI
- 175 Thomas Johnson Drive- Columbia Bank
- Heather Ridge Drive at Country Hill Apartments (westbound)
- Heather Ridge Drive at 550 Heather Ridge Drive
- Taney Avenue at Heather Ridge Drive
- Taney Village Apartments
- Frederick Shopping Center North
- Frederick Shopping Center South- Giant Eagle
- Fairview Avenue at College Park Plaza (The Common Market)
- 9th Street at Toll House Avenue
- Motter Avenue at West 9th Street
- Motter Avenue at 7th Street
- Bentz Street at Dill Avenue/4th Street
- Bentz Street at 2nd Street
- Church Street at North Market Street
- Church Street at East Street
- Madison Street at Stine's Lane
- Madison Street at Center Street
- Center Street at Scholls Lane
- Center Street at Catoctin Avenue
- Center Street at Prospect Boulevard
- Prospect Boulevard at Carrollton Drive
- Prospect Boulevard at Festival at Frederick Shopping Center
- Prospect Boulevard at Jefferson Street
- Prospect Plaza (northbound)
- Norva Avenue at Wyngate Drive (northbound)
- Norva Avenue at West Patrick Street
- Taney Avenue at 8th Street- McDonalds
- Taney Avenue at Potomac Commons (across from Wilson Place)
- Taney Avenue at Applegate Apartments
- Taney Avenue at Frederick Senior Center
- Heather Ridge Drive at 501 Heather Ridge Drive
- Heather Ridge Drive at Country Hill Apartments (eastbound)
- Motter Avenue at 14th Street
- East 7th Street at East Street
- Spectrum Drive at Lowe's Lane
- Crestwood Boulevard at Edenton Ct
- Ballenger Center Drive at Cawley Drive
- South Carroll Street at Clarke Place
- Grove Road at Route 355
- Spectrum Drive at Route 85 - Sheetz
- Grove Road at Route 85 (Bank of America)
- South Market Street at Mount Olivet Boulevard
- West South Street at Burck Street
- North McCain Drive at Route 40
- West Patrick Street at College Avenue
- Hillcrest Drive at Pendleton Drive
- Amber Drive at Hayward Road
- Taney Avenue at Wilson Place
- 9th Street at Motter Avenue
- East Street at 9th Street
- 8th Street at North Market Street
- Baughman's Lane at Waterford Drive
- Baughman's Lane across from Carroll Park Manor
- Military Road at Meade Avenue
- Military Road at 7th Street
- 7th Street at Wilson Place
- Hayward Road (after left turn from Thomas Johnson Drive)
- Amber Drive at Millstream Drive
- Opossumtown Pike at Thomas Johnson Drive (near Stauffer Funeral Home)
- Montevue Lane across from Frederick County Health Department
- Willowdale Drive at Savage Road
- East Street at Peters Lane
- East Street at Delaware Road (Monocacy Village Shopping Center)
- 16th Street at Northampton Manor
- 16th Street at Carey Place
- 16th Street at Dogwood Drive
- 16th Street at Schifferstadt Boulevard
- Schifferstadt Boulevard at Turning Point Court
- North Market Street at Triangle Motors
- 194 Stauffer Court- Sheetz
- Broadband Drive at Progress Drive (Riverside Corporate Park/Wells Fargo)
- Shops at Monocacy (stop sign across from Little Gym)
- Shops at Monocacy at Kingfisher Drive
- Wheyfield Drive across from Wills Alley (Dearbought)
- Latham Drive at Wheyfield Drive (Dearbought)
- Stauffer Road at Dream Place (Discovery)
- Discovery Boulevard across from daycare center (Discovery)
- Discovery Boulevard at Adventure Avenue (Discovery)
- Walkers Village Shopping Center- Safeway
- Frederick Street at Main Street (downtown Walkersville)
- FCPS Food and Nutrition Services (57 West Frederick Street)
- Frederick Street at Firehouse/High School (downtown Walkersville)
- Waterside Drive at River Run Road (Waterside)
- Waterside Drive at Village Square Road (Worman's Mill)
- Waterside Drive at Caulfield Court- Worman's Mill
- Monocacy Boulevard at Frederick Health Village
- Monocacy Boulevard at Mill Pond Road
- North Market Street at Worman's Mill Court
- Schifferstadt Boulevard at Insley Circle
- Schifferstadt Boulevard at East 16th Street
- 16th Street at Dogwood Drive (southbound)
- 16th Street across from Carey Place
- 16th Street at East Street (across from Northampton)
- East Street at Peters Lane (Southbound)
- Whittier Drive at Christophers Crossing
- and 142 more (see the full list on the map or in the GeoJSON)
Over time
Overall score across the last 2 checks — down 0.2 since 2026-07-31.
Show the numbers
| Check | Score | Change |
|---|---|---|
| 2026-07-31 | 62.9 | first check |
| 2026-08-01 | 62.7 | down 0.2 |
What changed since your last check
- Correctness no change
- Freshness no change
- Rider experience no change
- Realtime quality down 1.1
What changed in this feed
Overall score fell 0.2 points since 2026-07-31.
The feed file was re-published since 2026-07-31.
Changed counts
- down Some live predictions disagree with the schedule by more than 30 minutes. (130 → 76) (scorecard_rt_predictions_implausible)
Subscribe to this feed’s changes (Atom) to hear about grade drops in a reader, with no sign-up.
Everything we checked
12 findings, ordered by severity.
Show every finding
- Error31 instances
Stop time with arrival before previous departure time (flagged by the MobilityData validator).
See the linked rule for what this affects.
Fix: Review the rule documentation for 'stop_time_with_arrival_before_previous_departure_time' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed. (Varies.)
Finding code: stop_time_with_arrival_before_previous_departure_time · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
- Error1 instance
Block trips with overlapping stop times (flagged by the MobilityData validator).
See the linked rule for what this affects.
Fix: Review the rule documentation for 'block_trips_with_overlapping_stop_times' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed. (Varies.)
Finding code: block_trips_with_overlapping_stop_times · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
- Warning392 instances
392 of 392 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)
- Warning116 instances
116 of 753 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)
- Warning76 instances
Some live predictions disagree with the schedule by more than 30 minutes.
Differences that large usually mean predictions are keyed to the wrong trips, not that buses are that late.
Fix: Spot-check the flagged predictions against what buses actually did; raise trip-matching with your AVL vendor. (A vendor data-mapping question.)
Finding code: scorecard_rt_predictions_implausible
- Warning35 instances
Some stops exist in the feed but no trip ever stops at them.
Riders may walk to a stop where no bus 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)
- Warning10 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)
- Warning3 instances
Some stops sit far from the route line, going by the feed's own distance values.
Trip planners may draw the route down the wrong streets or point riders to the wrong corner.
Fix: Check the flagged stops' shape_dist_traveled against the route shape, and re-generate it on export if they disagree. (Usually an export-tool fix, not hand editing.)
Finding code: stop_too_far_from_shape_using_user_distance · 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)
- Warning1 instance
1 of 753 trips lack rider-facing destination or direction text.
When a route has multiple directions or patterns, the route name alone may not tell riders which service is coming.
Fix: Add the destination, direction, or 'via' label riders actually see to trip_headsign. Do not copy the route name. If the label changes during the trip, use stop_headsign. (Usually one value per route pattern in your scheduling source.)
Finding code: scorecard_missing_headsigns · Read the fix guide · See GTFS Best Practices (opens GTFS Best Practices on an external site)
- Info6 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)
- Info4 instances
Some service dates fall outside the date window set in feed_info.txt.
feed_info.txt should span every day your service runs, so apps know when the data applies.
Fix: Widen feed_start_date and feed_end_date to cover all service dates, or fix the dates that fall outside. (Two fields in feed_info.txt, or one export setting.)
Finding code: service_window_outside_feed_period · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)
NTD GTFS readiness Needs attention
This feed is close to NTD-ready. 2 validator errors to resolve. Service data runs out in 30 days; renew before you certify.
- Published Ready
- Published at a public URL.
- Valid Needs attention
- 2 validator errors to resolve.
- Current Needs attention
- Service data runs out in 30 days; renew before you certify.
- 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) Not checked yet
- This feed provides agency_id. For RY2026, keep one stable value for each NTD reporter represented in the feed and crosswalk it on the P-50 form. The value does not need to equal the five-digit NTD ID; we do not have that ID on file, so the optional equality comparison is not checked yet.
- shapes.txt covers your trips Ready
- All 753 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. 2 validator errors to resolve. Service data runs out in 30 days; renew to qualify. States wheelchair access on 0% of stops and 85% of trips; the mark needs 90% of each.
- Valid Not yet
- 2 validator errors to resolve.
- Current Not yet
- Service data runs out in 30 days; renew to qualify.
- Accessible Not yet
- States wheelchair access on 0% of stops and 85% 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.
Can riders use it?
Checks beyond structural validation: places where the feed is valid but a rider still could not travel.
- 35 of 392 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 200 checks over the last 34 days, with 3s 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 5003s nine times in ten. They were on time (about a minute early to five late) 28.9% of the time. 95.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 517 days of service ahead, clearing the four-week (28-day) window Maps asks for. The feed also carries 32 validator errors, the other thing Maps checks at onboarding; the findings below name each fix.
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 53 / 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 50 / 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 58 / 100
- GTFS Best Practices for rider-facing fields. MobilityData grading covers stop names and headsigns.
- Realtime quality 99 / 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/frederick-county-transit-2432/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.