[
  {
    "slug": "toledo",
    "name": "Toledo",
    "state": "OH",
    "zips": [
      "43601",
      "43602",
      "43603",
      "43604",
      "43605",
      "43606",
      "43607",
      "43608",
      "43609",
      "43610",
      "43611",
      "43612",
      "43613",
      "43614",
      "43615",
      "43616",
      "43617",
      "43620",
      "43623"
    ],
    "county": "Lucas",
    "metro": "toledo",
    "population2026": 265300,
    "context": "Older housing stock (median 1957) drives demand for HVAC, sewer-line, and panel-upgrade work. Lake-Erie weather extremes hit furnaces hard November–March."
  },
  {
    "slug": "sylvania",
    "name": "Sylvania",
    "state": "OH",
    "zips": [
      "43560",
      "43617"
    ],
    "county": "Lucas",
    "metro": "toledo",
    "population2026": 19500,
    "context": "Affluent NW suburb. High-end renovation work + finished-basement HVAC."
  },
  {
    "slug": "maumee",
    "name": "Maumee",
    "state": "OH",
    "zips": [
      "43537"
    ],
    "county": "Lucas",
    "metro": "toledo",
    "population2026": 13900,
    "context": "Riverfront homes. Sump-pump and basement-waterproofing demand peaks in spring."
  },
  {
    "slug": "perrysburg",
    "name": "Perrysburg",
    "state": "OH",
    "zips": [
      "43551",
      "43552"
    ],
    "county": "Wood",
    "metro": "toledo",
    "population2026": 26200,
    "context": "Fast-growing south metro. New-construction work + warranty appliance installs."
  },
  {
    "slug": "oregon",
    "name": "Oregon",
    "state": "OH",
    "zips": [
      "43616",
      "43618"
    ],
    "county": "Lucas",
    "metro": "toledo",
    "population2026": 19700,
    "context": "East-side. Refinery-district homes; gas-line work common."
  },
  {
    "slug": "holland",
    "name": "Holland",
    "state": "OH",
    "zips": [
      "43528"
    ],
    "county": "Lucas",
    "metro": "toledo",
    "population2026": 1800,
    "context": "Small village west of Toledo."
  },
  {
    "slug": "rossford",
    "name": "Rossford",
    "state": "OH",
    "zips": [
      "43460"
    ],
    "county": "Wood",
    "metro": "toledo",
    "population2026": 6400,
    "context": "South of Toledo across Maumee River."
  },
  {
    "slug": "whitehouse",
    "name": "Whitehouse",
    "state": "OH",
    "zips": [
      "43571"
    ],
    "county": "Lucas",
    "metro": "toledo",
    "population2026": 4500,
    "context": "Far SW suburb."
  },
  {
    "slug": "waterville",
    "name": "Waterville",
    "state": "OH",
    "zips": [
      "43566"
    ],
    "county": "Lucas",
    "metro": "toledo",
    "population2026": 5700,
    "context": "Maumee-river suburb."
  },
  {
    "slug": "ottawa-hills",
    "name": "Ottawa Hills",
    "state": "OH",
    "zips": [
      "43615",
      "43606"
    ],
    "county": "Lucas",
    "metro": "toledo",
    "population2026": 4500,
    "context": "Tree-canopied affluent enclave."
  },
  {
    "slug": "northwood",
    "name": "Northwood",
    "state": "OH",
    "zips": [
      "43619"
    ],
    "county": "Wood",
    "metro": "toledo",
    "population2026": 5300,
    "context": "East Toledo metro across the Maumee River. Industrial corridor + residential."
  },
  {
    "slug": "swanton",
    "name": "Swanton",
    "state": "OH",
    "zips": [
      "43558"
    ],
    "county": "Fulton",
    "population2026": 3900,
    "metro": "toledo",
    "context": "Far west metro on the Lucas/Fulton county line. Rural-suburban mix."
  },
  {
    "slug": "bowling-green",
    "name": "Bowling Green",
    "state": "OH",
    "zips": [
      "43402"
    ],
    "county": "Wood",
    "population2026": 32500,
    "metro": "toledo",
    "context": "Wood County seat, 25 miles south of Toledo. Home to Bowling Green State University — older near-campus housing stock + newer subdivisions on the outskirts. BGSU drives steady demand for student-rental maintenance, cheap-but-fast plumbing, and seasonal gutter / roof work on rental homes."
  },
  {
    "slug": "walbridge",
    "name": "Walbridge",
    "state": "OH",
    "zips": [
      "43465"
    ],
    "county": "Wood",
    "population2026": 3000,
    "metro": "toledo",
    "context": "Small Wood County village between Northwood and Bowling Green. Quiet residential mix."
  },
  {
    "slug": "findlay",
    "name": "Findlay",
    "state": "OH",
    "zips": [
      "45839",
      "45840"
    ],
    "county": "Hancock",
    "population2026": 41500,
    "metro": "findlay",
    "context": "Hancock County seat, ~35 miles south of Bowling Green. Industrial city — Marathon Petroleum HQ, Cooper Tire, Whirlpool plant. Older brick housing stock downtown + suburban subdivisions north and east. Flag City USA. Different utility than Toledo: AEP Ohio for electric (city), Hancock-Wood Electric Cooperative for rural; Columbia Gas same."
  },
  {
    "slug": "arcadia",
    "name": "Arcadia",
    "state": "OH",
    "zips": [
      "44804"
    ],
    "county": "Hancock",
    "population2026": 600,
    "metro": "findlay",
    "context": "Small Hancock County village northeast of Findlay, near I-75 + State Route 12."
  },
  {
    "slug": "mccomb",
    "name": "McComb",
    "state": "OH",
    "zips": [
      "45858"
    ],
    "county": "Hancock",
    "population2026": 1700,
    "metro": "findlay",
    "context": "Northwest Hancock County village, agricultural area + small residential."
  },
  {
    "slug": "wauseon",
    "name": "Wauseon",
    "state": "OH",
    "zips": [
      "43567"
    ],
    "county": "Fulton",
    "population2026": 7400,
    "metro": "findlay",
    "context": "Fulton County seat. Agricultural service hub on US-20."
  },
  {
    "slug": "napoleon",
    "name": "Napoleon",
    "state": "OH",
    "zips": [
      "43545"
    ],
    "county": "Henry",
    "population2026": 8800,
    "metro": "findlay",
    "context": "Henry County seat on the Maumee River. Campbell Soup plant + Norfolk Southern rail."
  },
  {
    "slug": "bryan",
    "name": "Bryan",
    "state": "OH",
    "zips": [
      "43506"
    ],
    "county": "Williams",
    "population2026": 8500,
    "metro": "findlay",
    "context": "Williams County seat. Home of Spangler Candy Co (Dum-Dums lollipops)."
  },
  {
    "slug": "defiance",
    "name": "Defiance",
    "state": "OH",
    "zips": [
      "43512"
    ],
    "county": "Defiance",
    "population2026": 16500,
    "metro": "findlay",
    "context": "Three-rivers convergence (Maumee/Auglaize/Tiffin). Industrial heritage + GM Powertrain."
  },
  {
    "slug": "hicksville",
    "name": "Hicksville",
    "state": "OH",
    "zips": [
      "43526"
    ],
    "county": "Defiance",
    "population2026": 3500,
    "metro": "findlay",
    "context": "West Defiance County village near the Indiana border."
  },
  {
    "slug": "paulding",
    "name": "Paulding",
    "state": "OH",
    "zips": [
      "45879"
    ],
    "county": "Paulding",
    "population2026": 3500,
    "metro": "findlay",
    "context": "Paulding County seat. Heavily agricultural rural community."
  },
  {
    "slug": "ottawa",
    "name": "Ottawa",
    "state": "OH",
    "zips": [
      "45875"
    ],
    "county": "Putnam",
    "population2026": 4500,
    "metro": "findlay",
    "context": "Putnam County seat (note: not the same as Ottawa County). Strong German-Catholic heritage and ag economy."
  },
  {
    "slug": "lima",
    "name": "Lima",
    "state": "OH",
    "zips": [
      "45801",
      "45804",
      "45805",
      "45806",
      "45807"
    ],
    "county": "Allen",
    "population2026": 35000,
    "metro": "findlay",
    "context": "Allen County seat — the largest city west of Toledo in NW Ohio. Husky/Cenovus refinery + Procter & Gamble + the Joint Systems Manufacturing Center anchor the economy. Mix of older brick housing and newer subdivisions."
  },
  {
    "slug": "wapakoneta",
    "name": "Wapakoneta",
    "state": "OH",
    "zips": [
      "45895"
    ],
    "county": "Auglaize",
    "population2026": 9800,
    "metro": "findlay",
    "context": "Auglaize County seat. Birthplace of Neil Armstrong (Armstrong Air & Space Museum)."
  },
  {
    "slug": "saint-marys",
    "name": "Saint Marys",
    "state": "OH",
    "zips": [
      "45885"
    ],
    "county": "Auglaize",
    "population2026": 8200,
    "metro": "findlay",
    "context": "On Grand Lake St. Marys, Ohio's largest inland lake. Lake-shore HVAC + dock work demand."
  },
  {
    "slug": "celina",
    "name": "Celina",
    "state": "OH",
    "zips": [
      "45822"
    ],
    "county": "Mercer",
    "population2026": 10400,
    "metro": "findlay",
    "context": "Mercer County seat on the western shore of Grand Lake St. Marys."
  },
  {
    "slug": "van-wert",
    "name": "Van Wert",
    "state": "OH",
    "zips": [
      "45891"
    ],
    "county": "Van Wert",
    "population2026": 10800,
    "metro": "findlay",
    "context": "Van Wert County seat near the Indiana border. Light manufacturing + agriculture."
  },
  {
    "slug": "kenton",
    "name": "Kenton",
    "state": "OH",
    "zips": [
      "43326"
    ],
    "county": "Hardin",
    "population2026": 7800,
    "metro": "findlay",
    "context": "Hardin County seat. Small city between Lima and Marion in rural ag country."
  },
  {
    "slug": "upper-sandusky",
    "name": "Upper Sandusky",
    "state": "OH",
    "zips": [
      "43351"
    ],
    "county": "Wyandot",
    "population2026": 6500,
    "metro": "findlay",
    "context": "Wyandot County seat. Named for the Wyandot Native American tribe."
  },
  {
    "slug": "tiffin",
    "name": "Tiffin",
    "state": "OH",
    "zips": [
      "44883"
    ],
    "county": "Seneca",
    "population2026": 17500,
    "metro": "findlay",
    "context": "Seneca County seat. Home to Heidelberg University and Tiffin University."
  },
  {
    "slug": "fostoria",
    "name": "Fostoria",
    "state": "OH",
    "zips": [
      "44830"
    ],
    "county": "Seneca",
    "population2026": 13000,
    "metro": "findlay",
    "context": "Tri-county city (Hancock/Wood/Seneca). Old glass-manufacturing town."
  },
  {
    "slug": "fremont",
    "name": "Fremont",
    "state": "OH",
    "zips": [
      "43420"
    ],
    "county": "Sandusky",
    "population2026": 16000,
    "metro": "findlay",
    "context": "Sandusky County seat. Birthplace of Rutherford B. Hayes (Hayes Presidential Library)."
  },
  {
    "slug": "port-clinton",
    "name": "Port Clinton",
    "state": "OH",
    "zips": [
      "43452"
    ],
    "county": "Ottawa",
    "population2026": 6000,
    "metro": "findlay",
    "context": "Ottawa County seat on Lake Erie. Walleye Capital of the World. Heavy seasonal/vacation home market."
  },
  {
    "slug": "oak-harbor",
    "name": "Oak Harbor",
    "state": "OH",
    "zips": [
      "43449"
    ],
    "county": "Ottawa",
    "population2026": 2700,
    "metro": "findlay",
    "context": "Ottawa County village on the Portage River. Davis-Besse nuclear plant nearby."
  },
  {
    "slug": "sandusky-city",
    "name": "Sandusky",
    "state": "OH",
    "zips": [
      "44870"
    ],
    "county": "Erie",
    "population2026": 24400,
    "metro": "findlay",
    "context": "Erie County seat on Lake Erie. Home to Cedar Point. Heavy vacation-rental market."
  },
  {
    "slug": "huron",
    "name": "Huron",
    "state": "OH",
    "zips": [
      "44839"
    ],
    "county": "Erie",
    "population2026": 7000,
    "metro": "findlay",
    "context": "Lakefront city east of Sandusky. Boating + Lake Erie shoreline homes."
  },
  {
    "slug": "vermilion",
    "name": "Vermilion",
    "state": "OH",
    "zips": [
      "44089"
    ],
    "county": "Erie",
    "population2026": 10500,
    "metro": "findlay",
    "context": "Lake Erie city straddling Erie/Lorain counties. Maritime + tourism heritage."
  },
  {
    "slug": "bucyrus",
    "name": "Bucyrus",
    "state": "OH",
    "zips": [
      "44820"
    ],
    "county": "Crawford",
    "population2026": 11300,
    "metro": "findlay",
    "context": "Crawford County seat. Bratwurst Capital of America. Rural with manufacturing heritage."
  },
  {
    "slug": "galion",
    "name": "Galion",
    "state": "OH",
    "zips": [
      "44833"
    ],
    "county": "Crawford",
    "population2026": 10300,
    "metro": "findlay",
    "context": "Crawford County city, rail-junction heritage."
  },
  {
    "slug": "marion",
    "name": "Marion",
    "state": "OH",
    "zips": [
      "43302"
    ],
    "county": "Marion",
    "population2026": 35000,
    "metro": "findlay",
    "context": "Marion County seat. Birthplace of Warren G. Harding (Harding Home memorial). Note: 740 area code."
  },
  {
    "slug": "columbus",
    "name": "Columbus",
    "state": "OH",
    "zips": [
      "43201",
      "43202",
      "43203",
      "43204",
      "43205",
      "43206",
      "43207",
      "43209",
      "43210",
      "43211",
      "43212",
      "43213",
      "43214",
      "43215",
      "43219",
      "43220",
      "43221",
      "43222",
      "43223",
      "43224",
      "43227",
      "43228",
      "43229",
      "43230",
      "43231",
      "43232",
      "43235"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 910000,
    "context": "Ohio's largest city + state capital. Mix of historic Short North + German Village brick housing (drives sewer-line and basement-waterproofing demand) and rapidly-growing newer suburbs (warranty appliance installs, panel upgrades for EV chargers). Heavy Ohio State University rental-maintenance market."
  },
  {
    "slug": "dublin",
    "name": "Dublin",
    "state": "OH",
    "zips": [
      "43016",
      "43017"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 49000,
    "context": "Affluent NW Columbus suburb. High-end remodel work + finished-basement HVAC. Strong tech-corporate corridor (Cardinal Health, IGS)."
  },
  {
    "slug": "westerville",
    "name": "Westerville",
    "state": "OH",
    "zips": [
      "43081",
      "43082"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 40500,
    "context": "NE Columbus suburb. Older Uptown housing + newer subdivision sprawl. Otterbein University in town."
  },
  {
    "slug": "hilliard",
    "name": "Hilliard",
    "state": "OH",
    "zips": [
      "43026"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 38500,
    "context": "Fast-growing west Columbus suburb. New-construction work + warranty appliance installs."
  },
  {
    "slug": "upper-arlington",
    "name": "Upper Arlington",
    "state": "OH",
    "zips": [
      "43220",
      "43221"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 36000,
    "context": "Tree-canopied affluent enclave west of OSU. Historic 1920s-1940s housing — drives knob-and-tube remediation and old-galvanized-pipe repipe demand."
  },
  {
    "slug": "reynoldsburg",
    "name": "Reynoldsburg",
    "state": "OH",
    "zips": [
      "43068"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 40000,
    "context": "East Columbus suburb. Diverse housing stock + I-70 commercial corridor."
  },
  {
    "slug": "grove-city",
    "name": "Grove City",
    "state": "OH",
    "zips": [
      "43123"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 43000,
    "context": "SW Columbus suburb. Strong subdivision growth + I-71 commuter housing."
  },
  {
    "slug": "worthington",
    "name": "Worthington",
    "state": "OH",
    "zips": [
      "43085"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 15000,
    "context": "Historic district north of Columbus. Pre-1950 housing dominates downtown — galvanized-pipe + knob-and-tube common."
  },
  {
    "slug": "bexley",
    "name": "Bexley",
    "state": "OH",
    "zips": [
      "43209"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 13500,
    "context": "Affluent inner-ring suburb east of downtown. Pre-1940 brick housing + Capital University. High-end renovation market."
  },
  {
    "slug": "whitehall",
    "name": "Whitehall",
    "state": "OH",
    "zips": [
      "43213"
    ],
    "county": "Franklin",
    "metro": "columbus",
    "population2026": 18500,
    "context": "Working-class east-side enclave. Older 1950s ranch housing + revitalizing commercial corridor."
  },
  {
    "slug": "delaware",
    "name": "Delaware",
    "state": "OH",
    "zips": [
      "43015"
    ],
    "county": "Delaware",
    "metro": "columbus",
    "population2026": 43000,
    "context": "Delaware County seat just north of Columbus. Ohio Wesleyan University drives student-rental maintenance. Fastest-growing county in Ohio — heavy new-construction warranty work."
  },
  {
    "slug": "powell",
    "name": "Powell",
    "state": "OH",
    "zips": [
      "43065"
    ],
    "county": "Delaware",
    "metro": "columbus",
    "population2026": 14500,
    "context": "Affluent Delaware County suburb. High-end finishes + smart-home installs. Columbus Zoo nearby."
  },
  {
    "slug": "marysville",
    "name": "Marysville",
    "state": "OH",
    "zips": [
      "43040"
    ],
    "county": "Union",
    "metro": "columbus",
    "population2026": 27000,
    "context": "Union County seat. Honda manufacturing center + fast-growing residential."
  },
  {
    "slug": "london",
    "name": "London",
    "state": "OH",
    "zips": [
      "43140"
    ],
    "county": "Madison",
    "metro": "columbus",
    "population2026": 10500,
    "context": "Madison County seat. Small-town Ohio surrounded by farmland."
  },
  {
    "slug": "circleville",
    "name": "Circleville",
    "state": "OH",
    "zips": [
      "43113"
    ],
    "county": "Pickaway",
    "metro": "columbus",
    "population2026": 13500,
    "context": "Pickaway County seat. Pumpkin Show host city. Older brick housing stock."
  },
  {
    "slug": "lancaster",
    "name": "Lancaster",
    "state": "OH",
    "zips": [
      "43130"
    ],
    "county": "Fairfield",
    "metro": "columbus",
    "population2026": 41000,
    "context": "Fairfield County seat. Anchor Hocking glass heritage + historic Square 13 downtown. Older Victorian housing — galvanized + knob-and-tube common."
  },
  {
    "slug": "pickerington",
    "name": "Pickerington",
    "state": "OH",
    "zips": [
      "43147"
    ],
    "county": "Fairfield",
    "metro": "columbus",
    "population2026": 24000,
    "context": "Fast-growing east Columbus suburb in Fairfield County. New-construction warranty work + EV charger installs."
  },
  {
    "slug": "newark",
    "name": "Newark",
    "state": "OH",
    "zips": [
      "43055",
      "43056"
    ],
    "county": "Licking",
    "metro": "columbus",
    "population2026": 50500,
    "context": "Licking County seat. Pre-1950 housing dominates downtown. The Works museum + Longaberger basket heritage."
  },
  {
    "slug": "heath",
    "name": "Heath",
    "state": "OH",
    "zips": [
      "43056"
    ],
    "county": "Licking",
    "metro": "columbus",
    "population2026": 11000,
    "context": "Licking County retail corridor adjacent to Newark. Highway-driven housing."
  },
  {
    "slug": "pataskala",
    "name": "Pataskala",
    "state": "OH",
    "zips": [
      "43062"
    ],
    "county": "Licking",
    "metro": "columbus",
    "population2026": 18500,
    "context": "Fast-growing east-Columbus suburb in Licking County."
  },
  {
    "slug": "mount-vernon",
    "name": "Mount Vernon",
    "state": "OH",
    "zips": [
      "43050"
    ],
    "county": "Knox",
    "metro": "columbus",
    "population2026": 17500,
    "context": "Knox County seat. Kenyon College nearby. Pre-1900 brick downtown + farmland surroundings."
  },
  {
    "slug": "mount-gilead",
    "name": "Mount Gilead",
    "state": "OH",
    "zips": [
      "43338"
    ],
    "county": "Morrow",
    "metro": "columbus",
    "population2026": 3500,
    "context": "Morrow County seat. Small-town Ohio between Columbus and Mansfield."
  },
  {
    "slug": "cleveland",
    "name": "Cleveland",
    "state": "OH",
    "zips": [
      "44102",
      "44103",
      "44104",
      "44105",
      "44106",
      "44108",
      "44109",
      "44110",
      "44111",
      "44113",
      "44114",
      "44115",
      "44119",
      "44120",
      "44127"
    ],
    "county": "Cuyahoga",
    "metro": "cleveland",
    "population2026": 365000,
    "context": "Largest NE Ohio city. Pre-1940 housing stock dominates inner neighborhoods (Tremont, Ohio City, Slavic Village) — heavy galvanized-pipe and lead-line replacement work. Lake Erie shore winters drive heavy ice-dam and roof-storm-damage demand. Cleveland Water (not city) operates supply."
  },
  {
    "slug": "lakewood",
    "name": "Lakewood",
    "state": "OH",
    "zips": [
      "44107"
    ],
    "county": "Cuyahoga",
    "metro": "cleveland",
    "population2026": 50000,
    "context": "Dense inner-ring suburb west of Cleveland. Pre-1930 brick housing — galvanized + boiler-heat common."
  },
  {
    "slug": "parma",
    "name": "Parma",
    "state": "OH",
    "zips": [
      "44129",
      "44130",
      "44134"
    ],
    "county": "Cuyahoga",
    "metro": "cleveland",
    "population2026": 80000,
    "context": "Largest Cleveland suburb. Postwar 1950s-1960s ranch housing dominates. Strong Polish + Slovak heritage."
  },
  {
    "slug": "cleveland-heights",
    "name": "Cleveland Heights",
    "state": "OH",
    "zips": [
      "44106",
      "44118",
      "44121"
    ],
    "county": "Cuyahoga",
    "metro": "cleveland",
    "population2026": 44000,
    "context": "Pre-1930 brick + Tudor housing east of Cleveland. Heavy historic preservation + Case Western Reserve student-rental market."
  },
  {
    "slug": "mentor",
    "name": "Mentor",
    "state": "OH",
    "zips": [
      "44060"
    ],
    "county": "Lake",
    "metro": "cleveland",
    "population2026": 47000,
    "context": "Largest Lake County city, east of Cleveland on I-90. James A. Garfield National Historic Site. Lake Erie storm exposure."
  },
  {
    "slug": "painesville",
    "name": "Painesville",
    "state": "OH",
    "zips": [
      "44077"
    ],
    "county": "Lake",
    "metro": "cleveland",
    "population2026": 20000,
    "context": "Lake County seat. Lake Erie College in town."
  },
  {
    "slug": "chardon",
    "name": "Chardon",
    "state": "OH",
    "zips": [
      "44024"
    ],
    "county": "Geauga",
    "metro": "cleveland",
    "population2026": 5500,
    "context": "Geauga County seat. Heaviest snowbelt city in Ohio — drives heavy ice-dam + roof-snow demand."
  },
  {
    "slug": "lorain",
    "name": "Lorain",
    "state": "OH",
    "zips": [
      "44052",
      "44053",
      "44055"
    ],
    "county": "Lorain",
    "metro": "cleveland",
    "population2026": 65000,
    "context": "Lake Erie port city + steel-mill heritage. Pre-1950 brick housing along Black River. Strong Hispanic population — 25%+ Spanish-speaking."
  },
  {
    "slug": "elyria",
    "name": "Elyria",
    "state": "OH",
    "zips": [
      "44035"
    ],
    "county": "Lorain",
    "metro": "cleveland",
    "population2026": 53000,
    "context": "Lorain County seat. Older industrial city with revitalizing downtown."
  },
  {
    "slug": "avon",
    "name": "Avon",
    "state": "OH",
    "zips": [
      "44011"
    ],
    "county": "Lorain",
    "metro": "cleveland",
    "population2026": 25500,
    "context": "Fast-growing Lorain County suburb. New-construction warranty work."
  },
  {
    "slug": "medina",
    "name": "Medina",
    "state": "OH",
    "zips": [
      "44256"
    ],
    "county": "Medina",
    "metro": "cleveland",
    "population2026": 26000,
    "context": "Medina County seat. Historic 1820s town square. Suburban growth corridor SW of Cleveland."
  },
  {
    "slug": "akron",
    "name": "Akron",
    "state": "OH",
    "zips": [
      "44301",
      "44302",
      "44303",
      "44304",
      "44305",
      "44306",
      "44307",
      "44308",
      "44310",
      "44311",
      "44312",
      "44313",
      "44314",
      "44319",
      "44320"
    ],
    "county": "Summit",
    "metro": "cleveland",
    "population2026": 188000,
    "context": "Summit County seat. Rubber-capital heritage (Goodyear, Firestone). Pre-1950 brick neighborhoods + University of Akron student-rental market. Ohio Edison (FirstEnergy) electric."
  },
  {
    "slug": "cuyahoga-falls",
    "name": "Cuyahoga Falls",
    "state": "OH",
    "zips": [
      "44221",
      "44223"
    ],
    "county": "Summit",
    "metro": "cleveland",
    "population2026": 51500,
    "context": "North Akron suburb on the Cuyahoga River. Strong middle-class residential market."
  },
  {
    "slug": "stow",
    "name": "Stow",
    "state": "OH",
    "zips": [
      "44224"
    ],
    "county": "Summit",
    "metro": "cleveland",
    "population2026": 35000,
    "context": "NE Akron suburb. 1960s-1980s housing predominates."
  },
  {
    "slug": "kent",
    "name": "Kent",
    "state": "OH",
    "zips": [
      "44240"
    ],
    "county": "Portage",
    "metro": "cleveland",
    "population2026": 28500,
    "context": "Kent State University drives heavy student-rental maintenance market."
  },
  {
    "slug": "ravenna",
    "name": "Ravenna",
    "state": "OH",
    "zips": [
      "44266"
    ],
    "county": "Portage",
    "metro": "cleveland",
    "population2026": 11500,
    "context": "Portage County seat. Older brick housing + Ravenna Arsenal heritage."
  },
  {
    "slug": "canton",
    "name": "Canton",
    "state": "OH",
    "zips": [
      "44702",
      "44703",
      "44704",
      "44705",
      "44706",
      "44707",
      "44708",
      "44709",
      "44710"
    ],
    "county": "Stark",
    "metro": "cleveland",
    "population2026": 70000,
    "context": "Stark County seat. Pro Football Hall of Fame. Pre-1950 housing dominates inner core. Significant manufacturing heritage."
  },
  {
    "slug": "massillon",
    "name": "Massillon",
    "state": "OH",
    "zips": [
      "44646",
      "44647"
    ],
    "county": "Stark",
    "metro": "cleveland",
    "population2026": 32000,
    "context": "Stark County industrial city. Tiger Town (legendary HS football)."
  },
  {
    "slug": "alliance",
    "name": "Alliance",
    "state": "OH",
    "zips": [
      "44601"
    ],
    "county": "Stark",
    "metro": "cleveland",
    "population2026": 21000,
    "context": "Eastern Stark County. University of Mount Union in town."
  },
  {
    "slug": "wooster",
    "name": "Wooster",
    "state": "OH",
    "zips": [
      "44691"
    ],
    "county": "Wayne",
    "metro": "cleveland",
    "population2026": 27000,
    "context": "Wayne County seat. College of Wooster + Ohio Agricultural Research and Development Center. Surrounding Wayne County is heavy Amish country."
  },
  {
    "slug": "youngstown",
    "name": "Youngstown",
    "state": "OH",
    "zips": [
      "44502",
      "44503",
      "44504",
      "44505",
      "44506",
      "44507",
      "44509",
      "44510",
      "44511",
      "44512",
      "44514"
    ],
    "county": "Mahoning",
    "metro": "cleveland",
    "population2026": 60000,
    "context": "Mahoning County seat. Steel-valley heritage city. Older brick housing — heavy maintenance demand. Youngstown State University."
  },
  {
    "slug": "boardman",
    "name": "Boardman",
    "state": "OH",
    "zips": [
      "44512"
    ],
    "county": "Mahoning",
    "metro": "cleveland",
    "population2026": 35000,
    "context": "Largest Youngstown suburb. Postwar housing + retail corridor."
  },
  {
    "slug": "warren",
    "name": "Warren",
    "state": "OH",
    "zips": [
      "44481",
      "44482",
      "44483",
      "44484",
      "44485"
    ],
    "county": "Trumbull",
    "metro": "cleveland",
    "population2026": 38500,
    "context": "Trumbull County seat north of Youngstown. Steel + auto-parts heritage."
  },
  {
    "slug": "east-liverpool",
    "name": "East Liverpool",
    "state": "OH",
    "zips": [
      "43920"
    ],
    "county": "Columbiana",
    "metro": "cleveland",
    "population2026": 10500,
    "context": "Ohio River pottery-capital heritage town. Pre-1900 brick housing."
  },
  {
    "slug": "salem",
    "name": "Salem",
    "state": "OH",
    "zips": [
      "44460"
    ],
    "county": "Columbiana",
    "metro": "cleveland",
    "population2026": 11500,
    "context": "Columbiana County industrial city. Quaker historical roots."
  },
  {
    "slug": "ashtabula",
    "name": "Ashtabula",
    "state": "OH",
    "zips": [
      "44004"
    ],
    "county": "Ashtabula",
    "metro": "cleveland",
    "population2026": 17500,
    "context": "Ashtabula County seat on Lake Erie. Snowbelt city — heavy ice-dam + storm-damage roof work. Wine-country region (Ashtabula County is Ohio's largest grape producer)."
  },
  {
    "slug": "cincinnati",
    "name": "Cincinnati",
    "state": "OH",
    "zips": [
      "45202",
      "45203",
      "45204",
      "45205",
      "45206",
      "45207",
      "45208",
      "45209",
      "45211",
      "45212",
      "45213",
      "45214",
      "45215",
      "45219",
      "45220",
      "45223",
      "45224",
      "45225",
      "45226",
      "45227",
      "45229",
      "45230",
      "45232",
      "45236",
      "45237",
      "45238",
      "45239",
      "45248"
    ],
    "county": "Hamilton",
    "metro": "cincinnati",
    "population2026": 309000,
    "context": "Queen City of Ohio. Pre-1900 Italianate + Victorian housing dominates Over-the-Rhine, Mt. Adams, Walnut Hills. Combined sewer overflow during heavy rain — drives sump-pump and check-valve work. Duke Energy Ohio for gas + electric (single utility, not the standard split). 513 area code."
  },
  {
    "slug": "norwood",
    "name": "Norwood",
    "state": "OH",
    "zips": [
      "45212"
    ],
    "county": "Hamilton",
    "metro": "cincinnati",
    "population2026": 19500,
    "context": "Inner-ring Cincinnati suburb — pre-1930 housing, blue-collar revival."
  },
  {
    "slug": "loveland",
    "name": "Loveland",
    "state": "OH",
    "zips": [
      "45140"
    ],
    "county": "Hamilton",
    "metro": "cincinnati",
    "population2026": 13500,
    "context": "NE Cincinnati suburb. Family-friendly with strong schools."
  },
  {
    "slug": "hamilton",
    "name": "Hamilton",
    "state": "OH",
    "zips": [
      "45011",
      "45013",
      "45015"
    ],
    "county": "Butler",
    "metro": "cincinnati",
    "population2026": 63000,
    "context": "Butler County seat. Industrial heritage + revitalizing arts district."
  },
  {
    "slug": "mason",
    "name": "Mason",
    "state": "OH",
    "zips": [
      "45040"
    ],
    "county": "Warren",
    "metro": "cincinnati",
    "population2026": 35000,
    "context": "Affluent Cincinnati exurb. Kings Island host city. New-construction + smart-home installs."
  },
  {
    "slug": "west-chester",
    "name": "West Chester",
    "state": "OH",
    "zips": [
      "45069"
    ],
    "county": "Butler",
    "metro": "cincinnati",
    "population2026": 65000,
    "context": "Largest Butler County township. Suburban growth corridor between Cincinnati + Dayton."
  },
  {
    "slug": "lebanon",
    "name": "Lebanon",
    "state": "OH",
    "zips": [
      "45036"
    ],
    "county": "Warren",
    "metro": "cincinnati",
    "population2026": 22500,
    "context": "Warren County seat. Historic Golden Lamb tavern (Ohio's oldest hotel)."
  },
  {
    "slug": "milford",
    "name": "Milford",
    "state": "OH",
    "zips": [
      "45150"
    ],
    "county": "Clermont",
    "metro": "cincinnati",
    "population2026": 7000,
    "context": "Eastern Cincinnati suburb on the Little Miami River."
  },
  {
    "slug": "batavia",
    "name": "Batavia",
    "state": "OH",
    "zips": [
      "45103"
    ],
    "county": "Clermont",
    "metro": "cincinnati",
    "population2026": 1700,
    "context": "Clermont County seat. Small village in growing exurban Clermont County."
  },
  {
    "slug": "georgetown",
    "name": "Georgetown",
    "state": "OH",
    "zips": [
      "45121"
    ],
    "county": "Brown",
    "metro": "cincinnati",
    "population2026": 4500,
    "context": "Brown County seat. Birthplace of Ulysses S. Grant. Rural Ohio River valley."
  },
  {
    "slug": "dayton",
    "name": "Dayton",
    "state": "OH",
    "zips": [
      "45402",
      "45403",
      "45404",
      "45405",
      "45406",
      "45409",
      "45410",
      "45414",
      "45415",
      "45417",
      "45419",
      "45420",
      "45424",
      "45426",
      "45431",
      "45432",
      "45439"
    ],
    "county": "Montgomery",
    "metro": "dayton",
    "population2026": 137000,
    "context": "Birthplace of aviation (Wright Brothers). Pre-1940 housing dominates urban core — heavy galvanized + boiler-heat work. 2019 Memorial Day tornado outbreak still drives roof-replacement market in north Dayton."
  },
  {
    "slug": "kettering",
    "name": "Kettering",
    "state": "OH",
    "zips": [
      "45419",
      "45429"
    ],
    "county": "Montgomery",
    "metro": "dayton",
    "population2026": 56000,
    "context": "Largest Dayton suburb. Postwar 1950s ranch housing + Kettering Health Network anchor."
  },
  {
    "slug": "beavercreek",
    "name": "Beavercreek",
    "state": "OH",
    "zips": [
      "45430",
      "45431",
      "45432",
      "45434"
    ],
    "county": "Greene",
    "metro": "dayton",
    "population2026": 47000,
    "context": "East Dayton suburb adjacent to Wright-Patterson AFB."
  },
  {
    "slug": "xenia",
    "name": "Xenia",
    "state": "OH",
    "zips": [
      "45385"
    ],
    "county": "Greene",
    "metro": "dayton",
    "population2026": 26500,
    "context": "Greene County seat. 1974 Xenia tornado historical reference."
  },
  {
    "slug": "fairborn",
    "name": "Fairborn",
    "state": "OH",
    "zips": [
      "45324"
    ],
    "county": "Greene",
    "metro": "dayton",
    "population2026": 33500,
    "context": "Wright-Patterson AFB community. Wright State University."
  },
  {
    "slug": "troy",
    "name": "Troy",
    "state": "OH",
    "zips": [
      "45373"
    ],
    "county": "Miami",
    "metro": "dayton",
    "population2026": 26500,
    "context": "Miami County seat. Historic downtown + I-75 commerce corridor."
  },
  {
    "slug": "piqua",
    "name": "Piqua",
    "state": "OH",
    "zips": [
      "45356"
    ],
    "county": "Miami",
    "metro": "dayton",
    "population2026": 20500,
    "context": "Older industrial Miami County city on the Great Miami River."
  },
  {
    "slug": "eaton",
    "name": "Eaton",
    "state": "OH",
    "zips": [
      "45320"
    ],
    "county": "Preble",
    "metro": "dayton",
    "population2026": 8500,
    "context": "Preble County seat. Western Ohio rural + farming."
  },
  {
    "slug": "greenville",
    "name": "Greenville",
    "state": "OH",
    "zips": [
      "45331"
    ],
    "county": "Darke",
    "metro": "dayton",
    "population2026": 13000,
    "context": "Darke County seat. Birthplace of Annie Oakley."
  },
  {
    "slug": "sidney",
    "name": "Sidney",
    "state": "OH",
    "zips": [
      "45365"
    ],
    "county": "Shelby",
    "metro": "dayton",
    "population2026": 21000,
    "context": "Shelby County seat. Heavy industrial heritage (Honda parts, Emerson Climate)."
  },
  {
    "slug": "bellefontaine",
    "name": "Bellefontaine",
    "state": "OH",
    "zips": [
      "43311"
    ],
    "county": "Logan",
    "metro": "dayton",
    "population2026": 14500,
    "context": "Logan County seat. Highest point in Ohio (Campbell Hill nearby)."
  },
  {
    "slug": "urbana",
    "name": "Urbana",
    "state": "OH",
    "zips": [
      "43078"
    ],
    "county": "Champaign",
    "metro": "dayton",
    "population2026": 11500,
    "context": "Champaign County seat. Urbana University + small-town manufacturing."
  },
  {
    "slug": "springfield",
    "name": "Springfield",
    "state": "OH",
    "zips": [
      "45502",
      "45503",
      "45504",
      "45505",
      "45506"
    ],
    "county": "Clark",
    "metro": "dayton",
    "population2026": 58000,
    "context": "Clark County seat between Dayton + Columbus. Wittenberg University."
  },
  {
    "slug": "west-union",
    "name": "West Union",
    "state": "OH",
    "zips": [
      "45693"
    ],
    "county": "Adams",
    "metro": "findlay",
    "population2026": 3200,
    "context": "Adams County seat. Ohio River foothills. Rural Appalachian."
  },
  {
    "slug": "hillsboro",
    "name": "Hillsboro",
    "state": "OH",
    "zips": [
      "45133"
    ],
    "county": "Highland",
    "metro": "findlay",
    "population2026": 6500,
    "context": "Highland County seat. Rural-suburban between Cincinnati and Chillicothe."
  },
  {
    "slug": "wilmington",
    "name": "Wilmington",
    "state": "OH",
    "zips": [
      "45177"
    ],
    "county": "Clinton",
    "metro": "findlay",
    "population2026": 12000,
    "context": "Clinton County seat. Wilmington College + DHL Americas hub."
  },
  {
    "slug": "washington-court-house",
    "name": "Washington Court House",
    "state": "OH",
    "zips": [
      "43160"
    ],
    "county": "Fayette",
    "metro": "findlay",
    "population2026": 14500,
    "context": "Fayette County seat. Major outlet-mall destination on I-71."
  },
  {
    "slug": "waverly",
    "name": "Waverly",
    "state": "OH",
    "zips": [
      "45690"
    ],
    "county": "Pike",
    "metro": "findlay",
    "population2026": 4000,
    "context": "Pike County seat. Lake Lake White / Pike Lake recreation area."
  },
  {
    "slug": "portsmouth",
    "name": "Portsmouth",
    "state": "OH",
    "zips": [
      "45662"
    ],
    "county": "Scioto",
    "metro": "findlay",
    "population2026": 18500,
    "context": "Scioto County seat on the Ohio River. Portsmouth Floodwall murals + Shawnee State University."
  },
  {
    "slug": "ironton",
    "name": "Ironton",
    "state": "OH",
    "zips": [
      "45638"
    ],
    "county": "Lawrence",
    "metro": "findlay",
    "population2026": 10500,
    "context": "Lawrence County seat on the Ohio River across from Ashland, KY."
  },
  {
    "slug": "athens",
    "name": "Athens",
    "state": "OH",
    "zips": [
      "45701"
    ],
    "county": "Athens",
    "metro": "southeast",
    "population2026": 23500,
    "context": "Athens County seat. Ohio University drives heavy student-rental maintenance. Hocking Hills tourism corridor."
  },
  {
    "slug": "logan-hocking",
    "name": "Logan",
    "state": "OH",
    "zips": [
      "43138"
    ],
    "county": "Hocking",
    "metro": "southeast",
    "population2026": 7200,
    "context": "Hocking County seat. Hocking Hills State Park tourism. Note: same name as Logan County (W Ohio)."
  },
  {
    "slug": "mcarthur",
    "name": "McArthur",
    "state": "OH",
    "zips": [
      "45651"
    ],
    "county": "Vinton",
    "metro": "southeast",
    "population2026": 1700,
    "context": "Vinton County seat. Ohio's least-populous county. Wayne National Forest."
  },
  {
    "slug": "pomeroy",
    "name": "Pomeroy",
    "state": "OH",
    "zips": [
      "45769"
    ],
    "county": "Meigs",
    "metro": "southeast",
    "population2026": 1700,
    "context": "Meigs County seat on the Ohio River."
  },
  {
    "slug": "gallipolis",
    "name": "Gallipolis",
    "state": "OH",
    "zips": [
      "45631"
    ],
    "county": "Gallia",
    "metro": "southeast",
    "population2026": 3500,
    "context": "Gallia County seat on the Ohio River. French heritage."
  },
  {
    "slug": "jackson",
    "name": "Jackson",
    "state": "OH",
    "zips": [
      "45640"
    ],
    "county": "Jackson",
    "metro": "southeast",
    "population2026": 6000,
    "context": "Jackson County seat. Iron furnace heritage."
  },
  {
    "slug": "marietta",
    "name": "Marietta",
    "state": "OH",
    "zips": [
      "45750"
    ],
    "county": "Washington",
    "metro": "southeast",
    "population2026": 13000,
    "context": "Washington County seat. Oldest permanent settlement in Northwest Territory (1788). Marietta College."
  },
  {
    "slug": "mcconnelsville",
    "name": "McConnelsville",
    "state": "OH",
    "zips": [
      "43756"
    ],
    "county": "Morgan",
    "metro": "southeast",
    "population2026": 1800,
    "context": "Morgan County seat. Heavy coal-mining heritage."
  },
  {
    "slug": "caldwell",
    "name": "Caldwell",
    "state": "OH",
    "zips": [
      "43724"
    ],
    "county": "Noble",
    "metro": "southeast",
    "population2026": 1700,
    "context": "Noble County seat. Wilds wildlife conservation center."
  },
  {
    "slug": "woodsfield",
    "name": "Woodsfield",
    "state": "OH",
    "zips": [
      "43793"
    ],
    "county": "Monroe",
    "metro": "southeast",
    "population2026": 2400,
    "context": "Monroe County seat in remote SE Ohio."
  },
  {
    "slug": "saint-clairsville",
    "name": "Saint Clairsville",
    "state": "OH",
    "zips": [
      "43950"
    ],
    "county": "Belmont",
    "metro": "southeast",
    "population2026": 5000,
    "context": "Belmont County seat. National Road heritage."
  },
  {
    "slug": "steubenville",
    "name": "Steubenville",
    "state": "OH",
    "zips": [
      "43952"
    ],
    "county": "Jefferson",
    "metro": "southeast",
    "population2026": 17500,
    "context": "Jefferson County seat on the Ohio River. Steel-valley heritage. Franciscan University."
  },
  {
    "slug": "cadiz",
    "name": "Cadiz",
    "state": "OH",
    "zips": [
      "43907"
    ],
    "county": "Harrison",
    "metro": "southeast",
    "population2026": 3300,
    "context": "Harrison County seat. Birthplace of Clark Gable."
  },
  {
    "slug": "new-philadelphia",
    "name": "New Philadelphia",
    "state": "OH",
    "zips": [
      "44663"
    ],
    "county": "Tuscarawas",
    "metro": "southeast",
    "population2026": 17500,
    "context": "Tuscarawas County seat. Schoenbrunn historic moravian settlement."
  },
  {
    "slug": "carrollton",
    "name": "Carrollton",
    "state": "OH",
    "zips": [
      "44615"
    ],
    "county": "Carroll",
    "metro": "southeast",
    "population2026": 3200,
    "context": "Carroll County seat. Atwood Lake recreation."
  },
  {
    "slug": "coshocton",
    "name": "Coshocton",
    "state": "OH",
    "zips": [
      "43812"
    ],
    "county": "Coshocton",
    "metro": "southeast",
    "population2026": 11000,
    "context": "Coshocton County seat. Roscoe Village historic canal town."
  },
  {
    "slug": "millersburg",
    "name": "Millersburg",
    "state": "OH",
    "zips": [
      "44654"
    ],
    "county": "Holmes",
    "metro": "southeast",
    "population2026": 3000,
    "context": "Holmes County seat. Largest Amish population in the world surrounding the village. Drives unique mix of horse-and-buggy + traditional homestead trade work."
  },
  {
    "slug": "cambridge",
    "name": "Cambridge",
    "state": "OH",
    "zips": [
      "43725"
    ],
    "county": "Guernsey",
    "metro": "southeast",
    "population2026": 10000,
    "context": "Guernsey County seat. Historic glass-manufacturing heritage."
  },
  {
    "slug": "zanesville",
    "name": "Zanesville",
    "state": "OH",
    "zips": [
      "43701"
    ],
    "county": "Muskingum",
    "metro": "southeast",
    "population2026": 25000,
    "context": "Muskingum County seat. Historic Y-bridge over the Muskingum + Licking rivers."
  },
  {
    "slug": "new-lexington",
    "name": "New Lexington",
    "state": "OH",
    "zips": [
      "43764"
    ],
    "county": "Perry",
    "metro": "southeast",
    "population2026": 4500,
    "context": "Perry County seat. Coal-mining heritage."
  },
  {
    "slug": "chillicothe",
    "name": "Chillicothe",
    "state": "OH",
    "zips": [
      "45601"
    ],
    "county": "Ross",
    "metro": "southeast",
    "population2026": 22000,
    "context": "Ross County seat. First capital of Ohio (1803-1810). Historic Adena mansion + Mound City prehistoric earthworks."
  },
  {
    "slug": "mansfield",
    "name": "Mansfield",
    "state": "OH",
    "zips": [
      "44902",
      "44903",
      "44904",
      "44905",
      "44906",
      "44907"
    ],
    "county": "Richland",
    "metro": "findlay",
    "population2026": 47500,
    "context": "Richland County seat. Pre-1900 housing dominates downtown — galvanized + boiler-heat work. Ohio State Reformatory (Shawshank Redemption filming location)."
  },
  {
    "slug": "ashland",
    "name": "Ashland",
    "state": "OH",
    "zips": [
      "44805"
    ],
    "county": "Ashland",
    "metro": "findlay",
    "population2026": 21500,
    "context": "Ashland County seat. Ashland University."
  },
  {
    "slug": "norwalk",
    "name": "Norwalk",
    "state": "OH",
    "zips": [
      "44857"
    ],
    "county": "Huron",
    "metro": "findlay",
    "population2026": 17000,
    "context": "Huron County seat. Note: Huron COUNTY (not the Huron CITY in Erie County). Maple Festival."
  }
]