{
 "schema": 1,
 "project": "chicago-micromobility",
 "release": "2026-10-02",
 "snapshot_date": "2026-10-02",
 "coverage": {
  "start": "2013-06",
  "end": "2026-08"
 },
 "generated_by": "the build in the project’s private working repository (not published)",
 "sources": [
  {
   "id": "divvy",
   "name": "Divvy system data: monthly trip files (Lyft Bikes and Scooters, LLC, for the City of Chicago; under the Divvy Data License Agreement, not republished here)",
   "url": "https://divvybikes.com/system-data",
   "pulled": "2026-10-02"
  },
  {
   "id": "scooters_2019",
   "name": "E-Scooter Trips - 2019 Pilot (City of Chicago data portal, 2kfw-zvte)",
   "url": "https://data.cityofchicago.org/d/2kfw-zvte",
   "pulled": "2026-10-02",
   "rows_updated": "2020-03-05"
  },
  {
   "id": "scooters_2020",
   "name": "E-Scooter Trips - 2020 (City of Chicago data portal, 3rse-fbp6)",
   "url": "https://data.cityofchicago.org/d/3rse-fbp6",
   "pulled": "2026-10-02",
   "rows_updated": "2021-05-13"
  },
  {
   "id": "scooters",
   "name": "E-Scooter Trips (City of Chicago data portal, 2i5w-ykuw)",
   "url": "https://data.cityofchicago.org/d/2i5w-ykuw",
   "pulled": "2026-10-02",
   "rows_updated": "2026-05-22"
  },
  {
   "id": "divvy_portal",
   "name": "Divvy Trips (City of Chicago data portal, fg6s-gzvg)",
   "url": "https://data.cityofchicago.org/d/fg6s-gzvg",
   "pulled": "2026-10-02",
   "rows_updated": "2020-05-19"
  },
  {
   "id": "community_areas",
   "name": "Boundaries - Community Areas (City of Chicago data portal, igwz-8jzy)",
   "url": "https://data.cityofchicago.org/d/igwz-8jzy",
   "pulled": "2026-10-02",
   "rows_updated": "2025-04-22"
  },
  {
   "id": "wards",
   "name": "Boundaries - Wards (2023-) (City of Chicago data portal, p293-wvbd)",
   "url": "https://data.cityofchicago.org/d/p293-wvbd",
   "pulled": "2026-10-02",
   "rows_updated": "2022-06-15"
  },
  {
   "id": "equity_area",
   "name": "Divvy Equity Priority Area (City of Chicago data portal, mdn7-scnt)",
   "url": "https://data.cityofchicago.org/d/mdn7-scnt",
   "pulled": "2026-10-02",
   "rows_updated": "2025-06-25"
  },
  {
   "id": "census",
   "name": "TIGERweb, 2020 census blocks, tracts and places (U.S. Census Bureau)",
   "url": "https://tigerweb.geo.census.gov/",
   "pulled": "2026-10-02"
  },
  {
   "id": "city_2025",
   "name": "Mayor Brandon Johnson Announces New Record Of Nearly 13 Million Shared Bike And Scooter Trips In 2025 (City of Chicago press release, 2026-01-15)",
   "url": "https://www.chicago.gov/city/en/depts/mayor/press_room/press_releases/2026/january/micromobility-record-year.html",
   "pulled": "2026-10-02"
  },
  {
   "id": "city_2024",
   "name": "CDOT: Chicago set a record in 2024 with 10M+ bike- and scooter-share rides. Actually, make that 11M+! (Streetsblog Chicago, 2025-01-09, giving the Chicago Department of Transportation’s figures)",
   "url": "https://chi.streetsblog.org/2025/01/09/cdot-chicago-set-a-record-in-2024-with-10m-bike-and-scooter-share-rides-actually-make-that-11m",
   "pulled": "2026-10-02"
  }
 ],
 "facts": {
  "trips_2025": {
   "value": 12953478,
   "display": "12.95 million",
   "label": "Shared bike, e-bike and scooter trips, 2025",
   "definition": "Trips started in 2025 on municipal classic bikes and e-bikes and on shared scooters (the City’s E-Scooter Trips table, less the municipal classic-bike rides found among its “Lyft” rows).",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "scooters_2019",
    "scooters_2020",
    "scooters"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "divvy_classic_2025": {
   "value": 1948034,
   "display": "1.95 million",
   "label": "Municipal classic-bike trips, 2025",
   "definition": "Classic-bike trips started in 2025, from the municipal trip files.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "divvy_ebike_2025": {
   "value": 3604930,
   "display": "3.60 million",
   "label": "Municipal e-bike trips, 2025",
   "definition": "E-bike trips started in 2025, from the municipal trip files.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "divvy_scooter_2025": {
   "value": 1312823,
   "display": "1.31 million",
   "label": "Municipal scooter trips, 2025",
   "definition": "Trips started in 2025 under vendor “Lyft” in the City’s E-Scooter Trips table, less the municipal classic-bike rides found among its “Lyft” rows.",
   "source_file": "facts.json",
   "sources": [
    "scooters",
    "divvy"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "lime_scooter_2025": {
   "value": 6087691,
   "display": "6.09 million",
   "label": "Lime scooter trips, 2025",
   "definition": "Trips started in 2025 under vendor “Lime” in the City’s E-Scooter Trips table.",
   "source_file": "facts.json",
   "sources": [
    "scooters"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "other_scooter_2025": {
   "value": 0,
   "display": "0",
   "label": "Other shared scooter trips, 2025",
   "definition": "Trips started in 2025 under any other scooter company in the City’s E-Scooter Trips table.",
   "source_file": "facts.json",
   "sources": [
    "scooters"
   ],
   "rounding": null,
   "unit": "trips"
  },
  "scooter_trips_2025": {
   "value": 7400514,
   "display": "7.40 million",
   "label": "Shared scooter trips, 2025",
   "definition": "Municipal, Lime and other shared scooter trips started in 2025 (the City’s E-Scooter Trips table, less the municipal classic-bike rides found among its “Lyft” rows).",
   "source_file": "facts.json",
   "sources": [
    "scooters",
    "divvy"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "divvy_bike_trips_2025": {
   "value": 5552964,
   "display": "5.55 million",
   "label": "Municipal bike trips, 2025",
   "definition": "Classic-bike and e-bike trips started in 2025, from the municipal trip files.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "ebike_share_2025": {
   "value": 64.919,
   "display": "64.9%",
   "label": "Share of municipal bike trips on e-bikes, 2025",
   "definition": "E-bike trips over all municipal bike trips started in 2025.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": "nearest tenth of a percent",
   "unit": "percent"
  },
  "trips_all_years": {
   "value": 75130301,
   "display": "75.13 million",
   "label": "Trips counted, 2013–2026",
   "definition": "Every municipal bike trip from 2013-06-27 through 2026-08 and every shared scooter trip in the City’s three trip tables (the City’s E-Scooter Trips table, less the municipal classic-bike rides found among its “Lyft” rows).",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "scooters_2019",
    "scooters_2020",
    "scooters"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "divvy_first_date": {
   "value": "2013-06-27",
   "display": "2013-06-27",
   "label": "First municipal trip",
   "definition": "The start date of the earliest trip in the municipal trip files.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": null
  },
  "divvy_last_month": {
   "value": "2026-08",
   "display": "2026-08",
   "label": "Last month of municipal trips",
   "definition": "The latest month of the municipal trip files the build read.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": null
  },
  "scooter_last_date": {
   "value": "2025-12-31",
   "display": "2025-12-31",
   "label": "Last day of scooter trips",
   "definition": "The start date of the latest trip in the City’s E-Scooter Trips table.",
   "source_file": "facts.json",
   "sources": [
    "scooters"
   ],
   "rounding": null
  },
  "last_full_year": {
   "value": "2025",
   "display": "2025",
   "label": "Latest full year",
   "definition": "The latest calendar year the trip data covers in full.",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "scooters_2019",
    "scooters_2020",
    "scooters"
   ],
   "rounding": null
  },
  "trips_2024": {
   "value": 11024782,
   "display": "11,024,782",
   "label": "Shared bike, e-bike and scooter trips, 2024",
   "definition": "Trips started in 2024 on municipal classic bikes and e-bikes and on shared scooters (the City’s E-Scooter Trips table, less the municipal classic-bike rides found among its “Lyft” rows).",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "scooters_2019",
    "scooters_2020",
    "scooters"
   ],
   "rounding": null,
   "unit": "trips"
  },
  "divvy_trips_2024": {
   "value": 6700455,
   "display": "6,700,455",
   "label": "Municipal trips, 2024",
   "definition": "Municipal classic-bike, e-bike and scooter trips started in 2024, counted as the City counts them.",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "scooters"
   ],
   "rounding": null,
   "unit": "trips"
  },
  "divvy_trips_2025": {
   "value": 6865787,
   "display": "6.87 million",
   "label": "Municipal trips, 2025",
   "definition": "Municipal classic-bike, e-bike and scooter trips started in 2025, counted as the City counts them.",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "scooters"
   ],
   "rounding": "nearest 0.01 million",
   "unit": "trips"
  },
  "city_trips_2025": {
   "value": 12900000,
   "display": "12.9 million",
   "label": "Shared bike and scooter trips the City announced, 2025",
   "definition": "The total the City gave for 2025.",
   "source_file": "facts.json",
   "sources": [
    "city_2025"
   ],
   "rounding": "nearest 0.1 million",
   "unit": "trips"
  },
  "city_divvy_2025": {
   "value": 6800000,
   "display": "6.8 million",
   "label": "Municipal trips the City announced, 2025",
   "definition": "The City’s total for its bike share in 2025.",
   "source_file": "facts.json",
   "sources": [
    "city_2025"
   ],
   "rounding": "nearest 0.1 million",
   "unit": "trips"
  },
  "city_lime_2025": {
   "value": 6100000,
   "display": "6.1 million",
   "label": "Lime trips the City announced, 2025",
   "definition": "The Lime total the City gave for 2025.",
   "source_file": "facts.json",
   "sources": [
    "city_2025"
   ],
   "rounding": "nearest 0.1 million",
   "unit": "trips"
  },
  "city_trips_2024": {
   "value": 11028554,
   "display": "11,028,554",
   "label": "Shared bike and scooter trips the City announced, 2024",
   "definition": "The total the City gave for 2024.",
   "source_file": "facts.json",
   "sources": [
    "city_2024"
   ],
   "rounding": null,
   "unit": "trips"
  },
  "city_divvy_2024": {
   "value": 6681480,
   "display": "6,681,480",
   "label": "Municipal trips the City announced, 2024",
   "definition": "The City’s total for its bike share in 2024.",
   "source_file": "facts.json",
   "sources": [
    "city_2024"
   ],
   "rounding": null,
   "unit": "trips"
  },
  "lyft_classic_2024": {
   "value": 1406855,
   "display": "1,406,855",
   "label": "Municipal classic-bike rides found among the City’s “Lyft” rows, 2024",
   "definition": "Rows of the City’s E-Scooter Trips table under vendor “Lyft” from 2024-07 to 2024-12 that match a municipal classic-bike ride with the same start hour, the same trip length to the second and the same start and end community area, one to one.",
   "source_file": "facts.json",
   "sources": [
    "scooters",
    "divvy"
   ],
   "rounding": null,
   "unit": "rides"
  },
  "lyft_classic_2025": {
   "value": 1919491,
   "display": "1,919,491",
   "label": "Municipal classic-bike rides found among the City’s “Lyft” rows, 2025",
   "definition": "The same match for 2025.",
   "source_file": "facts.json",
   "sources": [
    "scooters",
    "divvy"
   ],
   "rounding": null,
   "unit": "rides"
  },
  "lyft_classic_share": {
   "value": 95.44,
   "display": "95%",
   "label": "Share of municipal classic-bike rides found among the City’s “Lyft” rows",
   "definition": "Matched rides over municipal classic-bike rides from 2024-07 through the City table’s last month.",
   "source_file": "facts.json",
   "sources": [
    "scooters",
    "divvy"
   ],
   "rounding": "nearest percent",
   "unit": "percent"
  },
  "lyft_classic_chance": {
   "value": 2.3425,
   "display": "2%",
   "label": "Share the same match pairs by chance",
   "definition": "The same match run against municipal rides moved one week later, over municipal classic-bike rides in the same months.",
   "source_file": "facts.json",
   "sources": [
    "scooters",
    "divvy"
   ],
   "rounding": "nearest percent",
   "unit": "percent"
  },
  "divvy_backward": {
   "value": 11201,
   "display": "11,201",
   "label": "Municipal rides left out because they end before they start",
   "definition": "Rides in the municipal trip files from 2020 on whose end time is before their start time once the November clock change is corrected.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": null,
   "unit": "rides"
  },
  "scooter_backward": {
   "value": 3285,
   "display": "3,285",
   "label": "Scooter trips left out because they end before they start",
   "definition": "Trips in the City’s three e-scooter trip tables with a negative trip duration.",
   "source_file": "facts.json",
   "sources": [
    "scooters_2019",
    "scooters_2020",
    "scooters"
   ],
   "rounding": null,
   "unit": "trips"
  },
  "divvy_clock_change": {
   "value": 239,
   "display": "239",
   "label": "Municipal rides kept after the clock-change correction",
   "definition": "Rides that start in the first 1 a.m. hour of the first Sunday in November and end in the repeated one, which read as ending before they start because the trip files’ times carry no time zone.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": null,
   "unit": "rides"
  },
  "divvy_repeated_ids": {
   "value": 307,
   "display": "307",
   "label": "Repeated municipal ride ids counted once",
   "definition": "Rows of the municipal trip files whose ride id already appeared in the same start year, left out.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": null,
   "unit": "rows"
  },
  "cell_share_2025": {
   "value": 21.8306,
   "display": "22%",
   "label": "Share of municipal trip ends placed by rounded cell, 2025",
   "definition": "Trip ends in 2025 given only to 0.01 degree, away from a station, over all municipal trip ends.",
   "source_file": "facts.json",
   "sources": [
    "divvy"
   ],
   "rounding": "nearest percent",
   "unit": "percent"
  },
  "portal_gap_2015": {
   "value": 203,
   "display": "203",
   "label": "Municipal trips in the trip files minus the City’s 2013–2019 table, 2015",
   "definition": "Rides counted from the 2015 trip files, each trip id once, less the City’s table’s 2015 rows.",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "divvy_portal"
   ],
   "rounding": null,
   "unit": "trips"
  },
  "portal_gap_2018": {
   "value": 340,
   "display": "340",
   "label": "Municipal trips in the trip files minus the City’s 2013–2019 table, 2018",
   "definition": "Rides counted from the 2018 trip files, each trip id once, less the City’s table’s 2018 rows.",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "divvy_portal"
   ],
   "rounding": null,
   "unit": "trips"
  },
  "portal_match_years": {
   "value": 5,
   "display": "5",
   "label": "Years the trip files and the City’s table agree exactly",
   "definition": "Years from 2013 to 2019 in which the trips counted from the trip files equal the rows of the City’s 2013–2019 table.",
   "source_file": "facts.json",
   "sources": [
    "divvy",
    "divvy_portal"
   ],
   "rounding": null,
   "unit": "years"
  }
 },
 "invariants": [
  {
   "sum": [
    "divvy_classic_2025",
    "divvy_ebike_2025",
    "divvy_scooter_2025",
    "lime_scooter_2025",
    "other_scooter_2025"
   ],
   "equals": "trips_2025"
  },
  {
   "sum": [
    "divvy_classic_2025",
    "divvy_ebike_2025"
   ],
   "equals": "divvy_bike_trips_2025"
  },
  {
   "sum": [
    "divvy_scooter_2025",
    "lime_scooter_2025",
    "other_scooter_2025"
   ],
   "equals": "scooter_trips_2025"
  }
 ]
}
