{"id": "portland-me", "label": "Portland, ME", "city": "Portland", "state": "ME", "county": "Cumberland County", "geography": "multi-district metro", "population": 69911, "researched_on": "2026-09-14", "pipeline_version": "2.1.0", "model": "grok-4.3", "counts": {"total": 80, "sourced": 25, "derived": 35, "estimated": 20}, "gaps": 1, "citations": {"checked": 13, "passed": 8, "failed": 5}, "research_cost_usd": 0.0, "summary": "This is a planning tool, not a prediction. Of the 80 numbers behind a season in Portland, 25 are published figures, 35 are worked out from published figures, and 20 are our own estimates. 43 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": "portland-me", "city": "Portland", "state": "ME", "label": "Portland, ME", "county": "Cumberland County", "geography_type": "multi-district metro", "researched_on": "2026-09-14", "pipeline_version": "2.1.0", "model": "grok-4.3", "records": [{"id": "population", "label": "People living here", "value": 69911, "unit": "people", "basis": "sourced", "why": "US Census Bureau vintage 2025 population estimate for Portland city, Maine.", "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 2360545 -- Portland city, Maine"}, "range": [34955, 139822], "editable": true, "theme": "people", "bulk": true}, {"id": "land_area_sqmi", "label": "How big the city is", "value": 21.54, "unit": "sq mi", "basis": "sourced", "why": "Census Bureau Gazetteer land area for Portland 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_23.txt", "tier": "primary", "verified_on": "2026-09-08", "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 2360545 -- Portland city"}, "range": [10.8, 43.1], "editable": true, "theme": "people", "bulk": true}, {"id": "density", "label": "People per square mile", "value": 3246, "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": "69,911 residents divided by 21.54 square miles of land = 3,246 people per square mile.", "source": null, "range": [1298, 8115], "editable": true, "theme": "people", "bulk": true}, {"id": "metro_population", "label": "People in the surrounding county", "value": 317222, "unit": "people", "basis": "sourced", "why": "US Census Bureau vintage 2025 estimate for Cumberland County, Maine. 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 23005 -- Cumberland County, Maine"}, "range": [158611, 634444], "editable": true, "theme": "people", "bulk": true}, {"id": "airport_name", "label": "Airport name", "value": "Portland International Jetport", "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 PWM -- Portland International Jetport, Portland ME"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_code", "label": "Airport code", "value": "PWM", "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 PWM -- Portland International Jetport, Portland ME"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_passengers_year", "label": "Passengers boarding a year", "value": 1221913, "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 PWM -- Portland International Jetport, Portland ME"}, "range": [610956, 2443826], "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_traffic_change_pct", "label": "Change in airport traffic, 2023 to 2024", "value": 9.6, "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 1,221,913 against CY2023 1,114,714, both from the same file (https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx): (1,221,913 - 1,114,714) / 1,114,714 = 9.6%.", "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": 6.2, "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 (43.633157, -70.185305, from the Census Gazetteer place file) and the FAA's airport coordinate (43.645652, -70.308617, from https://services6.arcgis.com/ssFJjBXIUyZDrSYZ/arcgis/rest/services/US_Airport/FeatureServer/0) = 6.2 miles. Straight line, not road miles.", "source": null, "range": [3.1, 15.6], "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_alternatives_note", "label": "Busier airports within reach", "value": "General Edward Lawrence Logan International (BOS) 97 mi away, 21,090,721 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 PWM -- Portland International Jetport, Portland ME"}, "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.2959, "unit": "$/kWh", "basis": "sourced", "why": "The EIA's own average price to residential customers across Maine 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": "Maine, June 2026"}, "range": [0.148, 0.592], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_state_avg_commercial", "label": "Average business electricity price in this state", "value": 0.2224, "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": "Maine, June 2026"}, "range": [0.111, 0.445], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_state_avg_ytd", "label": "Average electricity price this year so far", "value": 0.2967, "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": "Maine, June 2026 YTD"}, "range": [0.148, 0.593], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_utility", "label": "Electric utility", "value": "Central Maine Power Co", "unit": "", "basis": "sourced", "why": "The electric utility whose EIA-861 service territory includes Cumberland County, ME -- the same county this city sits in. Matched on the county, not on the utility's trading name.", "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 Central Maine Power Co (#3266), Cumberland County County rows, ME"}, "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.2343, "unit": "$/kWh", "basis": "derived", "why": "Revenue divided by sales for Central Maine Power 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 Central Maine Power Co: residential revenue of $813,652.0 thousand against 3,471,992 MWh sold. (813,652.0 x 1,000 dollars) / (3,471,992 x 1,000 kWh) = $0.2343 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.117, 0.469], "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.2108, "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 Central Maine Power Co: commercial revenue of $210,292.0 thousand against 997,548 MWh sold, so $0.2108 a kWh.", "source": null, "range": [0.105, 0.422], "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.101, "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 Central Maine Power Co: 58,660 residential customers on delivery-only service against 519,295 on bundled service; 58,660 / (58,660 + 519,295) = 10.1%.", "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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.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. 0 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 USW00014764", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014764.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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.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": 47.5, "unit": "F", "basis": "derived", "why": "The mean of the twelve monthly normals, 1991-2020.", "math": "NOAA 1991-2020 monthly normals for station USW00014764: the twelve MLY-TAVG-NORMAL values averaged = 47.5F.", "source": null, "range": [32.5, 62.5], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "temp_coldest_month_avg_f", "label": "Average temperature in the coldest month", "value": 24.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 USW00014764", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014764.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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.9 mi from the city centre"}, "range": [9.0, 39.0], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "temp_hottest_month_avg_f", "label": "Average temperature in the hottest month", "value": 70.4, "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 USW00014764", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014764.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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.9 mi from the city centre"}, "range": [55.4, 85.4], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "precip_year_in", "label": "Rain and melted snow in a year", "value": 48.12, "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 USW00014764: the twelve MLY-PRCP-NORMAL values summed = 48.12 inches a year.", "source": null, "range": [24.1, 86.6], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "wet_days_year", "label": "Days a year with measurable rain", "value": 131.4, "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 USW00014764: the twelve MLY-PRCP-AVGNDS-GE001HI values summed = 131.4 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": 68.7, "unit": "in/year", "basis": "derived", "why": "From station USW00014764, 5.9 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 PORTLAND INTL JETPORT, ME US (USW00014764), 5.9 miles from the city centre: the twelve MLY-SNOW-NORMAL values summed = 68.7 inches a year.", "source": null, "range": [0, 137], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "snow_days_year", "label": "Days a year with measurable snow", "value": 28.6, "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 USW00014764", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014764.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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.9 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.8464, "unit": "share", "basis": "derived", "why": "Residents 18 and over in Portland, ME, 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 1600000US2360545: total population 68,854, of whom 10,576 are under 18 (the eight under-18 age bands for males and females). (68,854 - 10,576) / 68,854 = 0.8464.", "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": 79540, "unit": "$/year", "basis": "sourced", "why": "The median household income in Portland, ME. 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 1600000US2360545, B19013_E001"}, "range": [39770, 159080], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "no_vehicle_share", "label": "Share of households with no car", "value": 0.154, "unit": "share", "basis": "derived", "why": "Households in Portland, ME 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 1600000US2360545: 32,965 occupied households, of which 611 owner-occupied (B25044_E003) and 4,466 renter-occupied (B25044_E010) have no vehicle available. (611 + 4,466) / 32,965 = 0.1540, or 15.4%.", "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.5388, "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 1600000US2360545: 21,463 of 39,834 workers 16 and over (B08301_E003 / B08301_E001) = 0.5388, or 53.88%.", "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.0262, "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 1600000US2360545: 1,044 of 39,834 workers 16 and over (B08301_E010 / B08301_E001) = 0.0262, or 2.62%.", "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.0034, "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 1600000US2360545: 134 of 39,834 workers 16 and over (B08301_E016 / B08301_E001) = 0.0034, or 0.34%.", "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.2478, "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 1600000US2360545: 9,869 of 39,834 workers 16 and over (B08301_E021 / B08301_E001) = 0.2478, or 24.78%.", "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": 19.4, "unit": "minutes", "basis": "derived", "why": "The mean one-way journey to work in Portland, ME. 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 1600000US2360545: 580,865 aggregate minutes of travel to work divided by 29,965 workers who did not work from home = 19.4 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": 17.74, "unit": "$/hour", "basis": "sourced", "why": "The median hourly wage for Cleaners of Vehicles and Equipment (occupation 53-7061) in Portland-South Portland, ME, 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 'Portland-South Portland, ME', 450 people employed in it: median hourly wage $17.74. The national median for the same occupation is $16.96, so this town's labour index is 17.74 / 16.96 = 1.046.", "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 38860 -- Portland-South Portland, ME"}, "range": [10.64, 31.93], "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": 17.74, "unit": "$/hour", "note": "occupation 53-7061, Portland-South Portland, ME"}], "theme": "costs"}, {"id": "labour_note", "label": "What hand work costs here", "value": "Cleaners of Vehicles and Equipment in Portland-South Portland, ME are paid a median of $17.74 an hour (BLS May 2024, occupation 53-7061, 450 employed). The national median for the same job is $16.96, so hand work here costs 105% 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.046, "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 'Portland-South Portland, ME' is $17.74 an hour against $16.96 nationally, so 17.74 / 16.96 = 1.046. 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.116, "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,577 a month in Portland, ME (place level) against $1,413 for the United States from the same table (GEO_ID 0100000US), so 1577 / 1413 = 1.116.", "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": 37, "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.046 = $37.\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": [15, 92], "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": 76, "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.046 = $76.\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": [30, 190], "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": 158, "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.046 = $158.\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": [63, 396], "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": 1423, "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.116 = $1,423 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": [569, 4269], "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": 229, "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 $856.28 in ME against $1,281.60 countrywide, so the state index is 856.28 / 1281.60 = 0.668. 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.668 = $229 a month. This is the number in the pack most worth replacing with a real quote. Read on 2026-09-09.", "source": null, "range": [92, 687], "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": 856.28, "unit": "$/year", "note": "ME 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": 195, "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": "$229 (the first car, above) x 0.85 = $195. 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": [78, 585], "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.1887, "unit": "$/kWh", "basis": "derived", "why": "All-in Rate A-TOU off-peak for midnight–06:00: CMP delivery $0.061470/kWh (transmission and Efficiency Maine Trust already in the tariff) plus the 2026 Standard Offer supply of $0.127210/kWh, which is flat all hours.", "math": "A-TOU off-peak delivery $0.061470 + MPUC Standard Offer $0.127210 = $0.188680/kWh, rounded to $0.1887. CMP has only two TOU periods; midnight–06:00 is fully off-peak (weekdays 5–9 p.m. are the only on-peak hours; weekends are all off-peak). Excludes the $24.18/month A-TOU service charge and sales tax, so a low-kWh month’s effective rate is a little higher. A commercial site on Rate SGS-TOU would pay $0.077139 + $0.127210 = $0.2043 instead. Likely slightly conservative on the volumetric line (ignores the monthly customer charge).", "source": null, "range": [0.08, 0.3], "editable": true, "depends_on": null, "game_id": "power_offpeak"}, {"id": "power_mid", "theme": "power", "label": "Daytime electricity", "value": 0.1887, "unit": "$/kWh", "basis": "derived", "why": "CMP’s TOU tariffs have no mid-peak band: 06:00–16:00 is billed at the same off-peak all-in rate as overnight, not a third price.", "math": "Same arithmetic as power_offpeak: A-TOU off-peak delivery $0.061470 + Standard Offer $0.127210 = $0.1887/kWh. On Rate A-TOU and Rate SGS-TOU, weekday on-peak is only 5:00 p.m.–9:00 p.m.; 6 a.m.–4 p.m. is “All Other Hours” = off-peak. This is a fact about the filed tariff, not a shape we imposed. SGS-TOU equivalent is $0.2043.", "source": null, "range": [0.08, 0.3], "editable": true, "depends_on": ["power_offpeak"], "game_id": "power_mid"}, {"id": "power_onpeak", "theme": "power", "label": "Evening peak electricity", "value": 0.556, "unit": "$/kWh", "basis": "derived", "why": "All-in Rate A-TOU on-peak: CMP delivery $0.428836/kWh (transmission and Efficiency Maine Trust included) plus flat Standard Offer $0.127210/kWh; the filed on-peak window is 5:00–9:00 p.m. weekdays, not 16:00–midnight.", "math": "A-TOU on-peak delivery $0.428836 + Standard Offer $0.127210 = $0.556046/kWh, rounded to $0.556. Using this for the whole 16:00–midnight block overstates cost: 4–5 p.m. and 9 p.m.–midnight are off-peak, and all Saturday/Sunday/holiday hours are off-peak. A small commercial account on SGS-TOU pays $0.220792 + $0.127210 = $0.3480 on-peak instead. Likely high if applied to all evening kWh.", "source": null, "range": [0.2, 0.8], "editable": true, "depends_on": null, "game_id": "power_onpeak"}, {"id": "power_dcfc", "theme": "power", "label": "Public DC fast charging", "value": 0.61, "unit": "$/kWh", "basis": "sourced", "why": "Walk-up (non-member) price at the Tesla Supercharger at 1100 Brighton Ave, Portland, ME; Tesla members pay $0.43/kWh at the same stalls. Figure is from DCFC Tracker compiling Tesla’s public station data — Tesla’s own locator page did not expose a numeric rate in HTML. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "DCFC Tracker (Tesla Supercharger, Portland ME – Brighton Avenue)", "date": "2026-09", "url": "https://dcfctracker.com/stations/418076", "tier": "secondary", "verified_on": "2026-09-14", "verified_by": "the exact quoted text is on the page"}, "range": [0.35, 0.85], "editable": true, "depends_on": null, "game_id": "supercharger_kwh", "federal_check": {"verdict": "confirmed", "subject": "chargers", "claim": "Tesla Supercharger fast charging here", "federal": "the snapshot lists Portland, ME - Tesla Supercharger (Tesla, 12 fast ports, 4.7 mi)", "checked_on": "2026-09-18", "findings": 2}}, {"id": "power_tou_note", "theme": "power", "label": "Time-of-use tariff available", "value": "Yes: Rate A-TOU (optional residential) and Rate SGS-TOU (small general service, on-peak demand ≤20 kW); off-peak is all hours except 5–9 p.m. weekdays. Standard Offer supply is flat, not TOU.", "unit": "", "basis": "estimated", "why": "CMP files both a residential and a small-commercial TOU delivery tariff a small overnight charger can take; supply is a separate flat Standard Offer, so the overnight window is real on the delivery half of the bill only. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.cmpco.com/documents/d/cmp/atou: the cited page could not be fetched (ReadTimeout: HTTPSConnectionPool(host='www.cmpco.com', port=443): Read timed out. (read timeout=45) -- and gave up after 120s of trying). 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 supply", "value": "Uber and Lyft run 24/7 citywide and at PWM; taxis are a thin owner-operator remnant after rideshare took the market", "unit": "", "basis": "estimated", "why": "Operator city pages confirm Uber and Lyft both serve Portland, ME (not Oregon), and September 2025 local news shows the city raising taxi fares specifically because drivers are squeezed by Uber and Lyft — so supply exists but the taxi half is residual, not a second full network. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://wgme.com/news/local/portland-city-council-approves-raising-taxi-fares-in-city-uber-lyft-maine: the cited page loads but does not carry the figure (the page carries only 4 of the 11 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": [0, 1], "editable": true, "depends_on": null}, {"id": "transit_note", "theme": "demand", "label": "Public bus evenings and weekends", "value": "Greater Portland METRO runs a regional bus network (evenings ~10–11pm weekdays and Saturdays; Sundays earlier, ~7pm on the USM Husky Line). No all-night bus after bar close.", "unit": "", "basis": "sourced", "why": "The operator’s own event-planning page states when most buses stop, and the Husky Line schedule (serving USM Portland/Gorham) publishes the Sunday cutoff — so late-night trips after ~11pm have no bus alternative and shift toward cars and paid rides. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Greater Portland METRO", "date": "2025-07", "url": "https://www.gpmetro.org/event-transportation/", "tier": "secondary", "verified_on": "2026-09-14", "verified_by": "the page carries 11 of the 14 distinctive words in this note"}, "range": [0, 1], "editable": true, "depends_on": null}, {"id": "trip_mi_avg", "theme": "demand", "label": "Average paid trip length", "value": 3.6, "unit": "miles", "basis": "estimated", "why": "Nobody publishes a Portland, ME TNC mean distance; this is reasoned from the city’s own 21.54 sq mi land area, PWM sitting two miles from downtown, and Uber’s own 12-minute typical-ride illustration — not from a Massachusetts or national TNC mean used as if it were local.", "math": "Land area 21.54 sq mi is a disk of radius sqrt(21.54/π)≈2.62 mi (diameter ≈5.2 mi). PWM is 2 miles west of downtown, so the biggest paid generator is a short hop, not a 10-mile airport run. Mix used: 40% peninsula/Old Port hops at 1.8 mi, 25% PWM at 2.0 mi, 20% inner suburbs (South Portland/Westbrook) at 4.5 mi, 10% mall/edge at 7 mi, 5% Freeport/OOB/Brunswick at 16 mi → 0.40×1.8 + 0.25×2.0 + 0.20×4.5 + 0.10×7 + 0.05×16 = 3.62, rounded to 3.6. Cross-check: Uber’s 12-minute Portland, ME sample at ~18–22 mph urban is about 3.6–4.4 mi. Stepped DOWN from the Massachusetts statewide TNC mean of 6.14 miles (2024) because this city is compact and the airport is inside it. The 19.4-minute mean commute is a longer worker trip than a typical hail, so using commute miles would overstate paid-trip length. Likely conservative on visitor Freeport/beach runs in summer.", "source": null, "range": [1.5, 8], "editable": true, "depends_on": null}, {"id": "trip_mi_short_share", "theme": "demand", "label": "Share of trips under 3 miles", "value": 0.55, "unit": "share", "basis": "estimated", "why": "A 21.54 sq mi peninsula city with the airport only two miles from downtown puts most paid trips under 3 miles; using a big-metro short-trip share would understate how local this geography is.", "math": "From the trip_mi_avg mix: peninsula hops (40%) and PWM (25%) are both under 3 miles; South Portland is ~3 miles (on the cut, not under). That is 0.65 of the mix before any 3–10 mi inner-suburb trips. Haircut to 0.55 because some airport parties continue past downtown and some Old Port trips go to Westbrook/Falmouth hotels. The 0.154 no-vehicle household share and 19.4-minute commute both point to a lot of short, in-town movement rather than 10-mile hauls. Right-skewed trip lengths around a 3.6 mi mean also put the median under 3. Uncertainty: summer visitors to Freeport/OOB pull this down; winter residents pull it up.", "source": null, "range": [0.25, 0.8], "editable": true, "depends_on": ["trip_mi_avg"]}, {"id": "trip_mi_long_share", "theme": "demand", "label": "Share of trips over 10 miles", "value": 0.08, "unit": "share", "basis": "estimated", "why": "PWM, South Portland and Westbrook are all well under 10 miles; the long tail is visitor runs to Freeport, Old Orchard Beach and Brunswick, not the resident commute (19.4 minutes).", "math": "In the trip_mi_avg mix only the 5% Freeport/OOB/Brunswick bucket is over 10 miles; add a thin extra 3 points for Logan-bound parties, Lewiston, and scattered coastal towns → 0.08. The 19.4-minute mean commute is not a 10-mile trip in this dense city, so resident long-haul share is small. 2.65 million Greater Portland visitors do generate some 12–18 mi LL Bean/beach rides; 0.08 is the annual blend, higher in summer. Likely conservative if the pipeline treats all regional visitors as originating inside city limits.", "source": null, "range": [0.02, 0.25], "editable": true, "depends_on": ["trip_mi_avg"]}, {"id": "night_share", "theme": "demand", "label": "Share of demand between 21:00 and 03:00", "value": 0.17, "unit": "share", "basis": "estimated", "why": "METRO stops around 10–11pm (earlier Sunday), the Old Port is a bar district, Maine Medical Center runs 24/7 night shifts, and 15.4% of households have no car — so late demand exists, but it is not a 24-hour megacity share.", "math": "21:00–03:00 is 6/24=0.25 of the clock. Uniform would overstate because airport, errands and the 19.4-minute commute sit in daylight. Start at ~0.12 (a car-owning suburb) then add: (a) bus cutoff after 10–11pm pushes bar-close onto paid rides; (b) MaineHealth MMC is a 929-bed Level I trauma center with ~9,000 staff and posted 12-hour nights (6:00pm–6:30am), so shift changes overlap this window; (c) USM campuses on the Husky Line, which itself ends 7:10pm Sunday and ~11pm Saturday; (d) 0.154 no-vehicle households cannot self-drive home from the Old Port; (e) 0.2478 work-from-home frees evening leisure. Net 0.17. Summer tourist nights pull up; winter and the 0.2478 WFH share (fewer 2 a.m. office shifts) pull down. Likely conservative in July–August, high in February.", "source": null, "range": [0.06, 0.32], "editable": true, "depends_on": ["transit_note"], "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": "visitors_year", "theme": "demand", "label": "Annual visitors", "value": 2653500, "unit": "visitors/year", "basis": "sourced", "why": "Calendar year 2025 (Maine Office of Tourism / Downs & St. Germain CY2025 regional report, fieldwork December 2024–November 2025). This is Greater Portland & Casco Bay, not the 21.54 sq mi city alone — using it as a city-only count would overstate in-city demand. Do not swap in 2023’s 2,917,900 or 2024’s 2,807,900 from the same series. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Maine Office of Tourism (Downs & St. Germain)", "date": "2026-06", "url": "https://live-motpartners-com.pantheonsite.io/wp-content/uploads/2026/06/Maine-Office-of-Tourism-CY2025-Visitor-Tracking-Report-Greater-Portland-Casco-Bay.pdf", "tier": "secondary", "verified_on": "2026-09-14", "verified_by": "the exact quoted text is on the page"}, "range": [1000000, 4500000], "editable": true, "depends_on": null}, {"id": "visitor_party_size", "theme": "demand", "label": "Average visiting party size", "value": 2.7, "unit": "people", "basis": "sourced", "why": "The same 2025 Greater Portland & Casco Bay visitor-tracking report publishes party size; a party shares one car so headcount is not ride count. 18% of those parties include a child, which is why 1.0 (solo) would be the wrong default here. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Maine Office of Tourism (Downs & St. Germain)", "date": "2026-06", "url": "https://live-motpartners-com.pantheonsite.io/wp-content/uploads/2026/06/Maine-Office-of-Tourism-CY2025-Visitor-Tracking-Report-Greater-Portland-Casco-Bay.pdf", "tier": "secondary", "verified_on": "2026-09-14", "verified_by": "the exact quoted text is on the page"}, "range": [1.2, 4.5], "editable": true, "depends_on": null}, {"id": "visitor_nights_avg", "theme": "demand", "label": "Average nights per visiting party", "value": 4.7, "unit": "nights", "basis": "sourced", "why": "CY2025 Greater Portland & Casco Bay report: typical visitors stayed 4.7 nights in Maine (the report’s own footnote includes paid lodging, friends/family, and day-trippers). This is nights in Maine for people whose region is Greater Portland, not nights packed exclusively inside Portland city limits. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Maine Office of Tourism (Downs & St. Germain)", "date": "2026-06", "url": "https://live-motpartners-com.pantheonsite.io/wp-content/uploads/2026/06/Maine-Office-of-Tourism-CY2025-Visitor-Tracking-Report-Greater-Portland-Casco-Bay.pdf", "tier": "secondary", "verified_on": "2026-09-14", "verified_by": "found 4.7 a line or two from 'stayed'"}, "range": [1, 10], "editable": true, "depends_on": null}, {"id": "rides_reported", "theme": "demand", "label": "Published paid-ride count", "value": 0, "unit": "trips/year", "basis": "estimated", "why": "No public all-rides or even taxi-only trip census for Portland, ME turned up. Maine law keeps TNC trip files private and bars the city from collecting them, so a silent zero would be worse than documenting the miss. This is an absence, not a measurement of zero demand.", "math": "Checked in the required order: (1) State — Maine SOS “Running a Taxi or Limousine Service” (https://www.maine.gov/sos/taxi-limousine) covers insurance and hire plates only, no trip totals; 29-A M.R.S. §1674 requires TNCs to keep ride records one year but not to publish them; 29-A M.R.S. §1677 bars municipalities from licensing TNCs or requiring trip reports except a PWM pickup fee. (2) City/county — Portland licenses taxis (Chapter 30 fare ordinance; WGME 2025-09-16 on the fare hike) but publishes no taxi or TNC trip counts. (3) Airport — portlandjetport.org/ground-transportation lists taxis, METRO Route 7 and rental cars; no TNC pickup table. Wikipedia/PWM passenger totals (2.44 million in 2024; 2,593,067 in 2025) are air passengers, not ground trips. (4) MPO — GPCOG/PACTS documents searched (LEP plan and related) have no household-survey TNC trip census for this city. (5) Local reporting — WGME 2025-09-16 and Press Herald taxi-industry stories quote fleet shrinkage and fares, not Uber/Lyft/taxi trip totals. Therefore value=0 as “nothing published,” not as “no rides.”", "source": null, "range": [0, 15000000], "editable": true, "depends_on": null}, {"id": "geography_type", "theme": "geography", "label": "City geography", "value": "multi-district metro", "unit": "", "basis": "estimated", "why": "Portland is Maine's metro core: a 3-mile peninsula of distinct districts (Old Port, West End/hospital, East End), a mainland of Deering/USM neighborhoods, a jetport corridor 6.2 miles west of centre, and ferry-only Casco Bay islands inside city limits — a fleet has to choose among those, not run one car across a single blob.", "math": "Land area is only 21.54 sq mi (equivalent circle ~2.6 mi), so a critic could call this a single-radius town. Classification as multi-district is about demand shape, not acreage: peninsula tourism/nightlife vs Maine Med shift change vs PWM vs Peaks Island ferry are different stations. Greater Portland's mall/retail is actually in South Portland, next door.", "source": null, "range": [0, 1], "editable": true, "depends_on": null}, {"id": "city_radius_mi", "theme": "geography", "label": "City radius", "value": 2.6, "unit": "mi", "basis": "derived", "why": "No published centre-to-edge figure; equivalent circular radius from the settled land area is the standard planning proxy, with the caveat that the city is elongated.", "math": "r = sqrt(land_area / pi) = sqrt(21.54 / 3.1416) = sqrt(6.856) = 2.62 mi, rounded to 2.6. Visit Portland independently calls the peninsula 'three mile long'. The western built-up edge is farther: PWM is 6.2 straight-line miles from the city centre and sits in Stroudwater. Equivalent radius understates west/north extent; 2.6 is the area-implied typical radius, not the max.", "source": null, "range": [2, 8], "editable": true, "depends_on": null}, {"id": "district_count", "theme": "geography", "label": "Demand districts", "value": 6, "unit": "", "basis": "estimated", "why": "Six fleet-relevant demand districts, not the ~18 named neighborhoods: waterfront/Old Port, hospital/West End, East End, Bayside, mainland Deering/USM, and the jetport/west side (islands are a seventh mode, not a seventh road district).", "math": "ZipDatamaps lists Back Cove, Deering Center, Downtown, East Bayside, East Deering, East End, Libbytown, Nasons Corner, North Deering, Oakdale, Parkside, Peaks Island, Riverton, Rosemont, Stroudwater, Valley Street, West Bayside, West End. Collapsing those into demand, not real-estate, districts gives 6. Peaks Island is in the city but ferry-only, so it is named in districts_note rather than counted as a road district. Likely conservative if you split North Deering from USM/Oakdale.", "source": null, "range": [3, 12], "editable": true, "depends_on": null}, {"id": "districts_note", "theme": "geography", "label": "District names", "value": "Old Port/downtown waterfront; West End/Maine Med; East End/Munjoy Hill; Bayside; mainland Deering/USM; jetport/Stroudwater (Peaks Island by ferry)", "unit": "", "basis": "estimated", "why": "Names the six demand districts a dispatcher would actually choose among, using the city's own neighborhood language from Visit Portland and the neighborhood map.", "math": "Peninsula: Old Port + Arts District/downtown (visitors, cruise, nightlife); West End (Maine Med); East End/Munjoy Hill (Eastern Promenade). Inner: Bayside/East Bayside (breweries, Washington Ave). Mainland: Deering Center/Oakdale/USM/Back Cove/North Deering. West: Libbytown/Stroudwater/jetport/Thompson's Point. Peaks Island is a city neighborhood reached by Casco Bay Lines, not by car.", "source": null, "range": [0, 1], "editable": true, "depends_on": ["district_count"]}, {"id": "airport_flights_note", "theme": "geography", "label": "Airport flights", "value": "~51 scheduled daily departures in summer to ~25–30 U.S. cities (NYC, BWI, PHL, DC, Chicago, Atlanta, Charlotte, Detroit; seasonal Florida/West Coast); a spoke, not a hub", "unit": "", "basis": "derived", "why": "PWM's own monthly frequency table for July 2026 sums to ~51 passenger departures a day to East Coast hubs plus seasonal sun/west routes — a busy small-city spoke, not a connecting hub.", "math": "Official July 2026 scheduled-departure counts by destination sum to 1,570 for the month (BWI 124, EWR 119, IAD 118, PHL 118, LGA Delta 120, ATL 92, DCA 94, CLT 94, ORD AA 93 + UA 62, DTW 62, JFK Delta 62 + JetBlue 53, plus smaller Breeze/Southwest/Sun Country/United west and Florida rows). 1570 / 31 days = 50.6, about 51 daily departures. Unique cities in that month ~24; the year-round network the airport lists is about 30 including seasonal FLL/SRQ/LAX/SFO. Winter (Jan) is thinner but still multiple daily NYC/DC/BWI/PHL/ORD. Not a hub: no banked connecting banks, mostly O&D to the big East Coast airports.", "source": null, "range": [0, 1], "editable": true, "depends_on": null}, {"id": "generators_note", "theme": "geography", "label": "Demand generators", "value": "Maine Med (Level I, West End; ~9,610 city employees); Mercy Hospital; Unum (~1,890); TD Bank (~1,020); WEX (~740); USM; UNE health-sciences/medical campus (200/class); Roux Institute (~800 grad students); Old Port and Ocean Gateway cruise terminal; Hadlock Field (Sea Dogs)", "unit": "", "basis": "estimated", "why": "The named generators that actually move cars: the trauma hospital, the insurers/fintech HQs, the colleges, the cruise pier, and the ballpark — compiled from the city's 2025 employer report (via JobsInMaine), UNE, Northeastern, and the port.", "math": "JobsInMaine, citing the City of Portland 2025 nongovernmental employer report: MaineHealth/MMC 9,610 employees in city limits, Unum 1,890, Mercy 1,410, TD Bank 1,020, WEX 740, UNE 550 staff. Roux: 800+ graduate students (Northeastern, Sep 2024). UNE COM now on the Portland campus at 200 per class (June 2025). CruiseMaine: 133 ship calls and 200,801 passenger days in Portland in 2025. Sea Dogs at Hadlock Field, home opener April. Secondary on the employee counts (city report recompiled by JobsInMaine). Maine Mall is in South Portland, not listed.", "source": null, "range": [0, 1], "editable": true, "depends_on": null}, {"id": "hospital_beds", "theme": "geography", "label": "Largest hospital beds", "value": 650, "unit": "beds", "basis": "estimated", "why": "Staffed/licensed beds at MaineHealth Maine Medical Center Portland, the state's Level I trauma flagship on the West End — not the 929-bed three-campus license.", "math": "MaineHealth's 4 Jun 2024 release: MHMMC has 'a total of 929 licensed beds' across Portland, Biddeford and Sanford; Portland is the tertiary Level I campus, Biddeford a community hospital, Sanford community/ED. A ~70% flagship share of 929 is 650. The same release puts Barbara Bush Children's Hospital at 109 licensed beds housed at the Portland campus (included in the Portland total, not extra). Direction: 650 is a Portland-campus licensed/staffed estimate; using 929 would count York County beds. CMS cost-report 'staffed' compilations sometimes print higher (700–900) if they fold in observation/nursery/other categories.", "source": null, "range": [500, 950], "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": 3}}, {"id": "college_enrollment", "theme": "geography", "label": "College enrollment", "value": 9579, "unit": "students", "basis": "derived", "why": "Headcount of colleges actually sitting in the city: USM (IPEDS, Portland-headquartered but multi-campus), MECA, Roux, and UNE's medical school now on the Portland health-sciences campus.", "math": "USM 7,604 enrolled students in 2024 (DataUSA / IPEDS; secondary recompile of federal IPEDS; USM also has Gorham and Lewiston campuses, so this overstates bodies in Portland). MECA 475 in 2024-25 (CollegeTuitionCompare / IPEDS; all in Portland). Roux Institute 'Over 800 graduate students are currently enrolled on the Portland campus' (Northeastern, Sep 2024). UNE COM moved to Portland in 2025 at 200 per class; three older classes at the prior 165 plus one at 200 ≈ 695, rounded to 700. Sum: 7604+475+800+700 = 9579. Not counted: UNE's other Portland health programs (dental/PA/pharmacy/nursing) beyond COM; SMCC is in South Portland. Net: overstates USM (Gorham) and understates UNE Portland.", "source": null, "range": [4000, 16000], "editable": true, "depends_on": null}, {"id": "events_note", "theme": "geography", "label": "Events that move demand", "value": "Pride parade/festival mid-June (Deering Oaks); July 4 fireworks on the Eastern Promenade; Sea Dogs baseball Apr–Sep at Hadlock Field (fireworks July 3–4); cruise peak Sep–Oct (133 calls / 200,801 passenger days in 2025)", "unit": "", "basis": "estimated", "why": "The annual events that actually pack the peninsula: Pride, the city Fourth, the Sea Dogs season, and the foliage cruise window — each taken from the organiser or the state's cruise programme, not a listings blog. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.visitportland.com/event/4th-of-july-fireworks/: the cited page loads but does not carry the figure (the page carries only 4 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": [0, 1], "editable": true, "depends_on": null}, {"id": "insurance_min_liability", "theme": "costs", "label": "Minimum TNC / for-hire liability limits", "value": "$1,000,000 CSL on a prearranged ride; $50k/$100k/$25k while logged in", "unit": "", "basis": "sourced", "why": "Maine's TNC statute, 24-A M.R.S. §7303, is the primary source for rideshare cars: $50,000/$100,000/$25,000 while logged into the app and $1,000,000 combined for death, bodily injury and property damage during a prearranged ride. Ordinary for-hire passenger limits in 29-A M.R.S. §1611 ($125,000 CSL or $50/$100/$25 for 1–3 passengers behind the driver) do not apply to TNC vehicles, which 29-A M.R.S. §1674 says are not for-hire.", "math": null, "source": {"name": "Maine Legislature, 24-A M.R.S. §7303", "date": "2025-10", "url": "https://legislature.maine.gov/statutes/24-a/title24-Asec7303.html", "tier": "primary", "verified_on": "2026-09-14", "verified_by": "the page carries 4 of the 4 distinctive words in this note"}, "range": [25000, 1500000], "editable": true, "depends_on": null}, {"id": "registration_note", "theme": "costs", "label": "For-hire / TNC vehicle registration", "value": "TNC: $10,000/yr SOS company permit; TNC cars are not for-hire (passenger plate $35). For-hire plate $70. Plus municipal excise tax. Cities may not license TNC vehicles except airport pickup fees.", "unit": "", "basis": "estimated", "why": "29-A M.R.S. §1672 is the TNC paperwork: the company, not each car, pays a $10,000 annual Secretary of State permit. 29-A M.R.S. §1674 says a TNC driver is not a for-hire vehicle, so the car takes the ordinary $35 passenger registration in 29-A M.R.S. §501(1), not the doubled $70 hire-plate fee in §501(3) (SOS class TX). 29-A M.R.S. §1677 bars cities from licensing TNC cars except airport pickup fees. A true taxi/livery in Portland also pays a $315/vehicle city business license under City Code ch. 15/30, which does not apply to TNC cars. Annual municipal excise tax (36 M.R.S. §1482) is paid at City Hall before plates and is often larger than the plate fee. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://legislature.maine.gov/statutes/29-a/title29-Asec1672.html: the cited page loads but does not carry the figure (the page carries only 2 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": [35, 10000], "editable": true, "depends_on": null}, {"id": "parking_month", "theme": "costs", "label": "Downtown monthly parking", "value": 170, "unit": "$/month", "basis": "estimated", "why": "The City of Portland Parking Division publishes $170 per month with 24/7 access at the two city-operated downtown garages, Elm Street (21 Elm St.) and Spring Street (45 Spring St.). That is the city's own monthly downtown rate, not a private-garage quote. First month is $180 including a $10 card-activation fee. Private downtown lots nearby run lower or higher; the editor range covers that. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.portlandmaine.gov/working-downtown: the cited page could not be fetched (SSLError: HTTPSConnectionPool(host='www.portlandmaine.gov', port=443): Max retries exceeded with url: /working-downtown (Caused by SSLError(SSLCertVerificationError(1, '[). 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": [80, 300], "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-14", "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-14", "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": 1.549, "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.1540 here against 0.0835 nationally = 1.84x. Workers commuting by taxi or ride-hail (ACS B08301_016, a line the Census counts explicitly): 0.00340 here against 0.00261 nationally = 1.30x. 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 1.55x, 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": [0.77, 3.1], "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.1784, "unit": "share", "basis": "derived", "why": "The share of adults in Portland 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 1.55x: 0.1152 x 1.55 = 0.1784. 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.0714 to 0.4460, 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.0714, 0.446], "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": 2.4, "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: 2.4, 2.3, 2.8, 2.5, 2.3. The MEDIAN, 2.4, is used; the draws spanned 2.3 to 2.8, a factor of 1.22. A 19.4-minute commute and 0.154 no-vehicle share imply active residents use ride-hail for nights out and gaps, not commuting, so a small handful of trips per active month.", "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.4605, "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": "1,221,913 boardings at PWM in calendar 2024 (FAA, a federal file) divided by 2,653,500 visitors a year = 0.460. 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.23, 0.691], "editable": true, "depends_on": ["airport_passengers_year", "visitors_year"], "theme": "demand", "federal_check": {"verdict": "confirmed", "subject": "airports", "claim": "1,221,913 passengers or enplanements", "federal": "the note gives 1,221,913; FAA CY2024 enplanements for PWM = 1,221,913 -- 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.25, "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.22, 0.25, 0.31, 0.3, 0.25. The MEDIAN, 0.25, is used; the draws spanned 0.22 to 0.31, a factor of 1.41. PWM is only 6.2 miles from the centre with no rail link, so non-rental air parties default to taxi or ride-hail, but most visiting parties still rent cars for a Maine stay.", "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.1, "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, 1.2, 0.9, 1.1, 1.1. The MEDIAN, 1.1, is used; the draws spanned 0.9 to 1.2, a factor of 1.33. A 21.54 square-mile compact city is walkable from downtown hotels, so a 4.7-night party typically takes about one local ride-hail trip for an out-of-core attraction, not a nightly habit.", "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.33, "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.461 arriving by air x 0.250 of those hiring a ride = 0.230, plus 1.100 trips in town = 1.330 trips a party. Pushing every judgement piece to its own measured extreme gives a range of 1.00 to 1.63. 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": 4414, "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 = 69911 (a published figure); Share of residents who are adults = 0.8464 (worked out from published figures); Local adults taking a ride-hail trip in a given month = 0.1784 (worked out from published figures); Trips a month, per local who rides at all that month = 2.4 (our estimate); Annual visitors = 2653500 (a published figure); Average visiting party size = 2.7 (a published figure); Hired rides one visiting party takes per visit, all in = 1.33 (our estimate). Residents: 69,911 people x 0.8464 adults = 59,173 adults; x 0.1784 who take a ride-hail trip in a given month = 10,556 people; x 2.4 trips each a month = 25,335 trips a month; divided by 30.4 days = 833 resident rides a day. Visitors: 2,653,500 a year / 2.7 people in a party = 982,778 visiting parties; x 1.33 ride-hail trips a party takes while it is here / 365 days = 3,581 visitor rides a day. A party shares one car, so a count of visitors is not a count of rides. Visitors are 81% of this total, so the answer turns on the visitor figures more than on the residents. Total: 4,414 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 3,015 rides a day, and at its own high bound 6,814. The 4,414 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. NO CROSS-CHECK EXISTS, AND THE SEARCH IS ON THE RECORD. Checked in the required order: (1) State — Maine SOS “Running a Taxi or Limousine Service” (https://www.maine.gov/sos/taxi-limousine) covers insurance and hire plates only, no trip totals; 29-A M.R.S. §1674 requires TNCs to keep ride records one year but not to publish them; 29-A M.R.S. §1677 bars municipalities from licensing TNCs or requiring trip reports except a PWM pickup fee. (2) City/county — Portland licenses taxis (Chapter 30 fare ordinance; WGME 2025-09-16 on the fare hike) but publishes no taxi or TNC trip counts. (3) Airport — portlandjetport.org/ground-transportation lists taxis, METRO Route 7 and rental cars; no TNC pickup table. Wikipedia/PWM passenger totals (2.44 million in 2024; 2,593,067 in 2025) are air passengers, not ground trips. (4) MPO — GPCOG/PACTS documents searched (LEP plan and related) have no household-survey TNC trip census for this city. (5) Local reporting — WGME 2025-09-16 and Press Herald taxi-industry stories quote fleet shrinkage and fares, not Uber/Lyft/taxi trip totals. Therefore value=0 as “nothing published,” not as “no rides.”. Nothing independent confirms this chain. That absence is stated rather than hidden: a pack with no cross-check is weaker than one with a disagreeing cross-check, because the disagreeing one at least tells you which way you might be wrong. 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": [1104, 17658], "editable": true, "low": 3015, "high": 6814, "cross_check": {"has_cross_check": false, "search_was_audited": true, "searched": "Checked in the required order: (1) State — Maine SOS “Running a Taxi or Limousine Service” (https://www.maine.gov/sos/taxi-limousine) covers insurance and hire plates only, no trip totals; 29-A M.R.S. §1674 requires TNCs to keep ride records one year but not to publish them; 29-A M.R.S. §1677 bars municipalities from licensing TNCs or requiring trip reports except a PWM pickup fee. (2) City/county — Portland licenses taxis (Chapter 30 fare ordinance; WGME 2025-09-16 on the fare hike) but publishes no taxi or TNC trip counts. (3) Airport — portlandjetport.org/ground-transportation lists taxis, METRO Route 7 and rental cars; no TNC pickup table. Wikipedia/PWM passenger totals (2.44 million in 2024; 2,593,067 in 2025) are air passengers, not ground trips. (4) MPO — GPCOG/PACTS documents searched (LEP plan and related) have no household-survey TNC trip census for this city. (5) Local reporting — WGME 2025-09-16 and Press Herald taxi-industry stories quote fleet shrinkage and fares, not Uber/Lyft/taxi trip totals. Therefore value=0 as “nothing published,” not as “no rides.”", "verdict": ["none", "five named sources were checked and none of them publishes a trip count for this city"], "our_estimate_per_day": 4414, "our_range_per_day": [1104, 17658]}, "theme": "people", "federal_check": {"verdict": "confirmed", "subject": "population", "claim": "69,911 people", "federal": "the note says 69,911; the Census file says Portland city 69,911 (Census vintage 2025) -- within 5%", "checked_on": "2026-09-18", "findings": 1}}], "notes": {"power": "All-in kWh figures use Rate A-TOU (residential) plus MPUC Standard Offer $0.127210/kWh for 1/1/2026–12/31/2026 (https://www.maine.gov/mpuc/regulated-utilities/electricity/standard-offer-rates/cmp and https://www.cmpco.com/account/understandyourbill/pricing). A commercial site should instead use Rate SGS-TOU (https://www.cmpco.com/documents/d/cmp/sgstou): delivery off-peak $0.077139, on-peak $0.220792, same $0.127210 supply → $0.2043 / $0.3480 all-in. SGS-TOU is limited to ≤20 kW measured on-peak demand; overnight-only charging can stay in that class because on-peak is only 5–9 p.m. weekdays. CMP Rate B-DCFC (EV DCFC delivery) is cancelled as of 2023-07-01. Monthly service charges ($24.18 A-TOU; $41.55/$48.30 SGS-TOU) and Maine sales tax are not in the volumetric rates. Midday equals overnight because the tariff has no third period. Tesla Supercharger $0.61 is the public/non-member rate; members $0.43.", "demand": "CITY is Portland, ME (not OR). visitors_year / party / nights are Greater Portland & Casco Bay CY2025 (MOT/Downs & St. Germain; report window Dec 2024–Nov 2025, labeled 2025). Same series: 2023=2,917,900, 2024=2,807,900, 2025=2,653,500 — pin 2025 so reruns do not jump years. 2.65M visitors is the region, not the 69,911-person / 21.54 sq mi city; a chain that treats every regional visitor as an in-city hail will overstate. Adult share is the settled ACS 0.8464 — not re-estimated. Local demand clues used in the estimates: 0.154 households with no vehicle, 19.4-minute mean commute, 0.0034 taxi/ride-hail commute, 0.0262 transit commute, 0.2478 WFH. Maine forbids city TNC trip reporting except a PWM airport fee, which is why rides_reported is a documented zero rather than a missed Nevada-style PDF. Uber 12-minute figure is a pricing illustration on Uber’s Portland, ME taxi page, not a published mean distance.", "geography": "Hospital beds: do not use MaineHealth's 929 — that is the combined Portland+Biddeford+Sanford license (MaineHealth news, 4 Jun 2024). 650 is a Portland-campus estimate. AHD listed 886 'staffed' for MMC Portland but the page was captcha-blocked so it is not cited. USM 7,604 is IPEDS via DataUSA (secondary); Gorham is a separate town. UNE university-wide 6,573 is Biddeford-coded in IPEDS; only COM (relocated to Portland 2025) is added. PWM July 2026 official table sums to 1,570 departures / 31 ≈ 51/day; winter is lower. Peaks Island is inside the city and ferry-only. Maine Mall and SMCC are in South Portland. Old Port Festival is discontinued (not listed). Supporting URLs: https://portlandjetport.org/destinations-and-air-carriers ; https://www.mainehealth.org/news/2024/06/maine-medical-center-southern-maine-health-care-complete-license-medical-staff-integration ; https://datausa.io/profile/university/university-of-southern-maine/ ; https://www.collegetuitioncompare.com/edu/161509/maine-college-of-art/enrollment/ ; https://news.northeastern.edu/2024/09/12/portland-campus-groundbreaking-ceremony/ ; https://www.une.edu/une-opens-integrated-health-education-facility-portland ; https://www.visitportland.com/blog/2020/01/24/portland-maine-neighborhoods/ ; https://www.visitportland.com/blog/2026/05/08/celebrate-pride-in-portland-maine/ ; https://www.mlb.com/milb/portland/news/portland-sea-dogs-unveil-exciting-2026-promotional-schedule ; https://www.cruisemaine.org/2025-annual-report ; https://jobsinmaine.com/blog/largest-employers-in-portland-maine ; https://www.zipdatamaps.com/neighborhoods/maine/city/map-of-portland-neighborhoods ; https://maine.com/guides/old-port-portland", "costs": "TNC vs for-hire is a real split in Maine, not a drafting nicety: 29-A M.R.S. §1674 says a TNC driver is not a motor carrier, taxicab, limousine or for-hire provider, so do not apply the SOS for-hire table (https://www.maine.gov/sos/bmv/vehicles/commercial-vehicles-motor-carrier-services/for-hire-insurance) or the $70 TX hire plate to Uber/Lyft cars. Passenger $35 and hire $70 are in 29-A M.R.S. §501 (https://legislature.maine.gov/statutes/29-a/title29-Asec501.html) and the SOS fee schedule (https://www.maine.gov/sos/bmv/vehicles/registration-fees, TX Hire $70). Municipalities cannot tax or license TNC vehicles except airport pickup/parking (29-A M.R.S. §1677); I opened portlandjetport.org parking/transportation and FAQs and did not find a published PWM per-trip TNC fee. Excise tax at Portland City Hall (36 M.R.S. §1482: 24 mills of MSRP in year 1, down to 4 mills from year 6) is usually the larger annual registration cost. Portland taxi/livery city license is $315 per vehicle (City Code ch. 15 §15-12 / ch. 30 §30-31) and does not apply to TNC cars. City parking pages sometimes block direct fetchers; the $170 figure is on the city's Working Downtown page (also restated on City-Owned Garages / Garages & Lots as $170 at Elm St. and Spring St.)."}, "gaps": ["rides_per_day: the five named sources were checked and none publishes a trip count for this city, so the estimate stands on its own arithmetic"], "counts": {"total": 80, "sourced": 25, "derived": 35, "estimated": 20}, "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_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": 25, "primary": 18, "secondary": 7, "tier_unknown": 0, "no_citation_derived_or_estimated": 55, "read_from_a_federal_bulk_file": 43, "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": 43, "records_needing_no_citation_check": 17, "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_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": 5, "url": "https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/cities/totals/sub-est2025.csv"}, "gaz_place_16.txt": {"downloads": 0, "bytes": 23876, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_16.txt"}, "co-est2025-alldata.csv": {"downloads": 0, "bytes": 2071735, "wire_bytes": 0, "reuses": 5, "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\\USW00024131.csv": {"downloads": 0, "bytes": 41666, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00024131.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": 5, "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"}, "gaz_place_38.txt": {"downloads": 0, "bytes": 39566, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_38.txt"}, "noaa\\US1NDCS0015.csv": {"downloads": 0, "bytes": 1534, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NDCS0015.csv"}, "noaa\\US1NDCS0001.csv": {"downloads": 0, "bytes": 1594, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NDCS0001.csv"}, "noaa\\USC00322860.csv": {"downloads": 0, "bytes": 23054, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00322860.csv"}, "noaa\\US1NDCS0004.csv": {"downloads": 0, "bytes": 1522, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NDCS0004.csv"}, "noaa\\USC00215586.csv": {"downloads": 0, "bytes": 41546, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00215586.csv"}, "gaz_place_35.txt": {"downloads": 0, "bytes": 53366, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_35.txt"}, "noaa\\US1NMSF0073.csv": {"downloads": 0, "bytes": 1570, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NMSF0073.csv"}, "noaa\\US1NMSF0013.csv": {"downloads": 0, "bytes": 1570, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NMSF0013.csv"}, "noaa\\USC00298085.csv": {"downloads": 0, "bytes": 41570, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00298085.csv"}, "gaz_place_37.txt": {"downloads": 0, "bytes": 79093, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_37.txt"}, "noaa\\US1NCBC0110.csv": {"downloads": 0, "bytes": 1582, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NCBC0110.csv"}, "noaa\\US1NCBC0051.csv": {"downloads": 0, "bytes": 1582, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NCBC0051.csv"}, "noaa\\USW00013872.csv": {"downloads": 0, "bytes": 41558, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00013872.csv"}, "gaz_place_23.txt": {"downloads": 0, "bytes": 16173, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_23.txt"}, "noaa\\USW00014764.csv": {"downloads": 0, "bytes": 41702, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014764.csv"}}, "downloads_this_run": 0, "cache_reuses_this_run": 51, "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": 43, "bulk_needing_no_verification": 17, "citations_checked": 13, "citations_passed": 8, "citations_failed": 5, "primary": 1, "secondary": 7, "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 2360545 -- Portland city, Maine", "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 2360545 -- Portland 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 23005 -- Cumberland County, Maine", "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 PWM -- Portland International Jetport, Portland ME", "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 PWM -- Portland International Jetport, Portland ME", "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 PWM -- Portland International Jetport, Portland ME", "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 PWM -- Portland International Jetport, Portland ME", "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": "Maine, 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": "Maine, 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": "Maine, 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 Central Maine Power Co (#3266), Cumberland County County rows, ME", "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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.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": "PORTLAND INTL JETPORT, ME US (USW00014764), 5.9 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 1600000US2360545, 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 38860 -- Portland-South Portland, ME", "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/418076", "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.cmpco.com/documents/d/cmp/atou", "status": 0, "url_ok": false, "figure_ok": null, "tier": "secondary", "detail": "the cited page could not be fetched (ReadTimeout: HTTPSConnectionPool(host='www.cmpco.com', port=443): Read timed out. (read timeout=45) -- and gave up after 120s of trying)", "action": "demoted to estimated"}, {"id": "ridehail_present", "basis_in": "sourced", "url": "https://wgme.com/news/local/portland-city-council-approves-raising-taxi-fares-in-city-uber-lyft-maine", "status": 200, "url_ok": true, "figure_ok": false, "tier": "secondary", "detail": "the cited page loads but does not carry the figure (the page carries only 4 of the 11 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "transit_note", "basis_in": "sourced", "url": "https://www.gpmetro.org/event-transportation/", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the page carries 11 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://live-motpartners-com.pantheonsite.io/wp-content/uploads/2026/06/Maine-Office-of-Tourism-CY2025-Visitor-Tracking-Report-Greater-Portland-Casco-Bay.pdf", "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://live-motpartners-com.pantheonsite.io/wp-content/uploads/2026/06/Maine-Office-of-Tourism-CY2025-Visitor-Tracking-Report-Greater-Portland-Casco-Bay.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://live-motpartners-com.pantheonsite.io/wp-content/uploads/2026/06/Maine-Office-of-Tourism-CY2025-Visitor-Tracking-Report-Greater-Portland-Casco-Bay.pdf", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "found 4.7 a line or two from 'stayed'", "action": "kept"}, {"id": "rides_reported", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "geography_type", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"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": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "generators_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": "hospital_beds", "basis_in": "estimated", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "college_enrollment", "basis_in": "derived", "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://www.visitportland.com/event/4th-of-july-fireworks/", "status": 200, "url_ok": true, "figure_ok": false, "tier": "secondary", "detail": "the cited page loads but does not carry the figure (the page carries only 4 of the 14 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "insurance_min_liability", "basis_in": "sourced", "url": "https://legislature.maine.gov/statutes/24-a/title24-Asec7303.html", "status": 200, "url_ok": true, "figure_ok": true, "tier": "primary", "detail": "the page carries 4 of the 4 distinctive words in this note", "action": "kept"}, {"id": "registration_note", "basis_in": "sourced", "url": "https://legislature.maine.gov/statutes/29-a/title29-Asec1672.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 2 of the 14 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "parking_month", "basis_in": "sourced", "url": "https://www.portlandmaine.gov/working-downtown", "status": 0, "url_ok": false, "figure_ok": null, "tier": "primary", "detail": "the cited page could not be fetched (SSLError: HTTPSConnectionPool(host='www.portlandmaine.gov', port=443): Max retries exceeded with url: /working-downtown (Caused by SSLError(SSLCertVerificationError(1, '[)", "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": 0, "output_tokens": 0, "web_searches": 0, "cost_usd": 0.0, "seconds": 1779.2}, "search_ceiling": {"scope": "portland-me", "searches_charged": 112, "search_ceiling": 200, "searches_left": 88, "calls_made": 9, "call_ceiling": 12, "search_enabled_calls": 4, "per_call_ceiling": 60, "charged_by_estimate": 112, "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.25, "draws": [0.22, 0.25, 0.31, 0.3, 0.25], "min": 0.22, "max": 0.31, "spread_x": 1.41}, "visitor_local_trips_per_stay": {"median": 1.1, "draws": [1.0, 1.2, 0.9, 1.1, 1.1], "min": 0.9, "max": 1.2, "spread_x": 1.33}, "trips_per_user_month": {"median": 2.4, "draws": [2.4, 2.3, 2.8, 2.5, 2.3], "min": 2.3, "max": 2.8, "spread_x": 1.22}}, "panel_answers_clipped_to_bounds": [], "rides_per_day_range": [3015, 6814]}, "cross_check": {"has_cross_check": false, "search_was_audited": true, "searched": "Checked in the required order: (1) State — Maine SOS “Running a Taxi or Limousine Service” (https://www.maine.gov/sos/taxi-limousine) covers insurance and hire plates only, no trip totals; 29-A M.R.S. §1674 requires TNCs to keep ride records one year but not to publish them; 29-A M.R.S. §1677 bars municipalities from licensing TNCs or requiring trip reports except a PWM pickup fee. (2) City/county — Portland licenses taxis (Chapter 30 fare ordinance; WGME 2025-09-16 on the fare hike) but publishes no taxi or TNC trip counts. (3) Airport — portlandjetport.org/ground-transportation lists taxis, METRO Route 7 and rental cars; no TNC pickup table. Wikipedia/PWM passenger totals (2.44 million in 2024; 2,593,067 in 2025) are air passengers, not ground trips. (4) MPO — GPCOG/PACTS documents searched (LEP plan and related) have no household-survey TNC trip census for this city. (5) Local reporting — WGME 2025-09-16 and Press Herald taxi-industry stories quote fleet shrinkage and fares, not Uber/Lyft/taxi trip totals. Therefore value=0 as “nothing published,” not as “no rides.”", "verdict": ["none", "five named sources were checked and none of them publishes a trip count for this city"], "our_estimate_per_day": 4414, "our_range_per_day": [1104, 17658]}, "replayed_from_saved_research": false, "summary": "This is a planning tool, not a prediction. Of the 80 numbers behind a season in Portland, 25 are published figures, 35 are worked out from published figures, and 20 are our own estimates. 43 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": [43.633157, -70.185305], "geoid": "2360545", "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": "Portland city", "population": 69911, "vintage": "2025", "file": "sub-est2025.csv", "read_on": "2026-09-07"}, "county": {"name": "Cumberland County", "population": 317222, "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": 14, "dcfc_ports": 71, "dcfc_list": [{"name": "Yankee Ford", "network": "FORD_CHARGE", "ports": 4, "connectors": "J1772COMBO", "miles": 3.6, "open_date": "2014-06-01"}, {"name": "High St. Lot", "network": "eVgo Network", "ports": 4, "connectors": "CHADEMO J1772COMBO", "miles": 4.1, "open_date": "2024-12-14"}, {"name": "Miss Portland Diner", "network": "JULE", "ports": 4, "connectors": "J1772COMBO TESLA", "miles": 4.4, "open_date": "2026-01-14"}, {"name": "Portland, ME - Tesla Supercharger", "network": "Tesla", "ports": 12, "connectors": "TESLA", "miles": 4.7, "open_date": "2019-10-19"}, {"name": "MB SCARBOROUGH CPE250-2", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 7.3, "open_date": "2025-02-19"}, {"name": "Portland, ME - Brighton Avenue - Tesla Supercharger", "network": "Tesla", "ports": 12, "connectors": "TESLA", "miles": 7.6, "open_date": "2025-08-08"}, {"name": "Walmart 1788 (Scarborough, ME)", "network": "Electrify America", "ports": 4, "connectors": "J1772COMBO", "miles": 8.0, "open_date": "2019-12-21"}, {"name": "ROWE HYUNDAI STATION 3", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 8.0, "open_date": "2022-08-26"}, {"name": "ROWE HYUNDAI STATION 4", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 8.0, "open_date": "2022-08-26"}, {"name": "Market Basket Westbrook #85", "network": "eVgo Network", "ports": 2, "connectors": "CHADEMO J1772COMBO", "miles": 8.0, "open_date": "2021-12-07"}, {"name": "Rowe Ford Sales", "network": "FORD_CHARGE", "ports": 4, "connectors": "J1772COMBO", "miles": 8.0, "open_date": "2025-02-27"}, {"name": "Bill Dodge Cadillac", "network": "EV Connect", "ports": 2, "connectors": "J1772COMBO", "miles": 8.1, "open_date": "2023-07-25"}, {"name": "Scarborough, ME - Tesla Supercharger", "network": "Tesla", "ports": 12, "connectors": "TESLA", "miles": 8.1, "open_date": "2024-11-19"}, {"name": "Falmouth, ME - Tesla Supercharger", "network": "Tesla", "ports": 8, "connectors": "TESLA", "miles": 8.8, "open_date": "2022-12-10"}], "l2_sites": 101, "l2_ports": 286, "nearest_dcfc": {"name": "Yankee Ford", "network": "FORD_CHARGE", "ports": 4, "connectors": "J1772COMBO", "miles": 3.6, "city": "South Portland", "state": "ME"}}, "counts": {"confirmed": 5, "disputed": 0, "unconfirmed": 0, "skipped_no_file": 5, "claims": 10, "records_touched": 7, "records_read_from_a_federal_file_not_rechecked": 43}, "findings": [{"record": "power_dcfc", "field": "why", "subject": "chargers", "claim": "Tesla Supercharger fast charging here", "claim_text": "Walk-up (non-member) price at the Tesla Supercharger at 1100 Brighton Ave, Portland, ME;", "verdict": "confirmed", "federal": "the snapshot lists Portland, ME - Tesla Supercharger (Tesla, 12 fast ports, 4.7 mi)", "tolerance": "within 10 straight-line miles of the Census town center; a stall count within 25% or one stall"}, {"record": "power_dcfc", "field": "why", "subject": "chargers", "claim": "Tesla Supercharger fast charging here", "claim_text": "Figure is from DCFC Tracker compiling Tesla’s public station data — Tesla’s own locator page did not expose a numeric rate in HTML.", "verdict": "confirmed", "federal": "the snapshot lists Portland, ME - Tesla Supercharger (Tesla, 12 fast ports, 4.7 mi)", "tolerance": "within 10 straight-line miles of the Census town center; a stall count within 25% or one stall"}, {"record": "night_share", "field": "math", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "(b) MaineHealth MMC is a 929-bed Level I trauma center with ~9,000 staff and posted 12-hour nights (6:00pm–6:30am), so shift changes overlap this window;", "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/licensed beds at MaineHealth Maine Medical Center Portland, the state's Level I trauma flagship on the West End — not the 929-bed three-campus license.", "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": "math", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "MaineHealth's 4 Jun 2024 release: MHMMC has 'a total of 929 licensed beds' across Portland, Biddeford and Sanford;", "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": "math", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "The same release puts Barbara Bush Children's Hospital at 109 licensed beds housed at the Portland campus (included in the Portland total, not extra).", "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": "1,221,913 passengers or enplanements", "claim_text": "1,221,913 boardings at PWM in calendar 2024 (FAA, a federal file) divided by 2,653,500 visitors a year = 0.460.", "verdict": "confirmed", "federal": "the note gives 1,221,913; FAA CY2024 enplanements for PWM = 1,221,913 -- within 5%", "tolerance": "within 5%"}, {"record": "rides_per_day", "field": "math", "subject": "population", "claim": "69,911 people", "claim_text": "Residents: 69,911 people x 0.8464 adults = 59,173 adults;", "verdict": "confirmed", "federal": "the note says 69,911; the Census file says Portland city 69,911 (Census vintage 2025) -- within 5%", "tolerance": "within 5%"}, {"record": "notes.power", "field": "text", "subject": "chargers", "claim": "Tesla Supercharger fast charging here", "claim_text": "Tesla Supercharger $0.61 is the public/non-member rate;", "verdict": "confirmed", "federal": "the snapshot lists Portland, ME - Tesla Supercharger (Tesla, 12 fast ports, 4.7 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 beds: do not use MaineHealth's 929 — that is the combined Portland+Biddeford+Sanford license (MaineHealth news, 4 Jun 2024).", "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": 5, "gone": 0, "moved": 0, "blocked": 0, "flaky": 1, "answers_normally": 4, "passes_the_same_test_now": 1, "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": "events_note", "url": "https://www.visitportland.com/event/4th-of-july-fireworks/", "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 4 of the 14 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 4 of the 14 distinctive words in this note"}, {"record": "parking_month", "url": "https://www.portlandmaine.gov/working-downtown", "url_today": "flaky -- it answered on a retry", "detail_today": "answered 200 once certificate verification was skipped", "build_time_verdict": "never fetched: the cited page could not be fetched (SSLError: HTTPSConnectionPool(host='www.portlandmaine.gov', port=443): Max retries exceeded with url: /working-downtown (Caused by SSLError(SSLCertVerificationError(1, '[)", "same_test_now": "still fails", "same_test_detail": "page carries no numbers at all (likely rendered by JavaScript)"}, {"record": "power_tou_note", "url": "https://www.cmpco.com/documents/d/cmp/atou", "url_today": "answers normally", "detail_today": "HTTP 200 on the first attempt", "build_time_verdict": "never fetched: the cited page could not be fetched (ReadTimeout: HTTPSConnectionPool(host='www.cmpco.com', port=443): Read timed out. (read timeout=45) -- and gave up after 120s of trying)", "same_test_now": "passes", "same_test_detail": "the page carries 9 of the 14 distinctive words in this note"}, {"record": "registration_note", "url": "https://legislature.maine.gov/statutes/29-a/title29-Asec1672.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 2 of the 14 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 2 of the 14 distinctive words in this note"}, {"record": "ridehail_present", "url": "https://wgme.com/news/local/portland-city-council-approves-raising-taxi-fares-in-city-uber-lyft-maine", "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 4 of the 11 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 5 of the 11 distinctive words in this note"}]}}, "ok": true}