{"id": "chicago-il", "label": "Chicago, IL", "city": "Chicago", "state": "IL", "county": "Cook County", "geography": "multi-district metro", "population": 2731585, "researched_on": "2026-09-09", "pipeline_version": "2.1.0", "model": "grok-4.6", "counts": {"total": 81, "sourced": 29, "derived": 34, "estimated": 18}, "gaps": 0, "citations": {"checked": 17, "passed": 11, "failed": 6}, "research_cost_usd": 5.1714, "summary": "This is a planning tool, not a prediction. Of the 81 numbers behind a season in Chicago, 29 are published figures, 34 are worked out from published figures, and 18 are our own estimates. 44 of them were read straight out of a federal file that covers every city in the country, so there was no citation to trust and no page to misread. You can change any of them. Your result is only as good as the numbers you agree with.", "pack": {"id": "chicago-il", "city": "Chicago", "state": "IL", "label": "Chicago, IL", "county": "Cook County", "geography_type": "multi-district metro", "researched_on": "2026-09-09", "pipeline_version": "2.1.0", "model": "grok-4.6", "records": [{"id": "population", "label": "People living here", "value": 2731585, "unit": "people", "basis": "sourced", "why": "US Census Bureau vintage 2025 population estimate for Chicago city, Illinois.", "math": null, "source": {"name": "US Census Bureau, Subcounty Population Estimates", "date": "2025", "url": "https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/cities/totals/sub-est2025.csv", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "SUMLEV 162, GEOID 1714000 -- Chicago city, Illinois"}, "range": [1365792, 5463170], "editable": true, "theme": "people", "bulk": true}, {"id": "land_area_sqmi", "label": "How big the city is", "value": 227.748, "unit": "sq mi", "basis": "sourced", "why": "Census Bureau Gazetteer land area for Chicago city. Water is excluded.", "math": null, "source": {"name": "US Census Bureau Gazetteer", "date": "2025", "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_17.txt", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "GEOID 1714000 -- Chicago city"}, "range": [113.9, 455.5], "editable": true, "theme": "people", "bulk": true}, {"id": "density", "label": "People per square mile", "value": 11994, "unit": "people/sq mi", "basis": "derived", "why": "How tightly packed the town is, which is what decides how far an average trip runs and how much empty driving there is between fares.", "math": "2,731,585 residents divided by 227.748 square miles of land = 11,994 people per square mile.", "source": null, "range": [4797, 29985], "editable": true, "theme": "people", "bulk": true}, {"id": "metro_population", "label": "People in the surrounding county", "value": 5194625, "unit": "people", "basis": "sourced", "why": "US Census Bureau vintage 2025 estimate for Cook County, Illinois. This is the pool a fleet actually draws on, because trips do not stop at the city line.", "math": null, "source": {"name": "US Census Bureau, County Population Estimates", "date": "2025", "url": "https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/counties/totals/co-est2025-alldata.csv", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "SUMLEV 050, GEOID 17031 -- Cook County, Illinois"}, "range": [2597312, 10389250], "editable": true, "theme": "people", "bulk": true}, {"id": "airport_name", "label": "Airport name", "value": "Chicago Midway International", "unit": "", "basis": "sourced", "why": "The nearest commercial service airport to this city in the FAA's own traffic file, matched by distance from the Census Bureau's internal point for the city rather than by name.", "math": null, "source": {"name": "FAA, CY2024 Passenger Boarding (Enplanement) Data for U.S. Airports", "date": "CY2024", "url": "https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "Locid MDW -- Chicago Midway International, Chicago IL"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_code", "label": "Airport code", "value": "MDW", "unit": "", "basis": "sourced", "why": "The FAA location identifier, which is the key this pack joins the traffic file and the airport coordinate file on.", "math": null, "source": {"name": "FAA, CY2024 Passenger Boarding (Enplanement) Data for U.S. Airports", "date": "CY2024", "url": "https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "Locid MDW -- Chicago Midway International, Chicago IL"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_passengers_year", "label": "Passengers boarding a year", "value": 10360093, "unit": "enplanements/year", "basis": "sourced", "why": "FAA calendar year 2024 ENPLANEMENTS -- passengers BOARDING, which is about half of the arrivals-plus-departures figure an airport press release quotes. This is the federal count, read out of the FAA's own file.", "math": null, "source": {"name": "FAA, CY2024 Passenger Boarding (Enplanement) Data for U.S. Airports", "date": "CY2024", "url": "https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "Locid MDW -- Chicago Midway International, Chicago IL"}, "range": [5180046, 20720186], "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_traffic_change_pct", "label": "Change in airport traffic, 2023 to 2024", "value": -2.8, "unit": "%", "basis": "derived", "why": "Whether the airport is growing or shrinking, which says more about the direction of airport ride demand than the level does.", "math": "FAA CY2024 enplanements 10,360,093 against CY2023 10,659,520, both from the same file (https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx): (10,360,093 - 10,659,520) / 10,659,520 = -2.8%.", "source": null, "range": [-50, 50], "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_distance_mi", "label": "Airport distance from the city centre", "value": 5.0, "unit": "mi", "basis": "derived", "why": "STRAIGHT-LINE miles from the Census Bureau's internal point for the city to the FAA's published coordinate for the airport. A road trip is longer -- there is no routing engine here and we do not pretend there is -- so treat this as the floor.", "math": "Great-circle distance between the city's Census internal point (41.837045, -87.684939, from the Census Gazetteer place file) and the FAA's airport coordinate (41.785651, -87.752734, from https://services6.arcgis.com/ssFJjBXIUyZDrSYZ/arcgis/rest/services/US_Airport/FeatureServer/0) = 5.0 miles. Straight line, not road miles.", "source": null, "range": [2.5, 12.4], "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_alternatives_note", "label": "Busier airports within reach", "value": "Chicago O'Hare International (ORD) 15 mi away, 38,575,693 boardings a year", "unit": "", "basis": "sourced", "why": "The nearest airport is not always the one people use. These are the busier commercial airports within 120 miles, from the same FAA file, so a reader can see the choice a traveller here actually has.", "math": null, "source": {"name": "FAA, CY2024 Passenger Boarding (Enplanement) Data for U.S. Airports", "date": "CY2024", "url": "https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "Locid MDW -- Chicago Midway International, Chicago IL"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "power_state_avg", "label": "Average price of electricity in this state", "value": 0.1989, "unit": "$/kWh", "basis": "sourced", "why": "The EIA's own average price to residential customers across Illinois in June 2026. This is the all-in price actually billed, averaged over every utility in the state -- not a tariff line.", "math": null, "source": {"name": "US Energy Information Administration, Electric Power Monthly, Table 5.6.A", "date": "June 2026", "url": "https://www.eia.gov/electricity/monthly/xls/table_5_06_a.xlsx", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "Illinois, June 2026"}, "range": [0.099, 0.398], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_state_avg_commercial", "label": "Average business electricity price in this state", "value": 0.1453, "unit": "$/kWh", "basis": "sourced", "why": "The same EIA table, commercial sector. A depot charging cars overnight is billed on a commercial tariff, not a residential one, so this is usually the closer comparison.", "math": null, "source": {"name": "US Energy Information Administration, Electric Power Monthly, Table 5.6.A", "date": "June 2026", "url": "https://www.eia.gov/electricity/monthly/xls/table_5_06_a.xlsx", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "Illinois, June 2026"}, "range": [0.073, 0.291], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_state_avg_ytd", "label": "Average electricity price this year so far", "value": 0.1922, "unit": "$/kWh", "basis": "sourced", "why": "The same EIA series averaged across the year to date rather than a single month. A tool that models a whole season should lean on this one: a single month can be 5% off the year in either direction, and June 2026 YTD is a season, not a day.", "math": null, "source": {"name": "US Energy Information Administration, Electric Power Monthly, Table 5.6.B (year to date)", "date": "June 2026 YTD", "url": "https://www.eia.gov/electricity/monthly/xls/table_5_06_b.xlsx", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "Illinois, June 2026 YTD"}, "range": [0.096, 0.384], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_utility", "label": "Electric utility", "value": "Commonwealth Edison Co", "unit": "", "basis": "sourced", "why": "The electric utility whose EIA-861 service territory includes Cook County, IL -- the same county this city sits in. Matched on the county, not on the utility's trading name. 3 utilities file a service territory in this county; this is the largest by customers and the others are listed in power_utility_alternatives.", "math": null, "source": {"name": "US Energy Information Administration, Form EIA-861 2024, service territory and sales to ultimate customers", "date": "2024", "url": "https://www.eia.gov/electricity/data/eia861/zip/f8612024.zip", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "utility Commonwealth Edison Co (#4110), Cook County County rows, IL"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_utility_alternatives", "label": "Other utilities in this county", "value": "Village of Winnetka - (IL) (5,044 customers); University of Illinois (1 customers)", "unit": "", "basis": "sourced", "why": "Every other utility whose EIA-861 service territory covers this county. A city on the edge of a county can be on any of them, so the choice is shown rather than hidden.", "math": null, "source": {"name": "US Energy Information Administration, Form EIA-861 2024, service territory and sales to ultimate customers", "date": "2024", "url": "https://www.eia.gov/electricity/data/eia861/zip/f8612024.zip", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "utility Commonwealth Edison Co (#4110), Cook County County rows, IL"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_utility_rate", "label": "What this utility's residential customers pay on average", "value": 0.1522, "unit": "$/kWh", "basis": "derived", "why": "Revenue divided by sales for Commonwealth Edison Co, out of the EIA's own annual file. Bundled service only: a delivery-only row charges a delivery fee against the full kilowatt-hours and folding it in produces a rate nobody is billed.", "math": "Form EIA-861 2024 for Commonwealth Edison Co: residential revenue of $3,111,162.4 thousand against 20,446,776 MWh sold. (3,111,162.4 x 1,000 dollars) / (20,446,776 x 1,000 kWh) = $0.1522 a kWh. This is the utility's own average across its whole residential class -- it is not a tariff, and a customer on a particular rate schedule will pay more or less.", "source": null, "range": [0.076, 0.304], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_utility_rate_commercial", "label": "What this utility's business customers pay on average", "value": 0.1231, "unit": "$/kWh", "basis": "derived", "why": "The same calculation for the commercial class, which is the one a leased bay with a charger would be billed on.", "math": "Form EIA-861 2024 for Commonwealth Edison Co: commercial revenue of $992,378.6 thousand against 8,061,455 MWh sold, so $0.1231 a kWh.", "source": null, "range": [0.062, 0.246], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_supply_choice_share", "label": "Share of local homes buying power from someone else", "value": 0.216, "unit": "share", "basis": "derived", "why": "In a restructured state the wires company delivers to customers who bought their energy from a competing supplier. Where this is high, the utility's own average rate describes only the customers who stayed with it, and shopping around is a real lever for an operator here.", "math": "Form EIA-861 2024 for Commonwealth Edison Co: 805,452 residential customers on delivery-only service against 2,922,223 on bundled service; 805,452 / (805,452 + 2,922,223) = 21.6%.", "source": null, "range": [0, 1], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "climate_station", "label": "Weather station these figures come from", "value": "CHICAGO MIDWAY AP, IL US (USW00014819), 4.9 miles from the city centre", "unit": "", "basis": "sourced", "why": "The nearest NOAA station with a complete thirty-year record, chosen by distance from the Census Bureau's internal point for the city. 1 nearer station(s) were skipped because they measure rainfall but not temperature.", "math": null, "source": {"name": "NOAA National Centers for Environmental Information, 1991-2020 U.S. Climate Normals, station USW00014819", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014819.csv", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "CHICAGO MIDWAY AP, IL US (USW00014819), 4.9 mi from the city centre"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "temp_annual_avg_f", "label": "Average temperature over the year", "value": 52.1, "unit": "F", "basis": "derived", "why": "The mean of the twelve monthly normals, 1991-2020.", "math": "NOAA 1991-2020 monthly normals for station USW00014819: the twelve MLY-TAVG-NORMAL values averaged = 52.1F.", "source": null, "range": [37.1, 67.1], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "temp_coldest_month_avg_f", "label": "Average temperature in the coldest month", "value": 26.0, "unit": "F", "basis": "sourced", "why": "January is the coldest month here on the 1991-2020 normals. Cold is what puts range into a battery pack and puts people into a car instead of on a bike.", "math": null, "source": {"name": "NOAA National Centers for Environmental Information, 1991-2020 U.S. Climate Normals, station USW00014819", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014819.csv", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "CHICAGO MIDWAY AP, IL US (USW00014819), 4.9 mi from the city centre"}, "range": [11.0, 41.0], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "temp_hottest_month_avg_f", "label": "Average temperature in the hottest month", "value": 76.3, "unit": "F", "basis": "sourced", "why": "July is the hottest month here on the 1991-2020 normals.", "math": null, "source": {"name": "NOAA National Centers for Environmental Information, 1991-2020 U.S. Climate Normals, station USW00014819", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014819.csv", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "CHICAGO MIDWAY AP, IL US (USW00014819), 4.9 mi from the city centre"}, "range": [61.3, 91.3], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "precip_year_in", "label": "Rain and melted snow in a year", "value": 34.42, "unit": "in/year", "basis": "derived", "why": "The twelve monthly precipitation normals added up. Wet weather is one of the few things that reliably lifts ride-hail demand.", "math": "NOAA 1991-2020 monthly normals for station USW00014819: the twelve MLY-PRCP-NORMAL values summed = 34.42 inches a year.", "source": null, "range": [17.2, 62.0], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "wet_days_year", "label": "Days a year with measurable rain", "value": 121.3, "unit": "days/year", "basis": "derived", "why": "Days with at least a hundredth of an inch. The COUNT of wet days moves demand more than the total depth does -- one downpour is one busy evening.", "math": "NOAA 1991-2020 normals for station USW00014819: the twelve MLY-PRCP-AVGNDS-GE001HI values summed = 121.3 days a year.", "source": null, "range": [0, 250], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "snow_year_in", "label": "Snow in a year", "value": 38.8, "unit": "in/year", "basis": "derived", "why": "From station USC00111577, 8.4 miles away -- NOT the temperature station above. Fewer stations report snowfall than report temperature, so the nearest one that does is used and named rather than the figure being written down as zero.", "math": "NOAA 1991-2020 normals for station CHICAGO MIDWAY AP 3SW, IL US (USC00111577), 8.4 miles from the city centre: the twelve MLY-SNOW-NORMAL values summed = 38.8 inches a year.", "source": null, "range": [0, 78], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "snow_days_year", "label": "Days a year with measurable snow", "value": 28.2, "unit": "days/year", "basis": "sourced", "why": "Days with at least a tenth of an inch of snowfall, from the same station as the annual total.", "math": null, "source": {"name": "NOAA NCEI 1991-2020 U.S. Climate Normals, station USC00111577", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00111577.csv", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "CHICAGO MIDWAY AP 3SW, IL US (USC00111577), 8.4 mi from the city centre"}, "range": [0, 200], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "adult_share", "label": "Share of residents who are adults", "value": 0.8061, "unit": "share", "basis": "derived", "why": "Residents 18 and over in Chicago, IL, from the Census Bureau's own age table. This is the first link in the rides-a-day chain, so it is worth having from the primary file rather than a re-publication of it.", "math": "ACS 2020-2024 5-year table B01001 for GEO_ID 1600000US1714000: total population 2,711,226, of whom 525,626 are under 18 (the eight under-18 age bands for males and females). (2,711,226 - 525,626) / 2,711,226 = 0.8061.", "source": null, "range": [0.55, 0.95], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "median_household_income", "label": "What a household here earns in a year", "value": 77902, "unit": "$/year", "basis": "sourced", "why": "The median household income in Chicago, IL. It is the ceiling on what a ride can be priced at before people walk, and it is published for every city in the country.", "math": null, "source": {"name": "US Census Bureau, American Community Survey 2020-2024 5-year estimates, table B19013", "date": "2020-2024", "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b19013.dat", "tier": "primary", "verified_on": "2026-09-07", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "GEO_ID 1600000US1714000, B19013_E001"}, "range": [38951, 155804], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "no_vehicle_share", "label": "Share of households with no car", "value": 0.2659, "unit": "share", "basis": "derived", "why": "Households in Chicago, IL with no vehicle available. This is the strongest published local signal there is for who has to hire a ride, and it is the one number in this pack that most directly separates a town where everyone drives from one where a fleet has a market.", "math": "ACS 2020-2024 5-year table B25044 for GEO_ID 1600000US1714000: 1,160,205 occupied households, of which 57,489 owner-occupied (B25044_E003) and 251,008 renter-occupied (B25044_E010) have no vehicle available. (57,489 + 251,008) / 1,160,205 = 0.2659, or 26.6%.", "source": null, "range": [0, 0.6], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "commute_drove_alone_share", "label": "Share who drive to work alone", "value": 0.4475, "unit": "share", "basis": "derived", "why": "How car-shaped the town is. A place where four in five drive alone is one where a ride is a substitute for a car nobody wants to give up.", "math": "ACS 2020-2024 5-year table B08301 for GEO_ID 1600000US1714000: 610,521 of 1,364,366 workers 16 and over (B08301_E003 / B08301_E001) = 0.4475, or 44.75%.", "source": null, "range": [0, 1], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "commute_transit_share", "label": "Share who take public transport to work", "value": 0.177, "unit": "share", "basis": "derived", "why": "The competition, and the floor under demand when it stops running at night.", "math": "ACS 2020-2024 5-year table B08301 for GEO_ID 1600000US1714000: 241,532 of 1,364,366 workers 16 and over (B08301_E010 / B08301_E001) = 0.1770, or 17.70%.", "source": null, "range": [0, 1], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "commute_taxi_ridehail_share", "label": "Share who commute by taxi or ride-hail", "value": 0.0078, "unit": "share", "basis": "derived", "why": "The Census counts this line explicitly. It is a small number everywhere, and it is the only published local measurement of ride-hail use there is.", "math": "ACS 2020-2024 5-year table B08301 for GEO_ID 1600000US1714000: 10,620 of 1,364,366 workers 16 and over (B08301_E016 / B08301_E001) = 0.0078, or 0.78%.", "source": null, "range": [0, 1], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "commute_wfh_share", "label": "Share who work from home", "value": 0.2099, "unit": "share", "basis": "derived", "why": "Workers who make no commute trip at all, which takes the top off weekday morning demand.", "math": "ACS 2020-2024 5-year table B08301 for GEO_ID 1600000US1714000: 286,353 of 1,364,366 workers 16 and over (B08301_E021 / B08301_E001) = 0.2099, or 20.99%.", "source": null, "range": [0, 1], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "mean_commute_minutes", "label": "How long the average commute takes", "value": 33.1, "unit": "minutes", "basis": "derived", "why": "The mean one-way journey to work in Chicago, IL. It is the best published proxy for how far a typical local trip runs, and the trip-length estimate should be argued against it.", "math": "ACS 2020-2024 5-year tables B08013 and B08303 for GEO_ID 1600000US1714000: 35,652,715 aggregate minutes of travel to work divided by 1,078,013 workers who did not work from home = 33.1 minutes.", "source": null, "range": [5, 60], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "local_cleaner_wage", "label": "What a car cleaner is paid here", "value": 16.96, "unit": "$/hour", "basis": "sourced", "why": "The median hourly wage for Cleaners of Vehicles and Equipment (occupation 53-7061) in Chicago-Naperville-Elgin, IL-IN, from the Bureau of Labor Statistics' own May 2024 estimates. This is the single biggest component of every cleaning price below, and it is published for every metropolitan AND non-metropolitan area in the country -- which is why a town of three thousand people gets a real figure here and a web search for a local detailer gets nothing.", "math": "BLS Occupational Employment and Wage Statistics, May 2024, occupation 53-7061, area area 'Chicago-Naperville-Elgin, IL-IN', 9,190 people employed in it: median hourly wage $16.96. The national median for the same occupation is $16.96, so this town's labour index is 16.96 / 16.96 = 1.000.", "source": {"name": "US Bureau of Labor Statistics, Occupational Employment and Wage Statistics, May 2024", "date": "2024-05", "url": "https://www.bls.gov/oes/special-requests/oesm24ma.zip", "tier": "primary", "verified_on": "2026-09-09", "verified_by": "read directly out of the federal bulk file at this URL, matched on a key rather than on a name", "row_key": "OCC_CODE 53-7061, AREA 16980 -- Chicago-Naperville-Elgin, IL-IN"}, "range": [10.18, 30.53], "editable": true, "depends_on": null, "bulk": true, "derived_from": [{"name": "US Bureau of Labor Statistics, Occupational Employment and Wage Statistics, May 2024", "date": "2024-05", "url": "https://www.bls.gov/oes/special-requests/oesm24ma.zip", "read_on": "2026-09-09", "value": 16.96, "unit": "$/hour", "note": "occupation 53-7061, Chicago-Naperville-Elgin, IL-IN"}], "theme": "costs"}, {"id": "labour_note", "label": "What hand work costs here", "value": "Cleaners of Vehicles and Equipment in Chicago-Naperville-Elgin, IL-IN are paid a median of $16.96 an hour (BLS May 2024, occupation 53-7061, 9,190 employed). The national median for the same job is $16.96, so hand work here costs 100% of what it costs nationally.", "unit": "", "basis": "derived", "why": "The wage that scales every cleaning price below. It is published for every metropolitan and non-metropolitan area in the country, which is why a town of three thousand people gets a real figure where a web search for a local detailer's rate gets nothing.", "math": "Read out of the BLS Occupational Employment and Wage Statistics May 2024 bulk files, occupation 53-7061, at the area level. No search was made for it.", "source": null, "range": null, "editable": true, "depends_on": ["local_cleaner_wage"], "bulk": true, "theme": "costs"}, {"id": "local_labour_index", "label": "How this town's labour costs compare with the country", "value": 1.0, "unit": "x national", "basis": "derived", "why": "Everything a person does by hand costs roughly what a person costs here. This one ratio scales every cleaning price in the pack, and it is measured rather than guessed.", "math": "BLS May 2024, occupation 53-7061 (Cleaners of Vehicles and Equipment): the area figure for 'Chicago-Naperville-Elgin, IL-IN' is $16.96 an hour against $16.96 nationally, so 16.96 / 16.96 = 1.000. This is a genuine local labour market estimate.", "source": null, "range": [0.5, 2.0], "editable": true, "depends_on": null, "bulk": true, "theme": "costs"}, {"id": "local_rent_index", "label": "How this town's property costs compare with the country", "value": 1.019, "unit": "x national", "basis": "derived", "why": "Rent is the other half of a local cost. There is no published rent for small commercial bays anywhere in the country, so the pack uses the one property price that IS published for 32,330 places -- what people pay to rent a home here against what they pay nationally. It is housing, not industrial space, and it is used as a proxy on purpose rather than by accident.", "math": "ACS 2020-2024 5-year table B25064, median gross rent: $1,440 a month in Chicago, IL (place level) against $1,413 for the United States from the same table (GEO_ID 0100000US), so 1440 / 1413 = 1.019.", "source": null, "range": [0.2, 3.0], "editable": true, "depends_on": null, "bulk": true, "theme": "costs"}, {"id": "clean_wipe_cost", "label": "A quick interior wipe between shifts", "value": 35, "unit": "$", "basis": "derived", "why": "This is a derivation, not a local quote: a national published figure scaled by a published local index. Nobody publishes a quick contracted interior wipe-down in a town this size, because it is a manual service: keeping a price list current is work, and the price is whatever the owner says on the day. A real quote from a real local supplier beats this number, and it is exactly what you should type over it. The national half of it is what Uber and Lyft themselves pay a driver for a minor mess -- published, national, and kept current because money moves on it every day.", "math": "NATIONAL BASELINE $35.00, then scaled to this town.\n  Lyft publishes a flat $25 for minor 'small food/beverage spills, scuff marks, mud, dirt, or animal fur in the car'.\n  Uber publishes $30 to $60 for a minor mess: 'spills or messes that require extensive cleaning' -- centre $45.00.\n  Average of the two operators' central values: ($25 + $45.00) / 2 = $35.00.\n  Both platforms pay the fee straight to the driver, and Uber requires an itemised receipt from a cleaning service for a professional claim, so these tiers are the platforms' own published view of what such a clean costs.\n  LOCAL STEP: $35.00 x labour index 1.000 = $35.\n  DIRECTION OF ERROR, stated rather than hidden: a platform fee prices a MESS, not a booked clean, so it brackets the right number rather than being it. Neither page carries a publication date; both were read on 2026-09-09.", "source": null, "range": [14, 88], "editable": true, "depends_on": ["local_labour_index"], "bulk": true, "derived_from": [{"name": "Lyft, damage fee policy", "date": null, "url": "https://help.lyft.com/hc/en-us/all/articles/115012927367-I-was-charged-a-damage-fee", "read_on": "2026-09-09", "value": 25.0, "unit": "$", "note": "minor damage"}, {"name": "Uber, driver cleaning fee policy", "date": null, "url": "https://help.uber.com/en/riders/article/uber-driver-cleaning-fee-policy?nodeId=2dba264f-edb9-4ae7-8186-68dd399874f0", "read_on": "2026-09-09", "value": [30.0, 60.0], "unit": "$", "note": "minor mess"}], "theme": "costs", "game_id": "wipe_cost_contract"}, {"id": "clean_deep_cost", "label": "A full interior clean", "value": 72, "unit": "$", "basis": "derived", "why": "This is a derivation, not a local quote: a national published figure scaled by a published local index. Nobody publishes a full interior detail in a town this size, because it is a manual service: keeping a price list current is work, and the price is whatever the owner says on the day. A real quote from a real local supplier beats this number, and it is exactly what you should type over it. The national half of it is what Uber and Lyft themselves pay a driver for a moderate mess -- published, national, and kept current because money moves on it every day.", "math": "NATIONAL BASELINE $72.50, then scaled to this town.\n  Lyft publishes a flat $75 for moderate 'biowaste outside of the car'.\n  Uber publishes $55 to $85 for a moderate mess: 'larger contained spills or biological messes that require focused cleaning, time, and specialized supplies' -- centre $70.00.\n  Average of the two operators' central values: ($75 + $70.00) / 2 = $72.50.\n  Both platforms pay the fee straight to the driver, and Uber requires an itemised receipt from a cleaning service for a professional claim, so these tiers are the platforms' own published view of what such a clean costs.\n  LOCAL STEP: $72.50 x labour index 1.000 = $72.\n  DIRECTION OF ERROR, stated rather than hidden: a platform fee prices a MESS, not a booked clean, so it brackets the right number rather than being it. Neither page carries a publication date; both were read on 2026-09-09.", "source": null, "range": [29, 181], "editable": true, "depends_on": ["local_labour_index"], "bulk": true, "derived_from": [{"name": "Lyft, damage fee policy", "date": null, "url": "https://help.lyft.com/hc/en-us/all/articles/115012927367-I-was-charged-a-damage-fee", "read_on": "2026-09-09", "value": 75.0, "unit": "$", "note": "moderate damage"}, {"name": "Uber, driver cleaning fee policy", "date": null, "url": "https://help.uber.com/en/riders/article/uber-driver-cleaning-fee-policy?nodeId=2dba264f-edb9-4ae7-8186-68dd399874f0", "read_on": "2026-09-09", "value": [55.0, 85.0], "unit": "$", "note": "moderate mess"}], "theme": "costs", "game_id": "deep_clean_cost"}, {"id": "clean_biohazard_cost", "label": "A biohazard clean-out", "value": 151, "unit": "$", "basis": "derived", "why": "This is a derivation, not a local quote: a national published figure scaled by a published local index. Nobody publishes an emergency biohazard clean-out in a town this size, because it is a manual service: keeping a price list current is work, and the price is whatever the owner says on the day. A real quote from a real local supplier beats this number, and it is exactly what you should type over it. The national half of it is what Uber and Lyft themselves pay a driver for a severe mess -- published, national, and kept current because money moves on it every day.", "math": "NATIONAL BASELINE $151.25, then scaled to this town.\n  Lyft publishes a flat $150 for severe 'large biowaste spills that would require specialized cleaning'.\n  Uber publishes $80 to $225 for a severe mess: 'substantial messes involving large amounts of bodily fluids or difficult-to-clean matter across multiple areas' -- centre $152.50.\n  Average of the two operators' central values: ($150 + $152.50) / 2 = $151.25.\n  Both platforms pay the fee straight to the driver, and Uber requires an itemised receipt from a cleaning service for a professional claim, so these tiers are the platforms' own published view of what such a clean costs.\n  LOCAL STEP: $151.25 x labour index 1.000 = $151.\n  DIRECTION OF ERROR, stated rather than hidden: a platform fee prices a MESS, not a booked clean, so it brackets the right number rather than being it. Neither page carries a publication date; both were read on 2026-09-09.", "source": null, "range": [60, 378], "editable": true, "depends_on": ["local_labour_index"], "bulk": true, "derived_from": [{"name": "Lyft, damage fee policy", "date": null, "url": "https://help.lyft.com/hc/en-us/all/articles/115012927367-I-was-charged-a-damage-fee", "read_on": "2026-09-09", "value": 150.0, "unit": "$", "note": "severe damage"}, {"name": "Uber, driver cleaning fee policy", "date": null, "url": "https://help.uber.com/en/riders/article/uber-driver-cleaning-fee-policy?nodeId=2dba264f-edb9-4ae7-8186-68dd399874f0", "read_on": "2026-09-09", "value": [80.0, 225.0], "unit": "$", "note": "severe mess"}], "theme": "costs", "game_id": "bio_contractor_cost"}, {"id": "depot_rent_month", "label": "A small commercial bay, per month", "value": 1299, "unit": "$/month", "basis": "derived", "why": "This is a derivation, not a local quote: a national published figure scaled by a published local index. Nobody publishes what a 1,500 square foot bay lets for in a town this size, because small commercial bays let privately, one handshake at a time, and no index tracks them. A real quote from a real local supplier beats this number, and it is exactly what you should type over it.", "math": "NATIONAL BASELINE: Cushman & Wakefield, MarketBeat United States Industrial Q1 2026 reports an overall US industrial asking rent of $10.20 a square foot a year, NNN. 1,500 square feet x $10.20 = $15,300 a year = $1,275.00 a month nationally.\n  LOCAL STEP: $1,275.00 x rent index 1.019 = $1,299 a month.\n  TWO WAYS THIS IS LOW, said rather than hidden: the national figure is the overall industrial average, dominated by large logistics buildings, and a 1,500 square foot service bay asks MORE per square foot than a 500,000 square foot warehouse -- no premium is applied because no published figure supports one. And NNN means taxes, insurance and common-area costs are on top of this. Treat it as a floor. Read on 2026-09-09.", "source": null, "range": [520, 3898], "editable": true, "depends_on": ["local_rent_index"], "bulk": true, "derived_from": [{"name": "Cushman & Wakefield, MarketBeat United States Industrial Q1 2026", "date": "2026-Q1", "url": "https://assets.cushmanwakefield.com/-/media/cw/marketbeat-pdfs/2026/q1/us-reports/national/q12026usindustrialmarketbeat.pdf", "read_on": "2026-09-09", "value": 10.2, "unit": "$/sq ft/year", "note": "overall US industrial asking rent, NNN"}], "theme": "costs", "game_id": "depot_bay_rent"}, {"id": "insurance_base_month", "label": "Insurance on the first car", "value": 309, "unit": "$/month", "basis": "derived", "why": "This is a derivation, not a local quote: a national published figure scaled by a published local index. Nobody publishes a price for commercial for-hire cover on a single car in a town this size, because a premium is quoted to a particular operator on particular facts, and no insurer publishes a rate table for for-hire cars. A real quote from a real local supplier beats this number, and it is exactly what you should type over it. What stands in for it is general commercial auto adjusted upward for for-hire use, and that adjustment is our judgement, not a published figure.", "math": "NATIONAL BASELINE: Insureon, Commercial auto insurance cost (updated 2026-03-04) reports a median of $245 a month for commercial auto across 100,000 small-business policyholders, calculated as 'the median cost of policies sold by leading insurance carriers to Insureon's small business customers'.\n  FOR-HIRE UPLIFT x1.40 -- THIS IS OUR JUDGEMENT, NOT A PUBLISHED FIGURE. Progressive publish their own 2025 new-policy premium per power unit by class: business auto $276 a month against for-hire specialty truck $734 and for-hire transport truck $926, so their for-hire classes run 2.7 to 3.4 times general business auto. Those classes are TRUCKS; a for-hire passenger car sits between a tradesman's van and a truck, and 1.40 is a conservative reading of that gap.\n  STATE STEP: NAIC 2023 average auto expenditure is $1,153.05 in IL against $1,281.60 countrywide, so the state index is 1153.05 / 1281.60 = 0.900. It is PERSONAL auto -- nobody publishes commercial for-hire premiums by state -- but what it measures is the part that genuinely varies between states: the loss environment, the tort and rate-filing regime, the uninsured rate and the minimum limits.\n  $245 x 1.40 x 0.900 = $309 a month. This is the number in the pack most worth replacing with a real quote. Read on 2026-09-09.", "source": null, "range": [124, 927], "editable": true, "depends_on": null, "bulk": true, "derived_from": [{"name": "Insureon, Commercial auto insurance cost", "date": "2026-03-04", "url": "https://www.insureon.com/small-business-insurance/commercial-auto/cost", "read_on": "2026-09-09", "value": 245.0, "unit": "$/month", "note": "median commercial auto, small business"}, {"name": "Progressive Commercial, average commercial auto cost by business type", "date": "2025", "url": "https://www.progressivecommercial.com/commercial-auto-insurance/commercial-auto-cost/", "read_on": "2026-09-09", "note": "evidence for the direction and rough size of a for-hire uplift"}, {"name": "National Association of Insurance Commissioners, 2023 Auto Insurance Database Average Premium Supplement, Table 4", "date": "2025-06", "url": "https://content.naic.org/sites/default/files/aut-db_1.pdf", "read_on": "2026-09-09", "value": 1153.05, "unit": "$/year", "note": "IL average expenditure per insured vehicle, personal auto"}], "theme": "costs", "game_id": "insurance_base"}, {"id": "insurance_per_car_month", "label": "Insurance on each car after the first", "value": 263, "unit": "$/month", "basis": "derived", "why": "What each additional vehicle adds to the premium. Lower than the first car because a fleet policy spreads the administrative part of a premium across the vehicles while the risk part scales with them -- which is part of why growing is the way out of the trap.", "math": "$309 (the first car, above) x 0.85 = $263. NOBODY PUBLISHES THAT SPLIT: the 0.85 is ours, and it is the reason a second car is cheaper to run than the first.", "source": null, "range": [105, 789], "editable": true, "depends_on": ["insurance_base_month"], "bulk": true, "theme": "costs", "game_id": "insurance_per_car"}, {"id": "power_offpeak", "theme": "power", "label": "Overnight electricity", "value": 0.083, "unit": "$/kWh", "basis": "derived", "why": "ComEd Rate BEST (residential bundled TOU) Overnight period (9 p.m.–6 a.m.) fully covers midnight–06:00; volumetric all-in for typical single-family non-electric-heat class (supply energy + PJM/misc + DTOD delivery + IEDT + REA). Capacity billed separately as demand.", "math": "Summer OPEC BESTEC 2.829¢ + PJM/misc 1.875¢ + DTOD overnight delivery 3.345¢ (SFNH, June 2026 billed) + IEDT 0.128¢ + REA 0.172¢ = 8.349¢, rounded to 0.083. Nonsummer OPEC 3.394¢ is similar. Excludes PEA (can be a credit), local taxes, $10/kW-month capacity, and customer charge. Conservative for variable energy cost of overnight EV charging.", "source": null, "range": [0.04, 0.15], "editable": true, "depends_on": null, "game_id": "power_offpeak"}, {"id": "power_mid", "theme": "power", "label": "Midday electricity", "value": 0.165, "unit": "$/kWh", "basis": "derived", "why": "Mapped 06:00–16:00 onto Rate BEST Morning (6 a.m.–1 p.m.) plus first half of Mid-Day Peak (1–4 p.m.); same volumetric components as overnight for SF non-heat residential.", "math": "Morning all-in ≈10.43¢ (3.778+1.875+4.475+0.30), Mid-Day Peak all-in ≈30.62¢ (16.594+1.875+11.852+0.30). Weighted 7 h morning + 3 h mid-peak: (7×10.43 + 3×30.62)/10 = 16.49¢, rounded to 0.165. Periods do not match the requested window exactly; this is an imposed mapping of the published four-period tariff.", "source": null, "range": [0.08, 0.35], "editable": true, "depends_on": ["power_offpeak"], "game_id": "power_mid"}, {"id": "power_onpeak", "theme": "power", "label": "On-peak electricity", "value": 0.177, "unit": "$/kWh", "basis": "derived", "why": "Mapped 16:00–midnight onto remaining Mid-Day Peak (4–7 p.m.), Evening (7–9 p.m.) and start of Overnight (9 p.m.–midnight); same Rate BEST volumetric stack.", "math": "3 h mid-peak 30.62¢ + 2 h evening ≈12.15¢ + 3 h overnight 8.35¢, divided by 8 h: (91.86+24.30+25.05)/8 = 17.65¢, rounded to 0.177. Super-peak 1–7 p.m. delivery and supply make this window expensive even after 7 p.m.", "source": null, "range": [0.08, 0.4], "editable": true, "depends_on": ["power_offpeak", "power_mid"], "game_id": "power_onpeak"}, {"id": "power_dcfc", "theme": "power", "label": "Public DC fast charging", "value": 0.56, "unit": "$/kWh", "basis": "sourced", "why": "Posted pay-as-you-go rate at the Electrify America Target T2078 site (1940 W 33rd St, Chicago) as of early September 2026; 350 kW CCS, 24/7. Other networks and memberships differ. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "DCFC Tracker (Electrify America station data)", "date": "2026-09", "url": "https://dcfctracker.com/stations/201004", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [0.3, 0.8], "editable": true, "depends_on": null, "game_id": "supercharger_kwh"}, {"id": "power_tou_note", "theme": "power", "label": "Time-of-use tariff available", "value": "Yes, Rate BEST (residential bundled four-period TOU) plus DTOD delivery TOU; Overnight 9 p.m.–6 a.m. Opt-in. Small commercial uses demand charges, not volumetric TOU.", "unit": "", "basis": "estimated", "why": "ComEd launched Rate BEST (Basic Electric Service Time of Use Pricing) effective June 2026 monthly billing and Delivery Time-of-Day pricing for residential customers; periods and charges are in the ICC informational sheets and ComEd delivery-charge guide. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.icc.illinois.gov/downloads/public/filing/4/399143.pdf: the cited page loads but does not carry the figure (the page carries only 7 of the 14 distinctive words in this note). We checked the citation the research pass gave us and could not confirm it, so this number is presented as our own estimate rather than as a published figure.", "source": null, "range": [], "editable": true, "depends_on": null}, {"id": "ridehail_present", "theme": "demand", "label": "Ride-hail and taxi services on the ground", "value": "Uber, Lyft and Via run citywide with about 85,000 registered TNP drivers; taxis (~2,600 licenses) book via Curb, Arro and Uber. Supply is thick, not thin.", "unit": "", "basis": "sourced", "why": "City BACP licenses Uber, Lyft, Via, Uzurv and Veyo as TNPs; the Sun-Times, citing May 2026 city data, puts ~85,000 rideshare drivers against ~2,600 taxis, so Chicago is a dense, competitive market rather than a thin one. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Chicago Sun-Times", "date": "2026-07", "url": "https://chicago.suntimes.com/transportation/2026/07/20/amid-changing-industry-chicago-cabbies-and-ride-hailing-drivers-are-both-struggling-im-stuck-in-this", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the page carries 12 of the 14 distinctive words in this note"}, "range": [], "editable": true, "depends_on": null}, {"id": "transit_note", "theme": "demand", "label": "Public transit evenings and weekends", "value": "CTA buses and L trains cover the city; Red and Blue Lines plus Night Owl buses run 24/7, and most other routes run evenings and weekends.", "unit": "", "basis": "sourced", "why": "Evening and weekend bus/rail still exist, including true overnight owl service, so a lack of late transit is not what pushes Chicago trips into cars the way it would in a town with no night bus. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Chicago Transit Authority", "date": "2026-09", "url": "https://www.transitchicago.com/welcome/", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the page carries 8 of the 14 distinctive words in this note"}, "range": [], "editable": true, "depends_on": null}, {"id": "trip_mi_avg", "theme": "demand", "label": "Average paid trip length", "value": 5.5, "unit": "miles", "basis": "estimated", "why": "Chicago’s own 227.748 sq mi land area sets the geographic scale; published TNC medians are shorter because demand piles up downtown, so 5.5 miles is a mean that respects both the city’s size and that concentration.", "math": "Land area 227.748 sq mi gives a square side of sqrt(227.748)=15.1 miles and an equivalent-disk radius of 8.5 miles. A random origin-destination pair in that disk would average about 0.9×8.5≈7.7 miles, but ride-hail is not random: 26.59% of households have no vehicle and 17.7% of workers already use transit, so paid car trips cluster on the Loop/North Side and on airport runs rather than spanning the whole city. One-third of the 15.1-mile characteristic length is 5.0 miles; adding a modest airport tail (O’Hare is ~17 miles from the Loop) and the 33.1-minute mean commute (about 8 miles at 15 mph, which is a commute not a typical hail) lands at 5.5 miles. Direction: likely a little high for a pure downtown hop, a little low if airport share grows. Stepped down from the random-disk 7.7-mile mean ON this city’s concentrated geography and high no-vehicle/transit shares.", "source": null, "range": [2.0, 12.0], "editable": true, "depends_on": null}, {"id": "trip_mi_short_share", "theme": "demand", "label": "Share of trips under 3 miles", "value": 0.4, "unit": "", "basis": "estimated", "why": "In a 228 sq mi city with a dense Loop, a large share of paid trips are neighborhood or downtown hops under 3 miles, consistent with a ~5.5-mile mean on a right-skewed length distribution.", "math": "With trip_mi_avg 5.5 miles and a right-skewed urban hail distribution (many 1–2 mile hops, a thin airport tail), a lognormal with mean 5.5 and median near 3.5–4 puts roughly 40% of trips under 3 miles. The 33.1-minute mean commute is longer than these short hails, so this share is about local errands, bar hops, and last-mile trips by the 26.59% of households with no vehicle—not the commute. Direction: if downtown congestion pricing has already suppressed the shortest hops, 0.40 is a bit high.", "source": null, "range": [0.2, 0.65], "editable": true, "depends_on": ["trip_mi_avg"]}, {"id": "trip_mi_long_share", "theme": "demand", "label": "Share of trips over 10 miles", "value": 0.15, "unit": "", "basis": "estimated", "why": "Trips over 10 miles are mostly airport and far-neighborhood runs in a city whose characteristic width is only ~15 miles, so they are a minority tail on the same 5.5-mile mean.", "math": "A 5.5-mile mean with right skew leaves a tail: O’Hare–Loop is ~17 miles and Midway–Loop ~12, and those airport trips plus South/West Side-to-downtown runs can exceed 10 miles. Putting 15% of trips over 10 miles is enough to pull the mean up from a ~3.5–4 mile median without implying that long trips are typical. Direction: conservative if airport TNC share is larger than assumed; high if most paid trips stay inside the North Side.", "source": null, "range": [0.05, 0.3], "editable": true, "depends_on": ["trip_mi_avg"]}, {"id": "night_share", "theme": "demand", "label": "Share of demand between 21:00 and 03:00", "value": 0.2, "unit": "", "basis": "estimated", "why": "Bars (2 a.m. close weeknights, 3 a.m. Saturday), hospital shift changes, and college nights create a real late window, but 24-hour Red/Blue Line and Night Owl buses cap how much of that window has to go to ride-hail.", "math": "The 21:00–03:00 window is 6/24=0.25 of the clock. Uniform demand would therefore be 0.25; weekday ride-hail actually peaks at rush hours and falls after 21:00, while Friday/Saturday nights and bar close (1–3 a.m.) spike. Weighting five quieter weeknights against two heavy weekend nights, plus Northwestern/Rush/UIC/UChicago hospital shift changes and UIC/DePaul/Loyola/UChicago student nights, gives about 0.20 of weekly trips in that window. The 26.59% no-vehicle share pushes some of those late trips onto TNC rather than a household car. Direction: likely conservative relative to a city with no owl transit; CTA 24-hour rail is the downward pressure.", "source": null, "range": [0.1, 0.32], "editable": true, "depends_on": null}, {"id": "visitors_year", "theme": "demand", "label": "Annual visitors", "value": 56800000, "unit": "visitors/year", "basis": "sourced", "why": "Choose Chicago’s official count for calendar year 2025 is 56.8 million visitors—the most recent complete year the destination marketing organization has published (released June 25, 2026). This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Choose Chicago", "date": "2026-06", "url": "https://www.choosechicago.com/press-media/press-releases/chicago-welcomes-56-8-million-tourists-in-2025-generating-a-record-breaking-21-5-billion-in-spending/", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [30000000, 70000000], "editable": true, "depends_on": null}, {"id": "visitor_party_size", "theme": "demand", "label": "Average visiting party size", "value": 1.92, "unit": "people", "basis": "sourced", "why": "The 2022 Chicago leisure visitor profile prepared for Choose Chicago and the Illinois Office of Tourism reports an average travel party of 1.92 people (many solo or couple trips), so visitor headcount is not ride count. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Illinois Office of Tourism / Choose Chicago (MMGY)", "date": "2024-03", "url": "https://www.enjoyillinois.com/assets/Files-PDFs/Illinois-Chicago-2022-Visitor-Profile.pdf", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [1.2, 3.5], "editable": true, "depends_on": null}, {"id": "visitor_nights_avg", "theme": "demand", "label": "Average nights per visiting party", "value": 2.21, "unit": "nights", "basis": "estimated", "why": "The same 2022 Chicago leisure visitor profile reports average length of stay of 2.21 days; used here as nights per party. That average includes same-day regional trips, so a purely overnight party stays longer. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.enjoyillinois.com/assets/Files-PDFs/Illinois-Chicago-2022-Visitor-Profile.pdf: the cited page loads but does not carry the figure (the digits 2.2 appear but nowhere near length of stay / Chicago Leisure -- not a citation for this figure). We checked the citation the research pass gave us and could not confirm it, so this number is presented as our own estimate rather than as a published figure.", "source": null, "range": [1.0, 4.5], "editable": true, "depends_on": null}, {"id": "rides_reported", "theme": "demand", "label": "Published paid-ride count", "value": 250000, "unit": "trips/day", "basis": "sourced", "why": "Sun-Times analysis of City of Chicago TNP data: about 250,000 rideshare trips on an average day in May 2026. This is TNC/rideshare only, not taxis (the same article puts cabs at about 22,000 trips/day), so it is a floor on all paid rides. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Chicago Sun-Times", "date": "2026-07", "url": "https://chicago.suntimes.com/transportation/2026/07/20/amid-changing-industry-chicago-cabbies-and-ride-hailing-drivers-are-both-struggling-im-stuck-in-this", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [100000, 400000], "editable": true, "depends_on": null}, {"id": "geography_type", "theme": "geography", "label": "City geography type", "value": "multi-district metro", "unit": "", "basis": "estimated", "why": "Chicago is a 25-by-15-mile lakeshore city with 77 official neighborhoods and distinct Loop, North, South, West, Hyde Park, Midway and O'Hare demand clusters a fleet must choose among, not a single town one car can cover. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.chicago.gov/city/en/about.html: the cited page loads but does not carry the figure (the page carries only 1 of the 2 distinctive words in this note). We checked the citation the research pass gave us and could not confirm it, so this number is presented as our own estimate rather than as a published figure.", "source": null, "range": ["single-radius town", "multi-district metro"], "editable": true, "depends_on": null}, {"id": "city_radius_mi", "theme": "geography", "label": "City radius from centre", "value": 16, "unit": "mi", "basis": "derived", "why": "Distance from the downtown centre (Madison Street baseline) to the far built-up edge at the southern city limit; the compact circular equivalent of the land area understates reach because the city is an elongated lakeshore strip.", "math": "Madison Street is Chicago's centre baseline. The southern city limit at 138th Street is 16.3 miles south of Madison on the published street grid. Britannica: the city is some 25 miles north to south and 15 miles east to west (about 9.6 miles north of Madison to Howard/Juneway and 16.3 miles south). Equivalent circular radius from the settled land area 227.748 sq mi is sqrt(227.748 / 3.1416) ≈ 8.5 miles, which would understate fleet range on this strip. Use 16 miles as centre-to-far-edge.", "source": null, "range": [8, 25], "editable": true, "depends_on": null}, {"id": "district_count", "theme": "geography", "label": "Demand district count", "value": 8, "unit": "", "basis": "estimated", "why": "Operational demand clusters a vehicle pool must choose among; the city's 77 community areas are statistical units, too fine for fleet districts.", "math": "City of Chicago publishes 77 neighborhoods, but for dispatch the meaningful clusters are Loop/downtown, Near North/Mag Mile, North Side lakefront, Northwest Side, Near West/Medical District, Hyde Park/South Side, Midway/Southwest, and O'Hare/far northwest — eight districts. Using 77 would overstate operational distinctness; using 3–4 (the traditional sides) would understate the airport and university poles. Direction: if anything, 8 is conservative versus neighborhood-level variation.", "source": null, "range": [4, 77], "editable": true, "depends_on": ["geography_type"]}, {"id": "districts_note", "theme": "geography", "label": "Demand districts", "value": "Loop/downtown, Near North/Mag Mile, North Side lakefront, Northwest Side, Near West/Medical District, Hyde Park/South Side, Midway/Southwest, O'Hare/far northwest", "unit": "", "basis": "estimated", "why": "Names the eight operational demand districts that follow the river-and-lake layout, the two airports, and the University of Chicago pole — the splits a fleet actually chooses between.", "math": "Mapped from the city's North/South/West sides plus Loop, the Midway and O'Hare airport roads, and Hyde Park as a separate south-lakefront university district. Not a published official list of fleet districts.", "source": null, "range": ["Loop", "77 community areas"], "editable": true, "depends_on": ["district_count"]}, {"id": "airport_flights_note", "theme": "geography", "label": "Midway daily flights", "value": "~226 scheduled daily passenger departures to 95 nonstop destinations; Southwest operating base to U.S. cities plus Mexico/Caribbean", "unit": "", "basis": "estimated", "why": "Midway is a high-frequency Southwest focus city, not a two-flights-a-day spoke — that is the demand pattern a planner needs. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.directflights.com/MDW: the cited page could not be fetched (HTTP 403). We checked the citation the research pass gave us and could not confirm it, so this number is presented as our own estimate rather than as a published figure.", "source": null, "range": ["50 daily / 20 destinations", "400 daily / 150 destinations"], "editable": true, "depends_on": null}, {"id": "generators_note", "theme": "geography", "label": "Named demand generators", "value": "Northwestern Memorial Hospital (943 beds); UIC (35,869 students); University of Chicago (19,140); City Colleges of Chicago (44,296); DePaul (20,637); Illinois Tech (7,502); Grant Park / McCormick Place festival grounds; United Center", "unit": "", "basis": "derived", "why": "The hospitals, in-city universities, and venues that actually concentrate trips; figures are the sourced headcounts and bed count used elsewhere in this pack.", "math": "Beds from Northwestern Medicine 2025 CHNA (943). Enrollments: UIC 35,869 (IBHE Fall 2025-26), UChicago 19,140 (Fall 2025), City Colleges 44,296 (Fall 2025), DePaul 20,637 (Fall 2025), Illinois Tech 7,502 (Fall 2025). United Center named as the Windy City Smokeout site on the NBC 2026 festival guide. Omits suburban Northwestern University (Evanston) and O'Hare-area employers not inside this city pack.", "source": null, "range": ["hospitals only", "full metro employer list"], "editable": true, "depends_on": ["hospital_beds", "college_enrollment"], "federal_check": {"verdict": "skipped", "subject": "hospitals", "claim": "hospital bed count", "federal": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)", "checked_on": "2026-09-18", "findings": 1}}, {"id": "hospital_beds", "theme": "geography", "label": "Largest hospital staffed beds", "value": 943, "unit": "beds", "basis": "sourced", "why": "Staffed/acute-care beds at Northwestern Memorial Hospital, the largest hospital in the city, from the hospital's own 2025 Community Health Needs Assessment. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Northwestern Memorial Hospital CHNA 2025", "date": "2025-08", "url": "https://www.nm.org/-/media/northwestern/resources/about-us/community-health-needs-assessments/nmh-chna-updated-files/northwestern-memorial-hospital-chna-report-2025.pdf", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "found 943 on the same line as '943 beds'"}, "range": [500, 1200], "editable": true, "depends_on": null, "federal_check": {"verdict": "skipped", "subject": "hospitals", "claim": "hospital bed count", "federal": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)", "checked_on": "2026-09-18", "findings": 1}}, {"id": "college_enrollment", "theme": "geography", "label": "City college enrollment", "value": 175000, "unit": "students", "basis": "estimated", "why": "Headcount across colleges physically in the City of Chicago (not the metro, so Evanston's Northwestern is excluded); eight sourced institutions sum to 148,285 and remaining in-city privates push the total near 175,000.", "math": "Sourced Fall 2025 headcounts in the city: City Colleges of Chicago 44,296 + UIC 35,869 + DePaul 20,637 + University of Chicago 19,140 + Loyola at-a-glance 12,538 + Illinois Tech 7,502 + Northeastern Illinois 5,834 + Chicago State 2,469 = 148,285. Remaining in-city campuses (Columbia College, Roosevelt, SAIC, Saint Xavier, North Park, National Louis and smaller schools) are not in those tables; ~25,000–35,000 is a conservative add, giving ~175,000. Loyola's 12,538 is the undergrad-admissions 'Total Students' figure and may understate full university enrollment, so the 175,000 total is still more likely low than high.", "source": null, "range": [120000, 250000], "editable": true, "depends_on": null}, {"id": "events_note", "theme": "geography", "label": "Annual demand-moving events", "value": "Chicago Blues Festival (June), Taste of Chicago (July), Lollapalooza (late July–early August), Chicago Air and Water Show (August), Chicago Marathon (October)", "unit": "", "basis": "sourced", "why": "The citywide festivals and the World Marathon Major that actually surge demand; months from the 2026 DCASE schedule, NBC festival guide, and race calendar. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Chicago Sun-Times (DCASE 2026 festival season)", "date": "2026-01", "url": "https://chicago.suntimes.com/entertainment-culture/2026/01/27/city-of-chicago-2026-festival-season-dates-taste-of-chicago-blues-festival", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the page carries 12 of the 14 distinctive words in this note"}, "range": ["neighborhood fests only", "full convention calendar"], "editable": true, "depends_on": null}, {"id": "insurance_min_liability", "theme": "costs", "label": "State minimum liability limits for TNC/for-hire", "value": "$1,000,000 CSL while transporting a passenger (TNC Period 3); $50k/$100k/$25k while logged on but unmatched (625 ILCS 57/10)", "unit": "", "basis": "estimated", "why": "Illinois Transportation Network Providers Act sets the TNC floors; Chicago TNP rules overlay the same $1M auto liability plus $1M CGL. Taxi/livery follow higher city/ICC filings. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.ilga.gov/legislation/ilcs/fulltext.asp?DocName=062500570K10: the cited page could not be fetched (SSLError: HTTPSConnectionPool(host='www.ilga.gov', port=443): Max retries exceeded with url: /legislation/ilcs/fulltext.asp?DocName=062500570K10 (Caused by SSLError(SSLCe). We checked the citation the research pass gave us and could not confirm it, so this number is presented as our own estimate rather than as a published figure. The cited page has MOVED: re-checked 2026-09-24, https://www.ilga.gov/legislation/ilcs/fulltext.asp?DocName=062500570K10 now redirects to https://www.ilga.gov/Documents/legislation/ilcs/documents/062500570K10.htm, which is the same document at a new address. The figure is unchanged and the citation is kept.", "source": null, "range": [], "editable": true, "depends_on": null}, {"id": "parking_month", "theme": "costs", "label": "Downtown monthly parking space", "value": 250, "unit": "$/month", "basis": "sourced", "why": "Typical South/West Loop monthly contract rate; a depot bay already includes some parking so this is the extra downtown space if needed. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Windy Parking downtown Chicago rates", "date": "2026-04", "url": "https://www.windyparking.com/downtown-chicago-parking/", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [0, 500], "editable": true, "depends_on": null}, {"id": "registration_note", "theme": "costs", "label": "For-hire/TNC vehicle registration and fees", "value": "Chicago taxicab medallion $500/2-yr + $98/mo GTT + $22/mo WAV fund; livery $1,200/2-yr license; TNC company $10,000/yr + per-trip GTT. Vehicles need city emblem + annual inspection.", "unit": "", "basis": "estimated", "why": "City of Chicago BACP published public-vehicle and TNP license fees; these are the amounts an owner is actually billed. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.chicago.gov/city/en/depts/bacp/supp_info/medallion_owner_information.html: the cited page loads but does not carry the figure (the page carries only 7 of the 14 distinctive words in this note). We checked the citation the research pass gave us and could not confirm it, so this number is presented as our own estimate rather than as a published figure. The cited page has MOVED: re-checked 2026-09-24, https://www.chicago.gov/city/en/depts/bacp/supp_info/medallion_owner_information.html now redirects to https://www.chicago.gov/city/en/depts/bacp/provdrs/vehic/svcs/taxicablicenseinformation.html, which is the same document at a new address. The figure is unchanged and the citation is kept.", "source": null, "range": [], "editable": true, "depends_on": null}, {"id": "ridehail_ever_share", "label": "US adults who have ever used a ride-hailing app", "value": 0.36, "unit": "share", "basis": "sourced", "why": "The published national benchmark the local figure is built from. It is pinned in the pipeline rather than researched fresh each time, because asking a language model for a published fact four times returns four answers, and that variance was landing straight in rides per day. The page is still fetched and checked on every run. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Pew Research Center", "date": "2019-01-04", "url": "https://www.pewresearch.org/short-reads/2019/01/04/more-americans-are-using-ride-hailing-apps/", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [0.2, 0.55], "editable": true, "theme": "demand", "depends_on": null}, {"id": "ridehail_active_share_of_users", "label": "Of people who have ever used it, the share who ride in a given month", "value": 0.32, "unit": "share", "basis": "sourced", "why": "The second half of the same national survey, taken from the same page so that the two halves describe the same population. Ten per cent of users ride at least weekly and another 22% monthly; the other 67% ride less than once a month. This is a secondary source -- it republishes a figure it did not itself produce.", "math": "0.10 riding at least weekly + 0.22 riding monthly = 0.32 of ever-users taking a trip in a given month. The complement the page prints, 67% riding less than monthly, agrees with it to within rounding.", "source": {"name": "Pew Research Center", "date": "2019-01-04", "url": "https://www.pewresearch.org/short-reads/2019/01/04/more-americans-are-using-ride-hailing-apps/", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [0.2, 0.5], "editable": true, "theme": "demand", "depends_on": null}, {"id": "ridehail_local_multiplier", "label": "How much more, or less, this town hires rides than the country does", "value": 3.082, "unit": "x national", "basis": "derived", "why": "The step from the national figure to this town, built only from measured Census figures so that it is the same number every time it is computed. It replaces the sentence a language model used to write here -- '0.115 x 1.25 plus a modest nightlife premium' -- in which the premium was invisible and unrepeatable.", "math": "Two measured local signals, each taken against the same figure summed over all 3144 county rows of the same ACS 2020-2024 file. Households with no vehicle: 0.2659 here against 0.0835 nationally = 3.18x. Workers commuting by taxi or ride-hail (ACS B08301_016, a line the Census counts explicitly): 0.00780 here against 0.00261 nationally = 2.98x. Each ratio is clamped to 0.25-4.00 because one ACS cell in a small place rests on very few responses, then blended as a geometric mean because these are ratios, giving 3.08x, clamped to 0.30-3.50. WHAT THIS CANNOT SEE: whether drivers are actually available. In a small town supply, not demand, is usually what binds.", "source": null, "range": [1.54, 6.16], "editable": true, "depends_on": ["no_vehicle_share", "commute_taxi_ridehail_share"], "theme": "demand"}, {"id": "ridehail_month_share", "label": "Local adults taking a ride-hail trip in a given month", "value": 0.3551, "unit": "share", "basis": "derived", "why": "The share of adults in Chicago who hire a ride in a typical month. This is one of the two numbers that decide rides per day, so it is now computed rather than judged: nothing about it is asked of a language model.", "math": "Computed, not estimated. 0.36 of US adults have ever used a ride-hail app x 0.32 of those users taking a trip in a given month = 0.1152 of US adults in a typical month (fall 2018 survey, Pew Research Center). Stepped to this town by the measured multiplier of 3.08x: 0.1152 x 3.08 = 0.3551. CHANGE THIS FIRST IF YOU KNOW THE TOWN. It and the visitor chain are the two numbers the whole ride estimate turns on, and this one is built from a national survey and two Census ratios -- it cannot see how many drivers are actually on the road here, which in a small market is usually the real limit. The editable band runs 0.1420 to 0.6000, roughly 0.4x to 2.5x, which is how uncertain this honestly is. Pew's State of Gig Work (December 2021) separately found that 22% of US adults had used a ride-hailing app in the previous twelve months. A national monthly share of 11.5% sits sensibly inside that; it would not if the monthly share were near the annual one.", "source": null, "range": [0.142, 0.6], "editable": true, "depends_on": ["ridehail_ever_share", "ridehail_active_share_of_users", "ridehail_local_multiplier"], "theme": "demand"}, {"id": "trips_per_user_month", "label": "Trips a month, per local who rides at all that month", "value": 3.0, "unit": "trips", "basis": "estimated", "why": "Counted only over the people who are active in that month, so it can never be below 1. It multiplies the entire resident stream, which is why it is drawn several times rather than once.", "math": "How many rides a local who uses ride-hail at all in a month takes in that month. Drawn 5 times independently with no web search, so that the run-to-run wobble is measured rather than hidden: 3.4, 3, 3.5, 2.7, 2.8. The MEDIAN, 3, is used; the draws spanned 2.7 to 3.5, a factor of 1.30. With 0.2659 of households having no vehicle, monthly-active resident users take a modest handful of trips rather than daily ones because transit still covers most travel.", "source": null, "range": [1.0, 6.0], "editable": true, "theme": "demand", "depends_on": null}, {"id": "visitor_air_arrival_share", "label": "Share of visitors who arrive by air", "value": 0.8615, "unit": "share", "basis": "derived", "why": "A party that flies in has two airport transfers to make and no car; a party that drives in has neither. This is the fork the whole visitor chain turns on, and where two published counts exist it is division rather than judgement.", "math": "48,935,786 boardings across the 2 commercial airports within 35 miles (MDW 10,360,093 at 5 mi, ORD 38,575,693 at 15 mi) in calendar 2024 (FAA, a federal file) divided by 56,800,000 visitors a year = 0.862. Boardings count DEPARTING passengers, and one visiting party that flies in also flies out, so this is the share of visitors who came by air. DIRECTION OF ERROR, STATED: boardings also include residents flying out on their own trips, so this OVERSTATES the visitor air share, and by more in a city whose residents fly a lot. It is capped at 0.95.", "source": null, "range": [0.431, 0.95], "editable": true, "depends_on": ["airport_passengers_year", "visitors_year"], "theme": "demand", "federal_check": {"verdict": "confirmed", "subject": "airports", "claim": "48,935,786 passengers or enplanements", "federal": "the note gives 48,935,786; FAA CY2024 enplanements for MDW+ORD add to 48,935,786 -- within 5%", "checked_on": "2026-09-18", "findings": 1}}, {"id": "visitor_airport_ridehail_share", "label": "Of air arrivals, the share whose airport transfer is a hired ride", "value": 0.38, "unit": "share", "basis": "estimated", "why": "The rest rent a car, take a hotel or casino shuttle, ride a rail or bus link, or get a lift. This is judgement -- no federal file counts it -- but it is a narrow question about one airport rather than an open one about a whole city.", "math": "How many air-arriving parties hire their ride from the airport. Drawn 5 times independently with no web search, so that the run-to-run wobble is measured rather than hidden: 0.38, 0.4, 0.4, 0.34, 0.38. The MEDIAN, 0.38, is used; the draws spanned 0.34 to 0.4, a factor of 1.18. MDW is only 5.0 miles from the city centre, so a taxi or ride-hail is a short paid hop that beats a rental for a 2.21-night stay even though rail exists.", "source": null, "range": [0.05, 0.8], "editable": true, "theme": "demand", "depends_on": null}, {"id": "visitor_local_trips_per_stay", "label": "Hired rides a visiting party takes in town, per visit", "value": 1.3, "unit": "trips", "basis": "estimated", "why": "Trips during the stay, not counting the two airport transfers. A resort where everything is walkable from the hotel is low; a spread-out city is higher.", "math": "How many hired rides a visiting party takes while it is here, excluding the airport transfers. Drawn 5 times independently with no web search, so that the run-to-run wobble is measured rather than hidden: 1.5, 1.3, 1.5, 1.3, 1.3. The MEDIAN, 1.3, is used; the draws spanned 1.3 to 1.5, a factor of 1.15. An average stay of 2.21 nights leaves a 1.92-person party little time for extra paid rides beyond walking and transit among downtown attractions.", "source": null, "range": [0.0, 5.0], "editable": true, "theme": "demand", "depends_on": null}, {"id": "visitor_trips_per_stay", "label": "Hired rides one visiting party takes per visit, all in", "value": 1.955, "unit": "trips", "basis": "estimated", "why": "Every hired ride one visiting PARTY takes on one visit, airport transfers included. Per party and per visit -- not per head and not per night. A party shares one car, so a count of visitors is never a count of rides.", "math": "Built from its parts rather than answered as one number, because answered as one number it came back 1.2 on one run and 3.5 on the next and moved the whole town's ride estimate by a factor of three. 2 airport transfers x 0.862 arriving by air x 0.380 of those hiring a ride = 0.655, plus 1.300 trips in town = 1.955 trips a party. Pushing every judgement piece to its own measured extreme gives a range of 1.59 to 2.26. CHANGE THIS FIRST IF YOU KNOW THE TOWN -- this and the monthly ride-hail share are the two numbers the whole estimate rests on, and this one is judgement about tourists that no federal file counts.", "source": null, "range": [0.0, 8.0], "editable": true, "theme": "demand", "depends_on": null}, {"id": "rides_per_day", "label": "Rides a day, whole town", "value": 235615, "unit": "rides/day", "basis": "estimated", "why": "Total app-hailed trips a day across every operator in the city -- the pool your fleet competes for a share of, not the number you will get.", "math": "Nobody publishes rides per day for a town this size, so this is built as a chain and every link is visible. People living here = 2731585 (a published figure); Share of residents who are adults = 0.8061 (worked out from published figures); Local adults taking a ride-hail trip in a given month = 0.3551 (worked out from published figures); Trips a month, per local who rides at all that month = 3.0 (our estimate); Annual visitors = 56800000 (a published figure); Average visiting party size = 1.92 (a published figure); Hired rides one visiting party takes per visit, all in = 1.955 (our estimate). Residents: 2,731,585 people x 0.8061 adults = 2,201,931 adults; x 0.3551 who take a ride-hail trip in a given month = 781,906 people; x 3.0 trips each a month = 2,345,717 trips a month; divided by 30.4 days = 77,162 resident rides a day. Visitors: 56,800,000 a year / 1.92 people in a party = 29,583,333 visiting parties; x 1.955 ride-hail trips a party takes while it is here / 365 days = 158,453 visitor rides a day. A party shares one car, so a count of visitors is not a count of rides. Visitors are 67% of this total, so the answer turns on the visitor figures more than on the residents. Total: 235,615 rides a day across ALL operators, not just yours. RANGE, HONESTLY: running the same arithmetic with every judgement link at its own low bound gives 156,883 rides a day, and at its own high bound 335,281. The 235,615 above is the midpoint of a real range, not a measurement. The bounds are this run's own -- the panel's lowest and highest draws and the computed share's editable band -- so the width of this range is a report of how unsure the research was. Cross-check: 250,000 a day, as published, a published figure -- Sun-Times analysis of City of Chicago TNP data: about 250,000 rideshare trips on an average day in May 2026. This is TNC/rideshare only, not taxis (the same article puts cabs at about 22,000 trips/day), so it is a floor on all paid rides. This is a secondary source -- it republishes a figure it did not itself produce. Our chain lands within a factor of about two of it, which is reassuring. Direction of uncertainty: this counts only app-hailed rides and ignores taxis, shuttles, non-emergency medical transport and the airport's own courtesy runs, so it is more likely low than high. It also assumes supply exists to meet the demand, which in a small town is often the binding constraint rather than demand itself.", "source": null, "range": [58904, 942460], "editable": true, "low": 156883, "high": 335281, "cross_check": {"has_cross_check": true, "label": "Published paid-ride count", "published_value": 250000.0, "published_unit": "trips/day", "per_day": 250000.0, "basis": "sourced", "source": "https://chicago.suntimes.com/transportation/2026/07/20/amid-changing-industry-chicago-cabbies-and-ride-hailing-drivers-are-both-struggling-im-stuck-in-this", "source_date": "2026-07", "our_estimate_per_day": 235615, "ratio_ours_to_theirs": 0.94, "our_range_per_day": [58904, 942460], "cross_check_inside_our_range": true, "verdict": ["agree", "the chain lands within a factor of about two of the published figure"]}, "theme": "people", "federal_check": {"verdict": "confirmed", "subject": "population", "claim": "2,731,585 people", "federal": "the note says 2,731,585; the Census file says Chicago city 2,731,585 (Census vintage 2025) -- within 5%", "checked_on": "2026-09-18", "findings": 1}}], "notes": {"power": "ComEd residential TOU (Rate BEST + DTOD) is opt-in and new in 2026; all-in figures are volumetric only (capacity ~$10/kW-month and ~$19 customer/meter charges excluded). Small-commercial delivery is demand-based (highest 30-min weekday 9 a.m.–6 p.m.), so overnight charging already avoids the demand ratchet. DCFC 0.56 is one Electrify America Chicago site; EVgo/ChargePoint/Tesla vary and memberships cut ~20 %. EIA bundled averages (0.1522 res / 0.1231 com) remain the right flat-rate anchors.", "demand": "Visitors_year is Choose Chicago’s 2025 calendar-year total (56.8 million), published June 2026—do not mix with the 55.3 million 2024 figure. Rides_reported is TNC-only (~250k/day in May 2026); add ~22k taxi/day from the same article if you want all paid rides. Cross-check of the five required places: (1) Illinois has no Nevada-style statewide taxicab authority PDF of monthly trip counts—Chicago BACP regulates TNPs; (2) City of Chicago Data Portal publishes complete TNP trip microdata (2023–2024, 2025–, 2026) but monthly totals render in JavaScript so a text verifier cannot read an annual sum off the chart page; (3) CDA flychicago.com air-traffic pages did not expose TNC pickup totals in page text; (4) CMAP 2025 household travel survey gives regional trip rates and a 5.7-mile all-mode average distance, not a TNC trip census; (5) local reporting (Sun-Times, 20 Jul 2026) is what quotes the city daily TNC figure used here. Visitor party size and stay are 2022 leisure-profile figures (latest detailed DMO table found); 26.59% no-vehicle households and the 33.1-minute commute are used in the trip-length and night-share estimates.", "geography": "city_radius_mi is centre-to-far-edge (16 mi south to 138th), not the 8.5 mi circular equivalent of 227.748 sq mi — the city is a 25×15 mi lakeshore strip. Midway is the settled nearest commercial airport; O'Hare also sits in city limits and is a separate northwest demand pole. College total excludes Northwestern University (Evanston). Lollapalooza dates July 30–Aug 2 2026 are on NBC Chicago; marathon Oct 11 2026 is on chi.run; Air and Water Show Aug 15–16 2026 is on the cited Sun-Times DCASE list. Hospital 943 is NMH's own FY2024 CHNA bed count (adopted July 2025).", "_superseded": ["clean_biohazard_cost", "clean_deep_cost", "clean_wipe_cost", "depot_rent_month", "insurance_base_month", "insurance_per_car_month", "labour_note"], "costs": "Insurance figures are the weakest because no carrier publishes a 1-car Chicago for-hire schedule; everything else is taken from city ordinance, CBRE/WareSpace industrial rents, BACP fee sheets, or local detailing/limo operators. Depot rent assumes a traditional NNN industrial bay rather than all-in co-warehousing. Parking can be zero if the bay already covers overnight storage. Chicago min-wage figure is the July 2026 city rate for employers with 4+ workers."}, "gaps": [], "counts": {"total": 81, "sourced": 29, "derived": 34, "estimated": 18}, "applies_to_game": {"overrides": 10, "how": "A record carrying `game_id` replaces that id in the game's assumptions.js when this city is selected. The rest of the pack is city context the model has no slot for yet -- rides per day, the trip-length split, the airport's traffic, the demand generators -- and is stated rather than quietly mapped onto something it is not.", "unmapped": ["adult_share", "airport_alternatives_note", "airport_code", "airport_distance_mi", "airport_flights_note", "airport_name", "airport_passengers_year", "airport_traffic_change_pct", "city_radius_mi", "climate_station", "college_enrollment", "commute_drove_alone_share", "commute_taxi_ridehail_share", "commute_transit_share", "commute_wfh_share", "density", "district_count", "districts_note", "events_note", "generators_note", "geography_type", "hospital_beds", "insurance_min_liability", "labour_note", "land_area_sqmi", "local_cleaner_wage", "local_labour_index", "local_rent_index", "mean_commute_minutes", "median_household_income", "metro_population", "night_share", "no_vehicle_share", "parking_month", "population", "power_state_avg", "power_state_avg_commercial", "power_state_avg_ytd", "power_supply_choice_share", "power_tou_note", "power_utility", "power_utility_alternatives", "power_utility_rate", "power_utility_rate_commercial", "precip_year_in", "registration_note", "ridehail_active_share_of_users", "ridehail_ever_share", "ridehail_local_multiplier", "ridehail_month_share", "ridehail_present", "rides_per_day", "rides_reported", "snow_days_year", "snow_year_in", "temp_annual_avg_f", "temp_coldest_month_avg_f", "temp_hottest_month_avg_f", "transit_note", "trip_mi_avg", "trip_mi_long_share", "trip_mi_short_share", "trips_per_user_month", "visitor_air_arrival_share", "visitor_airport_ridehail_share", "visitor_local_trips_per_stay", "visitor_nights_avg", "visitor_party_size", "visitor_trips_per_stay", "visitors_year", "wet_days_year"]}, "source_mix": {"with_a_citation": 29, "primary": 18, "secondary": 11, "tier_unknown": 0, "no_citation_derived_or_estimated": 52, "read_from_a_federal_bulk_file": 44, "how": "A `primary` citation is the body that produced the figure -- a .gov file, or the utility, airport or operator publishing its own number. `secondary` is somebody re-publishing a number they did not produce. Records with no citation are the derived and estimated ones, and their working is in `math`."}, "bulk_sources": {"records": 44, "records_needing_no_citation_check": 18, "record_ids": ["adult_share", "airport_alternatives_note", "airport_code", "airport_distance_mi", "airport_name", "airport_passengers_year", "airport_traffic_change_pct", "clean_biohazard_cost", "clean_deep_cost", "clean_wipe_cost", "climate_station", "commute_drove_alone_share", "commute_taxi_ridehail_share", "commute_transit_share", "commute_wfh_share", "density", "depot_rent_month", "insurance_base_month", "insurance_per_car_month", "labour_note", "land_area_sqmi", "local_cleaner_wage", "local_labour_index", "local_rent_index", "mean_commute_minutes", "median_household_income", "metro_population", "no_vehicle_share", "population", "power_state_avg", "power_state_avg_commercial", "power_state_avg_ytd", "power_supply_choice_share", "power_utility", "power_utility_alternatives", "power_utility_rate", "power_utility_rate_commercial", "precip_year_in", "snow_days_year", "snow_year_in", "temp_annual_avg_f", "temp_coldest_month_avg_f", "temp_hottest_month_avg_f", "wet_days_year"], "how": "These came out of national files that cover every city in the country. The file is downloaded ONCE and shared by every city in the run; the city is matched to its row by a key -- a place or county FIPS code, an FAA airport identifier, or a coordinate -- never by name. They do not go through the citation verifier, because there is no cited page to check: the federal file is the source. What guards them instead is a plausibility band applied when the record is built, and anything outside it is flagged into `gaps` rather than accepted.", "files": {"sub-est2025.csv": {"downloads": 0, "bytes": 7464556, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/cities/totals/sub-est2025.csv"}, "gaz_place_17.txt": {"downloads": 0, "bytes": 148881, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_17.txt"}, "co-est2025-alldata.csv": {"downloads": 0, "bytes": 2071735, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/counties/totals/co-est2025-alldata.csv"}, "faa-cy2024-commercial-service-enplanements.xlsx": {"downloads": 0, "bytes": 58201, "wire_bytes": 0, "reuses": 1, "url": "https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx"}, "faa-us-airports.json": {"downloads": 0, "bytes": 3686620, "wire_bytes": 0, "reuses": 1, "url": "https://services6.arcgis.com/ssFJjBXIUyZDrSYZ/arcgis/rest/services/US_Airport/FeatureServer/0"}, "eia-epm-table-5-06-a.xlsx": {"downloads": 0, "bytes": 19709, "wire_bytes": 0, "reuses": 1, "url": "https://www.eia.gov/electricity/monthly/xls/table_5_06_a.xlsx"}, "eia-epm-table-5-06-b.xlsx": {"downloads": 0, "bytes": 19788, "wire_bytes": 0, "reuses": 1, "url": "https://www.eia.gov/electricity/monthly/xls/table_5_06_b.xlsx"}, "eia-861-2024.zip": {"downloads": 0, "bytes": 4568208, "wire_bytes": 0, "reuses": 3, "url": "https://www.eia.gov/electricity/data/eia861/zip/f8612024.zip"}, "noaa-normals-inventory-30yr.txt": {"downloads": 0, "bytes": 1342890, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/doc/inventory_30yr.txt"}, "noaa\\USC00111550.csv": {"downloads": 0, "bytes": 24356, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00111550.csv"}, "noaa\\USW00014819.csv": {"downloads": 0, "bytes": 31524, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014819.csv"}, "noaa\\US1ILCK0014.csv": {"downloads": 0, "bytes": 1558, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILCK0014.csv"}, "noaa\\US1ILCK0145.csv": {"downloads": 0, "bytes": 1546, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILCK0145.csv"}, "noaa\\US1ILCK0282.csv": {"downloads": 0, "bytes": 1534, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILCK0282.csv"}, "noaa\\US1ILCK0074.csv": {"downloads": 0, "bytes": 1570, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILCK0074.csv"}, "noaa\\USC00111577.csv": {"downloads": 0, "bytes": 41702, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00111577.csv"}, "acs2024-b01001-places-counties.psv": {"downloads": 0, "bytes": 11267969, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b01001.dat"}, "acs2024-b08301-places-counties.psv": {"downloads": 0, "bytes": 4910243, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b08301.dat"}, "acs2024-b08303-places-counties.psv": {"downloads": 0, "bytes": 3510917, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b08303.dat"}, "acs2024-b08013-places-counties.psv": {"downloads": 0, "bytes": 1608092, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b08013.dat"}, "acs2024-b25044-places-counties.psv": {"downloads": 0, "bytes": 3952608, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b25044.dat"}, "acs2024-b19013-places-counties.psv": {"downloads": 0, "bytes": 1058767, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b19013.dat"}, "acs2024-b25064-places-counties.psv": {"downloads": 0, "bytes": 1025542, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b25064.dat"}, "bls-oes2024-53-7061-national.psv": {"downloads": 0, "bytes": 120, "wire_bytes": 0, "reuses": 1, "url": "https://www.bls.gov/oes/special-requests/oesm24nat.zip"}, "bls-oes2024-area-definitions.xlsx": {"downloads": 0, "bytes": 147222, "wire_bytes": 0, "reuses": 1, "url": "https://www.bls.gov/oes/2024/may/area_definitions_m2024.xlsx"}, "bls-oes2024-53-7061-areas.psv": {"downloads": 0, "bytes": 33711, "wire_bytes": 0, "reuses": 1, "url": "https://www.bls.gov/oes/special-requests/oesm24ma.zip"}, "acs2024-b25064-us-states.psv": {"downloads": 0, "bytes": 1043, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b25064.dat"}}, "downloads_this_run": 0, "cache_reuses_this_run": 29, "not_bulk_sourced_and_why": "What is still researched is the LOCAL STORY, and it is researched because it is real, published and findable: the utility's time-of-use split (a filed tariff, not a table), public fast-charge prices, the visitor economy, the state's minimum liability statute, the city's own parking schedule, and the named demand generators -- hospitals with their bed counts, colleges with their enrolments, the venue that fills the town. That is the half of a pack no federal file will ever carry, and it is the half worth having: Dover, Tennessee is a town of 1,918 people in the federal files and nothing more, and what makes it interesting is that 84% of its rides are visitors to Fort Donelson National Battlefield.", "derived_rather_than_researched": "Cleaning, depot rent and insurance USED to be researched and are not any more. They are manual-service prices that nobody publishes, because maintaining a price page is work and the price is whatever the owner says on the day. Searching for them found nothing at all in the smallest town and found ONE detailer's advertised price in the others, which was then stamped `sourced` -- a claim of rigour a sample of one does not have. Each is now a national published baseline times a published local index (BLS area wages for hand work, ACS median gross rent for property, NAIC state expenditure for insurance), with the arithmetic in `math`. See local_costs.py."}, "verification": {"bulk_records": 44, "bulk_needing_no_verification": 18, "citations_checked": 17, "citations_passed": 11, "citations_failed": 6, "primary": 0, "secondary": 11, "derived_downgraded": 0, "method": "Every record the model returned as 'sourced' had its cited URL fetched. The page had to load, and the figure had to be in its text within 400 characters of one of the record's own keywords. Anything that failed was demoted to 'estimated' with the failure written into its math.", "reports": [{"id": "population", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "SUMLEV 162, GEOID 1714000 -- Chicago city, Illinois", "action": "not checked (read straight from a federal bulk file)"}, {"id": "land_area_sqmi", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "GEOID 1714000 -- Chicago city", "action": "not checked (read straight from a federal bulk file)"}, {"id": "density", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "metro_population", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "SUMLEV 050, GEOID 17031 -- Cook County, Illinois", "action": "not checked (read straight from a federal bulk file)"}, {"id": "airport_name", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "Locid MDW -- Chicago Midway International, Chicago IL", "action": "not checked (read straight from a federal bulk file)"}, {"id": "airport_code", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "Locid MDW -- Chicago Midway International, Chicago IL", "action": "not checked (read straight from a federal bulk file)"}, {"id": "airport_passengers_year", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "Locid MDW -- Chicago Midway International, Chicago IL", "action": "not checked (read straight from a federal bulk file)"}, {"id": "airport_traffic_change_pct", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "airport_distance_mi", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "airport_alternatives_note", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "Locid MDW -- Chicago Midway International, Chicago IL", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_state_avg", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "Illinois, June 2026", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_state_avg_commercial", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "Illinois, June 2026", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_state_avg_ytd", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "Illinois, June 2026 YTD", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_utility", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "utility Commonwealth Edison Co (#4110), Cook County County rows, IL", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_utility_alternatives", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "utility Commonwealth Edison Co (#4110), Cook County County rows, IL", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_utility_rate", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_utility_rate_commercial", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_supply_choice_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "climate_station", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "CHICAGO MIDWAY AP, IL US (USW00014819), 4.9 mi from the city centre", "action": "not checked (read straight from a federal bulk file)"}, {"id": "temp_annual_avg_f", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "temp_coldest_month_avg_f", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "CHICAGO MIDWAY AP, IL US (USW00014819), 4.9 mi from the city centre", "action": "not checked (read straight from a federal bulk file)"}, {"id": "temp_hottest_month_avg_f", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "CHICAGO MIDWAY AP, IL US (USW00014819), 4.9 mi from the city centre", "action": "not checked (read straight from a federal bulk file)"}, {"id": "precip_year_in", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "wet_days_year", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "snow_year_in", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "snow_days_year", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "CHICAGO MIDWAY AP 3SW, IL US (USC00111577), 8.4 mi from the city centre", "action": "not checked (read straight from a federal bulk file)"}, {"id": "adult_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "median_household_income", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "GEO_ID 1600000US1714000, B19013_E001", "action": "not checked (read straight from a federal bulk file)"}, {"id": "no_vehicle_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "commute_drove_alone_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "commute_transit_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "commute_taxi_ridehail_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "commute_wfh_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "mean_commute_minutes", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "local_cleaner_wage", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "OCC_CODE 53-7061, AREA 16980 -- Chicago-Naperville-Elgin, IL-IN", "action": "not checked (read straight from a federal bulk file)"}, {"id": "labour_note", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "local_labour_index", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "local_rent_index", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "clean_wipe_cost", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "clean_deep_cost", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "clean_biohazard_cost", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "depot_rent_month", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "insurance_base_month", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "insurance_per_car_month", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "read out of the federal file named in its source", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_offpeak", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "power_mid", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "power_onpeak", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "power_dcfc", "basis_in": "sourced", "url": "https://dcfctracker.com/stations/201004", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "power_tou_note", "basis_in": "sourced", "url": "https://www.icc.illinois.gov/downloads/public/filing/4/399143.pdf", "status": 200, "url_ok": true, "figure_ok": false, "tier": "primary", "detail": "the cited page loads but does not carry the figure (the page carries only 7 of the 14 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "ridehail_present", "basis_in": "sourced", "url": "https://chicago.suntimes.com/transportation/2026/07/20/amid-changing-industry-chicago-cabbies-and-ride-hailing-drivers-are-both-struggling-im-stuck-in-this", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the page carries 12 of the 14 distinctive words in this note", "action": "kept"}, {"id": "transit_note", "basis_in": "sourced", "url": "https://www.transitchicago.com/welcome/", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the page carries 8 of the 14 distinctive words in this note", "action": "kept"}, {"id": "trip_mi_avg", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "trip_mi_short_share", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "trip_mi_long_share", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "night_share", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "visitors_year", "basis_in": "sourced", "url": "https://www.choosechicago.com/press-media/press-releases/chicago-welcomes-56-8-million-tourists-in-2025-generating-a-record-breaking-21-5-billion-in-spending/", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "visitor_party_size", "basis_in": "sourced", "url": "https://www.enjoyillinois.com/assets/Files-PDFs/Illinois-Chicago-2022-Visitor-Profile.pdf", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "visitor_nights_avg", "basis_in": "sourced", "url": "https://www.enjoyillinois.com/assets/Files-PDFs/Illinois-Chicago-2022-Visitor-Profile.pdf", "status": 200, "url_ok": true, "figure_ok": false, "tier": "secondary", "detail": "the cited page loads but does not carry the figure (the digits 2.2 appear but nowhere near length of stay / Chicago Leisure -- not a citation for this figure)", "action": "demoted to estimated"}, {"id": "rides_reported", "basis_in": "sourced", "url": "https://chicago.suntimes.com/transportation/2026/07/20/amid-changing-industry-chicago-cabbies-and-ride-hailing-drivers-are-both-struggling-im-stuck-in-this", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "geography_type", "basis_in": "sourced", "url": "https://www.chicago.gov/city/en/about.html", "status": 200, "url_ok": true, "figure_ok": false, "tier": "primary", "detail": "the cited page loads but does not carry the figure (the page carries only 1 of the 2 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "city_radius_mi", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "district_count", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "districts_note", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "airport_flights_note", "basis_in": "sourced", "url": "https://www.directflights.com/MDW", "status": 0, "url_ok": false, "figure_ok": null, "tier": "secondary", "detail": "the cited page could not be fetched (HTTP 403)", "action": "demoted to estimated"}, {"id": "generators_note", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "hospital_beds", "basis_in": "sourced", "url": "https://www.nm.org/-/media/northwestern/resources/about-us/community-health-needs-assessments/nmh-chna-updated-files/northwestern-memorial-hospital-chna-report-2025.pdf", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "found 943 on the same line as '943 beds'", "action": "kept"}, {"id": "college_enrollment", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "events_note", "basis_in": "sourced", "url": "https://chicago.suntimes.com/entertainment-culture/2026/01/27/city-of-chicago-2026-festival-season-dates-taste-of-chicago-blues-festival", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the page carries 12 of the 14 distinctive words in this note", "action": "kept"}, {"id": "insurance_min_liability", "basis_in": "sourced", "url": "https://www.ilga.gov/legislation/ilcs/fulltext.asp?DocName=062500570K10", "status": 0, "url_ok": false, "figure_ok": null, "tier": "primary", "detail": "the cited page could not be fetched (SSLError: HTTPSConnectionPool(host='www.ilga.gov', port=443): Max retries exceeded with url: /legislation/ilcs/fulltext.asp?DocName=062500570K10 (Caused by SSLError(SSLCe)", "action": "demoted to estimated"}, {"id": "parking_month", "basis_in": "sourced", "url": "https://www.windyparking.com/downtown-chicago-parking/", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "registration_note", "basis_in": "sourced", "url": "https://www.chicago.gov/city/en/depts/bacp/supp_info/medallion_owner_information.html", "status": 200, "url_ok": true, "figure_ok": false, "tier": "primary", "detail": "the cited page loads but does not carry the figure (the page carries only 7 of the 14 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "ridehail_ever_share", "basis_in": "sourced", "url": "https://www.pewresearch.org/short-reads/2019/01/04/more-americans-are-using-ride-hailing-apps/", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "ridehail_active_share_of_users", "basis_in": "sourced", "url": "https://www.pewresearch.org/short-reads/2019/01/04/more-americans-are-using-ride-hailing-apps/", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "ridehail_local_multiplier", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "ridehail_month_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "trips_per_user_month", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "visitor_air_arrival_share", "basis_in": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "visitor_airport_ridehail_share", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "visitor_local_trips_per_stay", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "visitor_trips_per_stay", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}]}, "cost": {"calls": 9, "input_tokens": 2013028, "output_tokens": 62035, "web_searches": 112, "cost_usd": 5.1714, "seconds": 1297.7, "measured_on": "2026-09-07", "note": "measured when the research actually ran on 2026-09-07; rebuilding the pack from the saved answers costs nothing"}, "search_ceiling": {"scope": "chicago-il", "searches_charged": 0, "search_ceiling": 200, "searches_left": 200, "calls_made": 0, "call_ceiling": 12, "search_enabled_calls": 0, "per_call_ceiling": 60, "charged_by_estimate": 0, "how_the_cli_is_charged": "The Grok CLI does not report how many web searches it made, so every search-enabled call is charged a flat 28 -- the measured mean of the runs this ceiling exists to prevent (668 searches over 24 search-enabled calls). It is deliberately the worst case, so the ceiling binds early rather than late.", "per_call_breaches": [], "refusals": [], "bound": false, "why": "Six cities on 2026-09-08 made 668 web searches between them and pulled 13,057,511 input tokens, because nothing counted them. This ceiling refuses a call the remaining budget cannot pay for. It is set well above the shape of a normal city on purpose: it is a guard rail against a loop that has run away, not a reason to ask fewer questions about the town. If it bound, the fields that went unresearched are named in `gaps`."}, "reproducibility": {"why": "Re-running the same research prompt for the same city used to return materially different judgement figures, and those figures dominate rides per day. Three variables were taken off the model and rebuilt: the monthly ride-hail share is now computed from a pinned national survey and two measured Census ratios; the per-party visitor trip rate is composed from narrower questions; and what judgement is left is drawn several times and reported as a median with its spread.", "computed_not_judged": ["ridehail_ever_share", "ridehail_active_share_of_users", "ridehail_local_multiplier", "ridehail_month_share", "visitor_air_arrival_share"], "panel_draws": 5, "panel": {"visitor_airport_ridehail_share": {"median": 0.38, "draws": [0.38, 0.4, 0.4, 0.34, 0.38], "min": 0.34, "max": 0.4, "spread_x": 1.18}, "visitor_local_trips_per_stay": {"median": 1.3, "draws": [1.5, 1.3, 1.5, 1.3, 1.3], "min": 1.3, "max": 1.5, "spread_x": 1.15}, "trips_per_user_month": {"median": 3.0, "draws": [3.4, 3.0, 3.5, 2.7, 2.8], "min": 2.7, "max": 3.5, "spread_x": 1.3}}, "panel_answers_clipped_to_bounds": [], "rides_per_day_range": [156883, 335281]}, "cross_check": {"has_cross_check": true, "label": "Published paid-ride count", "published_value": 250000.0, "published_unit": "trips/day", "per_day": 250000.0, "basis": "sourced", "source": "https://chicago.suntimes.com/transportation/2026/07/20/amid-changing-industry-chicago-cabbies-and-ride-hailing-drivers-are-both-struggling-im-stuck-in-this", "source_date": "2026-07", "our_estimate_per_day": 235615, "ratio_ours_to_theirs": 0.94, "our_range_per_day": [58904, 942460], "cross_check_inside_our_range": true, "verdict": ["agree", "the chain lands within a factor of about two of the published figure"]}, "replayed_from_saved_research": true, "summary": "This is a planning tool, not a prediction. Of the 81 numbers behind a season in Chicago, 29 are published figures, 34 are worked out from published figures, and 18 are our own estimates. 44 of them were read straight out of a federal file that covers every city in the country, so there was no citation to trust and no page to misread. You can change any of them. Your result is only as good as the numbers you agree with.", "federal_cross_check": {"rule": "Every research claim about charging stations, population or airports is checked against a federal bulk file the pipeline already holds on disk: chargers against the DOE/AFDC station snapshot (open, public sites within 10 straight-line miles of the Census town center), population against the Census place and county estimates, airports against the FAA enplanement file. Confirmed means the federal file agrees within tolerance (a stall count within 25% or one stall; a figure within 5%). Disputed means the federal file holds a different figure -- both are printed and the pack keeps its own citation. Unconfirmed means the federal file has no record of the thing claimed, which is never treated as false: the locator is voluntary submission and grant-funded sites lag it. Hospital claims are not checked because no federal hospital file is cached. A planned or permitted site never counts as present.", "checked_on": "2026-09-18", "town_center": [41.837045, -87.684939], "geoid": "1714000", "files": {"chargers": {"name": "US DOE Alternative Fuels Data Center station locator", "snapshot": "2026-09-16", "rows": "89386", "views": "dcfc_public / l2_public (status E, public, unrestricted)", "path": "../../american_adventurer/data/camp_leads.sqlite"}, "population": {"place": {"name": "Chicago city", "population": 2731585, "vintage": "2025", "file": "sub-est2025.csv", "read_on": "2026-09-07"}, "county": {"name": "Cook County", "population": 5194625, "vintage": "2025", "file": "co-est2025-alldata.csv", "read_on": "2026-09-07"}, "name": "US Census Bureau population estimates, vintage 2025"}, "airports": {"name": "FAA CY2024 commercial service enplanements + FAA airport layer", "read_on": "2026-09-07"}, "hospitals": {"skipped": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)"}}, "federal_chargers_within_10mi": {"dcfc_sites": 73, "dcfc_ports": 360, "dcfc_list": [{"name": "Target T2078 (Chicago, IL)", "network": "Electrify America", "ports": 4, "connectors": "J1772COMBO", "miles": 0.6, "open_date": "2021-11-11"}, {"name": "7Charge - Chicago 41961", "network": "7CHARGE", "ports": 2, "connectors": "J1772COMBO TESLA", "miles": 0.8, "open_date": "2024-01-05"}, {"name": "Ashland & Roosevelt", "network": "eVgo Network", "ports": 6, "connectors": "CHADEMO J1772COMBO", "miles": 2.1, "open_date": "2024-01-04"}, {"name": "Chicago, IL - South Pulaski Road - Tesla Supercharger", "network": "Tesla", "ports": 12, "connectors": "TESLA", "miles": 2.5, "open_date": "2022-11-01"}, {"name": "Buddy Bear - 4750 S. Archer Avenue", "network": "NOODOE", "ports": 4, "connectors": "J1772COMBO", "miles": 2.6, "open_date": "2025-08-22"}, {"name": "Chicago, IL - South Canal Street - Tesla Supercharger", "network": "Tesla", "ports": 14, "connectors": "TESLA", "miles": 3.2, "open_date": "2018-02-01"}, {"name": "Target T2781 (Chicago, IL)", "network": "Electrify America", "ports": 3, "connectors": "J1772 J1772COMBO", "miles": 3.2, "open_date": "2019-10-04"}, {"name": "433 W Van Buren St", "network": "EVIUM", "ports": 4, "connectors": "J1772COMBO", "miles": 3.6, "open_date": "2026-02-19"}, {"name": "Buddy Bear - 3940 W. Washington Blvd", "network": "NOODOE", "ports": 6, "connectors": "J1772COMBO", "miles": 3.7, "open_date": "2025-08-22"}, {"name": "Power Up Plaza", "network": "Blink Network", "ports": 16, "connectors": "J1772COMBO", "miles": 3.8, "open_date": "2025-08-11"}, {"name": "Little Miss Lightning - 4532 W 55th St, Chicago, IL", "network": "FLO", "ports": 8, "connectors": "J1772COMBO", "miles": 4.0, "open_date": "2026-06-30"}, {"name": "Chicago, IL - North Columbus Drive - Tesla Supercharger", "network": "Tesla", "ports": 10, "connectors": "TESLA", "miles": 4.8, "open_date": "2017-09-11"}, {"name": "Buddy Bear - 6201 W. Ogden Avenue", "network": "NOODOE", "ports": 4, "connectors": "J1772COMBO", "miles": 4.8, "open_date": "2025-08-22"}, {"name": "Whole Foods Chicago & State", "network": "eVgo Network", "ports": 4, "connectors": "CHADEMO J1772COMBO", "miles": 5.0, "open_date": "2025-07-25"}, {"name": "Target T2613 (Chicago, IL)", "network": "Electrify America", "ports": 6, "connectors": "J1772COMBO", "miles": 5.1, "open_date": "2019-12-06"}, {"name": "Hyatt Place Chicago and Wicker Park", "network": "RED_E", "ports": 4, "connectors": "J1772COMBO", "miles": 5.1, "open_date": "2025-12-18"}, {"name": "Nortown Auto", "network": "RED_E", "ports": 10, "connectors": "J1772COMBO", "miles": 5.2, "open_date": "2026-05-12"}, {"name": "Chicago, IL - North Halsted - Tesla Supercharger", "network": "Tesla", "ports": 10, "connectors": "TESLA", "miles": 5.3, "open_date": "2018-07-31"}, {"name": "6405 Roosevelt Rd", "network": "SHELL_RECHARGE", "ports": 4, "connectors": "J1772COMBO", "miles": 5.5, "open_date": "2025-12-11"}, {"name": "Shell Armitage", "network": "RED_E", "ports": 4, "connectors": "J1772COMBO", "miles": 5.6, "open_date": "2025-12-04"}, {"name": "BofA Oak Park (Oak Park, IL)", "network": "Electrify America", "ports": 4, "connectors": "J1772COMBO", "miles": 5.8, "open_date": "2020-11-10"}, {"name": "Wintrust", "network": "NOODOE", "ports": 8, "connectors": "J1772COMBO", "miles": 5.8, "open_date": "2026-02-25"}, {"name": "Zeigler Ford of North Riverside", "network": "FORD_CHARGE", "ports": 6, "connectors": "J1772COMBO", "miles": 6.2, "open_date": "2024-09-24"}, {"name": "Chicago, IL - Elston Avenue - Tesla Supercharger", "network": "Tesla", "ports": 12, "connectors": "TESLA", "miles": 6.3, "open_date": "2021-05-29"}, {"name": "Buddy Bear - 7068 South Chicago Ave", "network": "NOODOE", "ports": 4, "connectors": "J1772COMBO", "miles": 6.3, "open_date": "2025-08-22"}, {"name": "Costco Lincoln Park (Chicago, IL)", "network": "Electrify America", "ports": 10, "connectors": "J1772COMBO", "miles": 6.4, "open_date": "2025-09-03"}, {"name": "Amoco N Laramie Ave", "network": "RED_E", "ports": 4, "connectors": "J1772COMBO", "miles": 6.6, "open_date": "2025-12-23"}, {"name": "BOA Logan Square IL4-313 (Chicago, IL)", "network": "Electrify America", "ports": 4, "connectors": "J1772COMBO", "miles": 6.7, "open_date": "2021-06-28"}, {"name": "1160 W Diversey Pkwy", "network": "SHELL_RECHARGE", "ports": 4, "connectors": "J1772COMBO", "miles": 6.8, "open_date": "2026-03-05"}, {"name": "Thorntons Harlem Avenue, Summit, IL", "network": "BP_PULSE", "ports": 4, "connectors": "J1772COMBO", "miles": 7.0, "open_date": "2024-12-10"}, {"name": "Buddy Bear - 243 W. 83rd Street", "network": "NOODOE", "ports": 4, "connectors": "J1772COMBO", "miles": 7.1, "open_date": "2025-08-22"}, {"name": "Buddy Bear - 8644 S. Kedzie Ave", "network": "NOODOE", "ports": 4, "connectors": "J1772COMBO", "miles": 7.1, "open_date": "2025-09-30"}, {"name": "Chicago, IL - North Broadway - Tesla Supercharger", "network": "Tesla", "ports": 8, "connectors": "TESLA", "miles": 7.2, "open_date": "2018-01-29"}, {"name": "Whole Foods Lakeview", "network": "eVgo Network", "ports": 4, "connectors": "CHADEMO J1772COMBO", "miles": 7.2, "open_date": "2025-07-25"}, {"name": "Shell N Kimball Ave", "network": "RED_E", "ports": 4, "connectors": "J1772COMBO", "miles": 7.2, "open_date": "2025-12-18"}, {"name": "Kennedy Plaza", "network": "NOODOE", "ports": 6, "connectors": "J1772COMBO", "miles": 7.2, "open_date": "2025-12-31"}, {"name": "Jewel-Osco", "network": "eVgo Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 7.3, "open_date": "2018-03-07"}, {"name": "Buddy Bear - 8136 W. Ogden Avenue", "network": "NOODOE", "ports": 4, "connectors": "J1772COMBO", "miles": 7.3, "open_date": "2025-08-22"}, {"name": "Berman Nissan - Chicago", "network": "Non-Networked", "ports": 1, "connectors": "CHADEMO J1772", "miles": 7.5, "open_date": "2018-06-06"}, {"name": "Chicago, IL - West Addison Street - Tesla Supercharger", "network": "Tesla", "ports": 20, "connectors": "J1772COMBO TESLA", "miles": 7.5, "open_date": "2025-10-08"}, {"name": "Evergreen Park, IL - Tesla Supercharger", "network": "Tesla", "ports": 10, "connectors": "TESLA", "miles": 7.7, "open_date": "2019-06-15"}, {"name": "Meijer Evergreen Park (Evergreen Park, IL)", "network": "Electrify America", "ports": 4, "connectors": "J1772COMBO", "miles": 7.7, "open_date": "2020-10-30"}, {"name": "RIVER FOREST PAIRED 1", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 7.7, "open_date": "2026-03-06"}, {"name": "RIVER FOREST PAIRED 2", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 7.7, "open_date": "2026-03-06"}, {"name": "RIVER FOREST PAIRED 4", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 7.7, "open_date": "2026-03-06"}, {"name": "RIVER FOREST PAIRED 3", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 7.7, "open_date": "2026-03-06"}, {"name": "801 W Addison St", "network": "SHELL_RECHARGE", "ports": 4, "connectors": "J1772COMBO", "miles": 7.8, "open_date": "2026-01-22"}, {"name": "Whole Foods Market", "network": "eVgo Network", "ports": 1, "connectors": "CHADEMO J1772 J1772COMBO", "miles": 7.9, "open_date": "2018-03-07"}, {"name": "MCGRATH HONDA STATION 1", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 8.1, "open_date": "2026-01-29"}, {"name": "MCGRATH HONDA STATION 2", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 8.1, "open_date": "2026-01-29"}, {"name": "MCGRATH HONDA STATION 3", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 8.1, "open_date": "2026-01-29"}, {"name": "Culvers Evergreen Park IL", "network": "RED_E", "ports": 8, "connectors": "J1772COMBO", "miles": 8.1, "open_date": "2026-05-12"}, {"name": "CASTLE CHARGING FAST CHARGER 1", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 8.2, "open_date": "2022-05-28"}, {"name": "Buddy Bear - 1045 W. 95th St.", "network": "NOODOE", "ports": 2, "connectors": "J1772COMBO", "miles": 8.2, "open_date": "2026-02-06"}, {"name": "Pilot Travel Center 1042", "network": "eVgo Network", "ports": 4, "connectors": "J1772COMBO", "miles": 8.2, "open_date": "2026-06-29"}, {"name": "Village Hall", "network": "NOODOE", "ports": 4, "connectors": "J1772COMBO", "miles": 8.3, "open_date": "2026-02-01"}, {"name": "Oak Lawn", "network": "EV Connect", "ports": 2, "connectors": "J1772COMBO", "miles": 8.5, "open_date": "2023-09-16"}, {"name": "CHARGEPOINT PMC PRINCIPAL MFG1S", "network": "ChargePoint Network", "ports": 1, "connectors": "J1772COMBO TESLA", "miles": 8.8, "open_date": "2023-09-15"}, {"name": "CHARGEPOINT PMC PRINCIPAL MFG2N", "network": "ChargePoint Network", "ports": 1, "connectors": "J1772COMBO TESLA", "miles": 8.8, "open_date": "2023-09-15"}, {"name": "Buddy Bear - 1901 W Cermak Rd", "network": "NOODOE", "ports": 6, "connectors": "J1772COMBO", "miles": 8.8, "open_date": "2025-08-22"}, {"name": "Advantage Chevrolet of Bridgeview", "network": "EV Connect", "ports": 3, "connectors": "J1772 J1772COMBO", "miles": 8.8, "open_date": "2026-01-07"}, {"name": "GFCS LLC Melrose Park", "network": "IN_CHARGE", "ports": 18, "connectors": "J1772COMBO", "miles": 9.0, "open_date": "2026-01-28"}, {"name": "Dubak Electrical Group LLC", "network": "EV Connect", "ports": 1, "connectors": "J1772COMBO", "miles": 9.3, "open_date": "2026-02-05"}, {"name": "REYA CPE250-1", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 9.4, "open_date": "2025-09-05"}, {"name": "REYA CPE250-2", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 9.4, "open_date": "2025-09-05"}, {"name": "Napleton Cadillac", "network": "EV Connect", "ports": 2, "connectors": "J1772COMBO", "miles": 9.4, "open_date": "2025-10-04"}, {"name": "Buddy Bear - 1538 E 95th St", "network": "NOODOE", "ports": 4, "connectors": "J1772COMBO", "miles": 9.4, "open_date": "2025-12-31"}, {"name": "Thorntons 25th Avenue, Bellwood, IL", "network": "BP_PULSE", "ports": 4, "connectors": "J1772COMBO", "miles": 9.5, "open_date": "2025-08-26"}, {"name": "County Fair Foods", "network": "NOODOE", "ports": 6, "connectors": "J1772COMBO", "miles": 9.7, "open_date": "2025-10-29"}, {"name": "Target T0843 (Hodgkins, IL)", "network": "Electrify America", "ports": 3, "connectors": "J1772 J1772COMBO", "miles": 9.8, "open_date": "2019-05-28"}, {"name": "Culvers Bridgeview IL", "network": "RED_E", "ports": 6, "connectors": "J1772COMBO", "miles": 9.8, "open_date": "2026-05-12"}, {"name": "Chicago Ridge Mall", "network": "eVgo Network", "ports": 4, "connectors": "CHADEMO J1772COMBO", "miles": 9.9, "open_date": "2022-02-11"}, {"name": "Al Piemonte Nissan", "network": "Non-Networked", "ports": 1, "connectors": "CHADEMO J1772 J1772COMBO", "miles": 10.0, "open_date": "2012-01-31"}], "l2_sites": 325, "l2_ports": 901, "nearest_dcfc": {"name": "Target T2078 (Chicago, IL)", "network": "Electrify America", "ports": 4, "connectors": "J1772COMBO", "miles": 0.6, "city": "Chicago", "state": "IL"}}, "counts": {"confirmed": 3, "disputed": 0, "unconfirmed": 0, "skipped_no_file": 3, "claims": 6, "records_touched": 6, "records_read_from_a_federal_file_not_rechecked": 44}, "findings": [{"record": "generators_note", "field": "value", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "Northwestern Memorial Hospital (943 beds);", "verdict": "skipped", "federal": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)", "tolerance": ""}, {"record": "hospital_beds", "field": "why", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "Staffed/acute-care beds at Northwestern Memorial Hospital, the largest hospital in the city, from the hospital's own 2025 Community Health Needs Assessment.", "verdict": "skipped", "federal": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)", "tolerance": ""}, {"record": "visitor_air_arrival_share", "field": "math", "subject": "airports", "claim": "48,935,786 passengers or enplanements", "claim_text": "48,935,786 boardings across the 2 commercial airports within 35 miles (MDW 10,360,093 at 5 mi, ORD 38,575,693 at 15 mi) in calendar 2024 (FAA, a federal file) divided by 56,800,000 visitors a year = 0.862.", "verdict": "confirmed", "federal": "the note gives 48,935,786; FAA CY2024 enplanements for MDW+ORD add to 48,935,786 -- within 5%", "tolerance": "within 5%"}, {"record": "rides_per_day", "field": "math", "subject": "population", "claim": "2,731,585 people", "claim_text": "Residents: 2,731,585 people x 0.8061 adults = 2,201,931 adults;", "verdict": "confirmed", "federal": "the note says 2,731,585; the Census file says Chicago city 2,731,585 (Census vintage 2025) -- within 5%", "tolerance": "within 5%"}, {"record": "notes.power", "field": "text", "subject": "chargers", "claim": "Electrify America fast charging here", "claim_text": "DCFC 0.56 is one Electrify America Chicago site;", "verdict": "confirmed", "federal": "the snapshot lists Target T2078 (Chicago, IL) (Electrify America, 4 fast ports, 0.6 mi)", "tolerance": "within 10 straight-line miles of the Census town center; a stall count within 25% or one stall"}, {"record": "notes.geography", "field": "text", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "Hospital 943 is NMH's own FY2024 CHNA bed count (adopted July 2025).", "verdict": "skipped", "federal": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)", "tolerance": ""}]}, "citation_recheck": {"on": "2026-09-24", "how": "Every citation this pack's build-time check reported as failed was fetched again by hand on 2026-09-24: one request at a time, with the header set a real browser sends, a pause between hosts, a retry with a back-off on 403, 429 and 5xx, and redirects followed and recorded.", "counts": {"rechecked": 6, "gone": 0, "moved": 2, "blocked": 0, "flaky": 0, "answers_normally": 4, "passes_the_same_test_now": 2, "still_fails_the_same_test": 4, "could_not_be_read_today": 0}, "what_this_means": "A citation counted as failed at build time is not the same thing as a dead link. None of this pack's failed citations is a dead page. Where the URL answers and the same test now passes, the original failure was our own fetch being refused, not the source.", "citations": [{"record": "airport_flights_note", "url": "https://www.directflights.com/MDW", "url_today": "answers normally", "detail_today": "HTTP 200 on the first attempt", "build_time_verdict": "never fetched: the cited page could not be fetched (HTTP 403)", "same_test_now": "passes", "same_test_detail": "the page carries 9 of the 14 distinctive words in this note"}, {"record": "geography_type", "url": "https://www.chicago.gov/city/en/about.html", "url_today": "answers normally", "detail_today": "HTTP 200 on the first attempt", "build_time_verdict": "the cited page loads but does not carry the figure (the page carries only 1 of the 2 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 1 of the 2 distinctive words in this note"}, {"record": "insurance_min_liability", "url": "https://www.ilga.gov/legislation/ilcs/fulltext.asp?DocName=062500570K10", "url_today": "moved -- it redirects to a live page", "detail_today": "redirects 302 -> https://www.ilga.gov/Documents/legislation/ilcs/documents/062500570K10.htm", "build_time_verdict": "never fetched: the cited page could not be fetched (SSLError: HTTPSConnectionPool(host='www.ilga.gov', port=443): Max retries exceeded with url: /legislation/ilcs/fulltext.asp?DocName=062500570K10 (Caused by SSLError(SSLCe)", "same_test_now": "passes", "same_test_detail": "the page carries 4 of the 8 distinctive words in this note", "moved_to": "https://www.ilga.gov/Documents/legislation/ilcs/documents/062500570K10.htm"}, {"record": "power_tou_note", "url": "https://www.icc.illinois.gov/downloads/public/filing/4/399143.pdf", "url_today": "answers normally", "detail_today": "HTTP 200 on the first attempt", "build_time_verdict": "the cited page loads but does not carry the figure (the page carries only 7 of the 14 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 7 of the 14 distinctive words in this note"}, {"record": "registration_note", "url": "https://www.chicago.gov/city/en/depts/bacp/supp_info/medallion_owner_information.html", "url_today": "moved -- it redirects to a live page", "detail_today": "redirects 302 -> https://www.chicago.gov/city/en/depts/bacp/provdrs/vehic/svcs/taxicablicenseinformation.html", "build_time_verdict": "the cited page loads but does not carry the figure (the page carries only 7 of the 14 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 7 of the 14 distinctive words in this note", "moved_to": "https://www.chicago.gov/city/en/depts/bacp/provdrs/vehic/svcs/taxicablicenseinformation.html"}, {"record": "visitor_nights_avg", "url": "https://www.enjoyillinois.com/assets/Files-PDFs/Illinois-Chicago-2022-Visitor-Profile.pdf", "url_today": "answers normally", "detail_today": "HTTP 200 on the first attempt", "build_time_verdict": "the cited page loads but does not carry the figure (the digits 2.2 appear but nowhere near length of stay / Chicago Leisure -- not a citation for this figure)", "same_test_now": "still fails", "same_test_detail": "the digits 2.2 appear, but the record gave no words naming what they measure, so there is no way to tell this figure from any other number on the page"}]}}, "ok": true}