{
  "canonicalCities": [
    {
      "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": "gahanna",
      "name": "Gahanna",
      "state": "OH",
      "zips": [
        "43230"
      ],
      "county": "Franklin",
      "metro": "columbus",
      "population2026": 36000,
      "context": "NE Columbus suburb near John Glenn International. Mix of older Creekside-area housing and newer subdivisions. Common project mix: service-panel upgrades, backup sump systems, and HVAC replacements in 1980s-2000s homes."
    },
    {
      "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": "euclid",
      "name": "Euclid",
      "state": "OH",
      "zips": [
        "44117",
        "44119",
        "44123"
      ],
      "county": "Cuyahoga",
      "metro": "cleveland",
      "population2026": 50000,
      "context": "Lake Erie inner-ring suburb east of Cleveland. 1920s-1960s housing stock means steady demand for sewer laterals, masonry repair, and roof or siding work driven by shoreline wind and freeze-thaw exposure."
    },
    {
      "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": "strongsville",
      "name": "Strongsville",
      "state": "OH",
      "zips": [
        "44136",
        "44149"
      ],
      "county": "Cuyahoga",
      "metro": "cleveland",
      "population2026": 47000,
      "context": "Southwest Cleveland suburb with large 1970s-2000s subdivisions and heavy finished-basement inventory. Homeowner demand clusters around generator hookups, backup sump systems, and HVAC replacement in larger all-season family homes."
    },
    {
      "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": "fairfield",
      "name": "Fairfield",
      "state": "OH",
      "zips": [
        "45014"
      ],
      "county": "Butler",
      "metro": "cincinnati",
      "population2026": 45000,
      "context": "Large Butler County suburb north of Cincinnati. Mid-century ranches and 1980s-2000s subdivisions create a steady mix of HVAC changeouts, water-heater swaps, and service-panel upgrades before EV or hot-tub installs."
    },
    {
      "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": "middletown",
      "name": "Middletown",
      "state": "OH",
      "zips": [
        "45042",
        "45044"
      ],
      "county": "Butler",
      "metro": "cincinnati",
      "population2026": 51000,
      "context": "Large legacy industrial city between Cincinnati and Dayton. Older housing stock, aging laterals, and mixed-fuel heating systems make it a high-intent market for sewer, furnace, and roof-replacement searches."
    },
    {
      "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": "miamisburg",
      "name": "Miamisburg",
      "state": "OH",
      "zips": [
        "45342"
      ],
      "county": "Montgomery",
      "metro": "dayton",
      "population2026": 20000,
      "context": "Historic riverfront suburb south of Dayton with older downtown housing and 1980s-2000s subdivision growth farther west. Common jobs include finished-basement HVAC balancing, sump-pump work, and service upgrades for newer appliances."
    },
    {
      "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."
    }
  ],
  "observedServiceAreaCities": [
    {
      "name": "Andover",
      "metro": "cleveland"
    },
    {
      "name": "Bedford Heights",
      "metro": "cleveland"
    },
    {
      "name": "Blacklick",
      "metro": "columbus"
    },
    {
      "name": "Blue Ash",
      "metro": "cincinnati"
    },
    {
      "name": "Broadview Heights",
      "metro": "cleveland"
    },
    {
      "name": "Centerville",
      "metro": "dayton"
    },
    {
      "name": "Chagrin Falls",
      "metro": "cleveland"
    },
    {
      "name": "Clayton",
      "metro": "dayton"
    },
    {
      "name": "Cleves",
      "metro": "cincinnati"
    },
    {
      "name": "Fairlawn",
      "metro": "cleveland"
    },
    {
      "name": "Groveport",
      "metro": "columbus"
    },
    {
      "name": "Hartville",
      "metro": "cleveland"
    },
    {
      "name": "Jefferson",
      "metro": "cleveland"
    },
    {
      "name": "Lyndhurst",
      "metro": "cleveland"
    },
    {
      "name": "Mayfield Village",
      "metro": "cleveland"
    },
    {
      "name": "Mogadore",
      "metro": "cleveland"
    },
    {
      "name": "Moraine",
      "metro": "dayton"
    },
    {
      "name": "Nelsonville",
      "metro": "southeast"
    },
    {
      "name": "New Albany",
      "metro": "columbus"
    },
    {
      "name": "Newbury",
      "metro": "cleveland"
    },
    {
      "name": "North Canton",
      "metro": "cleveland"
    },
    {
      "name": "North Ridgeville",
      "metro": "cleveland"
    },
    {
      "name": "North Royalton",
      "metro": "cleveland"
    },
    {
      "name": "Oakwood Village",
      "metro": "cleveland"
    },
    {
      "name": "Olmsted Falls",
      "metro": "cleveland"
    },
    {
      "name": "Peninsula",
      "metro": "cleveland"
    },
    {
      "name": "Plain City",
      "metro": "columbus"
    },
    {
      "name": "Pleasant Plain",
      "metro": "cincinnati"
    },
    {
      "name": "Poland",
      "metro": "cleveland"
    },
    {
      "name": "Rockbridge",
      "metro": "southeast"
    },
    {
      "name": "Sharonville",
      "metro": "cincinnati"
    },
    {
      "name": "Solon",
      "metro": "cleveland"
    },
    {
      "name": "Stone Creek",
      "metro": "southeast"
    },
    {
      "name": "Sunbury",
      "metro": "columbus"
    },
    {
      "name": "Uniontown",
      "metro": "cleveland"
    },
    {
      "name": "University Heights",
      "metro": "cleveland"
    },
    {
      "name": "Valley View",
      "metro": "cleveland"
    },
    {
      "name": "Warrensville Heights",
      "metro": "cleveland"
    },
    {
      "name": "Wickliffe",
      "metro": "cleveland"
    },
    {
      "name": "Willowick",
      "metro": "cleveland"
    }
  ],
  "aliases": {
    "west chester township": "west chester"
  }
}