{"id": "winner-sd", "label": "Winner, SD", "city": "Winner", "state": "SD", "county": "Tripp County", "geography": "single-radius town", "population": 2969, "researched_on": "2026-09-09", "pipeline_version": "2.1.0", "model": "grok-4.6", "counts": {"total": 77, "sourced": 23, "derived": 32, "estimated": 22}, "gaps": 4, "citations": {"checked": 12, "passed": 7, "failed": 5}, "research_cost_usd": 5.059, "summary": "This is a planning tool, not a prediction. Of the 77 numbers behind a season in Winner, 23 are published figures, 32 are worked out from published figures, and 22 are our own estimates. 39 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": "winner-sd", "city": "Winner", "state": "SD", "label": "Winner, SD", "county": "Tripp County", "geography_type": "single-radius town", "researched_on": "2026-09-09", "pipeline_version": "2.1.0", "model": "grok-4.6", "records": [{"id": "population", "label": "People living here", "value": 2969, "unit": "people", "basis": "sourced", "why": "US Census Bureau vintage 2025 population estimate for Winner city, South Dakota.", "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 4672180 -- Winner city, South Dakota"}, "range": [1484, 5938], "editable": true, "theme": "people", "bulk": true}, {"id": "land_area_sqmi", "label": "How big the city is", "value": 2.292, "unit": "sq mi", "basis": "sourced", "why": "Census Bureau Gazetteer land area for Winner 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_46.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 4672180 -- Winner city"}, "range": [1.1, 4.6], "editable": true, "theme": "people", "bulk": true}, {"id": "density", "label": "People per square mile", "value": 1295, "unit": "people/sq mi", "basis": "derived", "why": "How tightly packed the town is, which is what decides how far an average trip runs and how much empty driving there is between fares.", "math": "2,969 residents divided by 2.292 square miles of land = 1,295 people per square mile.", "source": null, "range": [518, 3237], "editable": true, "theme": "people", "bulk": true}, {"id": "metro_population", "label": "People in the surrounding county", "value": 5708, "unit": "people", "basis": "sourced", "why": "US Census Bureau vintage 2025 estimate for Tripp County, South Dakota. 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 46123 -- Tripp County, South Dakota"}, "range": [2854, 11416], "editable": true, "theme": "people", "bulk": true}, {"id": "airport_name", "label": "Airport name", "value": "Pierre Regional", "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 PIR -- Pierre Regional, Pierre SD"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_code", "label": "Airport code", "value": "PIR", "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 PIR -- Pierre Regional, Pierre SD"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_passengers_year", "label": "Passengers boarding a year", "value": 14887, "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 PIR -- Pierre Regional, Pierre SD"}, "range": [7443, 29774], "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "airport_traffic_change_pct", "label": "Change in airport traffic, 2023 to 2024", "value": -6.3, "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 14,887 against CY2023 15,885, both from the same file (https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx): (14,887 - 15,885) / 15,885 = -6.3%.", "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": 72.7, "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.377613, -99.855064, from the Census Gazetteer place file) and the FAA's airport coordinate (44.382694, -100.285985, from https://services6.arcgis.com/ssFJjBXIUyZDrSYZ/arcgis/rest/services/US_Airport/FeatureServer/0) = 72.7 miles. Straight line, not road miles.", "source": null, "range": [36.3, 181.7], "editable": true, "depends_on": null, "bulk": true, "theme": "airport"}, {"id": "power_state_avg", "label": "Average price of electricity in this state", "value": 0.1536, "unit": "$/kWh", "basis": "sourced", "why": "The EIA's own average price to residential customers across South Dakota 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": "South Dakota, June 2026"}, "range": [0.077, 0.307], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_state_avg_commercial", "label": "Average business electricity price in this state", "value": 0.1135, "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": "South Dakota, June 2026"}, "range": [0.057, 0.227], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_state_avg_ytd", "label": "Average electricity price this year so far", "value": 0.1433, "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": "South Dakota, June 2026 YTD"}, "range": [0.072, 0.287], "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "power_utility_candidates", "label": "Utilities that serve this county", "value": "Rosebud Electric Coop Inc (4,856 customers in SD); Winner Municipal Utility (1,885 customers in SD); WAPA-- Western Area Power Administration (0 customers in SD)", "unit": "", "basis": "sourced", "why": "Every utility filing an EIA-861 service territory for Tripp County. More than one is large enough here that the county file cannot say which one this town is on, so it does not say.", "math": null, "source": {"name": "US Energy Information Administration, Form EIA-861 2024 service territory", "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": "Tripp County, SD"}, "range": null, "editable": true, "depends_on": null, "bulk": true, "theme": "power"}, {"id": "climate_station", "label": "Weather station these figures come from", "value": "WINNER, SD US (USC00399367), 1.0 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 USC00399367", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00399367.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": "WINNER, SD US (USC00399367), 1.0 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": 49.7, "unit": "F", "basis": "derived", "why": "The mean of the twelve monthly normals, 1991-2020.", "math": "NOAA 1991-2020 monthly normals for station USC00399367: the twelve MLY-TAVG-NORMAL values averaged = 49.7F.", "source": null, "range": [34.7, 64.7], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "temp_coldest_month_avg_f", "label": "Average temperature in the coldest month", "value": 23.8, "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 USC00399367", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00399367.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": "WINNER, SD US (USC00399367), 1.0 mi from the city centre"}, "range": [8.8, 38.8], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "temp_hottest_month_avg_f", "label": "Average temperature in the hottest month", "value": 76.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 USC00399367", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00399367.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": "WINNER, SD US (USC00399367), 1.0 mi from the city centre"}, "range": [61.4, 91.4], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "precip_year_in", "label": "Rain and melted snow in a year", "value": 23.17, "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 USC00399367: the twelve MLY-PRCP-NORMAL values summed = 23.17 inches a year.", "source": null, "range": [11.6, 41.7], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "wet_days_year", "label": "Days a year with measurable rain", "value": 72.8, "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 USC00399367: the twelve MLY-PRCP-AVGNDS-GE001HI values summed = 72.8 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": 49.1, "unit": "in/year", "basis": "derived", "why": "From station USC00399367, 1.0 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 WINNER, SD US (USC00399367), 1.0 miles from the city centre: the twelve MLY-SNOW-NORMAL values summed = 49.1 inches a year.", "source": null, "range": [0, 98], "editable": true, "depends_on": null, "bulk": true, "theme": "weather"}, {"id": "snow_days_year", "label": "Days a year with measurable snow", "value": 17.3, "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 USC00399367", "date": "1991-2020", "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00399367.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": "WINNER, SD US (USC00399367), 1.0 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.7611, "unit": "share", "basis": "derived", "why": "Residents 18 and over in Winner, SD, 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 1600000US4672180: total population 2,905, of whom 694 are under 18 (the eight under-18 age bands for males and females). (2,905 - 694) / 2,905 = 0.7611.", "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": 47381, "unit": "$/year", "basis": "sourced", "why": "The median household income in Winner, SD. 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 1600000US4672180, B19013_E001"}, "range": [23690, 94762], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "no_vehicle_share", "label": "Share of households with no car", "value": 0.1257, "unit": "share", "basis": "derived", "why": "Households in Winner, SD 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 1600000US4672180: 1,146 occupied households, of which 15 owner-occupied (B25044_E003) and 129 renter-occupied (B25044_E010) have no vehicle available. (15 + 129) / 1,146 = 0.1257, or 12.6%.", "source": null, "range": [0, 0.6], "editable": true, "depends_on": null, "bulk": true, "theme": "people"}, {"id": "commute_drove_alone_share", "label": "Share who drive to work alone", "value": 0.8452, "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 1600000US4672180: 994 of 1,176 workers 16 and over (B08301_E003 / B08301_E001) = 0.8452, or 84.52%.", "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.0077, "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 1600000US4672180: 9 of 1,176 workers 16 and over (B08301_E010 / B08301_E001) = 0.0077, or 0.77%.", "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.0, "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 1600000US4672180: 0 of 1,176 workers 16 and over (B08301_E016 / B08301_E001) = 0.0000, or 0.00%.", "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.0162, "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 1600000US4672180: 19 of 1,176 workers 16 and over (B08301_E021 / B08301_E001) = 0.0162, or 1.62%.", "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": 11.7, "unit": "minutes", "basis": "derived", "why": "The mean one-way journey to work in Winner, SD. 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 1600000US4672180: 13,560 aggregate minutes of travel to work divided by 1,157 workers who did not work from home = 11.7 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": 15.0, "unit": "$/hour", "basis": "sourced", "why": "The median hourly wage for Cleaners of Vehicles and Equipment (occupation 53-7061) in West South Dakota nonmetropolitan area, 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 'West South Dakota nonmetropolitan area', 150 people employed in it: median hourly wage $15.00. The national median for the same occupation is $16.96, so this town's labour index is 15.00 / 16.96 = 0.884.", "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 4600003 -- West South Dakota nonmetropolitan area"}, "range": [9.0, 27.0], "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": 15.0, "unit": "$/hour", "note": "occupation 53-7061, West South Dakota nonmetropolitan area"}], "theme": "costs"}, {"id": "labour_note", "label": "What hand work costs here", "value": "Cleaners of Vehicles and Equipment in West South Dakota nonmetropolitan area are paid a median of $15.00 an hour (BLS May 2024, occupation 53-7061, 150 employed). The national median for the same job is $16.96, so hand work here costs 88% 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": 0.884, "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 'West South Dakota nonmetropolitan area' is $15.00 an hour against $16.96 nationally, so 15.00 / 16.96 = 0.884. 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": 0.545, "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: $770 a month in Winner, SD (place level) against $1,413 for the United States from the same table (GEO_ID 0100000US), so 770 / 1413 = 0.545.", "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": 31, "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 0.884 = $31.\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": [12, 77], "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": 64, "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 0.884 = $64.\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": [26, 160], "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": 134, "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 0.884 = $134.\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": [54, 334], "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": 695, "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 0.545 = $695 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": [278, 2084], "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": 251, "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 $936.15 in SD against $1,281.60 countrywide, so the state index is 936.15 / 1281.60 = 0.730. 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.730 = $251 a month. This is the number in the pack most worth replacing with a real quote. Read on 2026-09-09.", "source": null, "range": [100, 753], "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": 936.15, "unit": "$/year", "note": "SD 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": 213, "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": "$251 (the first car, above) x 0.85 = $213. 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": [85, 639], "editable": true, "depends_on": ["insurance_base_month"], "bulk": true, "theme": "costs", "game_id": "insurance_per_car"}, {"id": "power_utility", "theme": "power", "label": "Electric utility", "value": "Winner Municipal Electric", "unit": "", "basis": "sourced", "why": "The City of Winner Electric Department page and the South Dakota PUC municipal-utility list both name Winner Municipal Electric as the city distributor; Rosebud Electric Cooperative serves rural Tripp County outside the municipal territory.", "math": null, "source": {"name": "South Dakota Public Utilities Commission", "date": "2025-04", "url": "https://puc.sd.gov/energy/municipal.aspx", "tier": "primary", "verified_on": "2026-09-09", "verified_by": "the page carries 3 of the 3 distinctive words in this note"}, "range": null, "editable": true, "depends_on": null}, {"id": "power_offpeak", "theme": "power", "label": "Overnight electricity", "value": 0.1149, "unit": "$/kWh", "basis": "derived", "why": "Winner Municipal Electric publishes no time-of-use tariff, so midnight–06:00 is not a discounted window; this is the city’s 2026 residential energy charge, which applies all hours.", "math": "The city’s 2026 rate sheet (effective 1 Jan 2026) lists a single residential energy charge of $0.1149/kWh plus a $22.10/month meter charge, and a small-commercial energy charge of $0.1171/kWh, with no peak or off-peak periods. Off-peak is therefore set equal to $0.1149 rather than a made-up overnight discount. This uses the municipal energy charge, not the EIA South Dakota residential YTD average of $0.1433/kWh, because the city tariff is what a Winner customer actually pays. The $22.10 meter charge is left out of the per-kWh figure (about +$0.022/kWh at 1,000 kWh/month). Slightly low versus small-commercial $0.1171; a site over 25 kW would instead face $0.0532/kWh plus $14.41/kW demand.", "source": null, "range": [0.05, 0.25], "editable": true, "depends_on": null, "game_id": "power_offpeak"}, {"id": "power_mid", "theme": "power", "label": "Midday electricity", "value": 0.1149, "unit": "$/kWh", "basis": "derived", "why": "Same as overnight: the city has no time-of-use split, so 06:00–16:00 is the same 2026 residential energy charge of $0.1149/kWh.", "math": "No midday or shoulder period exists on the Winner Municipal Electric 2026 schedule. Midday is set equal to the published residential energy charge of $0.1149/kWh (see power_offpeak math). Not an EIA-shaped estimate; it is the city’s flat energy rate applied to this clock window.", "source": null, "range": [0.05, 0.25], "editable": true, "depends_on": null, "game_id": "power_mid"}, {"id": "power_onpeak", "theme": "power", "label": "Evening electricity", "value": 0.1149, "unit": "$/kWh", "basis": "derived", "why": "Same as overnight: 16:00–midnight is not priced higher; Winner Municipal Electric’s 2026 residential energy charge is $0.1149/kWh all hours.", "math": "The 2026 city rate sheet has no on-peak energy charge. On-peak is set equal to $0.1149/kWh so the pack does not invent a peak adder the tariff does not contain. See power_offpeak for meter-charge and commercial-class caveats.", "source": null, "range": [0.05, 0.25], "editable": true, "depends_on": null, "game_id": "power_onpeak"}, {"id": "power_dcfc", "theme": "power", "label": "Public DC fast charger", "value": 0.4, "unit": "$/kWh", "basis": "sourced", "why": "Public ChargePoint DC fast charger FRONTIER MOTORS CPE250 (CCS/CHAdeMO, ~62.5 kW) at Frontier Motors, 27721 314th Ave, Winner; listed at $0.40/kWh any hour. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "ChargeHub", "date": "2026-09", "url": "https://chargehub.com/en/ev-charging-stations/united-states/south-dakota/winner/frontier-motors/electric-car-stations-near-me?locId=138895", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [0.2, 0.7], "editable": true, "depends_on": null, "game_id": "supercharger_kwh", "federal_check": {"verdict": "confirmed", "subject": "chargers", "claim": "ChargePoint fast charging here", "federal": "the snapshot lists FRONTIER MOTORS CPE250 (ChargePoint Network, 1 fast ports, 1.8 mi)", "checked_on": "2026-09-18", "findings": 1}}, {"id": "power_tou_note", "theme": "power", "label": "Time-of-use tariff available", "value": "No; 2026 schedule is flat energy charges by class only", "unit": "", "basis": "estimated", "why": "The city’s published 2026 electric rates list only a meter charge and a single energy charge per class (residential, multiple dwelling, small commercial, large commercial); no TOU, off-peak, or on-peak tariff a small operator could take. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.winnersd.org/electric: the cited page loads but does not carry the figure (the page carries only 2 of the 6 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": null, "editable": true, "depends_on": null}, {"id": "ridehail_present", "theme": "demand", "label": "Ride-hail and taxi supply", "value": "No Uber or Lyft listed for Winner; no operating taxi found among SD's 27 cab firms; on-demand supply is effectively none", "unit": "", "basis": "estimated", "why": "Uber's own South Dakota city list omits Winner, a 2026 statewide taxi census of 27 firms has none in Winner, and Census ACS counts 0.0 of workers here commuting by taxi or ride-hail. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.uber.com/global/en/r/united-states/south-dakota/cities/: the cited page loads but does not carry the figure (the page carries only 3 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": ["none", "thin Uber/Lyft plus 1 local cab"], "editable": true, "depends_on": null}, {"id": "transit_note", "theme": "demand", "label": "Public bus service", "value": "ROCS Winner Transit is weekday demand-response only (about 7:30am-4:30pm), 24-hour advance booking; no evening or weekend bus", "unit": "", "basis": "estimated", "why": "The operator's own transit page lists Winner Transit and statewide hours Monday-Friday 7:30am-4:30pm with 24-hour advance scheduling, so evenings and weekends have no public bus and push those trips onto cars. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://www.rocsinc.org/transit: the cited page loads but does not carry the figure (the page carries only 5 of the 12 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": ["no service", "evenings and weekends added"], "editable": true, "depends_on": null}, {"id": "trip_mi_avg", "theme": "demand", "label": "Average paid trip length", "value": 3.5, "unit": "miles", "basis": "estimated", "why": "Reasoned from Winner's own 2.292 sq mi land area plus the 11.7-minute mean commute, which is a county-scale drive into town rather than an in-city hop.", "math": "Town diameter is about 1.7 miles (2 * sqrt(2.292/pi)). Hotels sit ~0.9 miles from the hospital and downtown, so most paid in-town trips are 1-2 miles. The 11.7-minute mean commute at ~30 mph is ~5.9 miles and mostly county workers, not the paid-ride mix. Blend used: 65% at 1.4 mi (under 3), 23% at 5 mi, 12% at 18 mi (Mission/Rosebud, Gregory, hunting lodges) = 0.65*1.4 + 0.23*5 + 0.12*18 = 0.91 + 1.15 + 2.16 = 4.22, then pulled down to 3.5 because no-vehicle households (12.57%) generate short grocery/medical trips inside town. Likely conservative on the long tail if hunting-lodge runs are common.", "source": null, "range": [1.0, 12.0], "editable": true, "depends_on": null}, {"id": "trip_mi_short_share", "theme": "demand", "label": "Share of trips under 3 miles", "value": 0.65, "unit": "share", "basis": "estimated", "why": "A 2.292 sq mi town with hotels, hospital, downtown and highway strip all within about 2 miles should see most paid rides stay under 3 miles.", "math": "Characteristic in-town distance is 1-2 miles (see trip_mi_avg). No-vehicle households (0.1257) and bar/hotel hops are almost all under 3 miles. Set 0.65 so it is consistent with the 3.5-mile mean; if short share were 0.80 the mean would fall below 3 miles unless the long tail were huge. Range reflects uncertainty about how many county medical/hunting trips leak into the paid mix.", "source": null, "range": [0.4, 0.9], "editable": true, "depends_on": ["trip_mi_avg"]}, {"id": "trip_mi_long_share", "theme": "demand", "label": "Share of trips over 10 miles", "value": 0.12, "unit": "share", "basis": "estimated", "why": "Winner is the county seat and Todd County's administrative center, so a minority of paid rides will be 10-plus miles to Mission/Rosebud, Gregory, or rural hunting lodges.", "math": "Mission is on the order of 35-45 miles; Gregory ~25 miles. Those are real destinations but not the bulk of local demand. 0.12 of trips at ~18 miles, with 0.65 under 3 miles, is the mix that produces a 3.5-mile mean. Likely high if almost all paid demand is in-town no-vehicle errands; likely low in pheasant season when lodge-to-town runs appear.", "source": null, "range": [0.02, 0.3], "editable": true, "depends_on": ["trip_mi_avg", "trip_mi_short_share"]}, {"id": "night_share", "theme": "demand", "label": "Share of demand 21:00-03:00", "value": 0.09, "unit": "share", "basis": "estimated", "why": "Winner has a 24-hour ER and a handful of bars but no college and no evening bus, so night demand exists but is much thinner than in a campus or tourist-nightlife city.", "math": "21:00-03:00 is 25% of the clock; urban TNC night shares often run 0.15-0.25. Stepped down hard because there is no college, the hospital is a 25-bed critical-access facility (not a large shift-change engine), and rural bar nights are early. No evening/weekend bus (transit_note) does push some bar trips onto cars, so 0.09 is above a pure residential floor of ~0.05. Pheasant-season weekends would raise this; a typical Tuesday would sit lower.", "source": null, "range": [0.03, 0.2], "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": 74000, "unit": "visitors/year", "basis": "derived", "why": "Calendar year 2025: Travel South Dakota/Tourism Economics published 14.97 million statewide visitors and $25.6 million of visitor spending in Tripp County; Winner is the county's lodging and retail hub so almost all of that traffic touches the city.", "math": "Statewide 2025: 14.97 million visitors spent $5.16 billion, or $345 per visitor (5.16e9 / 14.97e6). Tripp County visitor spending in 2025 was $25.6 million. 25.6e6 / 345 = 74,200, rounded to 74,000. This is a county spending share, not a city gate count: Winner holds the chain hotels (Holiday Inn Express 59 rooms, Super 8 25, Knights Inn ~37) so most overnight visitors stay in town, but rural hunting lodges capture some lodging. Likely a modest overstatement of city-only visitors; do not treat as a chamber census. Year is 2025, the latest complete calendar year the authority has published.", "source": null, "range": [20000, 150000], "editable": true, "depends_on": null}, {"id": "visitor_party_size", "theme": "demand", "label": "Average visiting party size", "value": 2.6, "unit": "people", "basis": "estimated", "why": "Travel South Dakota's 2024 visitor profile (latest published party-size survey) reports a typical South Dakota travel party of 2.6 people; Winner has no local CVB figure, and hunting parties here may run a bit larger. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://sdvisit.com/sites/default/files/2025-07/Travel-South-Dakota_Future-Partners_South-Dakota-2024-Visitor-Profile_Webinar_July2025.pdf: the cited page could not be fetched (HTTP 403). We checked the citation the research pass gave us and could not confirm it, so this number is presented as our own estimate rather than as a published figure.", "source": null, "range": [1.5, 4.0], "editable": true, "depends_on": null}, {"id": "visitor_nights_avg", "theme": "demand", "label": "Average nights per visiting party", "value": 2.5, "unit": "nights", "basis": "estimated", "why": "Winner's chamber does not publish length of stay; this steps down from the statewide 3.1 trip-nights toward hotel stays of about 1.8 nights because Winner is usually a single-stop hunting or highway overnight, not a multi-night Black Hills circuit.", "math": "Travel South Dakota 2024 visitor profile: statewide visitors report 3.1 nights in South Dakota (hotel guests 4.3 nights in the state). A 2024 statewide lodging webinar put hotel length of stay at about 1.8 nights at a property. Winner is a pheasant-hunting and highway overnight town (Holiday Inn Express, Super 8, Knights Inn), not a touring hub, so parties typically stay one weekend at one property. Midpoint between 1.8 property-nights and 3.1 state-nights is 2.45, rounded to 2.5. Hunting weekends can be 2-3 nights; pass-through highway stays are 1 night. Direction: if most visitors are day hunters sleeping in rural lodges, this is high for the city; if they are Friday-Sunday motel hunters, it is about right.", "source": null, "range": [1.0, 4.5], "editable": true, "depends_on": ["visitor_party_size"]}, {"id": "rides_reported", "theme": "demand", "label": "Reported paid rides", "value": 0, "unit": "trips/year", "basis": "estimated", "why": "No independent taxi or TNC trip count for Winner or Tripp County turned up after checking the five required source types; 0 here means none published, not that zero rides occur.", "math": "Checked in order: (1) South Dakota has no taxicab authority that publishes trip counts (TNCs register with DPS under state law; no monthly PDF like Nevada's); (2) City of Winner has a taxi-cab license chapter but no TNC/for-hire trip reports or open-data portal; Tripp County likewise publishes none; (3) Winner Regional Airport (ICR) is general aviation with 5 CY2025 enplanements and no ground-transportation TNC pickup stats; (4) there is no metropolitan planning organization or household travel survey for Winner/Tripp; (5) local news and the Winner Area Chamber do not quote a taxi or TNC trip figure. SDDOT's FY2024 transit book reports ROCS system-wide demand-response rides (86,903 across many counties including Tripp) which are public transit, not paid taxi/TNC, so they are not used here.", "source": null, "range": [0, 50000], "editable": true, "depends_on": null, "federal_check": {"verdict": "confirmed", "subject": "airports", "claim": "airport code ICR", "federal": "the FAA airport layer lists ICR (Winner Rgnl) -- no commercial enplanements, general aviation", "checked_on": "2026-09-18", "findings": 1}}, {"id": "geography_type", "theme": "geography", "label": "City geography type", "value": "single-radius town", "unit": "", "basis": "derived", "why": "Winner is a 2.3-square-mile prairie county seat of about 3,000 people at the US 18/183 and SD 44 crossroads; downtown, the highway motel strip, the hospital and the schools all sit inside one compact grid a single car covers in minutes.", "math": "Federal land area 2.292 sq mi and population 2,969 describe one built-up patch, not separated urban nodes. City, school-district and map descriptions put the courthouse/Main Street, East Highway 44 motels and Winner Regional Health on East 8th inside that patch. No second town or metro district exists.", "source": null, "range": [0, 1], "editable": true, "depends_on": ["city_radius_mi"], "federal_check": {"verdict": "confirmed", "subject": "population", "claim": "2,969 people", "federal": "the note says 2,969; the Census file says Winner city 2,969 (Census vintage 2025) -- within 5%", "checked_on": "2026-09-18", "findings": 1}}, {"id": "city_radius_mi", "theme": "geography", "label": "City radius", "value": 0.85, "unit": "mi", "basis": "derived", "why": "No published centre-to-edge figure exists; the equivalent circular radius of the established 2.292 sq mi land area is the right conversion for this compact incorporated town.", "math": "r = sqrt(2.292 / 3.1416) = sqrt(0.7296) = 0.854, rounded to 0.85 mi. A square of the same area would have half-diagonal about 1.07 mi. Likely slightly conservative if a few highway-strip buildings sit just outside city limits.", "source": null, "range": [0.4, 1.5], "editable": true, "depends_on": null}, {"id": "district_count", "theme": "geography", "label": "Demand districts", "value": 1, "unit": "", "basis": "estimated", "why": "One compact grid with no separated employment or retail nodes a fleet would have to choose between.", "math": "Downtown Main Street, the East Highway 44 motel strip and Winner Regional Health on E 8th are adjacent pockets inside about 0.85 mi of the centre, not distinct demand districts. Count would rise only if a second town or campus sat miles away; none does.", "source": null, "range": [1, 3], "editable": true, "depends_on": ["geography_type", "city_radius_mi"]}, {"id": "districts_note", "theme": "geography", "label": "Districts", "value": "one compact grid: downtown Main Street and Tripp County courthouse, East Hwy 44 motel-retail strip, Winner Regional Health on E 8th", "unit": "", "basis": "estimated", "why": "Those are the named pockets inside the single built-up area; they are not separate fleet districts.", "math": "Wikivoyage and city/hospital addresses put Super 8/Holiday Inn Express/El Tapatio on East Highway 44, the courthouse downtown, and the hospital at 745 E 8th St — all within the 0.85 mi radius.", "source": null, "range": [0, 1], "editable": true, "depends_on": ["district_count", "geography_type"]}, {"id": "airport_flights_note", "theme": "geography", "label": "Airport scheduled flights", "value": "1–2 daily United Express departures to Denver only", "unit": "", "basis": "sourced", "why": "Pierre Regional (PIR) is the nearest commercial airport; the city of Pierre's own schedule is the primary source for how many flights and to where. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "City of Pierre", "date": "2026-09", "url": "https://www.cityofpierre.org/527/Flight-Schedule", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the page carries 4 of the 6 distinctive words in this note"}, "range": [0, 1], "editable": true, "depends_on": null, "federal_check": {"verdict": "confirmed", "subject": "airports", "claim": "airport code PIR", "federal": "the FAA enplanement file lists PIR: Pierre Regional, Pierre SD, 14,887 CY2024 enplanements", "checked_on": "2026-09-18", "findings": 1}}, {"id": "generators_note", "theme": "geography", "label": "Demand generators", "value": "Winner Regional Health (25-bed CAH); Winner School District (3 K-12 schools); Tripp County courthouse (also Todd County admin); pheasant-hunting lodges filling motels Oct–Jan; no college campus", "unit": "", "basis": "estimated", "why": "These are the named local generators a planner would actually route around; there is no college and the commercial airport is 73 miles away.", "math": "Hospital beds from Winner Regional's own site (25). School district is the K-12 system (three schools). City/Wikipedia: county seat of Tripp and administrative center for Todd County. School district and outfitters: Winner is a pheasant-hunting destination. CollegeSimply: no college in town.", "source": null, "range": [0, 1], "editable": true, "depends_on": ["hospital_beds", "college_enrollment"], "federal_check": {"verdict": "skipped", "subject": "hospitals", "claim": "hospital bed count", "federal": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)", "checked_on": "2026-09-18", "findings": 2}}, {"id": "hospital_beds", "theme": "geography", "label": "Hospital staffed beds", "value": 25, "unit": "beds", "basis": "sourced", "why": "Staffed/certified beds at Winner Regional Health, the only hospital in town, from the hospital's own site. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Winner Regional Health", "date": "2025-11", "url": "https://www.winnerregional.org/hospital", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [10, 50], "editable": true, "depends_on": null, "federal_check": {"verdict": "skipped", "subject": "hospitals", "claim": "hospital bed count", "federal": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)", "checked_on": "2026-09-18", "findings": 1}}, {"id": "college_enrollment", "theme": "geography", "label": "College enrollment", "value": 0, "unit": "students", "basis": "sourced", "why": "There is no college or university inside Winner; the nearest is Sinte Gleska University in Mission, 39 miles away. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "CollegeSimply", "date": "2026-05", "url": "https://www.collegesimply.com/colleges-near/south-dakota/winner/", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [0, 500], "editable": true, "depends_on": null}, {"id": "events_note", "theme": "geography", "label": "Annual events", "value": "Labor Day weekend (late Aug/early Sep: carnival and American Legion demolition derby); BBQ Pit Row (July); Parade of Lights/Santa Day (late November); pheasant hunting season (mid-Oct through January) filling lodges and motels", "unit": "", "basis": "estimated", "why": "These are the sourced annual gatherings that actually swell motel and Main Street demand; Labor Day is the town's named big celebration.", "math": "Winner School District: Labor Day is the big celebration. Mitchell Republic: 71st American Legion demolition derby on Labor Day weekend 2024. Chamber: BBQ Pit Row 18 July 2026; Santa Day/Parade of Lights 28 November 2026. Mitchell Republic: 20th Parade of Lights 30 Nov 2024, about 1,500 spectators. Pheasant season mid-Oct–Jan is the visitor spike named by the school district and local outfitters.", "source": null, "range": [0, 1], "editable": true, "depends_on": null}, {"id": "insurance_min_liability", "theme": "costs", "label": "State minimum liability limits for TNC or for-hire", "value": "TNC: 50/100/25 while available, $1M CSL during ride (SDCL 32-40-8 & 32-40-9); traditional taxi defaults to 25/50/25 (Winner ch. 113 lists no higher limit)", "unit": "", "basis": "estimated", "why": "These are the exact statutory minima the state requires of transportation network companies and for-hire passenger vehicles; Winner's local taxi ordinance does not impose a higher floor. Unconfirmed -- treated as our estimate.", "math": "Verification failed on https://law.justia.com/codes/south-dakota/title-32/chapter-40/section-32-40-9/: the cited page loads but does not carry the figure (the page carries only 3 of the 12 distinctive words in this note). We checked the citation the research pass gave us and could not confirm it, so this number is presented as our own estimate rather than as a published figure.", "source": null, "range": [], "editable": true, "depends_on": null}, {"id": "parking_month", "theme": "costs", "label": "Monthly downtown parking space", "value": 0, "unit": "$/month", "basis": "estimated", "why": "Winner (pop. 2,969) has no meters, permits or paid lots in its parking ordinance; street parking is free with a 72-hour limit.", "math": "City code chapter 72 regulates only time, location and vehicle size; no fees, meters or monthly permits appear. Typical for a rural South Dakota town of this size -- park free.", "source": null, "range": [0, 50], "editable": true, "depends_on": null}, {"id": "registration_note", "theme": "costs", "label": "For-hire / TNC vehicle registration and city fees", "value": "Commercial plate ~$85-150/yr by weight (SD DOR); Winner taxi license fee unpublished in ch. 113 (est. $50-100); TNC follows state rules only", "unit": "", "basis": "estimated", "why": "State commercial registration fees are published by weight; Winner's taxi ordinance requires a license but does not list the dollar amount in the posted code.", "math": "Typical sedan <4,000 lb commercial registration starts at $85/yr plus $1 solid-waste + $1 highway-patrol + $2 tech + plate mail (dor.sd.gov). City taxi license (ch. 113) fee not shown in the ordinance text retrieved; similar small SD towns charge $25-150. TNC drivers need no extra city plate.", "source": null, "range": [], "editable": true, "depends_on": null}, {"id": "ridehail_ever_share", "label": "US adults who have ever used a ride-hailing app", "value": 0.36, "unit": "share", "basis": "sourced", "why": "The published national benchmark the local figure is built from. It is pinned in the pipeline rather than researched fresh each time, because asking a language model for a published fact four times returns four answers, and that variance was landing straight in rides per day. The page is still fetched and checked on every run. This is a secondary source -- it republishes a figure it did not itself produce.", "math": null, "source": {"name": "Pew Research Center", "date": "2019-01-04", "url": "https://www.pewresearch.org/short-reads/2019/01/04/more-americans-are-using-ride-hailing-apps/", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [0.2, 0.55], "editable": true, "theme": "demand", "depends_on": null}, {"id": "ridehail_active_share_of_users", "label": "Of people who have ever used it, the share who ride in a given month", "value": 0.32, "unit": "share", "basis": "sourced", "why": "The second half of the same national survey, taken from the same page so that the two halves describe the same population. Ten per cent of users ride at least weekly and another 22% monthly; the other 67% ride less than once a month. This is a secondary source -- it republishes a figure it did not itself produce.", "math": "0.10 riding at least weekly + 0.22 riding monthly = 0.32 of ever-users taking a trip in a given month. The complement the page prints, 67% riding less than monthly, agrees with it to within rounding.", "source": {"name": "Pew Research Center", "date": "2019-01-04", "url": "https://www.pewresearch.org/short-reads/2019/01/04/more-americans-are-using-ride-hailing-apps/", "tier": "secondary", "verified_on": "2026-09-09", "verified_by": "the exact quoted text is on the page"}, "range": [0.2, 0.5], "editable": true, "theme": "demand", "depends_on": null}, {"id": "ridehail_local_multiplier", "label": "How much more, or less, this town hires rides than the country does", "value": 0.613, "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.1257 here against 0.0835 nationally = 1.50x. Workers commuting by taxi or ride-hail (ACS B08301_016, a line the Census counts explicitly): 0.00000 here against 0.00261 nationally = 0.00x. 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 0.61x, 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.31, 1.23], "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.0707, "unit": "share", "basis": "derived", "why": "The share of adults in Winner 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 0.61x: 0.1152 x 0.61 = 0.0707. 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.0283 to 0.1767, 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.0283, 0.1767], "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.0, "unit": "trips", "basis": "estimated", "why": "Counted only over the people who are active in that month, so it can never be below 1. It multiplies the entire resident stream, which is why it is drawn several times rather than once.", "math": "How many rides a local who uses ride-hail at all in a month takes in that month. Drawn 5 times independently with no web search, so that the run-to-run wobble is measured rather than hidden: 2, 2, 2, 2.2, 2.2. The MEDIAN, 2, is used; the draws spanned 2 to 2.2, a factor of 1.10. An 11.7-minute mean commute in a town of 2969 people means even monthly-active residents take only a small handful of trips.", "source": null, "range": [1.0, 6.0], "editable": true, "theme": "demand", "depends_on": null, "federal_check": {"verdict": "confirmed", "subject": "population", "claim": "2,969 people", "federal": "the note says 2,969; the Census file says Winner city 2,969 (Census vintage 2025) -- within 5%", "checked_on": "2026-09-18", "findings": 1}}, {"id": "visitor_air_arrival_share", "label": "Share of visitors who arrive by air", "value": 0.0, "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": "No air-arrival share could be built: the nearest commercial airport is too far away to be this town's. It is set to zero, which means the airport transfer contributes nothing to the visitor trip count and this chain is a FLOOR for any town whose visitors do fly in.", "source": null, "range": [0.0, 0.05], "editable": true, "depends_on": ["airport_passengers_year", "visitors_year"], "theme": "demand"}, {"id": "visitor_airport_ridehail_share", "label": "Of air arrivals, the share whose airport transfer is a hired ride", "value": 0.08, "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.08, 0.05, 0.08, 0.08, 0.08. The MEDIAN, 0.08, is used; the draws spanned 0.05 to 0.08, a factor of 1.60. PIR is 72.7 miles from Winner and boarded only 14887 passengers, so almost every air arrival rents a car rather than taking a long taxi.", "source": null, "range": [0.05, 0.8], "editable": true, "theme": "demand", "depends_on": null, "federal_check": {"verdict": "confirmed", "subject": "airports", "claim": "14,887 passengers or enplanements", "federal": "the note gives 14,887; FAA CY2024 enplanements for PIR = 14,887 -- within 5%", "checked_on": "2026-09-18", "findings": 1}}, {"id": "visitor_local_trips_per_stay", "label": "Hired rides a visiting party takes in town, per visit", "value": 0.2, "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: 0.2, 0.2, 0.25, 0.2, 0.3. The MEDIAN, 0.2, is used; the draws spanned 0.2 to 0.3, a factor of 1.50. Land area of 2.292 square miles makes the whole town walkable, so a 2.5-night visiting party takes almost no intra-stay ride-hail trips.", "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": 0.2, "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.000 arriving by air x 0.080 of those hiring a ride = 0.000, plus 0.200 trips in town = 0.200 trips a party. Pushing every judgement piece to its own measured extreme gives a range of 0.20 to 0.30. 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": 26, "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 = 2969 (a published figure); Share of residents who are adults = 0.7611 (worked out from published figures); Local adults taking a ride-hail trip in a given month = 0.0707 (worked out from published figures); Trips a month, per local who rides at all that month = 2.0 (our estimate); Annual visitors = 74000 (worked out from published figures); Average visiting party size = 2.6 (our estimate); Hired rides one visiting party takes per visit, all in = 0.2 (our estimate). Residents: 2,969 people x 0.7611 adults = 2,260 adults; x 0.0707 who take a ride-hail trip in a given month = 160 people; x 2.0 trips each a month = 320 trips a month; divided by 30.4 days = 11 resident rides a day. Visitors: 74,000 a year / 2.6 people in a party = 28,462 visiting parties; x 0.2 ride-hail trips a party takes while it is here / 365 days = 16 visitor rides a day. A party shares one car, so a count of visitors is not a count of rides. Visitors are 60% of this total, so the answer turns on the visitor figures more than on the residents. Total: 26 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 20 rides a day, and at its own high bound 52. The 26 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 order: (1) South Dakota has no taxicab authority that publishes trip counts (TNCs register with DPS under state law; no monthly PDF like Nevada's); (2) City of Winner has a taxi-cab license chapter but no TNC/for-hire trip reports or open-data portal; Tripp County likewise publishes none; (3) Winner Regional Airport (ICR) is general aviation with 5 CY2025 enplanements and no ground-transportation TNC pickup stats; (4) there is no metropolitan planning organization or household travel survey for Winner/Tripp; (5) local news and the Winner Area Chamber do not quote a taxi or TNC trip figure. SDDOT's FY2024 transit book reports ROCS system-wide demand-response rides (86,903 across many counties including Tripp) which are public transit, not paid taxi/TNC, so they are not used here. 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": [7, 104], "editable": true, "low": 20, "high": 52, "cross_check": {"has_cross_check": false, "search_was_audited": true, "searched": "Checked in order: (1) South Dakota has no taxicab authority that publishes trip counts (TNCs register with DPS under state law; no monthly PDF like Nevada's); (2) City of Winner has a taxi-cab license chapter but no TNC/for-hire trip reports or open-data portal; Tripp County likewise publishes none; (3) Winner Regional Airport (ICR) is general aviation with 5 CY2025 enplanements and no ground-transportation TNC pickup stats; (4) there is no metropolitan planning organization or household travel survey for Winner/Tripp; (5) local news and the Winner Area Chamber do not quote a taxi or TNC trip figure. SDDOT's FY2024 transit book reports ROCS system-wide demand-response rides (86,903 across many counties including Tripp) which are public transit, not paid taxi/TNC, so they are not used here.", "verdict": ["none", "five named sources were checked and none of them publishes a trip count for this city"], "our_estimate_per_day": 26, "our_range_per_day": [7, 104]}, "theme": "people", "federal_check": {"verdict": "confirmed", "subject": "population", "claim": "2,969 people", "federal": "the note says 2,969; the Census file says Winner city 2,969 (Census vintage 2025) -- within 5%", "checked_on": "2026-09-18", "findings": 2}}], "notes": {"power": "City of Winner Electric Department (Winner Municipal Electric) wires the city; Rosebud Electric Cooperative serves rural Tripp County around Winner, not the municipal system. 2026 city energy charges: residential $0.1149/kWh + $22.10/mo meter; small commercial $0.1171/kWh + $29.46/mo; large commercial (>25 kW) $0.0532/kWh + $14.41/kW demand + $50/mo. No TOU, so off/mid/on were set equal to the residential energy charge rather than an invented overnight discount. EIA SD residential YTD $0.1433/kWh is higher than this municipal energy charge. DCFC $0.40/kWh is ChargePoint at Frontier Motors; Rivian Roamer also showed 0.4 USD/kWh about a month before this pack. ChargePoint hosts set prices, so $0.40 can change.", "demand": "Winner, SD is a ~3,000-person county seat with 12.57% of households having no vehicle, a 11.7-minute mean commute, 0.0 taxi/ride-hail commute share, and 0.77% public-transit commute share. Demand is real among no-car households and pheasant-season visitors, but supply of paid on-demand rides is effectively zero today. visitors_year is 2025 (latest complete Tourism Economics year) derived from Tripp County's $25.6M visitor spending, not a city gate count. Do not invent a rides_per_day here; the pipeline should compose it from this chain. Adult share is the settled Census 0.7611 and is not in this pack.", "geography": "Winner Regional Airport is general aviation only (city cites a 4,500-ft concrete runway); commercial demand is Pierre (PIR), 72.7 miles away. City website still quotes 2000-census population 3,137 and 922.5 acres — use the settled federal 2.292 sq mi / 2,969 pop. Pheasant season is the main visitor spike. Hospital also operates long-term care (hospital site now says 40 skilled-nursing beds; 2022 CHNA said 60) — hospital_beds is the 25-bed CAH only. CollegeSimply is a compiler, not a .gov primary, but it is the clearest published statement that Winner itself has zero colleges.", "_superseded": ["clean_biohazard_cost", "clean_deep_cost", "clean_wipe_cost", "depot_rent_month", "insurance_base_month", "insurance_per_car_month", "labour_note"], "costs": "Winner (pop. 2,969) publishes almost nothing on commercial rents, detailing, or taxi-license dollar amounts. Insurance and min-liability are state-level (TNC statute + taxi-rate compilations). Depot, cleaning and extra-vehicle insurance are therefore estimated from the one local commercial listing, nearby Pierre/Rapid City shops, and small-fleet discount logic. Parking is free. All estimates show the arithmetic so they can be overwritten with a local quote."}, "gaps": ["power_utility: 3 utilities file a service territory for Tripp County, and the two largest -- Rosebud Electric Coop Inc with 4,856 customers and Winner Municipal Utility with 1,885 -- are close enough in size that the county file cannot say which one this city is on. No utility and no utility rate were taken from it; the question goes to the research pass instead.", "visitor_air_arrival_share: the nearest commercial airport is 73 miles away, past the 35-mile line at which it stops being this town's airport, so its boardings were NOT divided by this town's visitors -- doing so would have handed a small town a large airport's traffic", "visitor_air_arrival_share: could not be built, so visitors are counted as arriving by road and the visitor stream is a floor", "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": 77, "sourced": 23, "derived": 32, "estimated": 22}, "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_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_tou_note", "power_utility", "power_utility_candidates", "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": 23, "primary": 17, "secondary": 6, "tier_unknown": 0, "no_citation_derived_or_estimated": 54, "read_from_a_federal_bulk_file": 39, "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": 39, "records_needing_no_citation_check": 16, "record_ids": ["adult_share", "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_utility_candidates", "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": 12, "url": "https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/cities/totals/sub-est2025.csv"}, "gaz_place_17.txt": {"downloads": 0, "bytes": 148881, "wire_bytes": 0, "reuses": 2, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_17.txt"}, "co-est2025-alldata.csv": {"downloads": 0, "bytes": 2071735, "wire_bytes": 0, "reuses": 12, "url": "https://www2.census.gov/programs-surveys/popest/datasets/2020-2025/counties/totals/co-est2025-alldata.csv"}, "faa-cy2024-commercial-service-enplanements.xlsx": {"downloads": 0, "bytes": 58201, "wire_bytes": 0, "reuses": 1, "url": "https://www.faa.gov/airports/planning_capacity/passenger_allcargo_stats/passenger/arp-cy2024-commercial-service-enplanements.xlsx"}, "faa-us-airports.json": {"downloads": 0, "bytes": 3686620, "wire_bytes": 0, "reuses": 1, "url": "https://services6.arcgis.com/ssFJjBXIUyZDrSYZ/arcgis/rest/services/US_Airport/FeatureServer/0"}, "eia-epm-table-5-06-a.xlsx": {"downloads": 0, "bytes": 19709, "wire_bytes": 0, "reuses": 1, "url": "https://www.eia.gov/electricity/monthly/xls/table_5_06_a.xlsx"}, "eia-epm-table-5-06-b.xlsx": {"downloads": 0, "bytes": 19788, "wire_bytes": 0, "reuses": 1, "url": "https://www.eia.gov/electricity/monthly/xls/table_5_06_b.xlsx"}, "eia-861-2024.zip": {"downloads": 0, "bytes": 4568208, "wire_bytes": 0, "reuses": 3, "url": "https://www.eia.gov/electricity/data/eia861/zip/f8612024.zip"}, "noaa-normals-inventory-30yr.txt": {"downloads": 0, "bytes": 1342890, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/doc/inventory_30yr.txt"}, "noaa\\USC00111550.csv": {"downloads": 0, "bytes": 24356, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00111550.csv"}, "noaa\\USW00014819.csv": {"downloads": 0, "bytes": 31524, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00014819.csv"}, "noaa\\US1ILCK0014.csv": {"downloads": 0, "bytes": 1558, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILCK0014.csv"}, "noaa\\US1ILCK0145.csv": {"downloads": 0, "bytes": 1546, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILCK0145.csv"}, "noaa\\US1ILCK0282.csv": {"downloads": 0, "bytes": 1534, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILCK0282.csv"}, "noaa\\US1ILCK0074.csv": {"downloads": 0, "bytes": 1570, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILCK0074.csv"}, "noaa\\USC00111577.csv": {"downloads": 0, "bytes": 41702, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00111577.csv"}, "acs2024-b01001-places-counties.psv": {"downloads": 0, "bytes": 11267969, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b01001.dat"}, "acs2024-b08301-places-counties.psv": {"downloads": 0, "bytes": 4910243, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b08301.dat"}, "acs2024-b08303-places-counties.psv": {"downloads": 0, "bytes": 3510917, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b08303.dat"}, "acs2024-b08013-places-counties.psv": {"downloads": 0, "bytes": 1608092, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b08013.dat"}, "acs2024-b25044-places-counties.psv": {"downloads": 0, "bytes": 3952608, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b25044.dat"}, "acs2024-b19013-places-counties.psv": {"downloads": 0, "bytes": 1058767, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b19013.dat"}, "acs2024-b25064-places-counties.psv": {"downloads": 0, "bytes": 1025542, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/programs-surveys/acs/summary_file/2024/table-based-SF/data/5YRData/acsdt5y2024-b25064.dat"}, "bls-oes2024-53-7061-national.psv": {"downloads": 0, "bytes": 120, "wire_bytes": 0, "reuses": 1, "url": "https://www.bls.gov/oes/special-requests/oesm24nat.zip"}, "bls-oes2024-area-definitions.xlsx": {"downloads": 0, "bytes": 147222, "wire_bytes": 0, "reuses": 12, "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_04.txt": {"downloads": 0, "bytes": 47884, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_04.txt"}, "noaa\\USC00021849.csv": {"downloads": 0, "bytes": 41534, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00021849.csv"}, "gaz_place_47.txt": {"downloads": 0, "bytes": 50632, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_47.txt"}, "noaa\\USC00402589.csv": {"downloads": 0, "bytes": 38632, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00402589.csv"}, "gaz_place_32.txt": {"downloads": 0, "bytes": 14036, "wire_bytes": 0, "reuses": 2, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_32.txt"}, "noaa\\USW00023154.csv": {"downloads": 0, "bytes": 41666, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00023154.csv"}, "noaa\\US1NVCK0076.csv": {"downloads": 0, "bytes": 1642, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NVCK0076.csv"}, "noaa\\US1NVCK0002.csv": {"downloads": 0, "bytes": 1570, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NVCK0002.csv"}, "noaa\\USW00053123.csv": {"downloads": 0, "bytes": 31584, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00053123.csv"}, "noaa\\US1NVCK0039.csv": {"downloads": 0, "bytes": 1558, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NVCK0039.csv"}, "noaa\\US1NVCK0065.csv": {"downloads": 0, "bytes": 1558, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1NVCK0065.csv"}, "noaa\\USC00265705.csv": {"downloads": 0, "bytes": 41582, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00265705.csv"}, "gaz_place_30.txt": {"downloads": 0, "bytes": 49904, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_30.txt"}, "noaa\\USC00245334.csv": {"downloads": 0, "bytes": 31380, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00245334.csv"}, "noaa\\USC00245338.csv": {"downloads": 0, "bytes": 31428, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00245338.csv"}, "noaa\\USC00242438.csv": {"downloads": 0, "bytes": 15544, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00242438.csv"}, "noaa\\USC00241984.csv": {"downloads": 0, "bytes": 31476, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00241984.csv"}, "noaa\\USC00247265.csv": {"downloads": 0, "bytes": 31440, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00247265.csv"}, "noaa\\USC00248939.csv": {"downloads": 0, "bytes": 15520, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00248939.csv"}, "noaa\\USC00244181.csv": {"downloads": 0, "bytes": 15568, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00244181.csv"}, "noaa\\USC00244180.csv": {"downloads": 0, "bytes": 31476, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00244180.csv"}, "noaa\\USC00245340.csv": {"downloads": 0, "bytes": 41570, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00245340.csv"}, "gaz_place_48.txt": {"downloads": 0, "bytes": 188704, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_48.txt"}, "noaa\\USC00417262.csv": {"downloads": 0, "bytes": 41546, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00417262.csv"}, "noaa\\USC00117077.csv": {"downloads": 0, "bytes": 31476, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00117077.csv"}, "noaa\\USW00093989.csv": {"downloads": 0, "bytes": 31488, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00093989.csv"}, "noaa\\USC00116670.csv": {"downloads": 0, "bytes": 18398, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00116670.csv"}, "noaa\\US1MOMA0005.csv": {"downloads": 0, "bytes": 1558, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1MOMA0005.csv"}, "noaa\\US1MOFSA127.csv": {"downloads": 0, "bytes": 1534, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1MOFSA127.csv"}, "noaa\\USC00236493.csv": {"downloads": 0, "bytes": 15484, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00236493.csv"}, "noaa\\USC00233601.csv": {"downloads": 0, "bytes": 31512, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00233601.csv"}, "noaa\\USC00231275.csv": {"downloads": 0, "bytes": 31476, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00231275.csv"}, "noaa\\USC00237578.csv": {"downloads": 0, "bytes": 31500, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00237578.csv"}, "noaa\\US1MOFSA111.csv": {"downloads": 0, "bytes": 8412, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1MOFSA111.csv"}, "noaa\\USC00113530.csv": {"downloads": 0, "bytes": 24188, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00113530.csv"}, "noaa\\US1ILHN0002.csv": {"downloads": 0, "bytes": 1534, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1ILHN0002.csv"}, "noaa\\US1MOFSA173.csv": {"downloads": 0, "bytes": 8412, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1MOFSA173.csv"}, "noaa\\USC00238051.csv": {"downloads": 0, "bytes": 41594, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00238051.csv"}, "gaz_place_06.txt": {"downloads": 0, "bytes": 166313, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_06.txt"}, "noaa\\USC00049285.csv": {"downloads": 0, "bytes": 18410, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00049285.csv"}, "noaa\\USW00093110.csv": {"downloads": 0, "bytes": 31560, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00093110.csv"}, "noaa\\USC00046569.csv": {"downloads": 0, "bytes": 24188, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00046569.csv"}, "noaa\\USC00046572.csv": {"downloads": 0, "bytes": 31440, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00046572.csv"}, "noaa\\USW00023136.csv": {"downloads": 0, "bytes": 31464, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00023136.csv"}, "noaa\\USC00046399.csv": {"downloads": 0, "bytes": 41498, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00046399.csv"}, "gaz_place_20.txt": {"downloads": 0, "bytes": 72308, "wire_bytes": 0, "reuses": 2, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_20.txt"}, "noaa\\USC00147271.csv": {"downloads": 0, "bytes": 41570, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00147271.csv"}, "noaa\\US1KSSG0027.csv": {"downloads": 0, "bytes": 1546, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1KSSG0027.csv"}, "noaa\\US1KSSG0010.csv": {"downloads": 0, "bytes": 1510, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1KSSG0010.csv"}, "noaa\\US1KSSG0076.csv": {"downloads": 0, "bytes": 1534, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/US1KSSG0076.csv"}, "noaa\\USW00003928.csv": {"downloads": 0, "bytes": 41534, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USW00003928.csv"}, "gaz_place_46.txt": {"downloads": 0, "bytes": 47861, "wire_bytes": 0, "reuses": 1, "url": "https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2025_Gazetteer/2025_gaz_place_46.txt"}, "noaa\\USC00399367.csv": {"downloads": 0, "bytes": 41522, "wire_bytes": 0, "reuses": 1, "url": "https://www.ncei.noaa.gov/data/normals-monthly/1991-2020/access/USC00399367.csv"}}, "downloads_this_run": 0, "cache_reuses_this_run": 118, "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": 39, "bulk_needing_no_verification": 16, "citations_checked": 12, "citations_passed": 7, "citations_failed": 5, "primary": 1, "secondary": 6, "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 4672180 -- Winner city, South Dakota", "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 4672180 -- Winner 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 46123 -- Tripp County, South Dakota", "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 PIR -- Pierre Regional, Pierre SD", "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 PIR -- Pierre Regional, Pierre SD", "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 PIR -- Pierre Regional, Pierre SD", "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": "power_state_avg", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "South Dakota, 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": "South Dakota, 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": "South Dakota, June 2026 YTD", "action": "not checked (read straight from a federal bulk file)"}, {"id": "power_utility_candidates", "basis_in": "sourced", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": "primary", "detail": "Tripp County, SD", "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": "WINNER, SD US (USC00399367), 1.0 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": "WINNER, SD US (USC00399367), 1.0 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": "WINNER, SD US (USC00399367), 1.0 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": "WINNER, SD US (USC00399367), 1.0 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 1600000US4672180, 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 4600003 -- West South Dakota nonmetropolitan area", "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_utility", "basis_in": "sourced", "url": "https://puc.sd.gov/energy/municipal.aspx", "status": 200, "url_ok": true, "figure_ok": true, "tier": "primary", "detail": "the page carries 3 of the 3 distinctive words in this note", "action": "kept"}, {"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://chargehub.com/en/ev-charging-stations/united-states/south-dakota/winner/frontier-motors/electric-car-stations-near-me?locId=138895", "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.winnersd.org/electric", "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 2 of the 6 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "ridehail_present", "basis_in": "sourced", "url": "https://www.uber.com/global/en/r/united-states/south-dakota/cities/", "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 3 of the 14 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "transit_note", "basis_in": "sourced", "url": "https://www.rocsinc.org/transit", "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 5 of the 12 distinctive words in this note)", "action": "demoted to estimated"}, {"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": "derived", "url": null, "status": null, "url_ok": null, "figure_ok": null, "tier": null, "detail": "", "action": "not checked (not a sourced record)"}, {"id": "visitor_party_size", "basis_in": "sourced", "url": "https://sdvisit.com/sites/default/files/2025-07/Travel-South-Dakota_Future-Partners_South-Dakota-2024-Visitor-Profile_Webinar_July2025.pdf", "status": 0, "url_ok": false, "figure_ok": null, "tier": "secondary", "detail": "the cited page could not be fetched (HTTP 403)", "action": "demoted to estimated"}, {"id": "visitor_nights_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": "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": "derived", "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": "sourced", "url": "https://www.cityofpierre.org/527/Flight-Schedule", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the page carries 4 of the 6 distinctive words in this note", "action": "kept"}, {"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": "sourced", "url": "https://www.winnerregional.org/hospital", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "college_enrollment", "basis_in": "sourced", "url": "https://www.collegesimply.com/colleges-near/south-dakota/winner/", "status": 200, "url_ok": true, "figure_ok": true, "tier": "secondary", "detail": "the exact quoted text is on the page", "action": "kept"}, {"id": "events_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": "insurance_min_liability", "basis_in": "sourced", "url": "https://law.justia.com/codes/south-dakota/title-32/chapter-40/section-32-40-9/", "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 3 of the 12 distinctive words in this note)", "action": "demoted to estimated"}, {"id": "parking_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": "registration_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": "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": 2179407, "output_tokens": 55666, "web_searches": 116, "cost_usd": 5.059, "seconds": 1050.7, "measured_on": "2026-09-08", "note": "measured when the research actually ran on 2026-09-08; rebuilding the pack from the saved answers costs nothing"}, "search_ceiling": {"scope": "winner-sd", "searches_charged": 0, "search_ceiling": 200, "searches_left": 200, "calls_made": 0, "call_ceiling": 12, "search_enabled_calls": 0, "per_call_ceiling": 60, "charged_by_estimate": 0, "how_the_cli_is_charged": "The Grok CLI does not report how many web searches it made, so every search-enabled call is charged a flat 28 -- the measured mean of the runs this ceiling exists to prevent (668 searches over 24 search-enabled calls). It is deliberately the worst case, so the ceiling binds early rather than late.", "per_call_breaches": [], "refusals": [], "bound": false, "why": "Six cities on 2026-09-08 made 668 web searches between them and pulled 13,057,511 input tokens, because nothing counted them. This ceiling refuses a call the remaining budget cannot pay for. It is set well above the shape of a normal city on purpose: it is a guard rail against a loop that has run away, not a reason to ask fewer questions about the town. If it bound, the fields that went unresearched are named in `gaps`."}, "reproducibility": {"why": "Re-running the same research prompt for the same city used to return materially different judgement figures, and those figures dominate rides per day. Three variables were taken off the model and rebuilt: the monthly ride-hail share is now computed from a pinned national survey and two measured Census ratios; the per-party visitor trip rate is composed from narrower questions; and what judgement is left is drawn several times and reported as a median with its spread.", "computed_not_judged": ["ridehail_ever_share", "ridehail_active_share_of_users", "ridehail_local_multiplier", "ridehail_month_share", "visitor_air_arrival_share"], "panel_draws": 5, "panel": {"visitor_airport_ridehail_share": {"median": 0.08, "draws": [0.08, 0.05, 0.08, 0.08, 0.08], "min": 0.05, "max": 0.08, "spread_x": 1.6}, "visitor_local_trips_per_stay": {"median": 0.2, "draws": [0.2, 0.2, 0.25, 0.2, 0.3], "min": 0.2, "max": 0.3, "spread_x": 1.5}, "trips_per_user_month": {"median": 2.0, "draws": [2.0, 2.0, 2.0, 2.2, 2.2], "min": 2.0, "max": 2.2, "spread_x": 1.1}}, "panel_answers_clipped_to_bounds": [], "rides_per_day_range": [20, 52]}, "cross_check": {"has_cross_check": false, "search_was_audited": true, "searched": "Checked in order: (1) South Dakota has no taxicab authority that publishes trip counts (TNCs register with DPS under state law; no monthly PDF like Nevada's); (2) City of Winner has a taxi-cab license chapter but no TNC/for-hire trip reports or open-data portal; Tripp County likewise publishes none; (3) Winner Regional Airport (ICR) is general aviation with 5 CY2025 enplanements and no ground-transportation TNC pickup stats; (4) there is no metropolitan planning organization or household travel survey for Winner/Tripp; (5) local news and the Winner Area Chamber do not quote a taxi or TNC trip figure. SDDOT's FY2024 transit book reports ROCS system-wide demand-response rides (86,903 across many counties including Tripp) which are public transit, not paid taxi/TNC, so they are not used here.", "verdict": ["none", "five named sources were checked and none of them publishes a trip count for this city"], "our_estimate_per_day": 26, "our_range_per_day": [7, 104]}, "replayed_from_saved_research": true, "summary": "This is a planning tool, not a prediction. Of the 77 numbers behind a season in Winner, 23 are published figures, 32 are worked out from published figures, and 22 are our own estimates. 39 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.377613, -99.855064], "geoid": "4672180", "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": "Winner city", "population": 2969, "vintage": "2025", "file": "sub-est2025.csv", "read_on": "2026-09-07"}, "county": {"name": "Tripp County", "population": 5708, "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": 1, "dcfc_ports": 1, "dcfc_list": [{"name": "FRONTIER MOTORS CPE250", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 1.8, "open_date": "2023-09-28"}], "l2_sites": 1, "l2_ports": 2, "nearest_dcfc": {"name": "FRONTIER MOTORS CPE250", "network": "ChargePoint Network", "ports": 1, "connectors": "CHADEMO J1772COMBO", "miles": 1.8, "city": "Winner", "state": "SD"}}, "counts": {"confirmed": 9, "disputed": 1, "unconfirmed": 0, "skipped_no_file": 6, "claims": 16, "records_touched": 12, "records_read_from_a_federal_file_not_rechecked": 39}, "findings": [{"record": "power_dcfc", "field": "why", "subject": "chargers", "claim": "ChargePoint fast charging here", "claim_text": "Public ChargePoint DC fast charger FRONTIER MOTORS CPE250 (CCS/CHAdeMO, ~62.5 kW) at Frontier Motors, 27721 314th Ave, Winner;", "verdict": "confirmed", "federal": "the snapshot lists FRONTIER MOTORS CPE250 (ChargePoint Network, 1 fast ports, 1.8 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": "Stepped down hard because there is no college, the hospital is a 25-bed critical-access facility (not a large shift-change engine), and rural bar nights are early.", "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": "rides_reported", "field": "math", "subject": "airports", "claim": "airport code ICR", "claim_text": "(3) Winner Regional Airport (ICR) is general aviation with 5 CY2025 enplanements and no ground-transportation TNC pickup stats;", "verdict": "confirmed", "federal": "the FAA airport layer lists ICR (Winner Rgnl) -- no commercial enplanements, general aviation", "tolerance": "exact code"}, {"record": "geography_type", "field": "math", "subject": "population", "claim": "2,969 people", "claim_text": "Federal land area 2.292 sq mi and population 2,969 describe one built-up patch, not separated urban nodes.", "verdict": "confirmed", "federal": "the note says 2,969; the Census file says Winner city 2,969 (Census vintage 2025) -- within 5%", "tolerance": "within 5%"}, {"record": "airport_flights_note", "field": "why", "subject": "airports", "claim": "airport code PIR", "claim_text": "Pierre Regional (PIR) is the nearest commercial airport;", "verdict": "confirmed", "federal": "the FAA enplanement file lists PIR: Pierre Regional, Pierre SD, 14,887 CY2024 enplanements", "tolerance": "exact code"}, {"record": "generators_note", "field": "value", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "Winner Regional Health (25-bed CAH);", "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": "generators_note", "field": "math", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "Hospital beds from Winner Regional's own site (25).", "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/certified beds at Winner Regional Health, the only hospital in town, from the hospital's own site.", "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": "trips_per_user_month", "field": "math", "subject": "population", "claim": "2,969 people", "claim_text": "An 11.7-minute mean commute in a town of 2969 people means even monthly-active residents take only a small handful of trips.", "verdict": "confirmed", "federal": "the note says 2,969; the Census file says Winner city 2,969 (Census vintage 2025) -- within 5%", "tolerance": "within 5%"}, {"record": "visitor_airport_ridehail_share", "field": "math", "subject": "airports", "claim": "14,887 passengers or enplanements", "claim_text": "PIR is 72.7 miles from Winner and boarded only 14887 passengers, so almost every air arrival rents a car rather than taking a long taxi.", "verdict": "confirmed", "federal": "the note gives 14,887; FAA CY2024 enplanements for PIR = 14,887 -- within 5%", "tolerance": "within 5%"}, {"record": "rides_per_day", "field": "math", "subject": "population", "claim": "2,969 people", "claim_text": "Residents: 2,969 people x 0.7611 adults = 2,260 adults;", "verdict": "confirmed", "federal": "the note says 2,969; the Census file says Winner city 2,969 (Census vintage 2025) -- within 5%", "tolerance": "within 5%"}, {"record": "rides_per_day", "field": "math", "subject": "airports", "claim": "airport code ICR", "claim_text": "(3) Winner Regional Airport (ICR) is general aviation with 5 CY2025 enplanements and no ground-transportation TNC pickup stats;", "verdict": "confirmed", "federal": "the FAA airport layer lists ICR (Winner Rgnl) -- no commercial enplanements, general aviation", "tolerance": "exact code"}, {"record": "notes.power", "field": "text", "subject": "chargers", "claim": "ChargePoint fast charging here", "claim_text": "DCFC $0.40/kWh is ChargePoint at Frontier Motors;", "verdict": "confirmed", "federal": "the snapshot lists FRONTIER MOTORS CPE250 (ChargePoint Network, 1 fast ports, 1.8 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": "population", "claim": "3,137 people", "claim_text": "City website still quotes 2000-census population 3,137 and 922.5 acres — use the settled federal 2.292 sq mi / 2,969 pop.", "verdict": "disputed", "federal": "the note says 3,137; the Census file says Winner city 2,969 (Census vintage 2025) / Tripp County 5,708 (Census vintage 2025)", "tolerance": "within 5%"}, {"record": "notes.geography", "field": "text", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "Hospital also operates long-term care (hospital site now says 40 skilled-nursing beds;", "verdict": "skipped", "federal": "no federal hospital file is cached (CMS Hospital General Information would be the file; it is not fetched by this rule)", "tolerance": ""}, {"record": "notes.geography", "field": "text", "subject": "hospitals", "claim": "hospital bed count", "claim_text": "2022 CHNA said 60) — hospital_beds is the 25-bed CAH only.", "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": 0, "answers_normally": 5, "passes_the_same_test_now": 0, "still_fails_the_same_test": 5, "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": "insurance_min_liability", "url": "https://law.justia.com/codes/south-dakota/title-32/chapter-40/section-32-40-9/", "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 3 of the 12 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 3 of the 12 distinctive words in this note"}, {"record": "power_tou_note", "url": "https://www.winnersd.org/electric", "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 6 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 2 of the 6 distinctive words in this note"}, {"record": "ridehail_present", "url": "https://www.uber.com/global/en/r/united-states/south-dakota/cities/", "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 3 of the 14 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 3 of the 14 distinctive words in this note"}, {"record": "transit_note", "url": "https://www.rocsinc.org/transit", "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 5 of the 12 distinctive words in this note)", "same_test_now": "still fails", "same_test_detail": "the page carries only 5 of the 12 distinctive words in this note"}, {"record": "visitor_party_size", "url": "https://sdvisit.com/sites/default/files/2025-07/Travel-South-Dakota_Future-Partners_South-Dakota-2024-Visitor-Profile_Webinar_July2025.pdf", "url_today": "answers normally", "detail_today": "HTTP 200 on the first attempt", "build_time_verdict": "never fetched: the cited page could not be fetched (HTTP 403)", "same_test_now": "still fails", "same_test_detail": "the digits 2.6 appear, but the record gave no words naming what they measure, so there is no way to tell this figure from any other number on the page"}]}}, "ok": true}