{
  "agency_count": 95,
  "average_score": 70.2,
  "common_fixes": [
    {
      "agencies": 76,
      "code": "scorecard_wheelchair_boarding_unknown",
      "fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "agencies": 61,
      "code": "scorecard_wheelchair_accessible_unknown",
      "fix": "Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default)."
    },
    {
      "agencies": 26,
      "code": "scorecard_feed_expired",
      "fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "agencies": 22,
      "code": "scorecard_no_fare_data",
      "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."
    },
    {
      "agencies": 13,
      "code": "scorecard_missing_headsigns",
      "fix": "Populate trip_headsign to match what the bus displays."
    },
    {
      "agencies": 9,
      "code": "expired_calendar",
      "fix": "Remove past service periods the next time you export the feed."
    },
    {
      "agencies": 8,
      "code": "scorecard_feed_expiring_soon",
      "fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "agencies": 7,
      "code": "stop_without_stop_time",
      "fix": "Remove retired stops from the export, or add them back to the trips that should serve them."
    },
    {
      "agencies": 7,
      "code": "mixed_case_recommended_field",
      "fix": "Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE')."
    },
    {
      "agencies": 5,
      "code": "stop_too_far_from_shape_using_user_distance",
      "fix": "Review the rule documentation for 'stop_too_far_from_shape_using_user_distance' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 5,
      "code": "equal_shape_distance_same_coordinates",
      "fix": "Review the rule documentation for 'equal_shape_distance_same_coordinates' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 4,
      "code": "trip_distance_exceeds_shape_distance_below_threshold",
      "fix": "Review the rule documentation for 'trip_distance_exceeds_shape_distance_below_threshold' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 4,
      "code": "block_trips_with_overlapping_stop_times",
      "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."
    },
    {
      "agencies": 3,
      "code": "same_route_and_agency_url",
      "fix": "Review the rule documentation for 'same_route_and_agency_url' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 2,
      "code": "scorecard_rt_vehicle_positions_unreachable",
      "fix": "Check the vehicle positions endpoint with your AVL vendor; it should return a fresh GTFS-Realtime protobuf on every request."
    },
    {
      "agencies": 2,
      "code": "feed_expiration_date7_days",
      "fix": "Export and publish an updated GTFS feed that covers at least the next 30 days of service."
    },
    {
      "agencies": 2,
      "code": "decreasing_or_equal_stop_time_distance",
      "fix": "Re-generate shape distances in your export; flag to your vendor if it persists."
    },
    {
      "agencies": 2,
      "code": "fast_travel_between_consecutive_stops",
      "fix": "Check the flagged stop times for transposed minutes."
    },
    {
      "agencies": 2,
      "code": "service_window_outside_feed_period",
      "fix": "Review the rule documentation for 'service_window_outside_feed_period' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 2,
      "code": "route_short_name_too_long",
      "fix": "Review the rule documentation for 'route_short_name_too_long' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 2,
      "code": "missing_required_agency_id",
      "fix": "Review the rule documentation for 'missing_required_agency_id' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 2,
      "code": "missing_timepoint_value",
      "fix": "Review the rule documentation for 'missing_timepoint_value' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 2,
      "code": "service_has_no_active_day_of_the_week",
      "fix": "Delete the empty calendars or set their service days."
    },
    {
      "agencies": 2,
      "code": "missing_required_column",
      "fix": "Review the rule documentation for 'missing_required_column' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    }
  ],
  "expired": {
    "lapsed": 5,
    "stale": 21,
    "total": 26
  },
  "generated_at": "2026-07-09T09:08:55+00:00",
  "grade_distribution": {
    "A": 8,
    "B": 23,
    "C": 27,
    "D": 7,
    "F": 30
  },
  "members": [
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -2016,
      "expiry_status": "stale",
      "grade": "F",
      "id": "microsoft-shuttles",
      "name": "Microsoft Shuttles",
      "needs_attention": true,
      "score": 18.9,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 17 day(s)",
      "days_until_expiry": 17,
      "expiry_status": "expiring_soon",
      "grade": "F",
      "id": "washington-state-ferries-1331",
      "name": "Washington State Ferries",
      "needs_attention": true,
      "score": 37.8,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -738,
      "expiry_status": "stale",
      "grade": "F",
      "id": "seattle-children-s-hospital-shuttle",
      "name": "Seattle Children's Hospital Shuttle",
      "needs_attention": true,
      "score": 37.9,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -159,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "coast-transportation",
      "name": "COAST Transportation",
      "needs_attention": true,
      "score": 38.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -57,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "lummi-transit",
      "name": "Lummi Transit",
      "needs_attention": true,
      "score": 42.6,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 50 day(s)",
      "days_until_expiry": 50,
      "expiry_status": "current",
      "grade": "F",
      "id": "metro-transit-intercity-transit-city-of-seattle-community-transit-pierce-transit-sound-transit-washington-state-ferries-seattlecentermonorail-everett-transit-seattle-children-s-hospital",
      "name": "Puget Sound Consolidated GTFS",
      "needs_attention": true,
      "score": 44.8,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_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."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -555,
      "expiry_status": "stale",
      "grade": "F",
      "id": "nisqually-transit",
      "name": "Nisqually Transit",
      "needs_attention": true,
      "score": 45.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -364,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "lower-columbia-cap-community-action-program",
      "name": "Lower Columbia CAP (Community Action Program)",
      "needs_attention": true,
      "score": 48.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -364,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "lower-columbia-cap-community-action-program-568",
      "name": "Lower Columbia CAP (Community Action Program)",
      "needs_attention": true,
      "score": 48.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -981,
      "expiry_status": "stale",
      "grade": "F",
      "id": "wahkiakum-ferry",
      "name": "Wahkiakum Ferry",
      "needs_attention": true,
      "score": 48.5,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -981,
      "expiry_status": "stale",
      "grade": "F",
      "id": "wahkiakum-ferry-604",
      "name": "Wahkiakum Ferry",
      "needs_attention": true,
      "score": 48.5,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -374,
      "expiry_status": "stale",
      "grade": "F",
      "id": "homage-d-arling-direct",
      "name": "Homage: D\u02bcArling Direct",
      "needs_attention": true,
      "score": 48.8,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 24 day(s)",
      "days_until_expiry": 24,
      "expiry_status": "expiring_soon",
      "grade": "F",
      "id": "washington-state-ferries",
      "name": "Washington State Ferries",
      "needs_attention": true,
      "score": 51.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -830,
      "expiry_status": "stale",
      "grade": "F",
      "id": "makah-public-transit",
      "name": "Makah Public Transit",
      "needs_attention": true,
      "score": 53.7,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -830,
      "expiry_status": "stale",
      "grade": "F",
      "id": "makah-public-transit-574",
      "name": "Makah Public Transit",
      "needs_attention": true,
      "score": 53.7,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -2476,
      "expiry_status": "stale",
      "grade": "F",
      "id": "puget-sound-express",
      "name": "Puget Sound Express",
      "needs_attention": true,
      "score": 53.7,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -2476,
      "expiry_status": "stale",
      "grade": "F",
      "id": "puget-sound-express-281",
      "name": "Puget Sound Express",
      "needs_attention": true,
      "score": 53.7,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -982,
      "expiry_status": "stale",
      "grade": "F",
      "id": "squaxin-island-transit",
      "name": "Squaxin Island Transit",
      "needs_attention": true,
      "score": 53.8,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -982,
      "expiry_status": "stale",
      "grade": "F",
      "id": "squaxin-island-transit-846",
      "name": "Squaxin Island Transit",
      "needs_attention": true,
      "score": 53.8,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -1134,
      "expiry_status": "stale",
      "grade": "F",
      "id": "l-e-w-i-s-mountain-highway-transit",
      "name": "L.E.W.I.S. Mountain Highway Transit",
      "needs_attention": true,
      "score": 54.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -1134,
      "expiry_status": "stale",
      "grade": "F",
      "id": "l-e-w-i-s-mountain-highway-transit-567",
      "name": "L.E.W.I.S. Mountain Highway Transit",
      "needs_attention": true,
      "score": 54.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -2107,
      "expiry_status": "stale",
      "grade": "F",
      "id": "jamestown-s-klallam",
      "name": "Jamestown S'klallam",
      "needs_attention": true,
      "score": 55.5,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -2107,
      "expiry_status": "stale",
      "grade": "F",
      "id": "jamestown-s-klallam-285",
      "name": "Jamestown S'klallam",
      "needs_attention": true,
      "score": 55.5,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -830,
      "expiry_status": "stale",
      "grade": "F",
      "id": "ben-franklin-transit",
      "name": "Ben Franklin Transit",
      "needs_attention": true,
      "score": 55.9,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -768,
      "expiry_status": "stale",
      "grade": "F",
      "id": "kalispel-tribal-transit-kaltran",
      "name": "Kalispel Tribal Transit (KalTran)",
      "needs_attention": true,
      "score": 56.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 23 day(s)",
      "days_until_expiry": 23,
      "expiry_status": "expiring_soon",
      "grade": "F",
      "id": "catholic-community-services",
      "name": "Catholic Community Services",
      "needs_attention": true,
      "score": 57.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 23 day(s)",
      "days_until_expiry": 23,
      "expiry_status": "expiring_soon",
      "grade": "F",
      "id": "catholic-community-services-2159",
      "name": "Catholic Community Services",
      "needs_attention": true,
      "score": 57.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 23 day(s)",
      "days_until_expiry": 23,
      "expiry_status": "expiring_soon",
      "grade": "F",
      "id": "catholic-community-services-2160",
      "name": "Catholic Community Services",
      "needs_attention": true,
      "score": 57.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -3053,
      "expiry_status": "stale",
      "grade": "F",
      "id": "the-victoria-clipper",
      "name": "The Victoria Clipper",
      "needs_attention": true,
      "score": 58.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 23 day(s)",
      "days_until_expiry": 23,
      "expiry_status": "expiring_soon",
      "grade": "D",
      "id": "hopelink-transportation",
      "name": "Hopelink Transportation",
      "needs_attention": true,
      "score": 60.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -99,
      "expiry_status": "lapsed",
      "grade": "D",
      "id": "selah-transit",
      "name": "Selah Transit",
      "needs_attention": true,
      "score": 62.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 23 day(s)",
      "days_until_expiry": 23,
      "expiry_status": "expiring_soon",
      "grade": "D",
      "id": "lummi-island-ferry",
      "name": "Lummi Island Ferry",
      "needs_attention": true,
      "score": 66.0,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 23 day(s)",
      "days_until_expiry": 23,
      "expiry_status": "expiring_soon",
      "grade": "D",
      "id": "mason-transit-authority",
      "name": "Mason Transit Authority",
      "needs_attention": true,
      "score": 66.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 60 day(s)",
      "days_until_expiry": 60,
      "expiry_status": "current",
      "grade": "D",
      "id": "lady-of-the-lake",
      "name": "Lady of the Lake",
      "needs_attention": true,
      "score": 67.9,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -465,
      "expiry_status": "stale",
      "grade": "D",
      "id": "city-of-ellensburg-public-transit-central-transit",
      "name": "City of Ellensburg Public Transit (Central Transit)",
      "needs_attention": true,
      "score": 69.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -465,
      "expiry_status": "stale",
      "grade": "D",
      "id": "city-of-ellensburg-public-transit-central-transit-303",
      "name": "City of Ellensburg Public Transit (Central Transit)",
      "needs_attention": true,
      "score": 69.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-export the feed with a calendar that reaches further out, and set feed_info feed_end_date past your next service change."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 58 day(s)",
      "days_until_expiry": 58,
      "expiry_status": "current",
      "grade": "C",
      "id": "everett-transit",
      "name": "Everett Transit",
      "needs_attention": true,
      "score": 71.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default)."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 53 day(s)",
      "days_until_expiry": 53,
      "expiry_status": "current",
      "grade": "C",
      "id": "ruraltransit",
      "name": "ruralTRANSIT",
      "needs_attention": true,
      "score": 76.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 53 day(s)",
      "days_until_expiry": 53,
      "expiry_status": "current",
      "grade": "C",
      "id": "ruraltransit-822",
      "name": "ruralTRANSIT",
      "needs_attention": true,
      "score": 76.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 58 day(s)",
      "days_until_expiry": 58,
      "expiry_status": "current",
      "grade": "C",
      "id": "everett-transit-3038",
      "name": "Everett Transit",
      "needs_attention": true,
      "score": 77.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default)."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 51 day(s)",
      "days_until_expiry": 51,
      "expiry_status": "current",
      "grade": "C",
      "id": "intercity-transit",
      "name": "Intercity Transit",
      "needs_attention": true,
      "score": 79.3,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 50 day(s)",
      "days_until_expiry": 50,
      "expiry_status": "current",
      "grade": "C",
      "id": "king-county-metro",
      "name": "King County Metro",
      "needs_attention": true,
      "score": 79.3,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'trip_distance_exceeds_shape_distance_below_threshold' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "annual_trips": null,
      "attention_reason": "Grade slipped from B to C",
      "days_until_expiry": 51,
      "expiry_status": "current",
      "grade": "C",
      "id": "pierce-transit",
      "name": "Pierce Transit",
      "needs_attention": true,
      "score": 79.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'missing_required_agency_id' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 50 day(s)",
      "days_until_expiry": 50,
      "expiry_status": "current",
      "grade": "B",
      "id": "community-transit-ct",
      "name": "Community Transit (CT)",
      "needs_attention": true,
      "score": 81.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 50 day(s)",
      "days_until_expiry": 50,
      "expiry_status": "current",
      "grade": "B",
      "id": "sound-transit",
      "name": "Sound Transit",
      "needs_attention": true,
      "score": 82.9,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Remove retired stops from the export, or add them back to the trips that should serve them."
    },
    {
      "annual_trips": null,
      "attention_reason": "Service data expires in 50 day(s)",
      "days_until_expiry": 50,
      "expiry_status": "current",
      "grade": "B",
      "id": "sound-transit-metro-transit-city-of-seattle-king-county-metro",
      "name": "Sound Transit, Metro Transit, City of Seattle - King County Metro",
      "needs_attention": true,
      "score": 89.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'route_short_name_too_long' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 3462,
      "expiry_status": "current",
      "grade": "F",
      "id": "yakima-transit",
      "name": "Yakima Transit",
      "needs_attention": false,
      "score": 28.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_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."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 175,
      "expiry_status": "current",
      "grade": "C",
      "id": "washington-state-department-of-transportation-wsdot-apple-line",
      "name": "Washington State Department of Transportation (WSDOT Apple Line)",
      "needs_attention": false,
      "score": 70.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 65,
      "expiry_status": "current",
      "grade": "C",
      "id": "kitsap-transit",
      "name": "Kitsap Transit",
      "needs_attention": false,
      "score": 71.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Check the trip updates endpoint with your AVL vendor; it should return a fresh GTFS-Realtime protobuf on every request."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 326,
      "expiry_status": "current",
      "grade": "C",
      "id": "columbia-county-public-transportation",
      "name": "Columbia County Public Transportation",
      "needs_attention": false,
      "score": 73.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 145,
      "expiry_status": "current",
      "grade": "C",
      "id": "eastside-friends-of-seniors",
      "name": "Eastside Friends of Seniors",
      "needs_attention": false,
      "score": 73.8,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 145,
      "expiry_status": "current",
      "grade": "C",
      "id": "community-in-motion",
      "name": "Community in Motion",
      "needs_attention": false,
      "score": 74.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 115,
      "expiry_status": "current",
      "grade": "C",
      "id": "sound-generations-hyde-shuttle",
      "name": "do not use - deprecfated",
      "needs_attention": false,
      "score": 74.6,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 314,
      "expiry_status": "current",
      "grade": "C",
      "id": "guemes-island-ferry",
      "name": "Guemes Island Ferry",
      "needs_attention": false,
      "score": 74.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 84,
      "expiry_status": "current",
      "grade": "C",
      "id": "island-transit",
      "name": "Island Transit",
      "needs_attention": false,
      "score": 74.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 207,
      "expiry_status": "current",
      "grade": "C",
      "id": "elwha-transit",
      "name": "Elwha Transit",
      "needs_attention": false,
      "score": 75.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 296,
      "expiry_status": "current",
      "grade": "C",
      "id": "intercity-transit-2289",
      "name": "Intercity Transit",
      "needs_attention": false,
      "score": 75.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 145,
      "expiry_status": "current",
      "grade": "C",
      "id": "paratransit-services",
      "name": "Paratransit Services",
      "needs_attention": false,
      "score": 75.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 296,
      "expiry_status": "current",
      "grade": "C",
      "id": "puget-sound-educational-service-district",
      "name": "Puget Sound Educational Service District",
      "needs_attention": false,
      "score": 75.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 179,
      "expiry_status": "current",
      "grade": "C",
      "id": "link-transit",
      "name": "Link Transit",
      "needs_attention": false,
      "score": 76.0,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 317,
      "expiry_status": "current",
      "grade": "C",
      "id": "clallam-transit-system",
      "name": "Clallam Transit System",
      "needs_attention": false,
      "score": 78.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-generate shape distances in your export; flag to your vendor if it persists."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 317,
      "expiry_status": "current",
      "grade": "C",
      "id": "clallam-transit-system-279",
      "name": "Clallam Transit System",
      "needs_attention": false,
      "score": 78.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Re-generate shape distances in your export; flag to your vendor if it persists."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 115,
      "expiry_status": "current",
      "grade": "C",
      "id": "lewiston-transit-system-and-asotin-county-public-transportation-benefit-area-ptba",
      "name": "Lewiston Transit System and Asotin County Public Transportation Benefit Area (PTBA)",
      "needs_attention": false,
      "score": 78.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 84,
      "expiry_status": "current",
      "grade": "C",
      "id": "muckleshoot-tribal-transit",
      "name": "Muckleshoot Tribal Transit",
      "needs_attention": false,
      "score": 78.8,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 266,
      "expiry_status": "current",
      "grade": "C",
      "id": "grant-transit-authority",
      "name": "Grant Transit Authority",
      "needs_attention": false,
      "score": 79.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 115,
      "expiry_status": "current",
      "grade": "C",
      "id": "pahto-public-passage",
      "name": "Pahto Public Passage",
      "needs_attention": false,
      "score": 79.3,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 235,
      "expiry_status": "current",
      "grade": "C",
      "id": "colville-confederated-tribes-transit",
      "name": "Colville Confederated Tribes Transit",
      "needs_attention": false,
      "score": 79.4,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 115,
      "expiry_status": "current",
      "grade": "B",
      "id": "makah-public-transit-2196",
      "name": "Makah Public Transit",
      "needs_attention": false,
      "score": 80.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 115,
      "expiry_status": "current",
      "grade": "B",
      "id": "skamania-county-transit",
      "name": "Skamania County Transit",
      "needs_attention": false,
      "score": 80.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 144,
      "expiry_status": "current",
      "grade": "B",
      "id": "rivercities-transit-rct",
      "name": "RiverCities Transit (RCT)",
      "needs_attention": false,
      "score": 80.3,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 144,
      "expiry_status": "current",
      "grade": "B",
      "id": "rivercities-transit-rct-259",
      "name": "RiverCities Transit (RCT)",
      "needs_attention": false,
      "score": 80.3,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 115,
      "expiry_status": "current",
      "grade": "B",
      "id": "snoqualmie-valley-transportation",
      "name": "Snoqualmie Valley Transportation",
      "needs_attention": false,
      "score": 81.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 115,
      "expiry_status": "current",
      "grade": "B",
      "id": "the-moccasin-express",
      "name": "The Moccasin Express",
      "needs_attention": false,
      "score": 82.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 72,
      "expiry_status": "current",
      "grade": "B",
      "id": "spokane-transit-authority-sta",
      "name": "Spokane Transit Authority (STA)",
      "needs_attention": false,
      "score": 82.4,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE')."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 176,
      "expiry_status": "current",
      "grade": "B",
      "id": "mount-adams-transportation-service",
      "name": "Mount Adams Transportation Service",
      "needs_attention": false,
      "score": 82.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 176,
      "expiry_status": "current",
      "grade": "B",
      "id": "mount-adams-transportation-service-580",
      "name": "Mount Adams Transportation Service",
      "needs_attention": false,
      "score": 82.5,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 84,
      "expiry_status": "current",
      "grade": "B",
      "id": "squaxin-island-transit-2197",
      "name": "Squaxin Island Transit",
      "needs_attention": false,
      "score": 83.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 266,
      "expiry_status": "current",
      "grade": "B",
      "id": "union-gap",
      "name": "Union Gap",
      "needs_attention": false,
      "score": 83.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 266,
      "expiry_status": "current",
      "grade": "B",
      "id": "union-gap-277",
      "name": "Union Gap",
      "needs_attention": false,
      "score": 83.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 145,
      "expiry_status": "current",
      "grade": "B",
      "id": "wahkiakum-ferry-2193",
      "name": "Wahkiakum Ferry",
      "needs_attention": false,
      "score": 83.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 174,
      "expiry_status": "current",
      "grade": "B",
      "id": "people-for-people-community-connector",
      "name": "People for People (Community Connector)",
      "needs_attention": false,
      "score": 83.6,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 207,
      "expiry_status": "current",
      "grade": "B",
      "id": "pacific-transit",
      "name": "Pacific Transit",
      "needs_attention": false,
      "score": 83.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default)."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 207,
      "expiry_status": "current",
      "grade": "B",
      "id": "pacific-transit-242",
      "name": "Pacific Transit",
      "needs_attention": false,
      "score": 83.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default)."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 207,
      "expiry_status": "current",
      "grade": "B",
      "id": "pacific-transit-3112",
      "name": "Pacific Transit",
      "needs_attention": false,
      "score": 83.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default)."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 65,
      "expiry_status": "current",
      "grade": "B",
      "id": "c-tran",
      "name": "Clark County Public Transportation Benefit Area",
      "needs_attention": false,
      "score": 84.1,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Check the vehicle positions endpoint with your AVL vendor; it should return a fresh GTFS-Realtime protobuf on every request."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 156,
      "expiry_status": "current",
      "grade": "B",
      "id": "ben-franklin-transit-2024",
      "name": "Ben Franklin Transit",
      "needs_attention": false,
      "score": 84.8,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 156,
      "expiry_status": "current",
      "grade": "B",
      "id": "ben-franklin-transit-2122",
      "name": "Ben Franklin Transit",
      "needs_attention": false,
      "score": 87.9,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 115,
      "expiry_status": "current",
      "grade": "A",
      "id": "city-of-ellensburg-public-transit-central-transit-2456",
      "name": "City of Ellensburg Public Transit (Central Transit)",
      "needs_attention": false,
      "score": 92.3,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default)."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 72,
      "expiry_status": "current",
      "grade": "A",
      "id": "whatcom-transportation-authority",
      "name": "Whatcom Transportation Authority",
      "needs_attention": false,
      "score": 94.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the flagged fields and fill in the ones your riders would use."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 113,
      "expiry_status": "current",
      "grade": "A",
      "id": "grays-harbor-transit",
      "name": "Grays Harbor Transit",
      "needs_attention": false,
      "score": 95.0,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'equal_shape_distance_same_coordinates' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 113,
      "expiry_status": "current",
      "grade": "A",
      "id": "grays-harbor-transit-263",
      "name": "Grays Harbor Transit",
      "needs_attention": false,
      "score": 95.0,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'equal_shape_distance_same_coordinates' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 328,
      "expiry_status": "current",
      "grade": "A",
      "id": "jefferson-transit-authority",
      "name": "Jefferson Transit Authority",
      "needs_attention": false,
      "score": 98.0,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE')."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 328,
      "expiry_status": "current",
      "grade": "A",
      "id": "jefferson-transit-authority-838",
      "name": "Jefferson Transit Authority",
      "needs_attention": false,
      "score": 98.0,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE')."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 178,
      "expiry_status": "current",
      "grade": "A",
      "id": "black-ball-ferry-line",
      "name": "Black Ball Ferry Line",
      "needs_attention": false,
      "score": 98.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Remove past service periods the next time you export the feed."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 178,
      "expiry_status": "current",
      "grade": "A",
      "id": "black-ball-ferry-line-286",
      "name": "Black Ball Ferry Line",
      "needs_attention": false,
      "score": 98.2,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Remove past service periods the next time you export the feed."
    }
  ],
  "needs_attention": 46,
  "rollup": {
    "id": "washington",
    "name": "Washington agencies"
  },
  "schema_version": "1.7",
  "shapes_readiness": {
    "at_risk": 0,
    "not_measured": 83,
    "not_ready": 0,
    "ready": 12,
    "total": 95
  },
  "state_percentile": 93
}
