{
  "type": "county",
  "slug": "madison",
  "name": "Madison County",
  "fips": "39097",
  "population": 46985,
  "center": {
    "lat": 39.8940116,
    "lon": -83.4005338
  },
  "url": "https://crackedbuckeye.com/county/madison/",
  "api": "https://crackedbuckeye.com/api/county/madison.json",
  "tables": {
    "migr": {
      "name": "IRS county-to-county migration",
      "source": "IRS Statistics of Income county-to-county migration flows, 2022-2023",
      "fields": {
        "returns (households) that moved in, 2022 to 2023": 2651,
        "returns that moved out": 2193,
        "net returns (in minus out)": 458,
        "non-migrant (stayed put) returns": 32089,
        "list of up to 3 [origin place, return count] top sources of arrivals": [
          [
            "Franklin, OH",
            1351
          ],
          [
            "Union, OH",
            165
          ],
          [
            "Clark, OH",
            107
          ]
        ],
        "list of up to 3 [destination place, return count] top places leavers went": [
          [
            "Franklin, OH",
            677
          ],
          [
            "Union, OH",
            261
          ],
          [
            "Clark, OH",
            187
          ]
        ]
      }
    },
    "chr": {
      "name": "County Health Rankings 2025",
      "source": "County Health Rankings & Roadmaps 2025 (University of Wisconsin Population Health Institute)",
      "fields": {
        "years of potential life lost rate (premature death)": 7955.6,
        "% adults reporting fair or poor health": 20.4,
        "% Medicare enrollees with an annual flu vaccination": 46,
        "population per primary care physician": 3170.0,
        "population per mental health provider": 796.0,
        "population per dentist": 3349.0,
        "preventable hospital stay rate (per 100,000 Medicare enrollees)": 2493,
        "% uninsured": 7.1,
        "% households with severe housing problems": 8.8,
        "average daily PM2.5 (µg/m3)": 8.2,
        "'Yes'/'No' - any drinking-water violation reported in the county": "No",
        "income inequality ratio (80th/20th percentile household income)": 3.7,
        "% children in poverty": 11.8,
        "injury death rate (per 100,000)": 76.7,
        "life expectancy at birth (years)": 76.2,
        "child mortality rate (per 100,000, under 18)": 50.6,
        "infant mortality rate (per 1,000 live births)": 7.4,
        "suicide death rate (per 100,000)": 13.5,
        "teen birth rate (per 1,000 females 15-19)": 16.6,
        "median household income ($)": 81836,
        "county population": 44602,
        "health-outcomes ranking group: the county's CHR 2025 decile among U.S. counties, 1 to 10 (1=best)": 3,
        "health-factors ranking group: the county's CHR 2025 decile among U.S. counties, 1 to 10 (1=best)": 4
      }
    },
    "od": {
      "name": "CDC county overdose deaths",
      "source": "CDC NCHS provisional county drug overdose deaths, 12-month-ending counts; CDC VSRR for the Ohio row",
      "fields": {
        "latest 12-month-ending period (YYYY-MM)": "2024-03",
        "deaths in that period": 12,
        "deaths a year earlier": 12,
        "highest 12-month total since 2020": 21,
        "share still pending investigation (%)": 0,
        "deaths per 100,000 (computed from CHR population)": 26.9,
        "month of the highest total (optional, only when the source provided one)": "2020-04"
      }
    },
    "cpop": {
      "name": "Census county population estimates and history",
      "source": "Census Bureau Population Estimates Program (vintage 2025, join_popest.py); decennial counts 1900-1990 from 'Population of States and Counties of the United States 1790-1990', 2000/2010 from intercensal files",
      "fields": {
        "April 2020 census population": 43855,
        "current population estimate (July of the vintage year in CPOP_YEAR)": 46985,
        "net domestic migration, latest year alone (can be negative)": 1220,
        "net international migration, latest year alone": 16,
        "cumulative births since 2020": 2157,
        "cumulative deaths since 2020": 2413,
        "cumulative net migration since 2020": 3289,
        "1900 population": 20590,
        "1950 population": 22300,
        "1970 population": 28318,
        "2000 population": 40210,
        "peak year (population estimates program, vintage-to-date)": 2025,
        "population in the peak year": 46985,
        "year first counted, when before 1900": 1810,
        "population in that first-counted year": 1603,
        "population by 1850, when first counted before 1850": 10015
      }
    },
    "laus": {
      "name": "BLS county unemployment (LAUS)",
      "source": "BLS Local Area Unemployment Statistics",
      "fields": {
        "latest month (YYYY-MM)": "2026-07",
        "unemployment rate (%), latest month": 2.9,
        "unemployment rate (%), a year earlier": 4.2,
        "labor force": 21193,
        "unemployed (looking for work)": 615,
        "unemployment rate (%) for all of 2019, or null": null
      }
    },
    "qcew": {
      "name": "BLS Quarterly Census of Employment and Wages",
      "source": "BLS Quarterly Census of Employment and Wages, 2026 Q1",
      "fields": {
        "year": 2026,
        "quarter (1-4)": 1,
        "average weekly wage ($)": 1116,
        "% change on the year": 1.6,
        "employment": 23819,
        "% change in employment": 2.3,
        "establishment count": 1077,
        "list of up to 3 [sector name, employment, avg weekly wage] largest private sectors": [
          [
            "transportation and warehousing",
            9334,
            1030
          ],
          [
            "manufacturing",
            3349,
            1223
          ],
          [
            "retail",
            2017,
            849
          ]
        ]
      }
    },
    "fed": {
      "name": "USAspending county federal money",
      "source": "USAspending federal awards by county of performance, fiscal 2025",
      "fields": {
        "contract obligations ($, fiscal 2025)": 1845783,
        "contract $ per resident": 42,
        "grant obligations ($)": 25545676,
        "grant $ per resident": 583,
        "loan guarantees and loans ($)": -68530,
        "direct payments to people/organizations ($)": 244931521
      }
    },
    "bea": {
      "name": "BEA county economic accounts",
      "source": "BEA regional accounts: county GDP (CAGDP1), per capita personal income (CAINC1), 2024",
      "fields": {
        "GDP year": 2024,
        "real GDP ($ millions, 2017 chained dollars)": 2283,
        "% change in real GDP since 2019": 19.4,
        "personal income per capita ($)": 55980,
        "personal income year": 2024,
        "% change in per-capita income since 2019 (before inflation)": 31.4,
        "rank among Ohio's 88 counties by per-capita income": 41
      }
    },
    "rucc": {
      "name": "USDA Rural-Urban Continuum Code",
      "source": "USDA ERS Rural-Urban Continuum Codes, 2023",
      "fields": {
        "RUCC code (1-9, 1=most metro)": 1,
        "code description": "Metro - Counties in metro areas of 1 million population or more"
      }
    },
    "nws": {
      "name": "National Weather Service warning counts",
      "source": "National Weather Service warnings/watches/advisories, Iowa Environmental Mesonet VTEC archive, since 2015",
      "fields": {
        "total warning/watch/advisory products issued since 2015": 1019,
        "Tornado Warning count": 28,
        "Tornado Watch count": 26,
        "Severe Thunderstorm Warning count": 191,
        "Flash Flood Warning count": 19,
        "Flood Warning count": 13,
        "Areal Flood Warning count": 12,
        "Areal Flood Advisory count": 128,
        "Winter Storm Warning count": 11,
        "Winter Weather Advisory count": 81,
        "Blizzard Warning count": 0,
        "Excessive Heat Warning count": 3,
        "Heat Advisory count": 25,
        "Extreme Cold Warning count": 3,
        "Wind Chill Warning count": 5,
        "Snow Squall Warning count": 7,
        "map of {year: tornado warning count} for years with at least one": {
          "2016": 1,
          "2017": 3,
          "2018": 3,
          "2019": 6,
          "2020": 3,
          "2022": 1,
          "2023": 3,
          "2024": 5,
          "2025": 1,
          "2026": 2
        }
      }
    },
    "cancer": {
      "name": "NCI county cancer incidence/mortality",
      "source": "NCI State Cancer Profiles, county incidence 2018-2022 and mortality 2019-2023",
      "fields": {
        "[age-adjusted incidence rate per 100,000, a comparison or CI-adjacent figure, another comparison figure, annual case count, trend direction, annual percent change] all invasive cancer sites combined": [
          494.2,
          null,
          null,
          272.0,
          "stable",
          0.6
        ],
        "[age-adjusted death rate per 100,000, annual death count, trend direction, annual percent change]": [
          169.8,
          93.0,
          "falling",
          -1.2
        ],
        "[incidence rate per 100,000, annual case count, trend direction] and the same 3-element shape for other site-specific keys": [
          74.4,
          43.0,
          "stable"
        ],
        "same 3-element shape as 'lung'": [
          24.2,
          13.0,
          "stable"
        ]
      }
    },
    "cchl": {
      "name": "County H2Ohio chloride-reduction grant count",
      "source": "Ohio EPA H2Ohio chloride reduction grants",
      "fields": {
        "count of H2Ohio road-salt/chloride reduction grants awarded in the county": 2
      }
    },
    "ers": {
      "name": "USDA county economic typology",
      "source": "USDA ERS county typology codes, 2015 edition",
      "fields": {
        "metro flag (1=metro, 0=nonmetro)": 1,
        "economic dependency type ('Nonspecialized'/'Manufacturing'/'Federal/State Government'/'Mining'/'Recreation'/'Farming')": "Nonspecialized",
        "low-education flag (0/1)": 0,
        "low-employment flag (0/1)": 1,
        "population-loss flag (0/1)": 0,
        "retirement-destination flag (0/1)": 0,
        "persistent-poverty flag (0/1)": 0,
        "persistent-child-poverty flag (0/1)": 0
      }
    },
    "medi": {
      "name": "CMS county Medicare enrollment",
      "source": "CMS Medicare Monthly Enrollment by county, 2025",
      "fields": {
        "enrollment year": 2025,
        "total Medicare enrollees": 9752,
        "% choosing Medicare Advantage": 57.5,
        "enrollees aged 65+": 8762,
        "enrollees under 65 with disabilities": 990,
        "% also enrolled in Medicaid (dual-eligible)": 12.0,
        "% with Part D drug coverage": 85.1,
        "prior enrollment count (comparison)": 8026,
        "year of that prior count": 2020
      }
    },
    "saipe": {
      "name": "Census Small Area Income and Poverty Estimates",
      "source": "Census SAIPE 2024 county estimates",
      "fields": {
        "% poverty (all ages)": 8.8,
        "% child poverty": 10.6,
        "median household income ($)": 84632
      }
    },
    "aqiy": {
      "name": "2026 year-to-date county AQI",
      "source": "EPA daily county AQI file for 2026 (January to the file's latest date)",
      "fields": {
        "days indexed so far in 2026": 61,
        "good AQI days": 56,
        "moderate AQI days": 5,
        "unhealthy-for-sensitive-groups-or-worse days": 0,
        "peak AQI value": 71,
        "pollutant responsible for the peak": "Ozone",
        "date of the peak (YYYY-MM-DD)": "2026-04-30"
      }
    },
    "airs": {
      "name": "EPA Green Book nonattainment/maintenance status",
      "source": "EPA Green Book county nonattainment/maintenance status (nayro.xls, September 2026)",
      "fields": {
        "list of [pollutant/standard, area name, classification, area-share code] nonattainment rows": [],
        "list of [pollutant/standard, area name, status, area-share code ('W'=whole county or similar, 'Whole'), year redesignated to maintenance] maintenance rows": [
          [
            "8-Hour Ozone (2008)",
            "Columbus, OH",
            "Marginal",
            null,
            "2016"
          ]
        ]
      }
    },
    "hma": {
      "name": "FEMA Hazard Mitigation Assistance county history",
      "source": "OpenFEMA Hazard Mitigation Assistance projects, v4 API",
      "fields": {
        "mitigation project count since the start year": 1,
        "total project worth ($)": 15900,
        "federal share ($)": 11925,
        "properties covered": 0,
        "list of up to 3 [project type, count] rows": [
          [
            "Local Multihazard Mitigation Plan",
            1
          ]
        ],
        "start year on file": 2009,
        "[type, cost $, grantee, fiscal year] largest project": [
          "Local Multihazard Mitigation Plan",
          15900,
          "Madison (County)",
          2009
        ]
      }
    },
    "drought": {
      "name": "U.S. Drought Monitor county history",
      "source": "U.S. Drought Monitor weekly county statistics, 2000-2026",
      "fields": {
        "weeks in moderate drought or worse since 2020": 36,
        "weeks severe drought or worse since 2020": 4,
        "worst drought category since 2000": "severe drought",
        "date of that worst reading": "2024-09-24",
        "share (%) of all weeks since 2000 in any drought": 6,
        "as-of date of the latest reading": "2026-09-01",
        "current drought status text": "no drought",
        "weeks at least abnormally dry since 2020": 81,
        "year of the most recent severe-or-worse spell": "2024",
        "weeks of that most recent severe spell": 4
      }
    },
    "storms": {
      "name": "NOAA Storm Events county summaries",
      "source": "NOAA Storm Events database, 2016-2026",
      "fields": {
        "severe-weather report count since 2016": 79,
        "list of up to 4 [event family, count] rows": [
          [
            "damaging thunderstorm wind",
            48
          ],
          [
            "river and street flooding",
            12
          ],
          [
            "hail",
            10
          ],
          [
            "tornadoes",
            6
          ]
        ],
        "[largest hail size in, date] or null": [
          1.5,
          "21-MAY-18"
        ],
        "[strongest wind gust mph, date] or null": [
          69,
          "28-FEB-24"
        ],
        "death count": 0,
        "injury count": 1,
        "reported damage ($)": 1644000,
        "[event name, date, damage $, narrative text] costliest event": [
          "tornadoes",
          "28-FEB-24",
          1000000.0,
          "The tornado first touched down in Clark County at 0452EST, 5 miles south-southeast of Springfield. It moved east-northeast and crossed into Madison County at 05"
        ],
        "list of up to 3 [zone-based advisory family, count] rows": [
          [
            "winter weather",
            37
          ],
          [
            "high wind",
            9
          ],
          [
            "winter storms",
            8
          ]
        ],
        "[first year, last year] of the series": [
          2016,
          2026
        ]
      }
    },
    "fluor": {
      "name": "County fluoridation-rate summary",
      "source": "Ohio Department of Health county fluoridation profiles (DataOhio)",
      "fields": {
        "% of county population served by fluoridated water": 98.8
      }
    },
    "airtox": {
      "name": "County air-toxics summary",
      "source": "EPA AirToxScreen 2020",
      "fields": {
        "lifetime cancer risk per million from outdoor air toxics": 30.0,
        "list of up to 2 [pollutant name, risk contribution] top contributors": [
          [
            "formaldehyde",
            16.8
          ],
          [
            "carbon tetrachloride",
            2.9
          ]
        ]
      }
    },
    "hhs": {
      "name": "House-pack source registry",
      "source": "verbatim from scripts/build.py's own 'hhs' assembly comment (line 2049 as read for W1-05)",
      "fields": {
        "county": "Madison",
        "depth ('deep' full appraisal record or a thinner OGRIP-only record)": "deep",
        "source label": "Madison County Auditor, ISSG public records extract (CAMA, values, sales, tax)",
        "office name/address": "Madison County Auditor (London, Ohio); parcel polygons from the Madison County Engineer",
        "landing page URL": "https://auditor.co.madison.oh.us/Posts?category=Data%20Downloads",
        "snapshot date": "2026-09-13",
        "records placed": 14657,
        "parcel-page URL pattern ('{pid}' placeholder) or null": "https://auditor.co.madison.oh.us/Parcel?Parcel={pid}",
        "share of OGRIP parcels without a land-use class, or null": null,
        "values status note (e.g. working values not yet certified) or null": null,
        "source slug": "madison_auditor"
      }
    }
  },
  "places": [
    {
      "slug": "london",
      "name": "London (city)",
      "type": "city",
      "url": "https://crackedbuckeye.com/place/london/"
    },
    {
      "slug": "union-township-madison-county",
      "name": "Union Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/union-township-madison-county/"
    },
    {
      "slug": "west-jefferson",
      "name": "West Jefferson (village)",
      "type": "village",
      "url": "https://crackedbuckeye.com/place/west-jefferson/"
    },
    {
      "slug": "somerford-township-madison-county",
      "name": "Somerford Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/somerford-township-madison-county/"
    },
    {
      "slug": "jefferson-township-madison-county",
      "name": "Jefferson Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/jefferson-township-madison-county/"
    },
    {
      "slug": "mount-sterling",
      "name": "Mount Sterling (village)",
      "type": "village",
      "url": "https://crackedbuckeye.com/place/mount-sterling/"
    },
    {
      "slug": "monroe-township-madison-county",
      "name": "Monroe Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/monroe-township-madison-county/"
    },
    {
      "slug": "fairfield-township-madison-county",
      "name": "Fairfield Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/fairfield-township-madison-county/"
    },
    {
      "slug": "pleasant-township-madison-county",
      "name": "Pleasant Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/pleasant-township-madison-county/"
    },
    {
      "slug": "monroe-township-pickaway-county",
      "name": "Monroe Township, Pickaway County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/monroe-township-pickaway-county/"
    },
    {
      "slug": "madison-township-fayette-county",
      "name": "Madison Township, Fayette County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/madison-township-fayette-county/"
    },
    {
      "slug": "deercreek-township-madison-county",
      "name": "Deercreek Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/deercreek-township-madison-county/"
    },
    {
      "slug": "range-township-madison-county",
      "name": "Range Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/range-township-madison-county/"
    },
    {
      "slug": "paint-township-madison-county",
      "name": "Paint Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/paint-township-madison-county/"
    },
    {
      "slug": "pike-township-madison-county",
      "name": "Pike Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/pike-township-madison-county/"
    },
    {
      "slug": "oak-run-township-madison-county",
      "name": "Oak Run Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/oak-run-township-madison-county/"
    },
    {
      "slug": "south-solon",
      "name": "South Solon (village)",
      "type": "village",
      "url": "https://crackedbuckeye.com/place/south-solon/"
    },
    {
      "slug": "stokes-township-madison-county",
      "name": "Stokes Township, Madison County",
      "type": "township",
      "url": "https://crackedbuckeye.com/place/stokes-township-madison-county/"
    },
    {
      "slug": "midway",
      "name": "Midway (village)",
      "type": "village",
      "url": "https://crackedbuckeye.com/place/midway/"
    }
  ],
  "zips": [
    {
      "zip": "43140",
      "name": "London",
      "population": 24030,
      "url": "https://crackedbuckeye.com/zip/43140/"
    },
    {
      "zip": "43162",
      "name": "West Jefferson",
      "population": 6945,
      "url": "https://crackedbuckeye.com/zip/43162/"
    },
    {
      "zip": "43143",
      "name": "Mount Sterling",
      "population": 5935,
      "url": "https://crackedbuckeye.com/zip/43143/"
    },
    {
      "zip": "43153",
      "name": "South Solon",
      "population": 861,
      "url": "https://crackedbuckeye.com/zip/43153/"
    },
    {
      "zip": "43029",
      "name": "Pike Township and Irwin",
      "population": 629,
      "url": "https://crackedbuckeye.com/zip/43029/"
    },
    {
      "zip": "43151",
      "name": "Midway and Sedalia",
      "population": 269,
      "url": "https://crackedbuckeye.com/zip/43151/"
    }
  ],
  "generated": "2026-09-16",
  "license": "CC BY 4.0 for the compilation; each source keeps its own terms",
  "cite": "Cracked Buckeye (Open Shower Co), \"Madison County\", https://crackedbuckeye.com/county/madison/, built 2026-09-16, accessed [date].",
  "schema": "https://crackedbuckeye.com/api/schema.json"
}
