{
  "agency_count": 28,
  "average_score": 63.7,
  "common_fixes": [
    {
      "agencies": 20,
      "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": 20,
      "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": 8,
      "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": 8,
      "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."
    },
    {
      "agencies": 8,
      "code": "stop_without_stop_time",
      "fix": "Remove retired stops from the export, or add them back to the trips that should serve them."
    },
    {
      "agencies": 6,
      "code": "decreasing_or_equal_stop_time_distance",
      "fix": "Re-generate shape distances in your export; flag to your vendor if it persists."
    },
    {
      "agencies": 4,
      "code": "fast_travel_between_consecutive_stops",
      "fix": "Check the flagged stop times for transposed minutes."
    },
    {
      "agencies": 2,
      "code": "scorecard_missing_headsigns",
      "fix": "Populate trip_headsign to match what the bus displays."
    },
    {
      "agencies": 2,
      "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": 2,
      "code": "stop_time_timepoint_without_times",
      "fix": "Review the rule documentation for 'stop_time_timepoint_without_times' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 2,
      "code": "scorecard_feed_expiring_soon",
      "fix": "Re-export with a validity window that reaches at least 60 days out."
    }
  ],
  "expired": {
    "lapsed": 0,
    "stale": 8,
    "total": 8
  },
  "generated_at": "2026-07-09T09:08:55+00:00",
  "grade_distribution": {
    "B": 6,
    "C": 10,
    "D": 4,
    "F": 8
  },
  "members": [
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -2381,
      "expiry_status": "stale",
      "grade": "F",
      "id": "stagecoach-transportation-services-sts",
      "name": "Stagecoach Transportation Services (STS)",
      "needs_attention": true,
      "score": 21.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": -2381,
      "expiry_status": "stale",
      "grade": "F",
      "id": "stagecoach-transportation-services-sts-449",
      "name": "Stagecoach Transportation Services (STS)",
      "needs_attention": true,
      "score": 21.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": -2381,
      "expiry_status": "stale",
      "grade": "F",
      "id": "addison-county-transit-actr",
      "name": "Addison County Transit (ACTR)",
      "needs_attention": true,
      "score": 37.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 has expired",
      "days_until_expiry": -2381,
      "expiry_status": "stale",
      "grade": "F",
      "id": "addison-county-transit-actr-543",
      "name": "Addison County Transit (ACTR)",
      "needs_attention": true,
      "score": 37.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 has expired",
      "days_until_expiry": -1688,
      "expiry_status": "stale",
      "grade": "F",
      "id": "moover",
      "name": "MOOver",
      "needs_attention": true,
      "score": 39.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": -1688,
      "expiry_status": "stale",
      "grade": "F",
      "id": "moover-434",
      "name": "MOOver",
      "needs_attention": true,
      "score": 39.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": -1688,
      "expiry_status": "stale",
      "grade": "F",
      "id": "the-current",
      "name": "The Current",
      "needs_attention": true,
      "score": 39.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": -1688,
      "expiry_status": "stale",
      "grade": "F",
      "id": "the-current-428",
      "name": "The Current",
      "needs_attention": true,
      "score": 39.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 expires in 53 day(s)",
      "days_until_expiry": 53,
      "expiry_status": "current",
      "grade": "D",
      "id": "marble-valley-regional-transit-district-mvrtd-2831",
      "name": "Flex",
      "needs_attention": true,
      "score": 60.3,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'invalid_pickup_drop_off_window' 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 23 day(s)",
      "days_until_expiry": 23,
      "expiry_status": "expiring_soon",
      "grade": "D",
      "id": "vermont-translines",
      "name": "Vermont Translines",
      "needs_attention": true,
      "score": 68.6,
      "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": "vermont-translines-450",
      "name": "Vermont Translines",
      "needs_attention": true,
      "score": 68.6,
      "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 53 day(s)",
      "days_until_expiry": 53,
      "expiry_status": "current",
      "grade": "C",
      "id": "marble-valley-regional-transit-district-mvrtd",
      "name": "Marble Valley Regional Transit District (MVRTD)",
      "needs_attention": true,
      "score": 71.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": "Service data expires in 53 day(s)",
      "days_until_expiry": 53,
      "expiry_status": "current",
      "grade": "C",
      "id": "marble-valley-regional-transit-district-mvrtd-430",
      "name": "Marble Valley Regional Transit District (MVRTD)",
      "needs_attention": true,
      "score": 71.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": "Score changed sharply on 2026-06-23",
      "days_until_expiry": 84,
      "expiry_status": "current",
      "grade": "B",
      "id": "chittenden-county-transportation-authority-ccta",
      "name": "Chittenden County Transportation Authority (CCTA)",
      "needs_attention": true,
      "score": 81.1,
      "shapes_status": "ready",
      "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 window shortened unexpectedly on 2026-07-04",
      "days_until_expiry": 84,
      "expiry_status": "current",
      "grade": "B",
      "id": "rockingham-moover",
      "name": "Rockingham MOOver",
      "needs_attention": true,
      "score": 81.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": 84,
      "expiry_status": "current",
      "grade": "D",
      "id": "vtrans",
      "name": "Springfield MicroMoo",
      "needs_attention": false,
      "score": 62.8,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'trip_distance_exceeds_shape_distance' 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": 145,
      "expiry_status": "current",
      "grade": "C",
      "id": "advance-transit",
      "name": "Advance Transit",
      "needs_attention": false,
      "score": 74.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": 145,
      "expiry_status": "current",
      "grade": "C",
      "id": "advance-transit-631",
      "name": "Advance Transit",
      "needs_attention": false,
      "score": 74.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": 140,
      "expiry_status": "current",
      "grade": "C",
      "id": "lake-champlain-ferries",
      "name": "Lake Champlain Ferries",
      "needs_attention": false,
      "score": 76.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": 140,
      "expiry_status": "current",
      "grade": "C",
      "id": "lake-champlain-ferries-547",
      "name": "Lake Champlain Ferries",
      "needs_attention": false,
      "score": 76.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": "green-mountain-community-network-gmcn",
      "name": "Green Mountain Community Network (GMCN)",
      "needs_attention": false,
      "score": 78.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": 207,
      "expiry_status": "current",
      "grade": "C",
      "id": "green-mountain-community-network-gmcn-539",
      "name": "Green Mountain Community Network (GMCN)",
      "needs_attention": false,
      "score": 78.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": 115,
      "expiry_status": "current",
      "grade": "C",
      "id": "tri-valley-transit",
      "name": "Tri-Valley Transit",
      "needs_attention": false,
      "score": 78.8,
      "shapes_status": "ready",
      "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": "tri-valley-transit-852",
      "name": "Tri-Valley Transit",
      "needs_attention": false,
      "score": 78.8,
      "shapes_status": "ready",
      "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": "chittenden-county-transportation-authority-ccta-629",
      "name": "Chittenden County Transportation Authority (CCTA)",
      "needs_attention": false,
      "score": 81.1,
      "shapes_status": "ready",
      "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": "rural-community-transportation-rct-2882",
      "name": "Rural Community Transportation (RCT)",
      "needs_attention": false,
      "score": 81.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": 174,
      "expiry_status": "current",
      "grade": "B",
      "id": "rural-community-transportation-rct-448",
      "name": "Rural Community Transportation (RCT)",
      "needs_attention": false,
      "score": 81.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": 174,
      "expiry_status": "current",
      "grade": "B",
      "id": "rural-community-transportation-rct",
      "name": "Rural Community Transportation (RCT)",
      "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."
    }
  ],
  "needs_attention": 15,
  "rollup": {
    "id": "vermont",
    "name": "Vermont agencies"
  },
  "schema_version": "1.7",
  "shapes_readiness": {
    "at_risk": 0,
    "not_measured": 24,
    "not_ready": 0,
    "ready": 4,
    "total": 28
  },
  "state_percentile": 76
}
