{
  "agency_count": 67,
  "average_score": 62.8,
  "common_fixes": [
    {
      "agencies": 60,
      "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": 45,
      "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": 28,
      "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": 13,
      "code": "stop_without_stop_time",
      "fix": "Remove retired stops from the export, or add them back to the trips that should serve them."
    },
    {
      "agencies": 11,
      "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": 7,
      "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": 6,
      "code": "missing_bike_allowance",
      "fix": "Review the rule documentation for 'missing_bike_allowance' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 4,
      "code": "expired_calendar",
      "fix": "Remove past service periods the next time you export the feed."
    },
    {
      "agencies": 4,
      "code": "scorecard_missing_headsigns",
      "fix": "Populate trip_headsign to match what the bus displays."
    },
    {
      "agencies": 4,
      "code": "scorecard_feed_expiring_soon",
      "fix": "Re-export with a validity window that reaches at least 60 days out."
    },
    {
      "agencies": 2,
      "code": "scorecard_no_expiry_date",
      "fix": "Add feed_start_date and feed_end_date to feed_info.txt and include calendar end dates in your export."
    },
    {
      "agencies": 2,
      "code": "missing_required_file",
      "fix": "Review the rule documentation for 'missing_required_file' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 2,
      "code": "missing_calendar_and_calendar_date_files",
      "fix": "Review the rule documentation for 'missing_calendar_and_calendar_date_files' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    },
    {
      "agencies": 2,
      "code": "trip_distance_exceeds_shape_distance",
      "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."
    },
    {
      "agencies": 2,
      "code": "equal_shape_distance_diff_coordinates",
      "fix": "Review the rule documentation for 'equal_shape_distance_diff_coordinates' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed."
    }
  ],
  "expired": {
    "lapsed": 9,
    "stale": 19,
    "total": 28
  },
  "generated_at": "2026-07-09T09:08:55+00:00",
  "grade_distribution": {
    "A": 1,
    "B": 18,
    "C": 11,
    "D": 4,
    "F": 33
  },
  "members": [
    {
      "annual_trips": null,
      "attention_reason": "Service data has expired",
      "days_until_expiry": -845,
      "expiry_status": "stale",
      "grade": "F",
      "id": "pioneer-valley-transit-authority-pvta",
      "name": "Pioneer Valley Transit Authority (PVTA)",
      "needs_attention": true,
      "score": 30.3,
      "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": -445,
      "expiry_status": "stale",
      "grade": "F",
      "id": "greater-attleboro-taunton-regional-transit-authority-gatra",
      "name": "Greater Attleboro Taunton Regional Transit Authority (GATRA)",
      "needs_attention": true,
      "score": 35.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": -445,
      "expiry_status": "stale",
      "grade": "F",
      "id": "greater-attleboro-taunton-regional-transit-authority-gatra-418",
      "name": "Greater Attleboro Taunton Regional Transit Authority (GATRA)",
      "needs_attention": true,
      "score": 35.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": -2831,
      "expiry_status": "stale",
      "grade": "F",
      "id": "boston-harbor-islands-ferries",
      "name": "Boston Harbor Islands Ferries",
      "needs_attention": true,
      "score": 38.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": -2746,
      "expiry_status": "stale",
      "grade": "F",
      "id": "128-business-council",
      "name": "128 Business Council",
      "needs_attention": true,
      "score": 39.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": -2746,
      "expiry_status": "stale",
      "grade": "F",
      "id": "128-business-council-440",
      "name": "128 Business Council",
      "needs_attention": true,
      "score": 39.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": -5669,
      "expiry_status": "stale",
      "grade": "F",
      "id": "massachusetts-ferry-service",
      "name": "Massachusetts Ferry Service",
      "needs_attention": true,
      "score": 40.6,
      "shapes_status": "not_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": -13,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "cape-cod-regional-transit-authority",
      "name": "Flex",
      "needs_attention": true,
      "score": 41.3,
      "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": -555,
      "expiry_status": "stale",
      "grade": "F",
      "id": "peter-pan",
      "name": "Peter Pan",
      "needs_attention": true,
      "score": 43.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": -555,
      "expiry_status": "stale",
      "grade": "F",
      "id": "peter-pan-496",
      "name": "Peter Pan",
      "needs_attention": true,
      "score": 43.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": -1315,
      "expiry_status": "stale",
      "grade": "F",
      "id": "bloom-bus",
      "name": "Bloom Bus",
      "needs_attention": true,
      "score": 44.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": "Score changed sharply on 2026-06-26",
      "days_until_expiry": 51,
      "expiry_status": "current",
      "grade": "F",
      "id": "pioneer-valley-transit-authority-pvta-2416",
      "name": "Pioneer Valley Transit Authority (PVTA)",
      "needs_attention": true,
      "score": 44.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'equal_shape_distance_diff_coordinates' 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": -3,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "merrimack-valley-regional-transit-authority-mvrta-445",
      "name": "Merrimack Valley Regional Transit Authority (MVRTA)",
      "needs_attention": true,
      "score": 45.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": -3841,
      "expiry_status": "stale",
      "grade": "F",
      "id": "bloom-tours",
      "name": "Bloom Tours",
      "needs_attention": true,
      "score": 46.4,
      "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": -2015,
      "expiry_status": "stale",
      "grade": "F",
      "id": "logan-express",
      "name": "Logan Express",
      "needs_attention": true,
      "score": 48.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": -2015,
      "expiry_status": "stale",
      "grade": "F",
      "id": "logan-express-601",
      "name": "Logan Express",
      "needs_attention": true,
      "score": 48.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": -1500,
      "expiry_status": "stale",
      "grade": "F",
      "id": "coach-company",
      "name": "Coach Company",
      "needs_attention": true,
      "score": 48.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": -1500,
      "expiry_status": "stale",
      "grade": "F",
      "id": "coach-company-436",
      "name": "Coach Company",
      "needs_attention": true,
      "score": 48.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": -3,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "merrimack-valley-regional-transit-authority-mvrta",
      "name": "Merrimack Valley Regional Transit Authority (MVRTA)",
      "needs_attention": true,
      "score": 48.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": -981,
      "expiry_status": "stale",
      "grade": "F",
      "id": "dattco-motorcoach",
      "name": "DATTCO Motorcoach",
      "needs_attention": true,
      "score": 50.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": -981,
      "expiry_status": "stale",
      "grade": "F",
      "id": "dattco-motorcoach-555",
      "name": "DATTCO Motorcoach",
      "needs_attention": true,
      "score": 50.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": -2381,
      "expiry_status": "stale",
      "grade": "F",
      "id": "limoliner",
      "name": "LimoLiner",
      "needs_attention": true,
      "score": 51.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": -2381,
      "expiry_status": "stale",
      "grade": "F",
      "id": "limoliner-438",
      "name": "LimoLiner",
      "needs_attention": true,
      "score": 51.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": -12,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "southeastern-regional-transit-authority-srta-421",
      "name": "Southeastern Regional Transit Authority (SRTA)",
      "needs_attention": true,
      "score": 51.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": -13,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "cape-cod-regional-transportation-authority-cape-cod-rta",
      "name": "Cape Cod Regional Transportation Authority (Cape Cod RTA)",
      "needs_attention": true,
      "score": 51.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": -13,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "cape-cod-regional-transportation-authority-cape-cod-rta-645",
      "name": "Cape Cod Regional Transportation Authority (Cape Cod RTA)",
      "needs_attention": true,
      "score": 51.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": -12,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "southeastern-regional-transit-authority-srta",
      "name": "Southeastern Regional Transit Authority (SRTA)",
      "needs_attention": true,
      "score": 52.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": -48,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "freedom-cruise-line",
      "name": "Freedom Cruise Line",
      "needs_attention": true,
      "score": 53.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": -48,
      "expiry_status": "lapsed",
      "grade": "F",
      "id": "freedom-cruise-line-425",
      "name": "Freedom Cruise Line",
      "needs_attention": true,
      "score": 53.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 33 day(s)",
      "days_until_expiry": 33,
      "expiry_status": "current",
      "grade": "F",
      "id": "worcester-regional-transit-authority-wrta",
      "name": "Worcester Regional Transit Authority (WRTA)",
      "needs_attention": true,
      "score": 54.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 33 day(s)",
      "days_until_expiry": 33,
      "expiry_status": "current",
      "grade": "F",
      "id": "worcester-regional-transit-authority-wrta-432",
      "name": "Worcester Regional Transit Authority (WRTA)",
      "needs_attention": true,
      "score": 54.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 22 day(s)",
      "days_until_expiry": 22,
      "expiry_status": "expiring_soon",
      "grade": "D",
      "id": "lowell-regional-transit-authority-lrta",
      "name": "Lowell Regional Transit Authority (LRTA)",
      "needs_attention": true,
      "score": 60.9,
      "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 22 day(s)",
      "days_until_expiry": 22,
      "expiry_status": "expiring_soon",
      "grade": "D",
      "id": "lowell-regional-transit-authority-lrta-444",
      "name": "Lowell Regional Transit Authority (LRTA)",
      "needs_attention": true,
      "score": 60.9,
      "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 22 day(s)",
      "days_until_expiry": 22,
      "expiry_status": "expiring_soon",
      "grade": "D",
      "id": "middlesex-3-tma",
      "name": "Middlesex 3 TMA",
      "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 22 day(s)",
      "days_until_expiry": 22,
      "expiry_status": "expiring_soon",
      "grade": "D",
      "id": "middlesex-3-tma-442",
      "name": "Middlesex 3 TMA",
      "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 58 day(s)",
      "days_until_expiry": 58,
      "expiry_status": "current",
      "grade": "C",
      "id": "massachusetts-bay-transportation-authority-mbta",
      "name": "Massachusetts Bay Transportation Authority (MBTA)",
      "needs_attention": true,
      "score": 75.4,
      "shapes_status": "ready",
      "snapshot_date": "2026-07-09",
      "top_fix": "Review the rule documentation for 'same_name_and_description_for_stop' 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 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "C",
      "id": "nantucket-regional-transit-authority-wave",
      "name": "Nantucket Regional Transit Authority (WAVE)",
      "needs_attention": true,
      "score": 76.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": "Service data expires in 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "C",
      "id": "nantucket-regional-transit-authority-wave-426",
      "name": "Nantucket Regional Transit Authority (WAVE)",
      "needs_attention": true,
      "score": 76.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": "Service data expires in 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "C",
      "id": "brockton-area-transit-authority-bat",
      "name": "Brockton Area Transit Authority (BAT)",
      "needs_attention": true,
      "score": 77.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 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "C",
      "id": "brockton-area-transit-authority-bat-422",
      "name": "Brockton Area Transit Authority (BAT)",
      "needs_attention": true,
      "score": 77.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": "Score changed sharply on 2026-06-29",
      "days_until_expiry": 175,
      "expiry_status": "current",
      "grade": "C",
      "id": "blue-apple-bus-company",
      "name": "Blue Apple Bus Company",
      "needs_attention": true,
      "score": 77.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 expires in 53 day(s)",
      "days_until_expiry": 53,
      "expiry_status": "current",
      "grade": "C",
      "id": "franklin-regional-transit-authority-frta",
      "name": "Franklin Regional Transit Authority (FRTA)",
      "needs_attention": true,
      "score": 78.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": "Service data expires in 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "B",
      "id": "cape-ann-transportation-authority-cata",
      "name": "Cape Ann Transportation Authority (CATA)",
      "needs_attention": true,
      "score": 80.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 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "B",
      "id": "cape-ann-transportation-authority-cata-447",
      "name": "Cape Ann Transportation Authority (CATA)",
      "needs_attention": true,
      "score": 80.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 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "B",
      "id": "patriots-party-boats",
      "name": "Patriots Party Boats",
      "needs_attention": true,
      "score": 82.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 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "B",
      "id": "patriots-party-boats-424",
      "name": "Patriots Party Boats",
      "needs_attention": true,
      "score": 82.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 window shortened unexpectedly on 2026-07-04",
      "days_until_expiry": 86,
      "expiry_status": "current",
      "grade": "B",
      "id": "martha-s-vineyard-transit-authority",
      "name": "Martha's Vineyard Transit Authority",
      "needs_attention": true,
      "score": 83.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 window shortened unexpectedly on 2026-07-02",
      "days_until_expiry": 86,
      "expiry_status": "current",
      "grade": "B",
      "id": "martha-s-vineyard-transit-authority-420",
      "name": "Martha's Vineyard Transit Authority",
      "needs_attention": true,
      "score": 83.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 expires in 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "B",
      "id": "berkshire-regional-transit-authority-brta",
      "name": "Berkshire Regional Transit Authority (BRTA)",
      "needs_attention": true,
      "score": 85.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": "Service data expires in 54 day(s)",
      "days_until_expiry": 54,
      "expiry_status": "current",
      "grade": "B",
      "id": "berkshire-regional-transit-authority-brta-537",
      "name": "Berkshire Regional Transit Authority (BRTA)",
      "needs_attention": true,
      "score": 85.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": "Service data expires in 53 day(s)",
      "days_until_expiry": 53,
      "expiry_status": "current",
      "grade": "B",
      "id": "massport",
      "name": "Massport",
      "needs_attention": true,
      "score": 88.7,
      "shapes_status": null,
      "snapshot_date": "2026-07-09",
      "top_fix": "Populate trip_headsign to match what the bus displays."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": null,
      "expiry_status": "unknown",
      "grade": "F",
      "id": "massachusetts-area-express-max",
      "name": "Massachusetts Area Express (MAX)",
      "needs_attention": false,
      "score": 31.3,
      "shapes_status": null,
      "snapshot_date": "2026-06-27",
      "top_fix": "Add feed_start_date and feed_end_date to feed_info.txt and include calendar end dates in your export."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": null,
      "expiry_status": "unknown",
      "grade": "F",
      "id": "massachusetts-area-express-max-431",
      "name": "Massachusetts Area Express (MAX)",
      "needs_attention": false,
      "score": 31.3,
      "shapes_status": null,
      "snapshot_date": "2026-06-30",
      "top_fix": "Add feed_start_date and feed_end_date to feed_info.txt and include calendar end dates in your export."
    },
    {
      "annual_trips": null,
      "attention_reason": null,
      "days_until_expiry": 111,
      "expiry_status": "current",
      "grade": "C",
      "id": "metrowest-regional-transit-authority-mwrta",
      "name": "MetroWest Regional Transit Authority (MWRTA)",
      "needs_attention": false,
      "score": 71.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": 1351,
      "expiry_status": "current",
      "grade": "C",
      "id": "seastreak-ferry",
      "name": "Seastreak Ferry",
      "needs_attention": false,
      "score": 73.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": null,
      "days_until_expiry": 83,
      "expiry_status": "current",
      "grade": "C",
      "id": "montachusett-regional-transit-authority-mart",
      "name": "Montachusett Regional Transit Authority (MART)",
      "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": 83,
      "expiry_status": "current",
      "grade": "C",
      "id": "montachusett-regional-transit-authority-mart-433",
      "name": "Montachusett Regional Transit Authority (MART)",
      "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": 129,
      "expiry_status": "current",
      "grade": "B",
      "id": "bay-state-cruise-company",
      "name": "Bay State Cruise Company",
      "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": "hy-line-cruises",
      "name": "Hy-Line Cruises",
      "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": 115,
      "expiry_status": "current",
      "grade": "B",
      "id": "hy-line-cruises-427",
      "name": "Hy-Line Cruises",
      "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": 144,
      "expiry_status": "current",
      "grade": "B",
      "id": "cuttyhunk-ferry-company",
      "name": "Cuttyhunk Ferry Company",
      "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": 144,
      "expiry_status": "current",
      "grade": "B",
      "id": "cuttyhunk-ferry-company-423",
      "name": "Cuttyhunk Ferry Company",
      "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": 84,
      "expiry_status": "current",
      "grade": "B",
      "id": "yankee-line",
      "name": "Yankee Line",
      "needs_attention": false,
      "score": 87.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": "yankee-line-443",
      "name": "Yankee Line",
      "needs_attention": false,
      "score": 87.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": "plymouth-brockton-street-railway-co",
      "name": "Plymouth & Brockton Street Railway Co",
      "needs_attention": false,
      "score": 88.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": 84,
      "expiry_status": "current",
      "grade": "B",
      "id": "plymouth-brockton-street-railway-co-556",
      "name": "Plymouth & Brockton Street Railway Co",
      "needs_attention": false,
      "score": 88.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": 96,
      "expiry_status": "current",
      "grade": "A",
      "id": "boston-harbor-islands-ferries-2073",
      "name": "Boston Harbor Islands Ferries",
      "needs_attention": false,
      "score": 95.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)."
    }
  ],
  "needs_attention": 51,
  "rollup": {
    "id": "massachusetts",
    "name": "Massachusetts agencies"
  },
  "schema_version": "1.7",
  "shapes_readiness": {
    "at_risk": 0,
    "not_measured": 62,
    "not_ready": 1,
    "ready": 4,
    "total": 67
  },
  "state_percentile": 67
}
