{
 "schema": "hummbl-house.map-states.v1",
 "built_from": {
  "ncei": {
   "name": "NOAA 1991-2020 U.S. Climate Normals (monthly)",
   "publisher": "NCEI",
   "api": "https://www.ncei.noaa.gov/access/services/data/v1",
   "dataset": "normals-monthly-1991-2020",
   "fetched_at": "2026-09-26T02:00:44Z",
   "units": "standard (deg F, inches, degree-days base as named)"
  },
  "regions": "hummbl-house.climate-regions.v2",
  "geometry": "us-atlas@3.0.1 states-10m (ISC), d3-geo"
 },
 "notes": [
  "Normals are 30-year averages (1991-2020), not forecasts and not tail-risk models.",
  "Koppen class and IECC zone are computed from one anchor station per state; county assignments in the adopted code can differ.",
  "CDD50 is a single-sine estimate from monthly normal daily max/min because NCEI does not serve a base-50 series through the access API.",
  "Decisions are rule-of-thumb design support with an auditable basis; they are not engineering, code compliance, or a permit.",
  "Hazard flags are state-level editorial flags meaning the hazard is a first-order design driver somewhere in the state."
 ],
 "regions": [
  {
   "id": "northwest",
   "name": "Northwest",
   "route_position": 0,
   "states": [
    "WA",
    "OR",
    "ID"
   ],
   "koppen_summary": "Csb marine Mediterranean west of the Cascades; Dsb/BSk dry continental and cold steppe inland",
   "character": "Wet mild winters and dry summers on the coast; colder, snowier, drier interior east of the Cascades.",
   "hazards": [
    "atmospheric-river flooding",
    "ice storms (Columbia Gorge)",
    "wildfire smoke",
    "Cascadia subduction earthquake",
    "heat domes (rare, severe)"
   ],
   "housing_styles": [
    {
     "name": "Craftsman bungalow",
     "climate_fit": "deep eaves and covered porches shed the long wet season"
    },
    {
     "name": "Northwest Modern",
     "climate_fit": "shed roofs, cedar, big glass for soft light and views — needs disciplined rain detailing"
    },
    {
     "name": "A-frame / mountain cabin",
     "climate_fit": "steep roof dumps the inland snow load"
    },
    {
     "name": "Valley farmhouse",
     "climate_fit": "gabled roof and wrap porch for the wet-mild Willamette pattern"
    },
    {
     "name": "Inland ranch",
     "climate_fit": "low-pitch postwar stock where snow loads stay modest"
    }
   ],
   "sources": [],
   "design_drivers": {},
   "route_cities": [
    {
     "id": "sea",
     "name": "Seattle",
     "state": "WA",
     "station": "USW00024233",
     "lat": 47.45,
     "lon": -122.31,
     "koppen": "Csb",
     "jan_mean_f": 42.8,
     "jul_mean_f": 67.1,
     "annual_precip_in": 39.3,
     "annual_snow_in": 6.3
    },
    {
     "id": "pdx",
     "name": "Portland",
     "state": "OR",
     "station": "USW00024229",
     "lat": 45.59,
     "lon": -122.6,
     "koppen": "Csb",
     "jan_mean_f": 41.9,
     "jul_mean_f": 70.2,
     "annual_precip_in": 36.9,
     "annual_snow_in": 7.4
    },
    {
     "id": "geg",
     "name": "Spokane",
     "state": "WA",
     "station": "USW00024157",
     "lat": 47.62,
     "lon": -117.53,
     "koppen": "Dsb",
     "jan_mean_f": 30.0,
     "jul_mean_f": 70.4,
     "annual_precip_in": 16.4,
     "annual_snow_in": 45.4
    },
    {
     "id": "boi",
     "name": "Boise",
     "state": "ID",
     "station": "USW00024131",
     "lat": 43.56,
     "lon": -116.22,
     "koppen": "BSk",
     "jan_mean_f": 30.4,
     "jul_mean_f": 73.4,
     "annual_precip_in": 11.5,
     "annual_snow_in": 18.0
    }
   ]
  },
  {
   "id": "southwest",
   "name": "Southwest",
   "route_position": 3,
   "states": [
    "AZ",
    "NV",
    "NM",
    "CA"
   ],
   "koppen_summary": "BWh hot desert in the low deserts; BSk cold steppe on the high plateaus; Csb Mediterranean on the SoCal coast",
   "character": "Arid to semi-arid with extreme summer heat in the deserts, monsoon thunderstorms in late summer, and a mild dry-summer coast.",
   "hazards": [
    "extreme heat",
    "drought and water scarcity",
    "wildfire",
    "monsoon flash floods and dust storms",
    "earthquakes and post-fire debris flows (CA)"
   ],
   "housing_styles": [
    {
     "name": "Pueblo Revival / adobe",
     "climate_fit": "thermal mass evens the high-desert day-night swing; flat roofs fit dry, snow-free winters"
    },
    {
     "name": "Territorial",
     "climate_fit": "adobe massing with Anglo trim and brick coping"
    },
    {
     "name": "Mission / Spanish Colonial Revival",
     "climate_fit": "stucco and clay tile for sun; courtyards make shade"
    },
    {
     "name": "California ranch",
     "climate_fit": "single-story indoor-outdoor living the mild coast permits"
    },
    {
     "name": "Desert modernism",
     "climate_fit": "deep overhangs and oriented glass for shade with views"
    },
    {
     "name": "Contemporary desert",
     "climate_fit": "low-pitch tile roofs, stucco, shade-first site planning"
    }
   ],
   "sources": [],
   "design_drivers": {},
   "route_cities": [
    {
     "id": "phx",
     "name": "Phoenix",
     "state": "AZ",
     "station": "USW00023183",
     "lat": 33.43,
     "lon": -112.01,
     "koppen": "BWh",
     "jan_mean_f": 57.0,
     "jul_mean_f": 96.0,
     "annual_precip_in": 7.2,
     "annual_snow_in": 0.0
    },
    {
     "id": "las",
     "name": "Las Vegas",
     "state": "NV",
     "station": "USW00023169",
     "lat": 36.08,
     "lon": -115.15,
     "koppen": "BWh",
     "jan_mean_f": 48.9,
     "jul_mean_f": 92.9,
     "annual_precip_in": 4.2,
     "annual_snow_in": 0.3
    },
    {
     "id": "lax",
     "name": "Los Angeles (Downtown)",
     "state": "CA",
     "station": "USC00042214",
     "lat": 34.05,
     "lon": -118.24,
     "koppen": "Csb",
     "jan_mean_f": 58.4,
     "jul_mean_f": 73.3,
     "aug_mean_f": 74.7,
     "annual_precip_in": 14.25,
     "annual_snow_in": 0.0
    },
    {
     "id": "abq",
     "name": "Albuquerque",
     "state": "NM",
     "station": "USW00023050",
     "lat": 35.04,
     "lon": -106.62,
     "koppen": "BSk",
     "jan_mean_f": 37.0,
     "jul_mean_f": 79.0,
     "annual_precip_in": 8.8,
     "annual_snow_in": 7.9
    }
   ]
  },
  {
   "id": "mountain",
   "name": "Mountain",
   "states": [
    "MT",
    "WY",
    "CO",
    "UT"
   ],
   "koppen_summary": "BSk cold semi-arid in the valleys and basins; Dfb/Dfc humid continental to subarctic at higher elevations; ET alpine tundra above treeline; BWk cold desert on the Great Basin fringe of western Utah and Wyoming",
   "character": "Elevation does more work than latitude here — a town and the peak above it can sit in two different climates on the same slope. Winters are long and snow-driven in the high country; summers are short, hot in the valleys, and increasingly fire-prone.",
   "hazards": [
    "wildfire (wildland-urban interface)",
    "avalanche",
    "heavy mountain snow load",
    "drought and water scarcity",
    "Wasatch Front seismic risk (UT)",
    "flash flooding from snowmelt and monsoon storms"
   ],
   "housing_styles": [
    {
     "name": "Ski chalet",
     "climate_fit": "steep gable roof and deep eaves shed heavy mountain snowfall"
    },
    {
     "name": "Log cabin",
     "climate_fit": "thick log walls hold heat through long, cold winters"
    },
    {
     "name": "Mining-town Victorian",
     "climate_fit": "narrow lots and steep metal roofs from 19th-century boomtowns built for snow load"
    },
    {
     "name": "Mountain modern",
     "climate_fit": "large glazing and simple massing chase views while metal roofs shed snow"
    },
    {
     "name": "Valley ranch",
     "climate_fit": "low, single-story postwar stock in the drier basin towns where snow load is lighter"
    },
    {
     "name": "Earth-sheltered / passive solar",
     "climate_fit": "Rocky Mountain berm-and-solar tradition that banks on the region's intense high-elevation sun"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "minor",
    "moisture": "minor",
    "snow_load": "dominant",
    "wind": "secondary (exposed ridgelines, canyon winds)",
    "seismic": "secondary, concentrated on the Wasatch Front (UT)",
    "wildfire": "dominant",
    "flood": "secondary (snowmelt and canyon flash flooding)"
   },
   "sources": [
    "https://www.noaa.gov/noaa-wildfire/wildfire-climate-connection",
    "https://avalanche.state.co.us/accidents/statistics-and-reporting",
    "https://www.usgs.gov/programs/earthquake-hazards/science/how-big-and-how-frequent-are-earthquakes-wasatch-fault",
    "https://www.drought.gov/sites/default/files/2025-03/Prairies%20High%20Plains%20Winter%202025.pdf"
   ],
   "route_cities": []
  },
  {
   "id": "plains",
   "name": "Plains",
   "states": [
    "ND",
    "SD",
    "NE",
    "KS",
    "OK"
   ],
   "koppen_summary": "Dfa humid continental in the eastern Dakotas and Nebraska; BSk cold semi-arid steppe across the High Plains; Cfa humid subtropical in southern Oklahoma",
   "character": "Flat and wind-exposed, with nothing on the terrain to stop colliding air masses — this is the core of Tornado Alley, where warm Gulf moisture meets cold Canadian air. Winters bring ground blizzards and whiteouts; summers bring supercells and hail.",
   "hazards": [
    "tornadoes and severe hail",
    "blizzards and ground blizzards",
    "drought (High Plains, Ogallala aquifer stress)",
    "flash flooding",
    "sustained high wind",
    "grassland wildfire",
    "induced seismicity from oil-and-gas wastewater injection (OK)"
   ],
   "housing_styles": [
    {
     "name": "Ranch (post-sod-house)",
     "climate_fit": "low profile and small footprint present the least surface to sustained plains wind"
    },
    {
     "name": "Hipped-roof prairie cottage",
     "climate_fit": "hipped roof resists uplift better than gable ends in open wind"
    },
    {
     "name": "Storm-cellar / basement tradition",
     "climate_fit": "below-grade shelter is standard practice, not an amenity, in tornado country"
    },
    {
     "name": "Shelterbelt farmstead",
     "climate_fit": "planted windbreak rows cut wind-driven snow drift and soil erosion around the house"
    },
    {
     "name": "Prairie foursquare",
     "climate_fit": "compact two-story boxy form holds heat against open-plains winter wind"
    },
    {
     "name": "Pole-barn / Quonset outbuilding vernacular",
     "climate_fit": "curved or braced-frame ancillary structures shed snow load and resist wind"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "minor",
    "snow_load": "secondary (drifting matters more than static load)",
    "wind": "dominant",
    "seismic": "minor to secondary, concentrated in central Oklahoma (induced)",
    "wildfire": "secondary (grassland and rangeland fire)",
    "flood": "secondary (flash flooding, prairie pothole/playa)"
   },
   "sources": [
    "https://www.noaa.gov/stories/story-map-inside-tornado-alley",
    "https://www.drought.gov/sites/default/files/2025-03/Prairies%20High%20Plains%20Winter%202025.pdf",
    "https://www.weather.gov/oun/events-19350414",
    "https://www.usgs.gov/publications/sharp-increase-central-oklahoma-seismicity-2009-2014-induced-massive-wastewater"
   ],
   "route_cities": []
  },
  {
   "id": "midwest",
   "name": "Midwest",
   "states": [
    "MN",
    "WI",
    "MI",
    "IA",
    "MO",
    "IL",
    "IN",
    "OH"
   ],
   "koppen_summary": "Dfa humid continental (hot summer) across the southern Corn Belt; Dfb humid continental (warm summer) across Minnesota, Wisconsin, and northern Michigan",
   "character": "The Corn Belt's derecho and lake-effect corridor: a humid continental climate with real winters and increasingly violent summer convection. The Great Lakes moderate the immediate shoreline but load the snowbelt counties directly downwind.",
   "hazards": [
    "tornadoes and severe thunderstorms",
    "derechos",
    "lake-effect snow",
    "river and flash flooding (Mississippi/Ohio/Missouri basins)",
    "ice storms and extreme cold",
    "New Madrid Seismic Zone earthquake risk (southeastern MO)"
   ],
   "housing_styles": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "sources": [
    "https://www.spc.noaa.gov/misc/AbtDerechos/derechofacts.htm",
    "https://www.spc.noaa.gov/misc/AbtDerechos/climatologypage.htm",
    "https://www.usgs.gov/programs/earthquake-hazards/new-madrid-seismic-zone",
    "https://www.weather.gov/lot/2026_08_11_Derecho"
   ],
   "route_cities": []
  },
  {
   "id": "south-central",
   "name": "South Central",
   "states": [
    "TX",
    "LA",
    "AR",
    "MS"
   ],
   "koppen_summary": "Cfa humid subtropical across the humid east (most of Texas, Louisiana, Arkansas, Mississippi); BSh/BSk semi-arid transitioning across the Texas Hill Country and Panhandle; Am tropical fringe in the Rio Grande Valley",
   "character": "The Gulf-facing load-bearing wall of the country's storm systems — hurricane landfall coast, Dixie Alley tornado corridor, and Flash Flood Alley hill country all in one region. Humidity and heat dominate east of I-35; aridity, wind, and wildfire take over west of it.",
   "hazards": [
    "hurricanes and storm surge",
    "tornadoes (Dixie Alley, disproportionately nocturnal and fatal)",
    "flash flooding (Texas Hill Country/Flash Flood Alley)",
    "extreme heat",
    "drought and wildfire (western TX)",
    "severe hail and thunderstorms"
   ],
   "housing_styles": [
    {
     "name": "Dogtrot",
     "climate_fit": "open central breezeway cools two flanking rooms before mechanical air conditioning"
    },
    {
     "name": "Shotgun",
     "climate_fit": "one room wide with aligned doors for cross-ventilation in humid heat"
    },
    {
     "name": "Texas German stone farmhouse",
     "climate_fit": "thick limestone walls buffer the Hill Country's hot days and cool nights"
    },
    {
     "name": "Acadian cottage",
     "climate_fit": "raised floor and broad porch handle Louisiana humidity and standing water"
    },
    {
     "name": "Raised Gulf cottage",
     "climate_fit": "pier foundation lifts the living floor above storm surge and flood"
    },
    {
     "name": "Hill Country modern",
     "climate_fit": "deep overhangs and stone massing manage sun and flash-flood-prone sites"
    }
   ],
   "design_drivers": {
    "heating": "minor",
    "cooling": "dominant",
    "moisture": "dominant (Gulf humidity)",
    "snow_load": "minor (occasional damaging ice events)",
    "wind": "dominant (hurricane and tornado exposure)",
    "seismic": "minor",
    "wildfire": "secondary, concentrated in western Texas during drought",
    "flood": "dominant (hurricane storm surge and Hill Country flash flooding)"
   },
   "sources": [
    "https://www.noaa.gov/explainers/explainer-understanding-hurricane-hazards",
    "https://tfsweb.tamu.edu/topics/wildfire/wildfire-risk/",
    "https://www.weather.gov/shv/past_events"
   ],
   "route_cities": [
    {
     "id": "msy",
     "name": "New Orleans",
     "state": "LA",
     "station": "USW00012916",
     "lat": 29.99,
     "lon": -90.25,
     "koppen": "Cfa",
     "jan_mean_f": 55.3,
     "jul_mean_f": 83.7,
     "annual_precip_in": 63.4,
     "annual_snow_in": 0.0
    }
   ]
  },
  {
   "id": "southeast",
   "name": "Southeast",
   "route_position": 1,
   "states": [
    "AL",
    "GA",
    "FL",
    "SC",
    "NC",
    "TN",
    "KY"
   ],
   "koppen_summary": "Cfa humid subtropical across the region; Am tropical monsoon in South Florida",
   "character": "Hot humid summers, mild winters, year-round precipitation; tropical in South Florida with a marked wet season.",
   "hazards": [
    "hurricanes and storm surge",
    "flash and river flooding",
    "severe thunderstorms and tornadoes",
    "extreme heat and humidity",
    "lightning"
   ],
   "housing_styles": [
    {
     "name": "Shotgun",
     "climate_fit": "one room wide, doors aligned — cross-breeze before air conditioning"
    },
    {
     "name": "Creole cottage / townhouse",
     "climate_fit": "raised main floor and galleries above street water"
    },
    {
     "name": "Florida Cracker / dogtrot",
     "climate_fit": "elevated frame, breezeway core, metal roof sheds torrential rain"
    },
    {
     "name": "Lowcountry raised cottage",
     "climate_fit": "piers for flood and breeze; deep piazzas for shade"
    },
    {
     "name": "Key West conch",
     "climate_fit": "metal roof, shutters and porches built for hurricane country"
    },
    {
     "name": "Mediterranean / Spanish Revival",
     "climate_fit": "stucco and tile against sun and salt air"
    },
    {
     "name": "Brick ranch",
     "climate_fit": "slab-on-grade postwar default of the inland South"
    }
   ],
   "sources": [],
   "design_drivers": {},
   "route_cities": [
    {
     "id": "atl",
     "name": "Atlanta",
     "state": "GA",
     "station": "USW00013874",
     "lat": 33.64,
     "lon": -84.43,
     "koppen": "Cfa",
     "jan_mean_f": 44.9,
     "jul_mean_f": 80.9,
     "annual_precip_in": 50.4,
     "annual_snow_in": 2.2
    },
    {
     "id": "jax",
     "name": "Jacksonville",
     "state": "FL",
     "station": "USW00013889",
     "lat": 30.49,
     "lon": -81.69,
     "koppen": "Cfa",
     "jan_mean_f": 54.2,
     "jul_mean_f": 82.5,
     "annual_precip_in": 53.4,
     "annual_snow_in": 0.0
    },
    {
     "id": "mia",
     "name": "Miami",
     "state": "FL",
     "station": "USW00012839",
     "lat": 25.79,
     "lon": -80.29,
     "koppen": "Am",
     "jan_mean_f": 69.0,
     "jul_mean_f": 84.0,
     "annual_precip_in": 67.4,
     "annual_snow_in": 0.0
    }
   ]
  },
  {
   "id": "mid-atlantic",
   "name": "Mid-Atlantic",
   "states": [
    "VA",
    "WV",
    "MD",
    "DE",
    "DC",
    "PA",
    "NJ"
   ],
   "koppen_summary": "Cfa humid subtropical along the coastal plain (DC, tidewater VA/MD, southern NJ); Dfa/Dfb humid continental across the Appalachian interior (WV, western PA, northern NJ)",
   "character": "The hinge between the humid South and the humid continental North — both hurricanes and nor'easters reach this coast, and the Appalachian spine sets up a sharp climate divide between the coastal plain and the ridge-and-valley interior.",
   "hazards": [
    "hurricanes and tropical storm remnants",
    "nor'easters and coastal flooding",
    "ice storms (Appalachian and Piedmont corridor)",
    "severe thunderstorms and occasional tornadoes",
    "Chesapeake/Delaware Bay tidal flooding and sea-level rise",
    "Central Virginia Seismic Zone earthquake risk"
   ],
   "housing_styles": [
    {
     "name": "Federal / Georgian rowhouse",
     "climate_fit": "party walls and masonry mass buffer winter cold on dense urban lots"
    },
    {
     "name": "Pennsylvania bank barn farmhouse",
     "climate_fit": "earth-banked lower level insulates against the interior's colder winters"
    },
    {
     "name": "Cape (Jersey Shore)",
     "climate_fit": "low, compact form stands up to coastal wind and nor'easter exposure"
    },
    {
     "name": "Colonial Revival",
     "climate_fit": "symmetric massing and a central chimney hold heat through the four-season interior climate"
    },
    {
     "name": "Baltimore rowhouse",
     "climate_fit": "shared walls and marble stoops handle dense, humid-summer urban blocks"
    },
    {
     "name": "Dutch Colonial",
     "climate_fit": "gambrel roof sheds snow while adding headroom in the Pennsylvania/New Jersey Dutch country"
    },
    {
     "name": "Tidewater farmhouse",
     "climate_fit": "raised foundation and wide porches manage Chesapeake humidity and tidal flooding"
    }
   ],
   "design_drivers": {
    "heating": "secondary to dominant, heavier in the Appalachian interior than the coastal plain",
    "cooling": "secondary",
    "moisture": "secondary",
    "snow_load": "secondary, higher in Appalachian ridge counties than the coast",
    "wind": "secondary (hurricane remnants and nor'easters)",
    "seismic": "minor, elevated in the Central Virginia Seismic Zone",
    "wildfire": "minor",
    "flood": "dominant (coastal and tidal flooding, nor'easter storm surge)"
   },
   "sources": [
    "https://www.weather.gov/erh/coastalflood",
    "https://www.usgs.gov/programs/earthquake-hazards/science/m58-august-23-2011-mineral-virginia",
    "https://www.nhc.noaa.gov/outreach/history/",
    "https://www.midatlanticrisa.org/data-tools/climate-data-tools/storms-hurricanes-historic.html"
   ],
   "route_cities": []
  },
  {
   "id": "northeast",
   "name": "Northeast",
   "route_position": 2,
   "states": [
    "NY",
    "CT",
    "RI",
    "MA",
    "VT",
    "NH",
    "ME"
   ],
   "koppen_summary": "Cfa humid subtropical at the coast (NYC) transitioning to Dfa/Dfb humid continental inland and north",
   "character": "Four full seasons: cold snowy winters, warm humid summers, precipitation spread across the year; lake-effect snow belts and nor'easters.",
   "hazards": [
    "nor'easters and blizzards",
    "lake-effect snow",
    "ice storms and freeze-thaw",
    "coastal flooding",
    "hurricane remnants"
   ],
   "housing_styles": [
    {
     "name": "Colonial / Colonial Revival",
     "climate_fit": "compact two-story form and central chimney hold heat through winter"
    },
    {
     "name": "Cape Cod",
     "climate_fit": "low profile and steep roof shed snow and shrug off wind"
    },
    {
     "name": "Saltbox",
     "climate_fit": "long rear roofline turns its back to the north wind"
    },
    {
     "name": "Brownstone / rowhouse",
     "climate_fit": "party walls buffer winter cold on dense urban lots"
    },
    {
     "name": "Triple-decker",
     "climate_fit": "stacked flats — New England's dense urban housing form"
    },
    {
     "name": "Queen Anne Victorian",
     "climate_fit": "the heavy ornate stock of the region's industrial-era boom"
    },
    {
     "name": "Split-level / raised ranch",
     "climate_fit": "postwar suburban default on graded lots"
    }
   ],
   "sources": [],
   "design_drivers": {},
   "route_cities": [
    {
     "id": "nyc",
     "name": "New York (Central Park)",
     "state": "NY",
     "station": "USW00094728",
     "lat": 40.78,
     "lon": -73.97,
     "koppen": "Cfa",
     "jan_mean_f": 33.7,
     "jul_mean_f": 77.5,
     "annual_precip_in": 49.5,
     "annual_snow_in": 29.8
    },
    {
     "id": "bos",
     "name": "Boston",
     "state": "MA",
     "station": "USW00014739",
     "lat": 42.36,
     "lon": -71.01,
     "koppen": "Dfa",
     "jan_mean_f": 30.0,
     "jul_mean_f": 74.1,
     "annual_precip_in": 43.6,
     "annual_snow_in": 49.2
    },
    {
     "id": "buf",
     "name": "Buffalo",
     "state": "NY",
     "station": "USW00014733",
     "lat": 42.94,
     "lon": -78.74,
     "koppen": "Dfb",
     "jan_mean_f": 26.0,
     "jul_mean_f": 71.1,
     "annual_precip_in": 40.7,
     "annual_snow_in": 95.4
    },
    {
     "id": "pwm",
     "name": "Portland",
     "state": "ME",
     "station": "USW00014764",
     "lat": 43.65,
     "lon": -70.32,
     "koppen": "Dfb",
     "jan_mean_f": 23.7,
     "jul_mean_f": 69.9,
     "annual_precip_in": 48.1,
     "annual_snow_in": 68.7
    }
   ]
  },
  {
   "id": "alaska",
   "name": "Alaska",
   "states": [
    "AK"
   ],
   "koppen_summary": "Dfc subarctic across the Interior; ET tundra north of the Arctic Circle and at high elevation; Dfb in the Southcentral lowlands (Anchorage); Cfb/Csb temperate oceanic in the Southeast panhandle rainforest",
   "character": "A subcontinent of climates in one state — temperate rainforest in the Southeast panhandle, subarctic taiga in the Interior, and Arctic tundra on the North Slope. Permafrost underlies much of the state and is thawing, which is a foundation problem as much as a climate one.",
   "hazards": [
    "permafrost thaw and ground subsidence",
    "wildfire (boreal Interior, increasing)",
    "earthquake (most seismically active state in the US)",
    "coastal erosion and storm surge",
    "tsunami",
    "avalanche and extreme cold"
   ],
   "housing_styles": [
    {
     "name": "Log cabin",
     "climate_fit": "thick log mass and small footprint hold heat through subarctic winters"
    },
    {
     "name": "Pile / elevated foundation",
     "climate_fit": "raises the structure off thawing permafrost to prevent differential settlement"
    },
    {
     "name": "Arctic entry vestibule",
     "climate_fit": "double-door airlock traps cold air before it reaches living space"
    },
    {
     "name": "Steep steel gable roof",
     "climate_fit": "slick metal roofing sheds heavy Southcentral and Interior snow load"
    },
    {
     "name": "Southeast rainforest frame house",
     "climate_fit": "steep roof and rain-screen detailing manage the panhandle's heavy year-round precipitation"
    },
    {
     "name": "Modular / prefab housing",
     "climate_fit": "shop-built construction compensates for short building seasons and remote logistics"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "minor",
    "moisture": "secondary, high in the Southeast panhandle and low in the Interior/Arctic",
    "snow_load": "dominant in Southcentral and Interior, minor in the Arctic desert North Slope",
    "wind": "secondary (coastal and Aleutian exposure)",
    "seismic": "dominant",
    "wildfire": "secondary, rising in the boreal Interior",
    "flood": "secondary (coastal erosion and river ice-jam flooding, compounded by permafrost thaw)"
   },
   "sources": [
    "https://ready.alaska.gov/Documents/Mitigation/SHMP/2023%20State%20of%20Alaska%20Hazard%20Mitigation%20Plan.pdf",
    "https://www.usgs.gov/centers/alaska-science-center/science/alaska-earthquake-and-tsunami-hazards",
    "https://www.usgs.gov/publications/maps-showing-seismic-landslide-hazards-anchorage-alaska"
   ],
   "route_cities": []
  },
  {
   "id": "hawaii",
   "name": "Hawaii",
   "states": [
    "HI"
   ],
   "koppen_summary": "Af/Am tropical rainforest on windward slopes; Aw tropical savanna on leeward coasts; Cfb/Csb highland subtropical above roughly 2,000 feet; localized semi-arid leeward pockets",
   "character": "A volcanic archipelago where trade winds and elevation set the climate more than season does — windward coasts stay wet and lush, leeward coasts stay dry and sunny, and the volcanoes themselves are an active hazard, not scenery.",
   "hazards": [
    "hurricanes and tropical storms",
    "volcanic activity (lava flow, vog)",
    "tsunami",
    "wildfire (leeward dry grassland)",
    "landslides and flash flooding (windward slopes)",
    "coastal erosion and sea-level rise"
   ],
   "housing_styles": [
    {
     "name": "Plantation-style single-wall cottage",
     "climate_fit": "single-wall board construction and a raised floor suit a climate with no freeze risk"
    },
    {
     "name": "Lanai-centric plan",
     "climate_fit": "covered outdoor room extends living space into the trade-wind breeze"
    },
    {
     "name": "Wide-eave hipped roof",
     "climate_fit": "deep overhangs shed heavy windward rain while shading walls from sun"
    },
    {
     "name": "Post-and-pier foundation",
     "climate_fit": "elevates the floor for airflow, drainage, and termite/moisture separation"
    },
    {
     "name": "Hurricane-strapped concrete block (post-Iniki code)",
     "climate_fit": "reinforced masonry and metal strapping resist tropical-storm wind uplift"
    },
    {
     "name": "Breezeway / open-plan layout",
     "climate_fit": "cross-ventilation substitutes for mechanical cooling in the trade-wind climate"
    }
   ],
   "design_drivers": {
    "heating": "minor",
    "cooling": "dominant, often met passively rather than mechanically",
    "moisture": "dominant on windward coasts, minor on leeward coasts",
    "snow_load": "minor (summit elevations only, Mauna Kea/Mauna Loa)",
    "wind": "secondary to dominant (hurricane and trade-wind loading)",
    "seismic": "secondary (volcanic seismicity, occasional large earthquakes)",
    "wildfire": "secondary, elevated on leeward grassland since the 2023 Maui fires",
    "flood": "secondary (windward flash flooding and coastal tsunami/storm surge)"
   },
   "sources": [
    "https://www.usgs.gov/faqs/how-were-hawaii-lava-flow-hazard-zones-determined",
    "https://seagrant.soest.hawaii.edu/topics/topics-a-z/natural-hazards/",
    "https://www.kauai.gov/files/content/public/v/18/government/departments-agencies/emergency-management-agency/multi-hazard-mitigation-and-resilience-plan/2026-kauai-county-multi-hazard-mitigation-and-resilience-plan-final.pdf"
   ],
   "route_cities": []
  }
 ],
 "states": {
  "AL": {
   "usps": "AL",
   "name": "Alabama",
   "fips": "01",
   "region": "southeast",
   "anchor": {
    "ncei_station": "USW00013876",
    "name": "BIRMINGHAM AP, AL US",
    "lat": 33.5656,
    "lon": -86.745,
    "elev_m": 187.5,
    "nws_station": "KBHM",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      44.7,
      48.8,
      56.0,
      63.6,
      71.5,
      78.3,
      81.5,
      80.9,
      75.6,
      64.9,
      54.0,
      47.4
     ],
     "tmax": [
      54.5,
      59.1,
      67.1,
      75.0,
      82.0,
      88.1,
      91.0,
      90.6,
      85.9,
      76.0,
      65.0,
      56.9
     ],
     "tmin": [
      34.9,
      38.4,
      45.0,
      52.1,
      61.0,
      68.5,
      72.1,
      71.3,
      65.3,
      53.9,
      43.0,
      37.9
     ],
     "prcp": [
      5.03,
      4.95,
      5.66,
      5.08,
      4.91,
      4.78,
      5.42,
      4.35,
      4.0,
      3.34,
      4.23,
      4.87
     ],
     "snow": [
      0.4,
      0.3,
      0.5,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2
     ],
     "hdd65": [
      630.8,
      459.0,
      300.5,
      116.9,
      21.2,
      0.2,
      0.0,
      0.0,
      5.7,
      105.2,
      344.0,
      550.0
     ],
     "cdd65": [
      1.7,
      4.0,
      23.0,
      73.5,
      222.6,
      399.2,
      513.0,
      494.4,
      323.6,
      103.6,
      14.0,
      4.4
     ]
    },
    "annual": {
     "tavg_f": 63.9,
     "jan_mean_f": 44.7,
     "jul_mean_f": 81.5,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 56.62,
     "snow_in": 1.4,
     "hdd65": 2533,
     "cdd65": 2177,
     "cdd50": 5645,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Mar",
     "driest_month": "Oct"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 17.7,
     "map_mm": 1438,
     "thot_c": 27.5,
     "tcold_c": 7.1,
     "tmon10": 9,
     "pdry_mm": 85,
     "pthreshold_mm": 494.8,
     "summer_share": 0.5
    }
   },
   "iecc": {
    "zone": 3,
    "moisture": "A",
    "label": "3A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 56.6,
     "dry_limit_in": 19.6,
     "tcold_f": 44.7,
     "thot_f": 81.5,
     "months_over_50f": 9,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 5645,
     "hdd65": 2533
    },
    "adopted": {
     "zone": "3A",
     "county": "Jefferson",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "Shotgun",
     "climate_fit": "one room wide, doors aligned — cross-breeze before air conditioning"
    },
    {
     "name": "Creole cottage / townhouse",
     "climate_fit": "raised main floor and galleries above street water"
    },
    {
     "name": "Florida Cracker / dogtrot",
     "climate_fit": "elevated frame, breezeway core, metal roof sheds torrential rain"
    },
    {
     "name": "Lowcountry raised cottage",
     "climate_fit": "piers for flood and breeze; deep piazzas for shade"
    },
    {
     "name": "Key West conch",
     "climate_fit": "metal roof, shutters and porches built for hurricane country"
    },
    {
     "name": "Mediterranean / Spanish Revival",
     "climate_fit": "stucco and tile against sun and salt air"
    },
    {
     "name": "Brick ranch",
     "climate_fit": "slab-on-grade postwar default of the inland South"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed, cooling-leaning",
     "because": "IECC zone 3: CDD50 at or under 6300 and HDD65 2533 at or under 3600",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 57 in, snow 1.4 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 3",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3A (Jefferson County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; storm shelter or safe room; hurricane ties even outside hurricane zones; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Hurricane wind, Tornado, Riverine / urban flood, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Alabama, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 2533, CDD65 2177); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    661.3,
    425.2
   ],
   "live": {
    "nws_alert_area": "AL",
    "nws_station": "KBHM",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "AK": {
   "usps": "AK",
   "name": "Alaska",
   "fips": "02",
   "region": "alaska",
   "anchor": {
    "ncei_station": "USW00026451",
    "name": "ANCHORAGE INTL AP, AK US",
    "lat": 61.1689,
    "lon": -150.0278,
    "elev_m": 36.6,
    "nws_station": "PANC",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      16.9,
      21.3,
      25.8,
      37.5,
      48.1,
      55.9,
      59.6,
      57.5,
      49.3,
      36.3,
      23.6,
      19.4
     ],
     "tmax": [
      22.7,
      27.3,
      33.0,
      45.1,
      56.3,
      63.4,
      66.2,
      64.0,
      55.7,
      42.0,
      28.9,
      25.0
     ],
     "tmin": [
      11.0,
      15.2,
      18.6,
      29.9,
      40.0,
      48.4,
      52.9,
      50.9,
      42.9,
      30.7,
      18.3,
      13.8
     ],
     "prcp": [
      0.75,
      0.86,
      0.69,
      0.43,
      0.65,
      1.02,
      1.82,
      2.93,
      3.1,
      1.82,
      1.19,
      1.16
     ],
     "snow": [
      12.4,
      13.4,
      11.0,
      4.0,
      0.3,
      0.0,
      0.0,
      0.0,
      0.4,
      5.6,
      12.6,
      18.2
     ],
     "hdd65": [
      1492.6,
      1225.0,
      1215.1,
      825.0,
      522.4,
      274.7,
      173.6,
      235.5,
      471.0,
      888.1,
      1241.9,
      1413.6
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      1.6,
      4.6,
      1.4,
      0.0,
      0.0,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 37.6,
     "jan_mean_f": 16.9,
     "jul_mean_f": 59.6,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 16.42,
     "snow_in": 77.9,
     "hdd65": 9979,
     "cdd65": 8,
     "cdd50": 816,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Sep",
     "driest_month": "Apr"
    }
   },
   "koppen": {
    "code": "Dsc",
    "name": "Dry-summer subarctic",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 3.1,
     "map_mm": 417,
     "thot_c": 15.3,
     "tcold_c": -8.4,
     "tmon10": 3,
     "pdry_mm": 11,
     "pthreshold_mm": 202.2,
     "summer_share": 0.61
    }
   },
   "iecc": {
    "zone": 7,
    "moisture": "A",
    "label": "7A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 16.4,
     "dry_limit_in": 8.0,
     "tcold_f": 16.9,
     "thot_f": 59.6,
     "months_over_50f": 3,
     "summer_dry_season": true,
     "rule": "not dry, not marine",
     "cdd50": 816,
     "hdd65": 9979
    },
    "adopted": {
     "zone": "7",
     "county": "Anchorage Municipality",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "seismic",
     "label": "Earthquake"
    },
    {
     "id": "permafrost",
     "label": "Permafrost"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "coastal-erosion",
     "label": "Coastal erosion"
    },
    {
     "id": "tsunami",
     "label": "Tsunami"
    }
   ],
   "house_types": [
    {
     "name": "Log cabin",
     "climate_fit": "thick log mass and small footprint hold heat through subarctic winters"
    },
    {
     "name": "Pile / elevated foundation",
     "climate_fit": "raises the structure off thawing permafrost to prevent differential settlement"
    },
    {
     "name": "Arctic entry vestibule",
     "climate_fit": "double-door airlock traps cold air before it reaches living space"
    },
    {
     "name": "Steep steel gable roof",
     "climate_fit": "slick metal roofing sheds heavy Southcentral and Interior snow load"
    },
    {
     "name": "Southeast rainforest frame house",
     "climate_fit": "steep roof and rain-screen detailing manage the panhandle's heavy year-round precipitation"
    },
    {
     "name": "Modular / prefab housing",
     "climate_fit": "shop-built construction compensates for short building seasons and remote logistics"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "minor",
    "moisture": "secondary, high in the Southeast panhandle and low in the Interior/Arctic",
    "snow_load": "dominant in Southcentral and Interior, minor in the Arctic desert North Slope",
    "wind": "secondary (coastal and Aleutian exposure)",
    "seismic": "dominant",
    "wildfire": "secondary, rising in the boreal Interior",
    "flood": "secondary (coastal erosion and river ice-jam flooding, compounded by permafrost thaw)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated, severe",
     "because": "IECC zone 7: HDD65 9979 above 9000",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "steep, 8:12 or more, with snow retention",
     "because": "annual snowfall normal 78 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated on piles or thermosyphon-cooled pads; never slab-on-grade over ice-rich soil",
     "because": "permafrost flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 7",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-38; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 7 (Anchorage Municipality County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; thermal separation from the ground; monitor for differential settlement",
     "because": "Earthquake, Permafrost, Extreme cold, Wildfire, Coastal erosion, Tsunami",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Alaska, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 9979, CDD65 8); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dsc normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    100.7,
    514.9
   ],
   "live": {
    "nws_alert_area": "AK",
    "nws_station": "PANC",
    "usgs_feed": "2.5_day",
    "eonet": true
   },
   "secondary_stations": [
    {
     "ncei_station": "USW00026411",
     "name": "FAIRBANKS INTL AP, AK US",
     "lat": 64.8039,
     "lon": -147.8761,
     "annual": {
      "tavg_f": 28.3,
      "jan_mean_f": -8.3,
      "jul_mean_f": 62.9,
      "precip_in": 11.7,
      "snow_in": 64.6,
      "hdd65": 13420,
      "cdd50": 1116
     },
     "koppen": "Dfb",
     "iecc_zone": 8
    }
   ]
  },
  "AZ": {
   "usps": "AZ",
   "name": "Arizona",
   "fips": "04",
   "region": "southwest",
   "anchor": {
    "ncei_station": "USW00023183",
    "name": "PHOENIX SKY HARBOR INTL AP, AZ US",
    "lat": 33.4278,
    "lon": -112.0039,
    "elev_m": 337.4,
    "nws_station": "KPHX",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      56.8,
      59.9,
      66.3,
      73.2,
      82.0,
      91.4,
      95.5,
      94.4,
      89.2,
      77.4,
      65.1,
      55.8
     ],
     "tmax": [
      67.6,
      70.8,
      78.1,
      85.5,
      94.5,
      104.2,
      106.5,
      105.1,
      100.4,
      89.2,
      76.5,
      66.2
     ],
     "tmin": [
      46.0,
      49.0,
      54.5,
      60.8,
      69.5,
      78.6,
      84.5,
      83.6,
      78.1,
      65.6,
      53.7,
      45.3
     ],
     "prcp": [
      0.87,
      0.87,
      0.83,
      0.22,
      0.13,
      0.02,
      0.91,
      0.93,
      0.57,
      0.56,
      0.57,
      0.74
     ],
     "snow": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "hdd65": [
      256.2,
      159.0,
      64.7,
      14.3,
      0.8,
      0.0,
      0.0,
      0.0,
      0.0,
      5.8,
      85.0,
      288.5
     ],
     "cdd65": [
      2.0,
      16.3,
      105.0,
      258.9,
      527.8,
      791.9,
      945.4,
      909.8,
      727.4,
      390.2,
      88.1,
      1.9
     ]
    },
    "annual": {
     "tavg_f": 75.6,
     "jan_mean_f": 56.8,
     "jul_mean_f": 95.5,
     "warmest_month": "Jul",
     "coldest_month": "Dec",
     "precip_in": 7.22,
     "snow_in": 0.0,
     "hdd65": 874,
     "cdd65": 4765,
     "cdd50": 9423,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Aug",
     "driest_month": "Jun",
     "snow_note": "NCEI publishes no snowfall normal for this station; treated as 0 in"
    }
   },
   "koppen": {
    "code": "BWh",
    "name": "Hot desert",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 24.2,
     "map_mm": 183,
     "thot_c": 35.3,
     "tcold_c": 13.2,
     "tmon10": 12,
     "pdry_mm": 1,
     "pthreshold_mm": 624.3,
     "summer_share": 0.39
    }
   },
   "iecc": {
    "zone": 1,
    "moisture": "B",
    "label": "1B",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 7.2,
     "dry_limit_in": 24.7,
     "rule": "P < 0.44 x (T - 19.5)",
     "cdd50": 9423,
     "hdd65": 874
    },
    "adopted": {
     "zone": "2B",
     "county": "Maricopa",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 1B from 1991-2020 station normals; Table R301.1 assigns 2B to Maricopa County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "extreme-heat",
     "label": "Extreme heat"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "flash-flood",
     "label": "Flash flood"
    },
    {
     "id": "monsoon",
     "label": "Monsoon thunderstorms"
    }
   ],
   "house_types": [
    {
     "name": "Pueblo Revival / adobe",
     "climate_fit": "thermal mass evens the high-desert day-night swing; flat roofs fit dry, snow-free winters"
    },
    {
     "name": "Territorial",
     "climate_fit": "adobe massing with Anglo trim and brick coping"
    },
    {
     "name": "Mission / Spanish Colonial Revival",
     "climate_fit": "stucco and clay tile for sun; courtyards make shade"
    },
    {
     "name": "California ranch",
     "climate_fit": "single-story indoor-outdoor living the mild coast permits"
    },
    {
     "name": "Desert modernism",
     "climate_fit": "deep overhangs and oriented glass for shade with views"
    },
    {
     "name": "Contemporary desert",
     "climate_fit": "low-pitch tile roofs, stucco, shade-first site planning"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "cooling-dominated",
     "because": "IECC zone 1: CDD50 above 6300",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "low-slope or flat acceptable with positive drainage and parapet scuppers",
     "because": "precip 7 in, snow 0.0 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "slab-on-grade with capillary break, termite shield and edge moisture detailing",
     "because": "IECC zone 1, no flood flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "vapor-open assemblies; prioritize dust, UV and flash-flood site drainage over vapor control",
     "because": "moisture regime B (dry)",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-13 or R-0+10ci; floor R-13; slab R-0; basement wall R-0",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 2B (Maricopa County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; cool roof, shaded outdoor rooms, thermal mass where nights are cool",
     "because": "Extreme heat, Drought, Wildfire, Flash flood, Monsoon thunderstorms",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Arizona, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 874, CDD65 4765); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a BWh normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    204.8,
    376.2
   ],
   "live": {
    "nws_alert_area": "AZ",
    "nws_station": "KPHX",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "AR": {
   "usps": "AR",
   "name": "Arkansas",
   "fips": "05",
   "region": "south-central",
   "anchor": {
    "ncei_station": "USW00013963",
    "name": "LITTLE ROCK AP ADAMS FLD, AR US",
    "lat": 34.7272,
    "lon": -92.2389,
    "elev_m": 78.6,
    "nws_station": "KLIT",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      40.7,
      44.7,
      52.7,
      61.4,
      69.9,
      78.0,
      81.4,
      80.8,
      74.0,
      62.6,
      51.1,
      43.0
     ],
     "tmax": [
      50.5,
      55.2,
      63.7,
      72.8,
      80.5,
      88.2,
      91.7,
      91.5,
      85.1,
      74.2,
      61.9,
      52.6
     ],
     "tmin": [
      30.9,
      34.2,
      41.8,
      50.1,
      59.3,
      67.7,
      71.2,
      70.1,
      62.9,
      50.9,
      40.2,
      33.3
     ],
     "prcp": [
      3.5,
      3.97,
      4.96,
      5.59,
      5.08,
      3.55,
      3.33,
      3.16,
      3.01,
      4.47,
      4.72,
      5.08
     ],
     "snow": [
      1.1,
      1.6,
      0.5,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.6
     ],
     "hdd65": [
      753.8,
      569.4,
      391.1,
      154.2,
      30.3,
      0.4,
      0.0,
      0.0,
      10.8,
      144.8,
      425.4,
      684.3
     ],
     "cdd65": [
      0.7,
      1.1,
      11.4,
      47.7,
      182.2,
      388.8,
      509.9,
      489.7,
      280.7,
      68.9,
      6.9,
      0.9
     ]
    },
    "annual": {
     "tavg_f": 61.7,
     "jan_mean_f": 40.7,
     "jul_mean_f": 81.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 50.42,
     "snow_in": 3.8,
     "hdd65": 3165,
     "cdd65": 1989,
     "cdd50": 5157,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Apr",
     "driest_month": "Sep"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 16.5,
     "map_mm": 1281,
     "thot_c": 27.4,
     "tcold_c": 4.8,
     "tmon10": 9,
     "pdry_mm": 76,
     "pthreshold_mm": 469.9,
     "summer_share": 0.47
    }
   },
   "iecc": {
    "zone": 3,
    "moisture": "A",
    "label": "3A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 50.4,
     "dry_limit_in": 18.6,
     "tcold_f": 40.7,
     "thot_f": 81.4,
     "months_over_50f": 9,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 5157,
     "hdd65": 3165
    },
    "adopted": {
     "zone": "3A",
     "county": "Pulaski",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "Dogtrot",
     "climate_fit": "open central breezeway cools two flanking rooms before mechanical air conditioning"
    },
    {
     "name": "Shotgun",
     "climate_fit": "one room wide with aligned doors for cross-ventilation in humid heat"
    },
    {
     "name": "Texas German stone farmhouse",
     "climate_fit": "thick limestone walls buffer the Hill Country's hot days and cool nights"
    },
    {
     "name": "Acadian cottage",
     "climate_fit": "raised floor and broad porch handle Louisiana humidity and standing water"
    },
    {
     "name": "Raised Gulf cottage",
     "climate_fit": "pier foundation lifts the living floor above storm surge and flood"
    },
    {
     "name": "Hill Country modern",
     "climate_fit": "deep overhangs and stone massing manage sun and flash-flood-prone sites"
    }
   ],
   "design_drivers": {
    "heating": "minor",
    "cooling": "dominant",
    "moisture": "dominant (Gulf humidity)",
    "snow_load": "minor (occasional damaging ice events)",
    "wind": "dominant (hurricane and tornado exposure)",
    "seismic": "minor",
    "wildfire": "secondary, concentrated in western Texas during drought",
    "flood": "dominant (hurricane storm surge and Hill Country flash flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed, cooling-leaning",
     "because": "IECC zone 3: CDD50 at or under 6300 and HDD65 3165 at or under 3600",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 50 in, snow 3.8 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 3",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3A (Pulaski County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Tornado, Riverine / urban flood, Ice storm, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Arkansas, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 3165, CDD65 1989); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    555,
    384.6
   ],
   "live": {
    "nws_alert_area": "AR",
    "nws_station": "KLIT",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "CA": {
   "usps": "CA",
   "name": "California",
   "fips": "06",
   "region": "southwest",
   "anchor": {
    "ncei_station": "USW00023174",
    "name": "LOS ANGELES INTL AP, CA US",
    "lat": 33.9381,
    "lon": -118.3889,
    "elev_m": 29.6,
    "nws_station": "KLAX",
    "note": "USW00023174 LOS ANGELES INTL AP replaces USC00042214 (NCEI name CULVER CITY), which the 16-station route page uses for Los Angeles."
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      57.9,
      57.9,
      59.1,
      61.1,
      63.6,
      66.4,
      69.6,
      70.7,
      70.1,
      67.1,
      62.3,
      57.6
     ],
     "tmax": [
      66.3,
      65.6,
      66.1,
      68.1,
      69.5,
      72.0,
      75.1,
      76.7,
      76.5,
      74.4,
      70.9,
      66.1
     ],
     "tmin": [
      49.4,
      50.1,
      52.2,
      54.2,
      57.6,
      60.9,
      64.0,
      64.8,
      63.7,
      59.8,
      53.7,
      49.1
     ],
     "prcp": [
      2.86,
      2.99,
      1.73,
      0.6,
      0.28,
      0.08,
      0.04,
      0.0,
      0.11,
      0.49,
      0.82,
      2.23
     ],
     "snow": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "hdd65": [
      227.4,
      207.3,
      189.8,
      132.5,
      69.5,
      13.0,
      1.5,
      1.0,
      2.4,
      26.0,
      111.2,
      232.0
     ],
     "cdd65": [
      5.8,
      7.1,
      8.5,
      17.0,
      24.5,
      56.5,
      142.5,
      179.2,
      155.4,
      91.1,
      30.2,
      2.6
     ]
    },
    "annual": {
     "tavg_f": 63.6,
     "jan_mean_f": 57.9,
     "jul_mean_f": 69.6,
     "warmest_month": "Aug",
     "coldest_month": "Dec",
     "precip_in": 12.23,
     "snow_in": 0.0,
     "hdd65": 1214,
     "cdd65": 720,
     "cdd50": 4988,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Feb",
     "driest_month": "Aug",
     "snow_note": "NCEI publishes no snowfall normal for this station; treated as 0 in"
    }
   },
   "koppen": {
    "code": "BSk",
    "name": "Cold semi-arid",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 17.6,
     "map_mm": 311,
     "thot_c": 21.5,
     "tcold_c": 14.2,
     "tmon10": 12,
     "pdry_mm": 0,
     "pthreshold_mm": 351.3,
     "summer_share": 0.09
    }
   },
   "iecc": {
    "zone": 3,
    "moisture": "B",
    "label": "3B",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 12.2,
     "dry_limit_in": 19.4,
     "rule": "P < 0.44 x (T - 19.5)",
     "cdd50": 4988,
     "hdd65": 1214
    },
    "adopted": {
     "zone": "3B",
     "county": "Los Angeles",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "seismic",
     "label": "Earthquake"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "atmospheric-river",
     "label": "Atmospheric river"
    },
    {
     "id": "extreme-heat",
     "label": "Extreme heat"
    }
   ],
   "house_types": [
    {
     "name": "Pueblo Revival / adobe",
     "climate_fit": "thermal mass evens the high-desert day-night swing; flat roofs fit dry, snow-free winters"
    },
    {
     "name": "Territorial",
     "climate_fit": "adobe massing with Anglo trim and brick coping"
    },
    {
     "name": "Mission / Spanish Colonial Revival",
     "climate_fit": "stucco and clay tile for sun; courtyards make shade"
    },
    {
     "name": "California ranch",
     "climate_fit": "single-story indoor-outdoor living the mild coast permits"
    },
    {
     "name": "Desert modernism",
     "climate_fit": "deep overhangs and oriented glass for shade with views"
    },
    {
     "name": "Contemporary desert",
     "climate_fit": "low-pitch tile roofs, stucco, shade-first site planning"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed, cooling-leaning",
     "because": "IECC zone 3: CDD50 at or under 6300 and HDD65 1214 at or under 3600",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "low-slope or flat acceptable with positive drainage and parapet scuppers",
     "because": "precip 12 in, snow 0.0 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "slab-on-grade with capillary break, termite shield and edge moisture detailing",
     "because": "IECC zone 3, no flood flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "vapor-open assemblies; prioritize dust, UV and flash-flood site drainage over vapor control",
     "because": "moisture regime B (dry)",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3B (Los Angeles County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; cool roof, shaded outdoor rooms, thermal mass where nights are cool",
     "because": "Earthquake, Wildfire, Drought, Atmospheric river, Extreme heat",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in California, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 1214, CDD65 720); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a BSk normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    80.8,
    283.4
   ],
   "live": {
    "nws_alert_area": "CA",
    "nws_station": "KLAX",
    "usgs_feed": "2.5_day",
    "eonet": true
   },
   "secondary_stations": [
    {
     "ncei_station": "USW00023234",
     "name": "SAN FRANCISCO INTL AP, CA US",
     "lat": 37.6197,
     "lon": -122.3647,
     "annual": {
      "tavg_f": 58.7,
      "jan_mean_f": 51.3,
      "jul_mean_f": 64.0,
      "precip_in": 19.6,
      "snow_in": 0.0,
      "hdd65": 2475,
      "cdd50": 3342
     },
     "koppen": "Csb",
     "iecc_zone": 3
    }
   ]
  },
  "CO": {
   "usps": "CO",
   "name": "Colorado",
   "fips": "08",
   "region": "mountain",
   "anchor": {
    "ncei_station": "USW00023062",
    "name": "DENVER-STAPLETON, CO US",
    "lat": 39.7633,
    "lon": -104.8694,
    "elev_m": 1611.2,
    "nws_station": "KDEN",
    "note": "USW00023062 DENVER-STAPLETON is the anchor because USW00003017 DENVER INTL AP has no published snowfall normal; DIA is kept as a secondary station."
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      32.1,
      33.4,
      41.8,
      48.1,
      57.6,
      68.5,
      74.8,
      72.5,
      64.2,
      51.2,
      40.2,
      31.8
     ],
     "tmax": [
      46.5,
      47.5,
      56.4,
      62.5,
      71.7,
      84.1,
      90.2,
      87.9,
      80.1,
      66.7,
      54.8,
      45.9
     ],
     "tmin": [
      17.6,
      19.3,
      27.1,
      33.7,
      43.4,
      52.9,
      59.3,
      57.2,
      48.2,
      35.7,
      25.5,
      17.7
     ],
     "prcp": [
      0.46,
      0.53,
      1.12,
      1.67,
      2.29,
      1.68,
      2.12,
      1.83,
      1.51,
      0.98,
      0.7,
      0.47
     ],
     "snow": [
      6.4,
      7.6,
      8.8,
      6.2,
      1.4,
      0.0,
      0.0,
      0.0,
      0.8,
      3.9,
      7.3,
      6.6
     ],
     "hdd65": [
      1021.5,
      884.6,
      720.9,
      508.0,
      256.6,
      46.3,
      4.0,
      9.5,
      108.1,
      430.9,
      745.6,
      1029.0
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      1.0,
      25.6,
      151.2,
      306.1,
      243.5,
      82.5,
      3.1,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 51.3,
     "jan_mean_f": 32.1,
     "jul_mean_f": 74.8,
     "warmest_month": "Jul",
     "coldest_month": "Dec",
     "precip_in": 15.36,
     "snow_in": 49.0,
     "hdd65": 5765,
     "cdd65": 813,
     "cdd50": 3076,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "BSk",
    "name": "Cold semi-arid",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 10.8,
     "map_mm": 390,
     "thot_c": 23.8,
     "tcold_c": -0.1,
     "tmon10": 6,
     "pdry_mm": 12,
     "pthreshold_mm": 495.0,
     "summer_share": 0.72
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 15.4,
     "dry_limit_in": 14.0,
     "tcold_f": 31.8,
     "thot_f": 74.8,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3076,
     "hdd65": 5765
    },
    "adopted": {
     "zone": "5B",
     "county": "Denver",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 5A from 1991-2020 station normals; Table R301.1 assigns 5B to Denver County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "hail",
     "label": "Hail"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "flash-flood",
     "label": "Flash flood"
    }
   ],
   "house_types": [
    {
     "name": "Ski chalet",
     "climate_fit": "steep gable roof and deep eaves shed heavy mountain snowfall"
    },
    {
     "name": "Log cabin",
     "climate_fit": "thick log walls hold heat through long, cold winters"
    },
    {
     "name": "Mining-town Victorian",
     "climate_fit": "narrow lots and steep metal roofs from 19th-century boomtowns built for snow load"
    },
    {
     "name": "Mountain modern",
     "climate_fit": "large glazing and simple massing chase views while metal roofs shed snow"
    },
    {
     "name": "Valley ranch",
     "climate_fit": "low, single-story postwar stock in the drier basin towns where snow load is lighter"
    },
    {
     "name": "Earth-sheltered / passive solar",
     "climate_fit": "Rocky Mountain berm-and-solar tradition that banks on the region's intense high-elevation sun"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "minor",
    "moisture": "minor",
    "snow_load": "dominant",
    "wind": "secondary (exposed ridgelines, canyon winds)",
    "seismic": "secondary, concentrated on the Wasatch Front (UT)",
    "wildfire": "dominant",
    "flood": "secondary (snowmelt and canyon flash flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 5765",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 49 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5B (Denver County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; impact-rated roofing (UL 2218 Class 4); roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Wildfire, Hail, Snow load, Drought, Flash flood",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Colorado, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5765, CDD65 813); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a BSk normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    326.4,
    285.1
   ],
   "live": {
    "nws_alert_area": "CO",
    "nws_station": "KDEN",
    "usgs_feed": "2.5_day",
    "eonet": true
   },
   "secondary_stations": [
    {
     "ncei_station": "USW00003017",
     "name": "DENVER INTL AP, CO US",
     "lat": 39.8328,
     "lon": -104.6575,
     "annual": {
      "tavg_f": 51.2,
      "jan_mean_f": 31.7,
      "jul_mean_f": 75.1,
      "precip_in": 14.5,
      "snow_in": 0.0,
      "hdd65": 5862,
      "cdd50": 3053
     },
     "koppen": "BSk",
     "iecc_zone": 5
    }
   ]
  },
  "CT": {
   "usps": "CT",
   "name": "Connecticut",
   "fips": "09",
   "region": "northeast",
   "anchor": {
    "ncei_station": "USW00014740",
    "name": "HARTFORD BRADLEY INTL AP, CT US",
    "lat": 41.9381,
    "lon": -72.6825,
    "elev_m": 57.9,
    "nws_station": "KBDL",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      27.1,
      29.6,
      37.8,
      49.5,
      60.0,
      68.9,
      74.3,
      72.5,
      64.8,
      53.0,
      42.3,
      32.6
     ],
     "tmax": [
      35.3,
      38.5,
      47.3,
      60.5,
      71.7,
      79.9,
      85.2,
      83.3,
      75.7,
      63.5,
      51.5,
      40.6
     ],
     "tmin": [
      18.8,
      20.7,
      28.2,
      38.4,
      48.4,
      57.8,
      63.4,
      61.7,
      53.8,
      42.4,
      33.0,
      24.6
     ],
     "prcp": [
      3.28,
      3.13,
      3.81,
      3.88,
      3.79,
      4.28,
      4.17,
      4.21,
      4.39,
      4.52,
      3.51,
      4.08
     ],
     "snow": [
      14.2,
      14.8,
      9.4,
      1.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.7,
      1.4,
      10.1
     ],
     "hdd65": [
      1176.3,
      991.1,
      845.1,
      473.2,
      193.3,
      34.7,
      2.0,
      5.6,
      93.1,
      381.8,
      682.6,
      1004.3
     ],
     "cdd65": [
      0.0,
      0.0,
      0.4,
      6.7,
      39.8,
      150.1,
      290.2,
      238.1,
      85.6,
      8.3,
      0.1,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 51.0,
     "jan_mean_f": 27.1,
     "jul_mean_f": 74.3,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 47.05,
     "snow_in": 51.7,
     "hdd65": 5883,
     "cdd65": 819,
     "cdd50": 3033,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Oct",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 10.6,
     "map_mm": 1195,
     "thot_c": 23.5,
     "tcold_c": -2.7,
     "tmon10": 6,
     "pdry_mm": 80,
     "pthreshold_mm": 351.5,
     "summer_share": 0.53
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 47.0,
     "dry_limit_in": 13.9,
     "tcold_f": 27.1,
     "thot_f": 74.3,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3033,
     "hdd65": 5883
    },
    "adopted": {
     "zone": "5A",
     "county": "Hartford",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "noreaster",
     "label": "Nor'easter"
    },
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "hurricane-remnant",
     "label": "Tropical remnants"
    }
   ],
   "house_types": [
    {
     "name": "Colonial / Colonial Revival",
     "climate_fit": "compact two-story form and central chimney hold heat through winter"
    },
    {
     "name": "Cape Cod",
     "climate_fit": "low profile and steep roof shed snow and shrug off wind"
    },
    {
     "name": "Saltbox",
     "climate_fit": "long rear roofline turns its back to the north wind"
    },
    {
     "name": "Brownstone / rowhouse",
     "climate_fit": "party walls buffer winter cold on dense urban lots"
    },
    {
     "name": "Triple-decker",
     "climate_fit": "stacked flats — New England's dense urban housing form"
    },
    {
     "name": "Queen Anne Victorian",
     "climate_fit": "the heavy ornate stock of the region's industrial-era boom"
    },
    {
     "name": "Split-level / raised ranch",
     "climate_fit": "postwar suburban default on graded lots"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 5883",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 52 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Hartford County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops",
     "because": "Nor'easter, Coastal flood, Freeze-thaw and ice, Tropical remnants",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Connecticut, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5883, CDD65 819); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    872.2,
    187.2
   ],
   "live": {
    "nws_alert_area": "CT",
    "nws_station": "KBDL",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "DE": {
   "usps": "DE",
   "name": "Delaware",
   "fips": "10",
   "region": "mid-atlantic",
   "anchor": {
    "ncei_station": "USW00013781",
    "name": "WILMINGTON NEW CASTLE CO AP, DE US",
    "lat": 39.6728,
    "lon": -75.6008,
    "elev_m": 24.1,
    "nws_station": "KILG",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      33.5,
      35.5,
      43.2,
      53.9,
      63.5,
      72.6,
      77.6,
      75.8,
      68.9,
      57.2,
      46.6,
      38.2
     ],
     "tmax": [
      41.4,
      44.1,
      52.5,
      64.2,
      73.5,
      82.2,
      86.8,
      84.9,
      78.5,
      67.0,
      55.9,
      46.0
     ],
     "tmin": [
      25.6,
      27.0,
      33.9,
      43.5,
      53.4,
      63.0,
      68.3,
      66.6,
      59.3,
      47.3,
      37.4,
      30.3
     ],
     "prcp": [
      3.23,
      2.83,
      4.16,
      3.51,
      3.57,
      4.67,
      4.41,
      3.98,
      4.38,
      3.68,
      3.06,
      3.85
     ],
     "snow": [
      6.1,
      7.8,
      3.1,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      2.9
     ],
     "hdd65": [
      976.3,
      824.5,
      676.5,
      347.0,
      121.7,
      13.1,
      0.1,
      0.6,
      38.0,
      265.8,
      550.9,
      832.3
     ],
     "cdd65": [
      0.0,
      0.0,
      0.8,
      12.5,
      73.6,
      241.0,
      389.0,
      333.8,
      154.9,
      22.5,
      0.4,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 55.5,
     "jan_mean_f": 33.5,
     "jul_mean_f": 77.6,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 45.33,
     "snow_in": 20.2,
     "hdd65": 4647,
     "cdd65": 1228,
     "cdd50": 3769,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 13.1,
     "map_mm": 1151,
     "thot_c": 25.3,
     "tcold_c": 0.8,
     "tmon10": 7,
     "pdry_mm": 72,
     "pthreshold_mm": 401.6,
     "summer_share": 0.54
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 45.3,
     "dry_limit_in": 15.9,
     "tcold_f": 33.5,
     "thot_f": 77.6,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3769,
     "hdd65": 4647
    },
    "adopted": {
     "zone": "4A",
     "county": "New Castle",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    },
    {
     "id": "noreaster",
     "label": "Nor'easter"
    },
    {
     "id": "hurricane-remnant",
     "label": "Tropical remnants"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "Federal / Georgian rowhouse",
     "climate_fit": "party walls and masonry mass buffer winter cold on dense urban lots"
    },
    {
     "name": "Pennsylvania bank barn farmhouse",
     "climate_fit": "earth-banked lower level insulates against the interior's colder winters"
    },
    {
     "name": "Cape (Jersey Shore)",
     "climate_fit": "low, compact form stands up to coastal wind and nor'easter exposure"
    },
    {
     "name": "Colonial Revival",
     "climate_fit": "symmetric massing and a central chimney hold heat through the four-season interior climate"
    },
    {
     "name": "Baltimore rowhouse",
     "climate_fit": "shared walls and marble stoops handle dense, humid-summer urban blocks"
    },
    {
     "name": "Dutch Colonial",
     "climate_fit": "gambrel roof sheds snow while adding headroom in the Pennsylvania/New Jersey Dutch country"
    },
    {
     "name": "Tidewater farmhouse",
     "climate_fit": "raised foundation and wide porches manage Chesapeake humidity and tidal flooding"
    }
   ],
   "design_drivers": {
    "heating": "secondary to dominant, heavier in the Appalachian interior than the coastal plain",
    "cooling": "secondary",
    "moisture": "secondary",
    "snow_load": "secondary, higher in Appalachian ridge counties than the coast",
    "wind": "secondary (hurricane remnants and nor'easters)",
    "seismic": "minor, elevated in the Central Virginia Seismic Zone",
    "wildfire": "minor",
    "flood": "dominant (coastal and tidal flooding, nor'easter storm surge)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4647 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 20 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (New Castle County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Coastal flood, Nor'easter, Tropical remnants, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Delaware, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4647, CDD65 1228); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    840.2,
    255.6
   ],
   "live": {
    "nws_alert_area": "DE",
    "nws_station": "KILG",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "DC": {
   "usps": "DC",
   "name": "District of Columbia",
   "fips": "11",
   "region": "mid-atlantic",
   "anchor": {
    "ncei_station": "USW00013743",
    "name": "WASHINGTON REAGAN AP, VA US",
    "lat": 38.8483,
    "lon": -77.0342,
    "elev_m": 3.0,
    "nws_station": "KDCA",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      37.5,
      40.0,
      47.6,
      58.2,
      67.2,
      76.3,
      81.0,
      79.4,
      72.4,
      60.8,
      49.9,
      41.7
     ],
     "tmax": [
      44.8,
      48.3,
      56.5,
      68.0,
      76.5,
      85.1,
      89.6,
      87.8,
      80.7,
      69.4,
      58.2,
      48.8
     ],
     "tmin": [
      30.1,
      31.8,
      38.6,
      48.4,
      58.0,
      67.5,
      72.4,
      71.0,
      64.1,
      52.2,
      41.6,
      34.5
     ],
     "prcp": [
      2.86,
      2.62,
      3.5,
      3.21,
      3.94,
      4.2,
      4.33,
      3.25,
      3.93,
      3.66,
      2.91,
      3.41
     ],
     "snow": [
      4.9,
      5.0,
      2.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1,
      1.7
     ],
     "hdd65": [
      853.9,
      698.7,
      543.8,
      236.4,
      62.6,
      4.0,
      0.0,
      0.1,
      15.6,
      175.2,
      454.9,
      724.0
     ],
     "cdd65": [
      0.0,
      0.1,
      2.9,
      32.4,
      132.3,
      343.0,
      495.9,
      446.4,
      237.5,
      45.1,
      2.0,
      0.2
     ]
    },
    "annual": {
     "tavg_f": 59.3,
     "jan_mean_f": 37.5,
     "jul_mean_f": 81.0,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 41.82,
     "snow_in": 13.7,
     "hdd65": 3769,
     "cdd65": 1738,
     "cdd50": 4586,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 15.2,
     "map_mm": 1062,
     "thot_c": 27.2,
     "tcold_c": 3.1,
     "tmon10": 7,
     "pdry_mm": 67,
     "pthreshold_mm": 443.7,
     "summer_share": 0.55
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 41.8,
     "dry_limit_in": 17.5,
     "tcold_f": 37.5,
     "thot_f": 81.0,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 4586,
     "hdd65": 3769
    },
    "adopted": {
     "zone": "4A",
     "county": "District of Columbia",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "hurricane-remnant",
     "label": "Tropical remnants"
    }
   ],
   "house_types": [
    {
     "name": "Federal / Georgian rowhouse",
     "climate_fit": "party walls and masonry mass buffer winter cold on dense urban lots"
    },
    {
     "name": "Pennsylvania bank barn farmhouse",
     "climate_fit": "earth-banked lower level insulates against the interior's colder winters"
    },
    {
     "name": "Cape (Jersey Shore)",
     "climate_fit": "low, compact form stands up to coastal wind and nor'easter exposure"
    },
    {
     "name": "Colonial Revival",
     "climate_fit": "symmetric massing and a central chimney hold heat through the four-season interior climate"
    },
    {
     "name": "Baltimore rowhouse",
     "climate_fit": "shared walls and marble stoops handle dense, humid-summer urban blocks"
    },
    {
     "name": "Dutch Colonial",
     "climate_fit": "gambrel roof sheds snow while adding headroom in the Pennsylvania/New Jersey Dutch country"
    },
    {
     "name": "Tidewater farmhouse",
     "climate_fit": "raised foundation and wide porches manage Chesapeake humidity and tidal flooding"
    }
   ],
   "design_drivers": {
    "heating": "secondary to dominant, heavier in the Appalachian interior than the coastal plain",
    "cooling": "secondary",
    "moisture": "secondary",
    "snow_load": "secondary, higher in Appalachian ridge counties than the coast",
    "wind": "secondary (hurricane remnants and nor'easters)",
    "seismic": "minor, elevated in the Central Virginia Seismic Zone",
    "wildfire": "minor",
    "flood": "dominant (coastal and tidal flooding, nor'easter storm surge)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 3769 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 14 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (District of Columbia County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Heat and humidity, Riverine / urban flood, Freeze-thaw and ice, Tropical remnants",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in District of Columbia, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 3769, CDD65 1738); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    815.1,
    262.9
   ],
   "live": {
    "nws_alert_area": "DC",
    "nws_station": "KDCA",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "FL": {
   "usps": "FL",
   "name": "Florida",
   "fips": "12",
   "region": "southeast",
   "anchor": {
    "ncei_station": "USW00013889",
    "name": "JACKSONVILLE, FL US",
    "lat": 30.4844,
    "lon": -81.7019,
    "elev_m": 10.1,
    "nws_station": "KJAX",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      54.2,
      57.5,
      62.4,
      68.1,
      74.9,
      80.3,
      82.5,
      82.1,
      78.8,
      71.2,
      62.3,
      56.7
     ],
     "tmax": [
      65.5,
      68.9,
      74.3,
      79.8,
      85.9,
      89.9,
      91.9,
      90.8,
      87.2,
      80.9,
      73.2,
      67.5
     ],
     "tmin": [
      42.9,
      46.1,
      50.6,
      56.4,
      63.9,
      70.7,
      73.2,
      73.4,
      70.5,
      61.5,
      51.3,
      45.8
     ],
     "prcp": [
      3.28,
      2.86,
      3.29,
      2.93,
      3.42,
      7.6,
      6.77,
      6.88,
      7.56,
      4.03,
      2.0,
      2.78
     ],
     "snow": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "hdd65": [
      349.5,
      234.3,
      142.8,
      43.4,
      3.7,
      0.0,
      0.0,
      0.0,
      0.1,
      24.7,
      143.7,
      285.3
     ],
     "cdd65": [
      14.9,
      24.3,
      63.7,
      136.4,
      310.6,
      459.0,
      544.0,
      530.1,
      415.6,
      216.9,
      61.3,
      26.5
     ]
    },
    "annual": {
     "tavg_f": 69.3,
     "jan_mean_f": 54.2,
     "jul_mean_f": 82.5,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 53.4,
     "snow_in": 0.0,
     "hdd65": 1228,
     "cdd65": 2803,
     "cdd50": 7151,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Nov"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 20.7,
     "map_mm": 1356,
     "thot_c": 28.1,
     "tcold_c": 12.3,
     "tmon10": 12,
     "pdry_mm": 51,
     "pthreshold_mm": 553.9,
     "summer_share": 0.66
    }
   },
   "iecc": {
    "zone": 2,
    "moisture": "A",
    "label": "2A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 53.4,
     "dry_limit_in": 21.9,
     "tcold_f": 54.2,
     "thot_f": 82.5,
     "months_over_50f": 12,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 7151,
     "hdd65": 1228
    },
    "adopted": {
     "zone": "2A",
     "county": "Duval",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "storm-surge",
     "label": "Storm surge"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    },
    {
     "id": "lightning",
     "label": "Lightning"
    }
   ],
   "house_types": [
    {
     "name": "Shotgun",
     "climate_fit": "one room wide, doors aligned — cross-breeze before air conditioning"
    },
    {
     "name": "Creole cottage / townhouse",
     "climate_fit": "raised main floor and galleries above street water"
    },
    {
     "name": "Florida Cracker / dogtrot",
     "climate_fit": "elevated frame, breezeway core, metal roof sheds torrential rain"
    },
    {
     "name": "Lowcountry raised cottage",
     "climate_fit": "piers for flood and breeze; deep piazzas for shade"
    },
    {
     "name": "Key West conch",
     "climate_fit": "metal roof, shutters and porches built for hurricane country"
    },
    {
     "name": "Mediterranean / Spanish Revival",
     "climate_fit": "stucco and tile against sun and salt air"
    },
    {
     "name": "Brick ranch",
     "climate_fit": "slab-on-grade postwar default of the inland South"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "cooling-dominated",
     "because": "IECC zone 2: CDD50 above 6300",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 53 in, snow 0.0 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 2",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-13 or R-0+10ci; floor R-13; slab R-0; basement wall R-0",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 2A (Duval County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Hurricane wind, Storm surge, Riverine / urban flood, Heat and humidity, Lightning",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Florida, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 1228, CDD65 2803); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    755.7,
    507.8
   ],
   "live": {
    "nws_alert_area": "FL",
    "nws_station": "KJAX",
    "usgs_feed": "2.5_day",
    "eonet": true
   },
   "secondary_stations": [
    {
     "ncei_station": "USW00012839",
     "name": "MIAMI INTL AP, FL US",
     "lat": 25.7906,
     "lon": -80.3164,
     "annual": {
      "tavg_f": 77.5,
      "jan_mean_f": 68.6,
      "jul_mean_f": 84.1,
      "precip_in": 67.4,
      "snow_in": 0.0,
      "hdd65": 104,
      "cdd50": 10033
     },
     "koppen": "Am",
     "iecc_zone": 1
    }
   ]
  },
  "GA": {
   "usps": "GA",
   "name": "Georgia",
   "fips": "13",
   "region": "southeast",
   "anchor": {
    "ncei_station": "USW00013874",
    "name": "ATLANTA HARTSFIELD INTL AP, GA US",
    "lat": 33.63,
    "lon": -84.4417,
    "elev_m": 307.8,
    "nws_station": "KATL",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      44.8,
      48.5,
      55.6,
      63.2,
      71.2,
      77.9,
      80.9,
      80.2,
      74.9,
      64.7,
      54.2,
      47.3
     ],
     "tmax": [
      54.0,
      58.2,
      65.9,
      73.8,
      81.1,
      87.1,
      90.1,
      89.0,
      83.9,
      74.4,
      64.1,
      56.2
     ],
     "tmin": [
      35.6,
      38.9,
      45.3,
      52.5,
      61.3,
      68.6,
      71.8,
      71.3,
      65.9,
      54.9,
      44.2,
      38.4
     ],
     "prcp": [
      4.59,
      4.55,
      4.68,
      3.81,
      3.56,
      4.54,
      4.75,
      4.3,
      3.82,
      3.28,
      3.98,
      4.57
     ],
     "snow": [
      1.0,
      0.4,
      0.4,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.4
     ],
     "hdd65": [
      626.7,
      462.5,
      308.5,
      119.7,
      21.9,
      1.1,
      0.0,
      0.1,
      5.4,
      98.6,
      335.9,
      550.5
     ],
     "cdd65": [
      0.6,
      2.0,
      17.1,
      64.2,
      214.0,
      386.5,
      494.4,
      469.7,
      302.3,
      87.8,
      10.4,
      1.9
     ]
    },
    "annual": {
     "tavg_f": 63.6,
     "jan_mean_f": 44.8,
     "jul_mean_f": 80.9,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 50.43,
     "snow_in": 2.2,
     "hdd65": 2531,
     "cdd65": 2051,
     "cdd50": 5494,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Oct"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 17.6,
     "map_mm": 1281,
     "thot_c": 27.2,
     "tcold_c": 7.1,
     "tmon10": 9,
     "pdry_mm": 83,
     "pthreshold_mm": 491.3,
     "summer_share": 0.49
    }
   },
   "iecc": {
    "zone": 3,
    "moisture": "A",
    "label": "3A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 50.4,
     "dry_limit_in": 19.4,
     "tcold_f": 44.8,
     "thot_f": 80.9,
     "months_over_50f": 9,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 5494,
     "hdd65": 2531
    },
    "adopted": {
     "zone": "3A",
     "county": "Fulton (straddles Clayton, also 3A)",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane-remnant",
     "label": "Tropical remnants"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    }
   ],
   "house_types": [
    {
     "name": "Shotgun",
     "climate_fit": "one room wide, doors aligned — cross-breeze before air conditioning"
    },
    {
     "name": "Creole cottage / townhouse",
     "climate_fit": "raised main floor and galleries above street water"
    },
    {
     "name": "Florida Cracker / dogtrot",
     "climate_fit": "elevated frame, breezeway core, metal roof sheds torrential rain"
    },
    {
     "name": "Lowcountry raised cottage",
     "climate_fit": "piers for flood and breeze; deep piazzas for shade"
    },
    {
     "name": "Key West conch",
     "climate_fit": "metal roof, shutters and porches built for hurricane country"
    },
    {
     "name": "Mediterranean / Spanish Revival",
     "climate_fit": "stucco and tile against sun and salt air"
    },
    {
     "name": "Brick ranch",
     "climate_fit": "slab-on-grade postwar default of the inland South"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed, cooling-leaning",
     "because": "IECC zone 3: CDD50 at or under 6300 and HDD65 2531 at or under 3600",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 50 in, snow 2.2 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 3",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3A (Fulton (straddles Clayton, also 3A) County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Tropical remnants, Tornado, Riverine / urban flood, Heat and humidity, Ice storm",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Georgia, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 2531, CDD65 2051); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    724.7,
    421.1
   ],
   "live": {
    "nws_alert_area": "GA",
    "nws_station": "KATL",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "HI": {
   "usps": "HI",
   "name": "Hawaii",
   "fips": "15",
   "region": "hawaii",
   "anchor": {
    "ncei_station": "USW00022521",
    "name": "HONOLULU INTL AP, HI US",
    "lat": 21.3239,
    "lon": -157.9294,
    "elev_m": 2.1,
    "nws_station": "PHNL",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      73.6,
      73.8,
      74.7,
      76.6,
      78.2,
      80.3,
      81.6,
      82.2,
      81.6,
      80.4,
      78.0,
      75.5
     ],
     "tmax": [
      80.5,
      80.5,
      81.2,
      83.1,
      84.8,
      86.9,
      88.1,
      88.8,
      88.4,
      86.9,
      84.1,
      81.8
     ],
     "tmin": [
      66.8,
      67.1,
      68.1,
      70.1,
      71.5,
      73.8,
      75.1,
      75.6,
      74.8,
      73.9,
      71.8,
      69.2
     ],
     "prcp": [
      1.84,
      1.94,
      2.36,
      0.77,
      0.82,
      0.5,
      0.52,
      0.84,
      0.88,
      1.51,
      2.25,
      2.18
     ],
     "snow": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "hdd65": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "cdd65": [
      268.2,
      246.4,
      299.2,
      348.0,
      407.7,
      460.5,
      514.6,
      533.2,
      498.0,
      477.4,
      388.5,
      325.5
     ]
    },
    "annual": {
     "tavg_f": 78.0,
     "jan_mean_f": 73.6,
     "jul_mean_f": 81.6,
     "warmest_month": "Aug",
     "coldest_month": "Jan",
     "precip_in": 16.41,
     "snow_in": 0.0,
     "hdd65": 0,
     "cdd65": 4767,
     "cdd50": 10248,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Mar",
     "driest_month": "Jun",
     "snow_note": "NCEI publishes no snowfall normal for this station; treated as 0 in"
    }
   },
   "koppen": {
    "code": "BSh",
    "name": "Hot semi-arid",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 25.6,
     "map_mm": 417,
     "thot_c": 27.9,
     "tcold_c": 23.1,
     "tmon10": 12,
     "pdry_mm": 13,
     "pthreshold_mm": 511.6,
     "summer_share": 0.26
    }
   },
   "iecc": {
    "zone": 1,
    "moisture": "B",
    "label": "1B",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 16.4,
     "dry_limit_in": 25.8,
     "rule": "P < 0.44 x (T - 19.5)",
     "cdd50": 10248,
     "hdd65": 0
    },
    "adopted": {
     "zone": "1A",
     "county": "Honolulu",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 1B from 1991-2020 station normals; Table R301.1 assigns 1A to Honolulu County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "volcanic",
     "label": "Volcanic"
    },
    {
     "id": "tsunami",
     "label": "Tsunami"
    },
    {
     "id": "salt-air",
     "label": "Salt air corrosion"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    }
   ],
   "house_types": [
    {
     "name": "Plantation-style single-wall cottage",
     "climate_fit": "single-wall board construction and a raised floor suit a climate with no freeze risk"
    },
    {
     "name": "Lanai-centric plan",
     "climate_fit": "covered outdoor room extends living space into the trade-wind breeze"
    },
    {
     "name": "Wide-eave hipped roof",
     "climate_fit": "deep overhangs shed heavy windward rain while shading walls from sun"
    },
    {
     "name": "Post-and-pier foundation",
     "climate_fit": "elevates the floor for airflow, drainage, and termite/moisture separation"
    },
    {
     "name": "Hurricane-strapped concrete block (post-Iniki code)",
     "climate_fit": "reinforced masonry and metal strapping resist tropical-storm wind uplift"
    },
    {
     "name": "Breezeway / open-plan layout",
     "climate_fit": "cross-ventilation substitutes for mechanical cooling in the trade-wind climate"
    }
   ],
   "design_drivers": {
    "heating": "minor",
    "cooling": "dominant, often met passively rather than mechanically",
    "moisture": "dominant on windward coasts, minor on leeward coasts",
    "snow_load": "minor (summit elevations only, Mauna Kea/Mauna Loa)",
    "wind": "secondary to dominant (hurricane and trade-wind loading)",
    "seismic": "secondary (volcanic seismicity, occasional large earthquakes)",
    "wildfire": "secondary, elevated on leeward grassland since the 2023 Maui fires",
    "flood": "secondary (windward flash flooding and coastal tsunami/storm surge)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "cooling-dominated",
     "because": "IECC zone 1: CDD50 above 6300",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 16 in, snow 0.0 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "vapor-open assemblies; prioritize dust, UV and flash-flood site drainage over vapor control",
     "because": "moisture regime B (dry)",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-30; wood-frame wall R-13 or R-0+10ci; floor R-13; slab R-0; basement wall R-0",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 1A (Honolulu County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; stainless or hot-dip galvanized fasteners, corrosion-rated hardware; sealed envelope and filtered ventilation for vog; check lava-flow hazard zone before siting",
     "because": "Hurricane wind, Riverine / urban flood, Volcanic, Tsunami, Salt air corrosion, Wildfire",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Hawaii, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 0, CDD65 4767); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a BSh normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    294.7,
    563.9
   ],
   "live": {
    "nws_alert_area": "HI",
    "nws_station": "PHNL",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "ID": {
   "usps": "ID",
   "name": "Idaho",
   "fips": "16",
   "region": "northwest",
   "anchor": {
    "ncei_station": "USW00024131",
    "name": "BOISE AIR TERMINAL, ID US",
    "lat": 43.5667,
    "lon": -116.2406,
    "elev_m": 857.7,
    "nws_station": "KBOI",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      32.2,
      37.5,
      45.2,
      50.9,
      59.9,
      67.8,
      77.3,
      75.8,
      66.3,
      53.2,
      40.3,
      32.1
     ],
     "tmax": [
      38.8,
      46.0,
      55.5,
      62.3,
      72.3,
      81.4,
      92.7,
      90.7,
      80.0,
      64.8,
      48.8,
      38.8
     ],
     "tmin": [
      25.5,
      29.0,
      34.9,
      39.6,
      47.5,
      54.1,
      61.9,
      60.8,
      52.6,
      41.5,
      31.7,
      25.4
     ],
     "prcp": [
      1.41,
      1.0,
      1.33,
      1.23,
      1.45,
      0.75,
      0.21,
      0.17,
      0.43,
      0.81,
      1.18,
      1.54
     ],
     "snow": [
      5.3,
      3.3,
      1.2,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1,
      2.0,
      5.6
     ],
     "hdd65": [
      1018.2,
      769.9,
      614.0,
      424.4,
      200.3,
      60.8,
      5.2,
      8.2,
      80.2,
      377.4,
      742.4,
      1019.6
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      3.1,
      42.0,
      143.4,
      386.2,
      341.3,
      119.0,
      10.1,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 53.2,
     "jan_mean_f": 32.2,
     "jul_mean_f": 77.3,
     "warmest_month": "Jul",
     "coldest_month": "Dec",
     "precip_in": 11.51,
     "snow_in": 17.6,
     "hdd65": 5320,
     "cdd65": 1045,
     "cdd50": 3313,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Dec",
     "driest_month": "Aug"
    }
   },
   "koppen": {
    "code": "BSk",
    "name": "Cold semi-arid",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 11.8,
     "map_mm": 292,
     "thot_c": 25.2,
     "tcold_c": 0.1,
     "tmon10": 7,
     "pdry_mm": 4,
     "pthreshold_mm": 375.6,
     "summer_share": 0.37
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "B",
    "label": "4B",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 11.5,
     "dry_limit_in": 14.8,
     "rule": "P < 0.44 x (T - 19.5)",
     "cdd50": 3313,
     "hdd65": 5320
    },
    "adopted": {
     "zone": "5B",
     "county": "Ada",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 4B from 1991-2020 station normals; Table R301.1 assigns 5B to Ada County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "seismic",
     "label": "Earthquake"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    }
   ],
   "house_types": [
    {
     "name": "Craftsman bungalow",
     "climate_fit": "deep eaves and covered porches shed the long wet season"
    },
    {
     "name": "Northwest Modern",
     "climate_fit": "shed roofs, cedar, big glass for soft light and views — needs disciplined rain detailing"
    },
    {
     "name": "A-frame / mountain cabin",
     "climate_fit": "steep roof dumps the inland snow load"
    },
    {
     "name": "Valley farmhouse",
     "climate_fit": "gabled roof and wrap porch for the wet-mild Willamette pattern"
    },
    {
     "name": "Inland ranch",
     "climate_fit": "low-pitch postwar stock where snow loads stay modest"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 5320 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 18 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "vapor-open assemblies; prioritize dust, UV and flash-flood site drainage over vapor control",
     "because": "moisture regime B (dry)",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5B (Ada County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Wildfire, Snow load, Earthquake, Extreme cold",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Idaho, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5320, CDD65 1045); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a BSk normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    195.7,
    144.1
   ],
   "live": {
    "nws_alert_area": "ID",
    "nws_station": "KBOI",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "IL": {
   "usps": "IL",
   "name": "Illinois",
   "fips": "17",
   "region": "midwest",
   "anchor": {
    "ncei_station": "USW00094846",
    "name": "CHICAGO OHARE INTL AP, IL US",
    "lat": 41.995,
    "lon": -87.9336,
    "elev_m": 200.6,
    "nws_station": "KORD",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      25.2,
      28.8,
      39.0,
      49.7,
      60.6,
      70.6,
      75.4,
      73.8,
      66.3,
      54.0,
      41.3,
      30.5
     ],
     "tmax": [
      31.6,
      35.7,
      47.0,
      59.0,
      70.5,
      80.4,
      84.5,
      82.5,
      75.5,
      62.7,
      48.4,
      36.6
     ],
     "tmin": [
      18.8,
      21.8,
      31.0,
      40.3,
      50.6,
      60.8,
      66.4,
      65.1,
      57.1,
      45.4,
      34.1,
      24.4
     ],
     "prcp": [
      1.99,
      1.97,
      2.45,
      3.75,
      4.49,
      4.1,
      3.71,
      4.25,
      3.19,
      3.43,
      2.42,
      2.11
     ],
     "snow": [
      11.3,
      10.7,
      5.5,
      1.3,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      1.8,
      7.6
     ],
     "hdd65": [
      1233.5,
      1014.9,
      808.1,
      468.2,
      198.0,
      31.4,
      1.8,
      4.1,
      77.2,
      354.8,
      712.9,
      1069.3
     ],
     "cdd65": [
      0.0,
      0.0,
      2.0,
      7.7,
      60.0,
      199.3,
      325.6,
      276.8,
      116.1,
      15.4,
      0.4,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 51.2,
     "jan_mean_f": 25.2,
     "jul_mean_f": 75.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 37.86,
     "snow_in": 38.4,
     "hdd65": 5974,
     "cdd65": 1003,
     "cdd50": 3203,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 10.7,
     "map_mm": 962,
     "thot_c": 24.1,
     "tcold_c": -3.8,
     "tmon10": 6,
     "pdry_mm": 50,
     "pthreshold_mm": 354.1,
     "summer_share": 0.62
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 37.9,
     "dry_limit_in": 14.0,
     "tcold_f": 25.2,
     "thot_f": 75.4,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3203,
     "hdd65": 5974
    },
    "adopted": {
     "zone": "5A",
     "county": "Cook",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 5974",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 38 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Cook County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Tornado, Riverine / urban flood, Extreme cold, Freeze-thaw and ice, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Illinois, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5974, CDD65 1003); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    605.6,
    265.7
   ],
   "live": {
    "nws_alert_area": "IL",
    "nws_station": "KORD",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "IN": {
   "usps": "IN",
   "name": "Indiana",
   "fips": "18",
   "region": "midwest",
   "anchor": {
    "ncei_station": "USW00093819",
    "name": "INDIANAPOLIS, IN US",
    "lat": 39.7075,
    "lon": -86.2803,
    "elev_m": 240.8,
    "nws_station": "KIND",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      28.5,
      32.5,
      42.4,
      53.6,
      63.6,
      72.5,
      75.8,
      74.7,
      67.8,
      55.5,
      43.3,
      33.3
     ],
     "tmax": [
      36.1,
      40.8,
      51.9,
      63.9,
      73.4,
      82.0,
      85.2,
      84.3,
      78.2,
      65.6,
      51.8,
      40.4
     ],
     "tmin": [
      20.9,
      24.2,
      33.0,
      43.3,
      53.7,
      62.9,
      66.4,
      65.0,
      57.4,
      45.5,
      34.9,
      26.2
     ],
     "prcp": [
      3.12,
      2.43,
      3.69,
      4.34,
      4.75,
      4.95,
      4.42,
      3.2,
      3.14,
      3.22,
      3.45,
      2.92
     ],
     "snow": [
      8.8,
      6.0,
      3.2,
      0.2,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1,
      0.8,
      6.4
     ],
     "hdd65": [
      1131.3,
      909.9,
      701.6,
      355.4,
      130.7,
      13.6,
      1.0,
      2.1,
      58.3,
      313.6,
      650.0,
      982.6
     ],
     "cdd65": [
      0.0,
      0.0,
      2.6,
      13.3,
      85.8,
      237.0,
      335.7,
      301.2,
      142.2,
      20.7,
      0.5,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 53.6,
     "jan_mean_f": 28.5,
     "jul_mean_f": 75.8,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 43.63,
     "snow_in": 25.5,
     "hdd65": 5250,
     "cdd65": 1139,
     "cdd50": 3566,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 12.0,
     "map_mm": 1108,
     "thot_c": 24.3,
     "tcold_c": -1.9,
     "tmon10": 7,
     "pdry_mm": 62,
     "pthreshold_mm": 380.3,
     "summer_share": 0.57
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 43.6,
     "dry_limit_in": 15.0,
     "tcold_f": 28.5,
     "thot_f": 75.8,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3566,
     "hdd65": 5250
    },
    "adopted": {
     "zone": "4A",
     "county": "Marion",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    }
   ],
   "house_types": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 5250 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 26 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Marion County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule",
     "because": "Tornado, Riverine / urban flood, Freeze-thaw and ice, Extreme cold",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Indiana, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5250, CDD65 1139); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    655.1,
    264.7
   ],
   "live": {
    "nws_alert_area": "IN",
    "nws_station": "KIND",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "IA": {
   "usps": "IA",
   "name": "Iowa",
   "fips": "19",
   "region": "midwest",
   "anchor": {
    "ncei_station": "USW00014933",
    "name": "DES MOINES INTL AP, IA US",
    "lat": 41.5339,
    "lon": -93.6531,
    "elev_m": 291.7,
    "nws_station": "KDSM",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      22.3,
      26.9,
      39.4,
      51.3,
      62.4,
      72.2,
      76.0,
      73.9,
      66.2,
      53.2,
      39.3,
      27.7
     ],
     "tmax": [
      30.9,
      35.7,
      49.2,
      62.0,
      72.4,
      81.9,
      85.6,
      83.6,
      76.9,
      63.4,
      48.3,
      35.9
     ],
     "tmin": [
      13.8,
      18.0,
      29.6,
      40.6,
      52.3,
      62.4,
      66.4,
      64.2,
      55.4,
      42.9,
      30.2,
      19.5
     ],
     "prcp": [
      1.08,
      1.34,
      2.17,
      4.02,
      5.24,
      5.26,
      3.82,
      4.17,
      3.18,
      2.78,
      1.91,
      1.58
     ],
     "snow": [
      9.4,
      10.2,
      4.4,
      1.2,
      0.2,
      0.0,
      0.0,
      0.0,
      0.0,
      0.5,
      2.7,
      7.9
     ],
     "hdd65": [
      1321.9,
      1068.0,
      795.6,
      420.9,
      153.3,
      15.2,
      0.8,
      4.2,
      85.9,
      383.2,
      772.7,
      1156.1
     ],
     "cdd65": [
      0.0,
      0.0,
      1.9,
      9.9,
      71.1,
      229.5,
      341.7,
      280.0,
      120.2,
      15.8,
      0.2,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 50.9,
     "jan_mean_f": 22.3,
     "jul_mean_f": 76.0,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 36.55,
     "snow_in": 36.5,
     "hdd65": 6178,
     "cdd65": 1070,
     "cdd50": 3356,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 10.5,
     "map_mm": 928,
     "thot_c": 24.4,
     "tcold_c": -5.4,
     "tmon10": 7,
     "pdry_mm": 27,
     "pthreshold_mm": 490.0,
     "summer_share": 0.7
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 36.5,
     "dry_limit_in": 13.8,
     "tcold_f": 22.3,
     "thot_f": 76.0,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3356,
     "hdd65": 6178
    },
    "adopted": {
     "zone": "5A",
     "county": "Polk",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "derecho",
     "label": "Derecho"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    }
   ],
   "house_types": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 6178",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 36 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Polk County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule",
     "because": "Tornado, Riverine / urban flood, Extreme cold, Derecho, Freeze-thaw and ice",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Iowa, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 6178, CDD65 1070); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    531.6,
    223.5
   ],
   "live": {
    "nws_alert_area": "IA",
    "nws_station": "KDSM",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "KS": {
   "usps": "KS",
   "name": "Kansas",
   "fips": "20",
   "region": "plains",
   "anchor": {
    "ncei_station": "USW00003928",
    "name": "WICHITA, KS US",
    "lat": 37.6544,
    "lon": -97.4425,
    "elev_m": 406.9,
    "nws_station": "KICT",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      33.2,
      37.6,
      47.4,
      56.5,
      66.7,
      76.9,
      81.5,
      79.9,
      71.7,
      59.0,
      45.8,
      35.6
     ],
     "tmax": [
      43.9,
      48.9,
      59.1,
      68.3,
      77.5,
      87.9,
      92.6,
      91.0,
      83.3,
      70.8,
      57.0,
      45.8
     ],
     "tmin": [
      22.5,
      26.3,
      35.7,
      44.8,
      55.9,
      65.9,
      70.4,
      68.8,
      60.1,
      47.2,
      34.7,
      25.4
     ],
     "prcp": [
      0.85,
      1.2,
      2.3,
      3.1,
      5.17,
      4.93,
      3.98,
      4.3,
      3.05,
      2.85,
      1.36,
      1.22
     ],
     "snow": [
      2.7,
      3.6,
      2.1,
      0.2,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      0.8,
      3.1
     ],
     "hdd65": [
      985.6,
      767.2,
      549.8,
      276.8,
      79.4,
      3.6,
      0.1,
      0.3,
      32.0,
      231.2,
      576.4,
      911.2
     ],
     "cdd65": [
      0.0,
      0.1,
      4.1,
      23.3,
      132.1,
      360.4,
      511.5,
      462.1,
      232.9,
      45.2,
      1.9,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 57.7,
     "jan_mean_f": 33.2,
     "jul_mean_f": 81.5,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 34.31,
     "snow_in": 12.7,
     "hdd65": 4414,
     "cdd65": 1774,
     "cdd50": 4529,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 14.2,
     "map_mm": 871,
     "thot_c": 27.5,
     "tcold_c": 0.7,
     "tmon10": 7,
     "pdry_mm": 22,
     "pthreshold_mm": 565.0,
     "summer_share": 0.71
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 34.3,
     "dry_limit_in": 16.8,
     "tcold_f": 33.2,
     "thot_f": 81.5,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 4529,
     "hdd65": 4414
    },
    "adopted": {
     "zone": "4A",
     "county": "Sedgwick",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "hail",
     "label": "Hail"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "extreme-heat",
     "label": "Extreme heat"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    }
   ],
   "house_types": [
    {
     "name": "Ranch (post-sod-house)",
     "climate_fit": "low profile and small footprint present the least surface to sustained plains wind"
    },
    {
     "name": "Hipped-roof prairie cottage",
     "climate_fit": "hipped roof resists uplift better than gable ends in open wind"
    },
    {
     "name": "Storm-cellar / basement tradition",
     "climate_fit": "below-grade shelter is standard practice, not an amenity, in tornado country"
    },
    {
     "name": "Shelterbelt farmstead",
     "climate_fit": "planted windbreak rows cut wind-driven snow drift and soil erosion around the house"
    },
    {
     "name": "Prairie foursquare",
     "climate_fit": "compact two-story boxy form holds heat against open-plains winter wind"
    },
    {
     "name": "Pole-barn / Quonset outbuilding vernacular",
     "climate_fit": "curved or braced-frame ancillary structures shed snow load and resist wind"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "minor",
    "snow_load": "secondary (drifting matters more than static load)",
    "wind": "dominant",
    "seismic": "minor to secondary, concentrated in central Oklahoma (induced)",
    "wildfire": "secondary (grassland and rangeland fire)",
    "flood": "secondary (flash flooding, prairie pothole/playa)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4414 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 13 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Sedgwick County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; impact-rated roofing (UL 2218 Class 4); ice-dam eave membrane, snow guards, buried or protected service drops; cool roof, shaded outdoor rooms, thermal mass where nights are cool",
     "because": "Tornado, Hail, Drought, Extreme heat, Freeze-thaw and ice",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Kansas, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4414, CDD65 1774); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    449.2,
    304.2
   ],
   "live": {
    "nws_alert_area": "KS",
    "nws_station": "KICT",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "KY": {
   "usps": "KY",
   "name": "Kentucky",
   "fips": "21",
   "region": "southeast",
   "anchor": {
    "ncei_station": "USW00093821",
    "name": "LOUISVILLE INTL AP, KY US",
    "lat": 38.1811,
    "lon": -85.7392,
    "elev_m": 148.7,
    "nws_station": "KSDF",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      35.7,
      39.5,
      48.4,
      59.0,
      68.3,
      76.4,
      79.9,
      78.9,
      72.0,
      60.3,
      48.5,
      39.6
     ],
     "tmax": [
      43.6,
      48.3,
      58.1,
      69.6,
      77.8,
      85.7,
      89.0,
      88.4,
      82.2,
      70.5,
      57.6,
      47.2
     ],
     "tmin": [
      27.8,
      30.7,
      38.6,
      48.5,
      58.7,
      67.2,
      70.8,
      69.5,
      61.9,
      50.1,
      39.4,
      32.1
     ],
     "prcp": [
      3.39,
      3.41,
      4.6,
      4.8,
      5.18,
      4.27,
      4.05,
      3.71,
      3.66,
      3.72,
      3.42,
      4.13
     ],
     "snow": [
      4.5,
      4.1,
      2.1,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1,
      0.3,
      2.2
     ],
     "hdd65": [
      908.3,
      714.6,
      524.2,
      222.2,
      58.8,
      2.8,
      0.1,
      0.2,
      21.5,
      197.6,
      499.0,
      786.3
     ],
     "cdd65": [
      0.1,
      0.6,
      8.0,
      43.7,
      159.5,
      346.3,
      461.9,
      432.6,
      233.0,
      51.9,
      4.0,
      0.5
     ]
    },
    "annual": {
     "tavg_f": 58.9,
     "jan_mean_f": 35.7,
     "jul_mean_f": 79.9,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 48.34,
     "snow_in": 13.4,
     "hdd65": 3936,
     "cdd65": 1742,
     "cdd50": 4579,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 14.9,
     "map_mm": 1228,
     "thot_c": 26.6,
     "tcold_c": 2.1,
     "tmon10": 7,
     "pdry_mm": 86,
     "pthreshold_mm": 438.6,
     "summer_share": 0.53
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 48.3,
     "dry_limit_in": 17.3,
     "tcold_f": 35.7,
     "thot_f": 79.9,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 4579,
     "hdd65": 3936
    },
    "adopted": {
     "zone": "4A",
     "county": "Jefferson",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    },
    {
     "id": "seismic-nmsz",
     "label": "New Madrid seismic zone"
    }
   ],
   "house_types": [
    {
     "name": "Shotgun",
     "climate_fit": "one room wide, doors aligned — cross-breeze before air conditioning"
    },
    {
     "name": "Creole cottage / townhouse",
     "climate_fit": "raised main floor and galleries above street water"
    },
    {
     "name": "Florida Cracker / dogtrot",
     "climate_fit": "elevated frame, breezeway core, metal roof sheds torrential rain"
    },
    {
     "name": "Lowcountry raised cottage",
     "climate_fit": "piers for flood and breeze; deep piazzas for shade"
    },
    {
     "name": "Key West conch",
     "climate_fit": "metal roof, shutters and porches built for hurricane country"
    },
    {
     "name": "Mediterranean / Spanish Revival",
     "climate_fit": "stucco and tile against sun and salt air"
    },
    {
     "name": "Brick ranch",
     "climate_fit": "slab-on-grade postwar default of the inland South"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 3936 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 13 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Jefferson County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; ice-dam eave membrane, snow guards, buried or protected service drops",
     "because": "Tornado, Riverine / urban flood, Ice storm, New Madrid seismic zone",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Kentucky, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 3936, CDD65 1742); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    677.6,
    315.8
   ],
   "live": {
    "nws_alert_area": "KY",
    "nws_station": "KSDF",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "LA": {
   "usps": "LA",
   "name": "Louisiana",
   "fips": "22",
   "region": "south-central",
   "anchor": {
    "ncei_station": "USW00012916",
    "name": "NEW ORLEANS INTL AP, LA US",
    "lat": 29.9933,
    "lon": -90.2511,
    "elev_m": 1.2,
    "nws_station": "KMSY",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      54.3,
      58.0,
      63.8,
      70.1,
      77.1,
      82.4,
      83.9,
      84.0,
      80.8,
      72.5,
      62.4,
      56.6
     ],
     "tmax": [
      62.5,
      66.4,
      72.3,
      78.5,
      85.3,
      90.0,
      91.4,
      91.3,
      88.1,
      80.6,
      71.2,
      64.8
     ],
     "tmin": [
      46.1,
      49.7,
      55.3,
      61.7,
      69.0,
      74.7,
      76.5,
      76.6,
      73.5,
      64.3,
      53.7,
      48.4
     ],
     "prcp": [
      5.18,
      4.13,
      4.36,
      5.22,
      5.64,
      7.62,
      6.79,
      6.91,
      5.11,
      3.7,
      3.87,
      4.82
     ],
     "snow": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0
     ],
     "hdd65": [
      349.5,
      226.4,
      118.5,
      26.6,
      1.0,
      0.0,
      0.0,
      0.0,
      0.1,
      20.6,
      143.0,
      290.5
     ],
     "cdd65": [
      17.9,
      31.9,
      81.3,
      179.7,
      377.6,
      520.4,
      587.4,
      587.4,
      474.0,
      251.5,
      66.5,
      30.1
     ]
    },
    "annual": {
     "tavg_f": 70.5,
     "jan_mean_f": 54.3,
     "jul_mean_f": 83.9,
     "warmest_month": "Aug",
     "coldest_month": "Jan",
     "precip_in": 63.35,
     "snow_in": 0.0,
     "hdd65": 1176,
     "cdd65": 3206,
     "cdd50": 7539,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Oct"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 21.4,
     "map_mm": 1609,
     "thot_c": 28.9,
     "tcold_c": 12.4,
     "tmon10": 12,
     "pdry_mm": 94,
     "pthreshold_mm": 567.7,
     "summer_share": 0.59
    }
   },
   "iecc": {
    "zone": 2,
    "moisture": "A",
    "label": "2A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 63.4,
     "dry_limit_in": 22.4,
     "tcold_f": 54.3,
     "thot_f": 84.0,
     "months_over_50f": 12,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 7539,
     "hdd65": 1176
    },
    "adopted": {
     "zone": "2A",
     "county": "Jefferson Parish",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "storm-surge",
     "label": "Storm surge"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "subsidence",
     "label": "Subsidence"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "Dogtrot",
     "climate_fit": "open central breezeway cools two flanking rooms before mechanical air conditioning"
    },
    {
     "name": "Shotgun",
     "climate_fit": "one room wide with aligned doors for cross-ventilation in humid heat"
    },
    {
     "name": "Texas German stone farmhouse",
     "climate_fit": "thick limestone walls buffer the Hill Country's hot days and cool nights"
    },
    {
     "name": "Acadian cottage",
     "climate_fit": "raised floor and broad porch handle Louisiana humidity and standing water"
    },
    {
     "name": "Raised Gulf cottage",
     "climate_fit": "pier foundation lifts the living floor above storm surge and flood"
    },
    {
     "name": "Hill Country modern",
     "climate_fit": "deep overhangs and stone massing manage sun and flash-flood-prone sites"
    }
   ],
   "design_drivers": {
    "heating": "minor",
    "cooling": "dominant",
    "moisture": "dominant (Gulf humidity)",
    "snow_load": "minor (occasional damaging ice events)",
    "wind": "dominant (hurricane and tornado exposure)",
    "seismic": "minor",
    "wildfire": "secondary, concentrated in western Texas during drought",
    "flood": "dominant (hurricane storm surge and Hill Country flash flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "cooling-dominated",
     "because": "IECC zone 2: CDD50 above 6300",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 63 in, snow 0.0 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 2",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-13 or R-0+10ci; floor R-13; slab R-0; basement wall R-0",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 2A (Jefferson Parish County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Hurricane wind, Storm surge, Riverine / urban flood, Subsidence, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Louisiana, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 1176, CDD65 3206); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    567.4,
    470.8
   ],
   "live": {
    "nws_alert_area": "LA",
    "nws_station": "KMSY",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "ME": {
   "usps": "ME",
   "name": "Maine",
   "fips": "23",
   "region": "northeast",
   "anchor": {
    "ncei_station": "USW00014764",
    "name": "PORTLAND INTL JETPORT, ME US",
    "lat": 43.6497,
    "lon": -70.3003,
    "elev_m": 13.7,
    "nws_station": "KPWM",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      24.0,
      26.2,
      34.1,
      44.6,
      54.9,
      64.3,
      70.4,
      69.2,
      61.6,
      50.3,
      40.0,
      30.3
     ],
     "tmax": [
      32.4,
      35.0,
      42.3,
      53.8,
      64.2,
      73.6,
      79.5,
      78.7,
      71.1,
      59.5,
      48.4,
      38.3
     ],
     "tmin": [
      15.6,
      17.3,
      26.0,
      35.4,
      45.5,
      55.0,
      61.2,
      59.7,
      52.1,
      41.0,
      31.7,
      22.4
     ],
     "prcp": [
      3.5,
      3.54,
      4.08,
      4.41,
      3.67,
      4.15,
      3.43,
      3.57,
      3.77,
      5.25,
      4.25,
      4.5
     ],
     "snow": [
      18.6,
      16.6,
      13.6,
      2.8,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      2.3,
      14.6
     ],
     "hdd65": [
      1270.9,
      1087.8,
      956.4,
      612.6,
      324.8,
      88.8,
      10.2,
      16.4,
      145.4,
      459.2,
      748.5,
      1074.1
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      0.6,
      10.1,
      67.8,
      176.0,
      146.5,
      43.4,
      2.0,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 47.5,
     "jan_mean_f": 24.0,
     "jul_mean_f": 70.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 48.12,
     "snow_in": 68.7,
     "hdd65": 6795,
     "cdd65": 447,
     "cdd50": 2301,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Oct",
     "driest_month": "Jul"
    }
   },
   "koppen": {
    "code": "Dfb",
    "name": "Warm-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 8.6,
     "map_mm": 1222,
     "thot_c": 21.3,
     "tcold_c": -4.4,
     "tmon10": 6,
     "pdry_mm": 87,
     "pthreshold_mm": 312.1,
     "summer_share": 0.48
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 48.1,
     "dry_limit_in": 12.3,
     "tcold_f": 24.0,
     "thot_f": 70.4,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2301,
     "hdd65": 6795
    },
    "adopted": {
     "zone": "6A",
     "county": "Cumberland",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 5A from 1991-2020 station normals; Table R301.1 assigns 6A to Cumberland County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "noreaster",
     "label": "Nor'easter"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    }
   ],
   "house_types": [
    {
     "name": "Colonial / Colonial Revival",
     "climate_fit": "compact two-story form and central chimney hold heat through winter"
    },
    {
     "name": "Cape Cod",
     "climate_fit": "low profile and steep roof shed snow and shrug off wind"
    },
    {
     "name": "Saltbox",
     "climate_fit": "long rear roofline turns its back to the north wind"
    },
    {
     "name": "Brownstone / rowhouse",
     "climate_fit": "party walls buffer winter cold on dense urban lots"
    },
    {
     "name": "Triple-decker",
     "climate_fit": "stacked flats — New England's dense urban housing form"
    },
    {
     "name": "Queen Anne Victorian",
     "climate_fit": "the heavy ornate stock of the region's industrial-era boom"
    },
    {
     "name": "Split-level / raised ranch",
     "climate_fit": "postwar suburban default on graded lots"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 6795",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "steep, 8:12 or more, with snow retention",
     "because": "annual snowfall normal 69 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 6A (Cumberland County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Nor'easter, Snow load, Extreme cold, Freeze-thaw and ice, Coastal flood",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Maine, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 6795, CDD65 447); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfb normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    904.9,
    91.9
   ],
   "live": {
    "nws_alert_area": "ME",
    "nws_station": "KPWM",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "MD": {
   "usps": "MD",
   "name": "Maryland",
   "fips": "24",
   "region": "mid-atlantic",
   "anchor": {
    "ncei_station": "USW00093721",
    "name": "BALTIMORE WASH INTL AP, MD US",
    "lat": 39.1667,
    "lon": -76.6833,
    "elev_m": 47.5,
    "nws_station": "KBWI",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      34.3,
      36.6,
      44.3,
      55.0,
      64.4,
      73.5,
      78.3,
      76.2,
      69.2,
      57.4,
      46.9,
      38.6
     ],
     "tmax": [
      43.2,
      46.4,
      54.8,
      66.5,
      75.5,
      84.4,
      88.8,
      86.5,
      79.7,
      68.3,
      57.3,
      47.5
     ],
     "tmin": [
      25.4,
      26.9,
      33.9,
      43.6,
      53.3,
      62.6,
      67.7,
      65.8,
      58.8,
      46.5,
      36.5,
      29.6
     ],
     "prcp": [
      3.08,
      2.9,
      4.01,
      3.39,
      3.85,
      3.98,
      4.48,
      4.09,
      4.44,
      3.94,
      3.13,
      3.71
     ],
     "snow": [
      6.4,
      7.5,
      2.8,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1,
      2.5
     ],
     "hdd65": [
      951.4,
      793.6,
      641.9,
      317.6,
      108.8,
      11.2,
      0.0,
      0.5,
      35.7,
      259.7,
      543.9,
      819.9
     ],
     "cdd65": [
      0.0,
      0.0,
      1.8,
      19.0,
      90.2,
      266.0,
      410.6,
      346.0,
      163.0,
      24.1,
      0.9,
      0.1
     ]
    },
    "annual": {
     "tavg_f": 56.2,
     "jan_mean_f": 34.3,
     "jul_mean_f": 78.3,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 45.0,
     "snow_in": 19.3,
     "hdd65": 4484,
     "cdd65": 1322,
     "cdd50": 3948,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 13.5,
     "map_mm": 1143,
     "thot_c": 25.7,
     "tcold_c": 1.3,
     "tmon10": 7,
     "pdry_mm": 74,
     "pthreshold_mm": 409.2,
     "summer_share": 0.54
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 45.0,
     "dry_limit_in": 16.2,
     "tcold_f": 34.3,
     "thot_f": 78.3,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3948,
     "hdd65": 4484
    },
    "adopted": {
     "zone": "4A",
     "county": "Anne Arundel",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    },
    {
     "id": "hurricane-remnant",
     "label": "Tropical remnants"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "Federal / Georgian rowhouse",
     "climate_fit": "party walls and masonry mass buffer winter cold on dense urban lots"
    },
    {
     "name": "Pennsylvania bank barn farmhouse",
     "climate_fit": "earth-banked lower level insulates against the interior's colder winters"
    },
    {
     "name": "Cape (Jersey Shore)",
     "climate_fit": "low, compact form stands up to coastal wind and nor'easter exposure"
    },
    {
     "name": "Colonial Revival",
     "climate_fit": "symmetric massing and a central chimney hold heat through the four-season interior climate"
    },
    {
     "name": "Baltimore rowhouse",
     "climate_fit": "shared walls and marble stoops handle dense, humid-summer urban blocks"
    },
    {
     "name": "Dutch Colonial",
     "climate_fit": "gambrel roof sheds snow while adding headroom in the Pennsylvania/New Jersey Dutch country"
    },
    {
     "name": "Tidewater farmhouse",
     "climate_fit": "raised foundation and wide porches manage Chesapeake humidity and tidal flooding"
    }
   ],
   "design_drivers": {
    "heating": "secondary to dominant, heavier in the Appalachian interior than the coastal plain",
    "cooling": "secondary",
    "moisture": "secondary",
    "snow_load": "secondary, higher in Appalachian ridge counties than the coast",
    "wind": "secondary (hurricane remnants and nor'easters)",
    "seismic": "minor, elevated in the Central Virginia Seismic Zone",
    "wildfire": "minor",
    "flood": "dominant (coastal and tidal flooding, nor'easter storm surge)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4484 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 19 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Anne Arundel County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Coastal flood, Tropical remnants, Freeze-thaw and ice, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Maryland, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4484, CDD65 1322); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    818.8,
    259.2
   ],
   "live": {
    "nws_alert_area": "MD",
    "nws_station": "KBWI",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "MA": {
   "usps": "MA",
   "name": "Massachusetts",
   "fips": "25",
   "region": "northeast",
   "anchor": {
    "ncei_station": "USW00014739",
    "name": "BOSTON LOGAN INTL AP, MA US",
    "lat": 42.3606,
    "lon": -71.0106,
    "elev_m": 3.7,
    "nws_station": "KBOS",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      29.9,
      31.8,
      38.3,
      48.6,
      58.4,
      68.0,
      74.1,
      72.7,
      65.6,
      54.8,
      44.7,
      35.7
     ],
     "tmax": [
      36.8,
      39.0,
      45.5,
      56.4,
      66.5,
      76.2,
      82.1,
      80.4,
      73.1,
      62.1,
      51.6,
      42.2
     ],
     "tmin": [
      23.1,
      24.6,
      31.1,
      40.8,
      50.3,
      59.7,
      66.0,
      65.1,
      58.2,
      47.5,
      37.9,
      29.2
     ],
     "prcp": [
      3.39,
      3.21,
      4.17,
      3.63,
      3.25,
      3.89,
      3.27,
      3.23,
      3.56,
      4.03,
      3.66,
      4.3
     ],
     "snow": [
      14.3,
      14.4,
      9.0,
      1.6,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      0.7,
      9.0
     ],
     "hdd65": [
      1086.4,
      929.6,
      828.2,
      496.1,
      233.9,
      49.8,
      4.0,
      4.8,
      71.3,
      325.5,
      607.8,
      908.3
     ],
     "cdd65": [
      0.0,
      0.0,
      0.5,
      4.1,
      29.3,
      138.2,
      284.4,
      245.0,
      90.7,
      9.3,
      0.3,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 51.9,
     "jan_mean_f": 29.9,
     "jul_mean_f": 74.1,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 43.59,
     "snow_in": 49.2,
     "hdd65": 5545,
     "cdd65": 802,
     "cdd50": 2944,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Dec",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 11.0,
     "map_mm": 1107,
     "thot_c": 23.4,
     "tcold_c": -1.2,
     "tmon10": 6,
     "pdry_mm": 82,
     "pthreshold_mm": 360.9,
     "summer_share": 0.48
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 43.6,
     "dry_limit_in": 14.2,
     "tcold_f": 29.9,
     "thot_f": 74.1,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2944,
     "hdd65": 5545
    },
    "adopted": {
     "zone": "5A",
     "county": "Suffolk",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "noreaster",
     "label": "Nor'easter"
    },
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    }
   ],
   "house_types": [
    {
     "name": "Colonial / Colonial Revival",
     "climate_fit": "compact two-story form and central chimney hold heat through winter"
    },
    {
     "name": "Cape Cod",
     "climate_fit": "low profile and steep roof shed snow and shrug off wind"
    },
    {
     "name": "Saltbox",
     "climate_fit": "long rear roofline turns its back to the north wind"
    },
    {
     "name": "Brownstone / rowhouse",
     "climate_fit": "party walls buffer winter cold on dense urban lots"
    },
    {
     "name": "Triple-decker",
     "climate_fit": "stacked flats — New England's dense urban housing form"
    },
    {
     "name": "Queen Anne Victorian",
     "climate_fit": "the heavy ornate stock of the region's industrial-era boom"
    },
    {
     "name": "Split-level / raised ranch",
     "climate_fit": "postwar suburban default on graded lots"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 5545",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 49 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Suffolk County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Nor'easter, Coastal flood, Snow load, Freeze-thaw and ice",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Massachusetts, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5545, CDD65 802); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    883.7,
    169.6
   ],
   "live": {
    "nws_alert_area": "MA",
    "nws_station": "KBOS",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "MI": {
   "usps": "MI",
   "name": "Michigan",
   "fips": "26",
   "region": "midwest",
   "anchor": {
    "ncei_station": "USW00094847",
    "name": "DETROIT METRO AP, MI US",
    "lat": 42.2314,
    "lon": -83.3308,
    "elev_m": 192.3,
    "nws_station": "KDTW",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      25.8,
      28.0,
      37.2,
      48.9,
      60.3,
      69.9,
      74.1,
      72.3,
      64.9,
      53.0,
      41.2,
      31.3
     ],
     "tmax": [
      32.3,
      35.2,
      45.9,
      58.7,
      70.3,
      79.7,
      83.7,
      81.4,
      74.4,
      62.0,
      48.6,
      37.2
     ],
     "tmin": [
      19.2,
      20.8,
      28.6,
      39.1,
      50.2,
      60.2,
      64.4,
      63.2,
      55.5,
      44.0,
      33.9,
      25.3
     ],
     "prcp": [
      2.23,
      2.08,
      2.43,
      3.26,
      3.72,
      3.26,
      3.51,
      3.26,
      3.22,
      2.53,
      2.57,
      2.25
     ],
     "snow": [
      14.0,
      12.5,
      6.2,
      1.5,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      1.9,
      8.9
     ],
     "hdd65": [
      1216.5,
      1035.9,
      860.9,
      487.5,
      197.7,
      28.1,
      2.4,
      6.6,
      91.4,
      381.6,
      712.5,
      1046.1
     ],
     "cdd65": [
      0.0,
      0.0,
      0.7,
      4.5,
      50.4,
      176.5,
      282.8,
      232.8,
      89.7,
      9.6,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 50.6,
     "jan_mean_f": 25.8,
     "jul_mean_f": 74.1,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 34.32,
     "snow_in": 45.0,
     "hdd65": 6067,
     "cdd65": 847,
     "cdd50": 3020,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 10.3,
     "map_mm": 872,
     "thot_c": 23.4,
     "tcold_c": -3.4,
     "tmon10": 6,
     "pdry_mm": 53,
     "pthreshold_mm": 346.4,
     "summer_share": 0.59
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 34.3,
     "dry_limit_in": 13.7,
     "tcold_f": 25.8,
     "thot_f": 74.1,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3020,
     "hdd65": 6067
    },
    "adopted": {
     "zone": "5A",
     "county": "Wayne",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "lake-effect-snow",
     "label": "Lake-effect snow"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    }
   ],
   "house_types": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 6067",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 45 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Wayne County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Lake-effect snow, Extreme cold, Freeze-thaw and ice, Riverine / urban flood",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Michigan, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 6067, CDD65 847); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    659.2,
    164.2
   ],
   "live": {
    "nws_alert_area": "MI",
    "nws_station": "KDTW",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "MN": {
   "usps": "MN",
   "name": "Minnesota",
   "fips": "27",
   "region": "midwest",
   "anchor": {
    "ncei_station": "USW00014922",
    "name": "MINNEAPOLIS/ST PAUL AP, MN US",
    "lat": 44.8831,
    "lon": -93.2289,
    "elev_m": 265.8,
    "nws_station": "KMSP",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      16.2,
      20.6,
      33.3,
      47.1,
      59.5,
      69.7,
      74.3,
      71.8,
      63.5,
      49.5,
      34.8,
      22.0
     ],
     "tmax": [
      23.6,
      28.5,
      41.7,
      56.6,
      69.2,
      79.0,
      83.4,
      80.7,
      72.9,
      58.1,
      41.9,
      28.8
     ],
     "tmin": [
      8.8,
      12.7,
      24.9,
      37.5,
      49.9,
      60.4,
      65.3,
      62.8,
      54.2,
      40.9,
      27.7,
      15.2
     ],
     "prcp": [
      0.89,
      0.87,
      1.68,
      2.91,
      3.91,
      4.58,
      4.06,
      4.34,
      3.02,
      2.58,
      1.61,
      1.17
     ],
     "snow": [
      11.0,
      9.5,
      8.2,
      3.5,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8,
      6.8,
      11.4
     ],
     "hdd65": [
      1512.6,
      1243.1,
      983.2,
      542.2,
      213.9,
      34.4,
      4.3,
      10.3,
      127.6,
      488.6,
      906.0,
      1332.9
     ],
     "cdd65": [
      0.0,
      0.0,
      0.4,
      3.7,
      44.9,
      175.3,
      294.0,
      219.5,
      84.0,
      8.1,
      0.1,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 46.9,
     "jan_mean_f": 16.2,
     "jul_mean_f": 74.3,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 31.62,
     "snow_in": 51.2,
     "hdd65": 7399,
     "cdd65": 830,
     "cdd50": 2851,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 8.3,
     "map_mm": 803,
     "thot_c": 23.5,
     "tcold_c": -8.8,
     "tmon10": 5,
     "pdry_mm": 22,
     "pthreshold_mm": 445.1,
     "summer_share": 0.72
    }
   },
   "iecc": {
    "zone": 6,
    "moisture": "A",
    "label": "6A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 31.6,
     "dry_limit_in": 12.0,
     "tcold_f": 16.2,
     "thot_f": 74.3,
     "months_over_50f": 5,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2851,
     "hdd65": 7399
    },
    "adopted": {
     "zone": "6A",
     "county": "Hennepin",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    }
   ],
   "house_types": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 6: HDD65 7399",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 51 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 6: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 6",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 6A (Hennepin County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Extreme cold, Snow load, Tornado, Riverine / urban flood, Freeze-thaw and ice",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Minnesota, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 7399, CDD65 830); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    516.6,
    129.6
   ],
   "live": {
    "nws_alert_area": "MN",
    "nws_station": "KMSP",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "MS": {
   "usps": "MS",
   "name": "Mississippi",
   "fips": "28",
   "region": "south-central",
   "anchor": {
    "ncei_station": "USW00003940",
    "name": "JACKSON INTL AP, MS US",
    "lat": 32.3197,
    "lon": -90.0778,
    "elev_m": 90.2,
    "nws_station": "KJAN",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      47.0,
      50.9,
      57.9,
      64.9,
      72.9,
      79.6,
      82.1,
      81.8,
      76.9,
      66.2,
      55.4,
      49.1
     ],
     "tmax": [
      57.4,
      62.0,
      69.4,
      76.5,
      83.8,
      89.9,
      92.1,
      92.2,
      87.8,
      78.3,
      67.2,
      59.6
     ],
     "tmin": [
      36.6,
      39.8,
      46.4,
      53.3,
      62.1,
      69.4,
      72.2,
      71.5,
      66.0,
      54.2,
      43.6,
      38.7
     ],
     "prcp": [
      5.42,
      5.1,
      5.68,
      5.84,
      4.36,
      4.43,
      5.02,
      4.69,
      3.48,
      3.8,
      4.4,
      5.13
     ],
     "snow": [
      0.2,
      0.2,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.5
     ],
     "hdd65": [
      562.3,
      403.7,
      252.7,
      94.1,
      11.7,
      0.0,
      0.0,
      0.0,
      2.9,
      86.7,
      307.6,
      500.0
     ],
     "cdd65": [
      4.5,
      9.0,
      32.6,
      91.2,
      258.1,
      439.4,
      531.6,
      522.2,
      359.8,
      125.5,
      19.8,
      8.7
     ]
    },
    "annual": {
     "tavg_f": 65.4,
     "jan_mean_f": 47.0,
     "jul_mean_f": 82.1,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 57.35,
     "snow_in": 1.0,
     "hdd65": 2222,
     "cdd65": 2402,
     "cdd50": 6076,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Apr",
     "driest_month": "Sep"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 18.6,
     "map_mm": 1457,
     "thot_c": 27.8,
     "tcold_c": 8.3,
     "tmon10": 10,
     "pdry_mm": 88,
     "pthreshold_mm": 511.0,
     "summer_share": 0.49
    }
   },
   "iecc": {
    "zone": 3,
    "moisture": "A",
    "label": "3A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 57.4,
     "dry_limit_in": 20.2,
     "tcold_f": 47.0,
     "thot_f": 82.1,
     "months_over_50f": 10,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 6076,
     "hdd65": 2222
    },
    "adopted": {
     "zone": "3A",
     "county": "Hinds/Rankin",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "Dogtrot",
     "climate_fit": "open central breezeway cools two flanking rooms before mechanical air conditioning"
    },
    {
     "name": "Shotgun",
     "climate_fit": "one room wide with aligned doors for cross-ventilation in humid heat"
    },
    {
     "name": "Texas German stone farmhouse",
     "climate_fit": "thick limestone walls buffer the Hill Country's hot days and cool nights"
    },
    {
     "name": "Acadian cottage",
     "climate_fit": "raised floor and broad porch handle Louisiana humidity and standing water"
    },
    {
     "name": "Raised Gulf cottage",
     "climate_fit": "pier foundation lifts the living floor above storm surge and flood"
    },
    {
     "name": "Hill Country modern",
     "climate_fit": "deep overhangs and stone massing manage sun and flash-flood-prone sites"
    }
   ],
   "design_drivers": {
    "heating": "minor",
    "cooling": "dominant",
    "moisture": "dominant (Gulf humidity)",
    "snow_load": "minor (occasional damaging ice events)",
    "wind": "dominant (hurricane and tornado exposure)",
    "seismic": "minor",
    "wildfire": "secondary, concentrated in western Texas during drought",
    "flood": "dominant (hurricane storm surge and Hill Country flash flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed, cooling-leaning",
     "because": "IECC zone 3: CDD50 at or under 6300 and HDD65 2222 at or under 3600",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 57 in, snow 1.0 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 3",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3A (Hinds/Rankin County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; storm shelter or safe room; hurricane ties even outside hurricane zones; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Hurricane wind, Tornado, Riverine / urban flood, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Mississippi, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 2222, CDD65 2402); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    608.6,
    430.5
   ],
   "live": {
    "nws_alert_area": "MS",
    "nws_station": "KJAN",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "MO": {
   "usps": "MO",
   "name": "Missouri",
   "fips": "29",
   "region": "midwest",
   "anchor": {
    "ncei_station": "USW00013994",
    "name": "ST LOUIS LAMBERT INTL AP, MO US",
    "lat": 38.7525,
    "lon": -90.3736,
    "elev_m": 161.8,
    "nws_station": "KSTL",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      32.1,
      36.7,
      46.6,
      57.5,
      67.5,
      76.5,
      80.4,
      78.8,
      71.0,
      59.1,
      46.5,
      36.5
     ],
     "tmax": [
      40.4,
      45.8,
      56.6,
      68.0,
      77.1,
      85.9,
      89.6,
      88.3,
      81.1,
      69.2,
      55.5,
      44.5
     ],
     "tmin": [
      23.8,
      27.6,
      36.7,
      47.0,
      57.9,
      67.2,
      71.1,
      69.3,
      60.9,
      49.1,
      37.4,
      28.5
     ],
     "prcp": [
      2.59,
      2.23,
      3.5,
      4.73,
      4.82,
      4.49,
      3.93,
      3.38,
      2.96,
      3.15,
      3.42,
      2.5
     ],
     "snow": [
      5.7,
      4.3,
      2.3,
      0.2,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.9,
      3.2
     ],
     "hdd65": [
      1019.6,
      792.9,
      576.1,
      262.0,
      72.1,
      4.4,
      0.0,
      0.6,
      32.4,
      229.4,
      559.8,
      883.5
     ],
     "cdd65": [
      0.0,
      0.6,
      7.3,
      37.0,
      149.6,
      350.8,
      475.8,
      428.3,
      212.3,
      48.0,
      3.4,
      0.1
     ]
    },
    "annual": {
     "tavg_f": 57.4,
     "jan_mean_f": 32.1,
     "jul_mean_f": 80.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 41.7,
     "snow_in": 16.6,
     "hdd65": 4433,
     "cdd65": 1713,
     "cdd50": 4420,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 14.1,
     "map_mm": 1059,
     "thot_c": 26.9,
     "tcold_c": 0.1,
     "tmon10": 7,
     "pdry_mm": 57,
     "pthreshold_mm": 422.6,
     "summer_share": 0.58
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 41.7,
     "dry_limit_in": 16.7,
     "tcold_f": 32.1,
     "thot_f": 80.4,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 4420,
     "hdd65": 4433
    },
    "adopted": {
     "zone": "4A",
     "county": "St. Louis County",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    },
    {
     "id": "seismic-nmsz",
     "label": "New Madrid seismic zone"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4433 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 17 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (St. Louis County County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; ice-dam eave membrane, snow guards, buried or protected service drops; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Tornado, Riverine / urban flood, Ice storm, New Madrid seismic zone, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Missouri, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4433, CDD65 1713); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    551.8,
    306.6
   ],
   "live": {
    "nws_alert_area": "MO",
    "nws_station": "KSTL",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "MT": {
   "usps": "MT",
   "name": "Montana",
   "fips": "30",
   "region": "mountain",
   "anchor": {
    "ncei_station": "USW00024033",
    "name": "BILLINGS LOGAN INTL AP, MT US",
    "lat": 45.8069,
    "lon": -108.5422,
    "elev_m": 1091.5,
    "nws_station": "KBIL",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      27.0,
      29.4,
      38.0,
      45.8,
      55.3,
      64.7,
      73.3,
      71.6,
      61.4,
      47.9,
      36.2,
      27.6
     ],
     "tmax": [
      36.0,
      39.2,
      49.0,
      56.9,
      66.9,
      77.0,
      87.3,
      85.8,
      74.3,
      58.8,
      45.7,
      36.1
     ],
     "tmin": [
      17.9,
      19.7,
      26.9,
      34.7,
      43.8,
      52.4,
      59.3,
      57.5,
      48.6,
      37.1,
      26.7,
      19.2
     ],
     "prcp": [
      0.55,
      0.57,
      0.9,
      1.72,
      2.36,
      2.22,
      1.22,
      0.87,
      1.36,
      1.37,
      0.6,
      0.57
     ],
     "snow": [
      10.6,
      9.1,
      8.2,
      7.5,
      0.9,
      0.0,
      0.0,
      0.0,
      0.3,
      4.5,
      6.5,
      9.8
     ],
     "hdd65": [
      1179.6,
      995.3,
      838.6,
      576.7,
      313.5,
      89.7,
      12.0,
      24.5,
      168.4,
      533.8,
      864.0,
      1157.7
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      0.8,
      14.3,
      80.7,
      269.1,
      230.5,
      61.8,
      5.3,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 48.2,
     "jan_mean_f": 27.0,
     "jul_mean_f": 73.3,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 14.31,
     "snow_in": 57.4,
     "hdd65": 6754,
     "cdd65": 663,
     "cdd50": 2519,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 9.0,
     "map_mm": 363,
     "thot_c": 22.9,
     "tcold_c": -2.8,
     "tmon10": 5,
     "pdry_mm": 14,
     "pthreshold_mm": 319.8,
     "summer_share": 0.68
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 14.3,
     "dry_limit_in": 12.6,
     "tcold_f": 27.0,
     "thot_f": 73.3,
     "months_over_50f": 5,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2519,
     "hdd65": 6754
    },
    "adopted": {
     "zone": "6B",
     "county": "Yellowstone",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 5A from 1991-2020 station normals; Table R301.1 assigns 6B to Yellowstone County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "wind",
     "label": "High wind"
    },
    {
     "id": "drought",
     "label": "Drought"
    }
   ],
   "house_types": [
    {
     "name": "Ski chalet",
     "climate_fit": "steep gable roof and deep eaves shed heavy mountain snowfall"
    },
    {
     "name": "Log cabin",
     "climate_fit": "thick log walls hold heat through long, cold winters"
    },
    {
     "name": "Mining-town Victorian",
     "climate_fit": "narrow lots and steep metal roofs from 19th-century boomtowns built for snow load"
    },
    {
     "name": "Mountain modern",
     "climate_fit": "large glazing and simple massing chase views while metal roofs shed snow"
    },
    {
     "name": "Valley ranch",
     "climate_fit": "low, single-story postwar stock in the drier basin towns where snow load is lighter"
    },
    {
     "name": "Earth-sheltered / passive solar",
     "climate_fit": "Rocky Mountain berm-and-solar tradition that banks on the region's intense high-elevation sun"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "minor",
    "moisture": "minor",
    "snow_load": "dominant",
    "wind": "secondary (exposed ridgelines, canyon winds)",
    "seismic": "secondary, concentrated on the Wasatch Front (UT)",
    "wildfire": "dominant",
    "flood": "secondary (snowmelt and canyon flash flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 6754",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 57 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 6B (Yellowstone County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Extreme cold, Snow load, Wildfire, High wind, Drought",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Montana, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 6754, CDD65 663); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    282.5,
    97.9
   ],
   "live": {
    "nws_alert_area": "MT",
    "nws_station": "KBIL",
    "usgs_feed": "2.5_day",
    "eonet": true
   },
   "secondary_stations": [
    {
     "ncei_station": "USW00024143",
     "name": "GREAT FALLS INTL AP, MT US",
     "lat": 47.4733,
     "lon": -111.3822,
     "annual": {
      "tavg_f": 44.6,
      "jan_mean_f": 25.2,
      "jul_mean_f": 67.9,
      "precip_in": 14.8,
      "snow_in": 66.1,
      "hdd65": 7722,
      "cdd50": 1871
     },
     "koppen": "BSk",
     "iecc_zone": 6
    }
   ]
  },
  "NE": {
   "usps": "NE",
   "name": "Nebraska",
   "fips": "31",
   "region": "plains",
   "anchor": {
    "ncei_station": "USW00014942",
    "name": "OMAHA EPPLEY AIRFIELD, NE US",
    "lat": 41.3103,
    "lon": -95.8992,
    "elev_m": 299.3,
    "nws_station": "KOMA",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      24.4,
      28.9,
      41.0,
      52.6,
      63.6,
      73.9,
      78.1,
      75.7,
      67.6,
      54.4,
      40.2,
      28.7
     ],
     "tmax": [
      33.6,
      38.6,
      52.1,
      64.1,
      74.6,
      84.4,
      88.1,
      85.8,
      79.1,
      65.5,
      50.3,
      37.7
     ],
     "tmin": [
      15.2,
      19.3,
      30.0,
      41.1,
      52.7,
      63.4,
      68.0,
      65.6,
      56.1,
      43.2,
      30.2,
      19.8
     ],
     "prcp": [
      0.75,
      0.95,
      1.79,
      3.17,
      4.66,
      4.44,
      3.55,
      4.6,
      2.96,
      2.32,
      1.45,
      1.22
     ],
     "snow": [
      7.2,
      7.8,
      3.0,
      1.0,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.5,
      1.7,
      5.8
     ],
     "hdd65": [
      1258.4,
      1009.3,
      744.8,
      386.2,
      132.2,
      10.8,
      0.5,
      3.2,
      70.5,
      350.9,
      742.8,
      1123.6
     ],
     "cdd65": [
      0.0,
      0.0,
      2.3,
      14.1,
      90.3,
      277.6,
      405.0,
      334.8,
      148.4,
      20.7,
      0.3,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 52.4,
     "jan_mean_f": 24.4,
     "jul_mean_f": 78.1,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 31.86,
     "snow_in": 27.1,
     "hdd65": 5833,
     "cdd65": 1294,
     "cdd50": 3681,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 11.3,
     "map_mm": 809,
     "thot_c": 25.6,
     "tcold_c": -4.2,
     "tmon10": 7,
     "pdry_mm": 19,
     "pthreshold_mm": 506.9,
     "summer_share": 0.73
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 31.9,
     "dry_limit_in": 14.5,
     "tcold_f": 24.4,
     "thot_f": 78.1,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3681,
     "hdd65": 5833
    },
    "adopted": {
     "zone": "5A",
     "county": "Douglas",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "hail",
     "label": "Hail"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    }
   ],
   "house_types": [
    {
     "name": "Ranch (post-sod-house)",
     "climate_fit": "low profile and small footprint present the least surface to sustained plains wind"
    },
    {
     "name": "Hipped-roof prairie cottage",
     "climate_fit": "hipped roof resists uplift better than gable ends in open wind"
    },
    {
     "name": "Storm-cellar / basement tradition",
     "climate_fit": "below-grade shelter is standard practice, not an amenity, in tornado country"
    },
    {
     "name": "Shelterbelt farmstead",
     "climate_fit": "planted windbreak rows cut wind-driven snow drift and soil erosion around the house"
    },
    {
     "name": "Prairie foursquare",
     "climate_fit": "compact two-story boxy form holds heat against open-plains winter wind"
    },
    {
     "name": "Pole-barn / Quonset outbuilding vernacular",
     "climate_fit": "curved or braced-frame ancillary structures shed snow load and resist wind"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "minor",
    "snow_load": "secondary (drifting matters more than static load)",
    "wind": "dominant",
    "seismic": "minor to secondary, concentrated in central Oklahoma (induced)",
    "wildfire": "secondary (grassland and rangeland fire)",
    "flood": "secondary (flash flooding, prairie pothole/playa)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 5833",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 27 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Douglas County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; impact-rated roofing (UL 2218 Class 4); thermal-bridge-free envelope, protected water lines, arctic entry vestibule",
     "because": "Tornado, Hail, Extreme cold, Drought, Riverine / urban flood",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Nebraska, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5833, CDD65 1294); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    427.4,
    234.9
   ],
   "live": {
    "nws_alert_area": "NE",
    "nws_station": "KOMA",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "NV": {
   "usps": "NV",
   "name": "Nevada",
   "fips": "32",
   "region": "southwest",
   "anchor": {
    "ncei_station": "USW00023169",
    "name": "LAS VEGAS MCCARRAN AP, NV US",
    "lat": 36.0719,
    "lon": -115.1633,
    "elev_m": 649.5,
    "nws_station": "KLAS",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      49.5,
      53.5,
      60.8,
      67.7,
      77.3,
      87.6,
      93.2,
      91.7,
      83.6,
      70.4,
      57.2,
      48.2
     ],
     "tmax": [
      58.5,
      62.9,
      71.1,
      78.5,
      88.5,
      99.4,
      104.5,
      102.8,
      94.9,
      81.2,
      67.1,
      56.9
     ],
     "tmin": [
      40.5,
      44.1,
      50.5,
      56.9,
      66.1,
      75.8,
      82.0,
      80.6,
      72.4,
      59.6,
      47.3,
      39.6
     ],
     "prcp": [
      0.56,
      0.8,
      0.42,
      0.2,
      0.07,
      0.04,
      0.38,
      0.32,
      0.32,
      0.32,
      0.3,
      0.45
     ],
     "snow": [
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2
     ],
     "hdd65": [
      480.5,
      323.3,
      166.2,
      54.8,
      8.2,
      0.7,
      0.0,
      0.0,
      0.3,
      32.5,
      250.0,
      519.1
     ],
     "cdd65": [
      0.0,
      1.3,
      36.0,
      135.8,
      389.5,
      678.6,
      875.6,
      827.6,
      559.7,
      199.9,
      16.0,
      0.1
     ]
    },
    "annual": {
     "tavg_f": 70.1,
     "jan_mean_f": 49.5,
     "jul_mean_f": 93.2,
     "warmest_month": "Jul",
     "coldest_month": "Dec",
     "precip_in": 4.18,
     "snow_in": 0.2,
     "hdd65": 1836,
     "cdd65": 3720,
     "cdd50": 7625,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Feb",
     "driest_month": "Jun"
    }
   },
   "koppen": {
    "code": "BWh",
    "name": "Hot desert",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 21.1,
     "map_mm": 106,
     "thot_c": 34.0,
     "tcold_c": 9.0,
     "tmon10": 10,
     "pdry_mm": 1,
     "pthreshold_mm": 562.9,
     "summer_share": 0.32
    }
   },
   "iecc": {
    "zone": 2,
    "moisture": "B",
    "label": "2B",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 4.2,
     "dry_limit_in": 22.2,
     "rule": "P < 0.44 x (T - 19.5)",
     "cdd50": 7625,
     "hdd65": 1836
    },
    "adopted": {
     "zone": "3B",
     "county": "Clark",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 2B from 1991-2020 station normals; Table R301.1 assigns 3B to Clark County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "extreme-heat",
     "label": "Extreme heat"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "seismic",
     "label": "Earthquake"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "flash-flood",
     "label": "Flash flood"
    }
   ],
   "house_types": [
    {
     "name": "Pueblo Revival / adobe",
     "climate_fit": "thermal mass evens the high-desert day-night swing; flat roofs fit dry, snow-free winters"
    },
    {
     "name": "Territorial",
     "climate_fit": "adobe massing with Anglo trim and brick coping"
    },
    {
     "name": "Mission / Spanish Colonial Revival",
     "climate_fit": "stucco and clay tile for sun; courtyards make shade"
    },
    {
     "name": "California ranch",
     "climate_fit": "single-story indoor-outdoor living the mild coast permits"
    },
    {
     "name": "Desert modernism",
     "climate_fit": "deep overhangs and oriented glass for shade with views"
    },
    {
     "name": "Contemporary desert",
     "climate_fit": "low-pitch tile roofs, stucco, shade-first site planning"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "cooling-dominated",
     "because": "IECC zone 2: CDD50 above 6300",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "low-slope or flat acceptable with positive drainage and parapet scuppers",
     "because": "precip 4 in, snow 0.2 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "slab-on-grade with capillary break, termite shield and edge moisture detailing",
     "because": "IECC zone 2, no flood flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "vapor-open assemblies; prioritize dust, UV and flash-flood site drainage over vapor control",
     "because": "moisture regime B (dry)",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3B (Clark County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; cool roof, shaded outdoor rooms, thermal mass where nights are cool",
     "because": "Extreme heat, Drought, Earthquake, Wildfire, Flash flood",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Nevada, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 1836, CDD65 3720); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a BWh normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    140,
    247.7
   ],
   "live": {
    "nws_alert_area": "NV",
    "nws_station": "KLAS",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "NH": {
   "usps": "NH",
   "name": "New Hampshire",
   "fips": "33",
   "region": "northeast",
   "anchor": {
    "ncei_station": "USW00014745",
    "name": "CONCORD MUNI AP, NH US",
    "lat": 43.1953,
    "lon": -71.5011,
    "elev_m": 105.5,
    "nws_station": "KCON",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      22.3,
      24.7,
      33.4,
      45.4,
      56.7,
      65.8,
      71.1,
      69.5,
      61.4,
      49.3,
      38.6,
      28.3
     ],
     "tmax": [
      31.6,
      34.8,
      43.6,
      57.5,
      69.3,
      77.8,
      83.0,
      81.7,
      73.7,
      60.9,
      48.4,
      37.1
     ],
     "tmin": [
      12.9,
      14.7,
      23.3,
      33.3,
      44.1,
      53.7,
      59.2,
      57.2,
      49.0,
      37.8,
      28.7,
      19.5
     ],
     "prcp": [
      2.8,
      2.75,
      3.28,
      3.43,
      3.47,
      3.77,
      3.62,
      3.63,
      3.63,
      4.43,
      3.44,
      3.7
     ],
     "snow": [
      17.1,
      16.9,
      13.6,
      2.5,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.8,
      2.5,
      14.3
     ],
     "hdd65": [
      1325.2,
      1127.0,
      978.1,
      590.2,
      277.8,
      71.3,
      10.4,
      21.4,
      159.9,
      487.7,
      793.5,
      1137.7
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      2.2,
      20.4,
      93.8,
      199.5,
      159.3,
      50.4,
      2.6,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 47.2,
     "jan_mean_f": 22.3,
     "jul_mean_f": 71.1,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 41.95,
     "snow_in": 67.7,
     "hdd65": 6980,
     "cdd65": 528,
     "cdd50": 2478,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Oct",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfb",
    "name": "Warm-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 8.4,
     "map_mm": 1066,
     "thot_c": 21.7,
     "tcold_c": -5.4,
     "tmon10": 5,
     "pdry_mm": 70,
     "pthreshold_mm": 309.0,
     "summer_share": 0.51
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 42.0,
     "dry_limit_in": 12.2,
     "tcold_f": 22.3,
     "thot_f": 71.1,
     "months_over_50f": 5,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2478,
     "hdd65": 6980
    },
    "adopted": {
     "zone": "5A",
     "county": "Merrimack",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "noreaster",
     "label": "Nor'easter"
    }
   ],
   "house_types": [
    {
     "name": "Colonial / Colonial Revival",
     "climate_fit": "compact two-story form and central chimney hold heat through winter"
    },
    {
     "name": "Cape Cod",
     "climate_fit": "low profile and steep roof shed snow and shrug off wind"
    },
    {
     "name": "Saltbox",
     "climate_fit": "long rear roofline turns its back to the north wind"
    },
    {
     "name": "Brownstone / rowhouse",
     "climate_fit": "party walls buffer winter cold on dense urban lots"
    },
    {
     "name": "Triple-decker",
     "climate_fit": "stacked flats — New England's dense urban housing form"
    },
    {
     "name": "Queen Anne Victorian",
     "climate_fit": "the heavy ornate stock of the region's industrial-era boom"
    },
    {
     "name": "Split-level / raised ranch",
     "climate_fit": "postwar suburban default on graded lots"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 6980",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "steep, 8:12 or more, with snow retention",
     "because": "annual snowfall normal 68 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Merrimack County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Snow load, Extreme cold, Freeze-thaw and ice, Nor'easter",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in New Hampshire, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 6980, CDD65 528); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfb normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    878.9,
    137.8
   ],
   "live": {
    "nws_alert_area": "NH",
    "nws_station": "KCON",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "NJ": {
   "usps": "NJ",
   "name": "New Jersey",
   "fips": "34",
   "region": "mid-atlantic",
   "anchor": {
    "ncei_station": "USW00014734",
    "name": "NEWARK INTL AP, NJ US",
    "lat": 40.6825,
    "lon": -74.1694,
    "elev_m": 2.1,
    "nws_station": "KEWR",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      32.8,
      35.1,
      42.5,
      53.3,
      63.3,
      72.7,
      78.2,
      76.4,
      69.2,
      57.5,
      47.0,
      38.0
     ],
     "tmax": [
      40.0,
      43.0,
      50.9,
      62.6,
      72.6,
      81.8,
      86.9,
      84.7,
      77.7,
      66.0,
      54.9,
      44.8
     ],
     "tmin": [
      25.5,
      27.2,
      34.2,
      44.1,
      53.9,
      63.6,
      69.4,
      68.0,
      60.7,
      49.0,
      39.0,
      31.2
     ],
     "prcp": [
      3.42,
      2.98,
      4.13,
      3.87,
      3.97,
      4.34,
      4.66,
      4.15,
      3.82,
      3.79,
      3.33,
      4.14
     ],
     "snow": [
      9.1,
      10.1,
      5.6,
      0.5,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      0.6,
      5.4
     ],
     "hdd65": [
      999.6,
      837.1,
      696.9,
      363.1,
      123.5,
      13.9,
      0.1,
      0.7,
      33.3,
      253.3,
      542.1,
      836.9
     ],
     "cdd65": [
      0.0,
      0.0,
      1.0,
      13.6,
      69.3,
      244.8,
      407.6,
      352.5,
      159.3,
      20.8,
      0.7,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 55.5,
     "jan_mean_f": 32.8,
     "jul_mean_f": 78.2,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 46.6,
     "snow_in": 31.5,
     "hdd65": 4701,
     "cdd65": 1270,
     "cdd50": 3776,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 13.1,
     "map_mm": 1184,
     "thot_c": 25.7,
     "tcold_c": 0.4,
     "tmon10": 7,
     "pdry_mm": 76,
     "pthreshold_mm": 401.1,
     "summer_share": 0.53
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 46.6,
     "dry_limit_in": 15.8,
     "tcold_f": 32.8,
     "thot_f": 78.2,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3776,
     "hdd65": 4701
    },
    "adopted": {
     "zone": "4A",
     "county": "Essex",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    },
    {
     "id": "noreaster",
     "label": "Nor'easter"
    },
    {
     "id": "hurricane-remnant",
     "label": "Tropical remnants"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    }
   ],
   "house_types": [
    {
     "name": "Federal / Georgian rowhouse",
     "climate_fit": "party walls and masonry mass buffer winter cold on dense urban lots"
    },
    {
     "name": "Pennsylvania bank barn farmhouse",
     "climate_fit": "earth-banked lower level insulates against the interior's colder winters"
    },
    {
     "name": "Cape (Jersey Shore)",
     "climate_fit": "low, compact form stands up to coastal wind and nor'easter exposure"
    },
    {
     "name": "Colonial Revival",
     "climate_fit": "symmetric massing and a central chimney hold heat through the four-season interior climate"
    },
    {
     "name": "Baltimore rowhouse",
     "climate_fit": "shared walls and marble stoops handle dense, humid-summer urban blocks"
    },
    {
     "name": "Dutch Colonial",
     "climate_fit": "gambrel roof sheds snow while adding headroom in the Pennsylvania/New Jersey Dutch country"
    },
    {
     "name": "Tidewater farmhouse",
     "climate_fit": "raised foundation and wide porches manage Chesapeake humidity and tidal flooding"
    }
   ],
   "design_drivers": {
    "heating": "secondary to dominant, heavier in the Appalachian interior than the coastal plain",
    "cooling": "secondary",
    "moisture": "secondary",
    "snow_load": "secondary, higher in Appalachian ridge counties than the coast",
    "wind": "secondary (hurricane remnants and nor'easters)",
    "seismic": "minor, elevated in the Central Virginia Seismic Zone",
    "wildfire": "minor",
    "flood": "dominant (coastal and tidal flooding, nor'easter storm surge)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4701 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 32 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Essex County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Coastal flood, Nor'easter, Tropical remnants, Heat and humidity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in New Jersey, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4701, CDD65 1270); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    848.3,
    226.3
   ],
   "live": {
    "nws_alert_area": "NJ",
    "nws_station": "KEWR",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "NM": {
   "usps": "NM",
   "name": "New Mexico",
   "fips": "35",
   "region": "southwest",
   "anchor": {
    "ncei_station": "USW00023050",
    "name": "ALBUQUERQUE INTL AP, NM US",
    "lat": 35.0419,
    "lon": -106.6156,
    "elev_m": 1618.5,
    "nws_station": "KABQ",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      37.4,
      41.9,
      49.5,
      56.8,
      66.1,
      76.1,
      78.9,
      76.9,
      70.3,
      58.4,
      45.7,
      36.9
     ],
     "tmax": [
      48.4,
      54.1,
      62.8,
      70.3,
      79.9,
      90.4,
      91.2,
      88.8,
      82.5,
      70.6,
      57.3,
      47.3
     ],
     "tmin": [
      26.4,
      29.8,
      36.2,
      43.2,
      52.4,
      61.9,
      66.5,
      64.9,
      58.1,
      46.1,
      34.1,
      26.6
     ],
     "prcp": [
      0.36,
      0.43,
      0.46,
      0.51,
      0.44,
      0.57,
      1.64,
      1.31,
      1.15,
      0.87,
      0.57,
      0.53
     ],
     "snow": [
      1.4,
      1.5,
      0.7,
      0.3,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.3,
      0.9,
      2.8
     ],
     "hdd65": [
      855.6,
      645.4,
      480.6,
      254.9,
      69.6,
      2.0,
      0.0,
      0.0,
      19.6,
      219.5,
      579.0,
      869.5
     ],
     "cdd65": [
      0.0,
      0.0,
      0.1,
      7.4,
      105.3,
      336.4,
      429.3,
      367.3,
      178.6,
      13.3,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 57.9,
     "jan_mean_f": 37.4,
     "jul_mean_f": 78.9,
     "warmest_month": "Jul",
     "coldest_month": "Dec",
     "precip_in": 8.84,
     "snow_in": 7.9,
     "hdd65": 3996,
     "cdd65": 1438,
     "cdd50": 4346,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "BSk",
    "name": "Cold semi-arid",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 14.4,
     "map_mm": 225,
     "thot_c": 26.1,
     "tcold_c": 2.7,
     "tmon10": 7,
     "pdry_mm": 9,
     "pthreshold_mm": 427.9,
     "summer_share": 0.64
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "B",
    "label": "4B",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 8.8,
     "dry_limit_in": 16.9,
     "rule": "P < 0.44 x (T - 19.5)",
     "cdd50": 4346,
     "hdd65": 3996
    },
    "adopted": {
     "zone": "4B",
     "county": "Bernalillo",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "flash-flood",
     "label": "Flash flood"
    },
    {
     "id": "extreme-heat",
     "label": "Extreme heat"
    },
    {
     "id": "wind",
     "label": "High wind"
    }
   ],
   "house_types": [
    {
     "name": "Pueblo Revival / adobe",
     "climate_fit": "thermal mass evens the high-desert day-night swing; flat roofs fit dry, snow-free winters"
    },
    {
     "name": "Territorial",
     "climate_fit": "adobe massing with Anglo trim and brick coping"
    },
    {
     "name": "Mission / Spanish Colonial Revival",
     "climate_fit": "stucco and clay tile for sun; courtyards make shade"
    },
    {
     "name": "California ranch",
     "climate_fit": "single-story indoor-outdoor living the mild coast permits"
    },
    {
     "name": "Desert modernism",
     "climate_fit": "deep overhangs and oriented glass for shade with views"
    },
    {
     "name": "Contemporary desert",
     "climate_fit": "low-pitch tile roofs, stucco, shade-first site planning"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 3996 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "low-slope or flat acceptable with positive drainage and parapet scuppers",
     "because": "precip 9 in, snow 7.9 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "vapor-open assemblies; prioritize dust, UV and flash-flood site drainage over vapor control",
     "because": "moisture regime B (dry)",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4B (Bernalillo County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; cool roof, shaded outdoor rooms, thermal mass where nights are cool",
     "because": "Drought, Wildfire, Flash flood, Extreme heat, High wind",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in New Mexico, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 3996, CDD65 1438); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a BSk normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    305.8,
    387
   ],
   "live": {
    "nws_alert_area": "NM",
    "nws_station": "KABQ",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "NY": {
   "usps": "NY",
   "name": "New York",
   "fips": "36",
   "region": "northeast",
   "anchor": {
    "ncei_station": "USW00094728",
    "name": "NEW YORK CNTRL PK TWR, NY US",
    "lat": 40.7789,
    "lon": -73.9692,
    "elev_m": 39.6,
    "nws_station": "KNYC",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      33.7,
      35.9,
      42.8,
      53.7,
      63.2,
      72.0,
      77.5,
      76.1,
      69.2,
      57.9,
      48.0,
      39.1
     ],
     "tmax": [
      39.5,
      42.2,
      49.9,
      61.8,
      71.4,
      79.7,
      84.9,
      83.3,
      76.2,
      64.5,
      54.0,
      44.3
     ],
     "tmin": [
      27.9,
      29.5,
      35.8,
      45.5,
      55.0,
      64.4,
      70.1,
      68.9,
      62.3,
      51.4,
      42.0,
      33.8
     ],
     "prcp": [
      3.64,
      3.19,
      4.29,
      4.09,
      3.96,
      4.54,
      4.6,
      4.56,
      4.31,
      4.38,
      3.58,
      4.38
     ],
     "snow": [
      8.8,
      10.1,
      5.0,
      0.4,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1,
      0.5,
      4.9
     ],
     "hdd65": [
      970.1,
      816.2,
      687.8,
      354.3,
      122.0,
      14.7,
      0.1,
      0.9,
      31.9,
      240.1,
      510.9,
      804.4
     ],
     "cdd65": [
      0.0,
      0.0,
      1.2,
      13.7,
      66.2,
      226.2,
      387.5,
      344.9,
      159.3,
      21.6,
      0.9,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 55.8,
     "jan_mean_f": 33.7,
     "jul_mean_f": 77.5,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 49.52,
     "snow_in": 29.8,
     "hdd65": 4553,
     "cdd65": 1222,
     "cdd50": 3727,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 13.2,
     "map_mm": 1258,
     "thot_c": 25.3,
     "tcold_c": 0.9,
     "tmon10": 7,
     "pdry_mm": 81,
     "pthreshold_mm": 404.0,
     "summer_share": 0.53
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 49.5,
     "dry_limit_in": 16.0,
     "tcold_f": 33.7,
     "thot_f": 77.5,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3727,
     "hdd65": 4553
    },
    "adopted": {
     "zone": "4A",
     "county": "New York",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "lake-effect-snow",
     "label": "Lake-effect snow"
    },
    {
     "id": "noreaster",
     "label": "Nor'easter"
    },
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    }
   ],
   "house_types": [
    {
     "name": "Colonial / Colonial Revival",
     "climate_fit": "compact two-story form and central chimney hold heat through winter"
    },
    {
     "name": "Cape Cod",
     "climate_fit": "low profile and steep roof shed snow and shrug off wind"
    },
    {
     "name": "Saltbox",
     "climate_fit": "long rear roofline turns its back to the north wind"
    },
    {
     "name": "Brownstone / rowhouse",
     "climate_fit": "party walls buffer winter cold on dense urban lots"
    },
    {
     "name": "Triple-decker",
     "climate_fit": "stacked flats — New England's dense urban housing form"
    },
    {
     "name": "Queen Anne Victorian",
     "climate_fit": "the heavy ornate stock of the region's industrial-era boom"
    },
    {
     "name": "Split-level / raised ranch",
     "climate_fit": "postwar suburban default on graded lots"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4553 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 30 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (New York County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Lake-effect snow, Nor'easter, Coastal flood, Freeze-thaw and ice, Extreme cold",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in New York, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4553, CDD65 1222); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    821.1,
    168.9
   ],
   "live": {
    "nws_alert_area": "NY",
    "nws_station": "KNYC",
    "usgs_feed": "2.5_day",
    "eonet": true
   },
   "secondary_stations": [
    {
     "ncei_station": "USW00014733",
     "name": "BUFFALO, NY US",
     "lat": 42.9486,
     "lon": -78.7369,
     "annual": {
      "tavg_f": 48.8,
      "jan_mean_f": 25.5,
      "jul_mean_f": 71.7,
      "precip_in": 40.7,
      "snow_in": 95.4,
      "hdd65": 6466,
      "cdd50": 2597
     },
     "koppen": "Dfa",
     "iecc_zone": 5
    }
   ]
  },
  "NC": {
   "usps": "NC",
   "name": "North Carolina",
   "fips": "37",
   "region": "southeast",
   "anchor": {
    "ncei_station": "USW00013881",
    "name": "CHARLOTTE DOUGLAS AP, NC US",
    "lat": 35.2236,
    "lon": -80.9553,
    "elev_m": 221.9,
    "nws_station": "KCLT",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      42.1,
      45.7,
      52.7,
      61.1,
      69.0,
      76.6,
      80.1,
      78.6,
      72.7,
      61.9,
      51.4,
      44.7
     ],
     "tmax": [
      52.3,
      56.6,
      64.2,
      73.2,
      80.1,
      86.9,
      90.3,
      88.6,
      82.8,
      73.3,
      62.9,
      54.9
     ],
     "tmin": [
      31.8,
      34.9,
      41.2,
      49.1,
      58.0,
      66.2,
      69.9,
      68.7,
      62.6,
      50.4,
      39.8,
      34.5
     ],
     "prcp": [
      3.49,
      3.13,
      3.95,
      3.84,
      3.36,
      3.99,
      3.74,
      4.35,
      3.71,
      3.16,
      3.31,
      3.57
     ],
     "snow": [
      1.6,
      1.1,
      0.3,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1,
      0.4
     ],
     "hdd65": [
      711.6,
      540.5,
      391.5,
      162.6,
      39.3,
      1.9,
      0.1,
      0.1,
      13.1,
      151.5,
      415.1,
      630.6
     ],
     "cdd65": [
      0.2,
      1.5,
      10.2,
      47.1,
      164.8,
      348.3,
      468.1,
      423.2,
      244.1,
      53.9,
      5.7,
      1.4
     ]
    },
    "annual": {
     "tavg_f": 61.4,
     "jan_mean_f": 42.1,
     "jul_mean_f": 80.1,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 43.6,
     "snow_in": 3.5,
     "hdd65": 3058,
     "cdd65": 1769,
     "cdd50": 4971,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Aug",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 16.3,
     "map_mm": 1107,
     "thot_c": 26.7,
     "tcold_c": 5.6,
     "tmon10": 9,
     "pdry_mm": 80,
     "pthreshold_mm": 466.5,
     "summer_share": 0.53
    }
   },
   "iecc": {
    "zone": 3,
    "moisture": "A",
    "label": "3A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 43.6,
     "dry_limit_in": 18.4,
     "tcold_f": 42.1,
     "thot_f": 80.1,
     "months_over_50f": 9,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 4971,
     "hdd65": 3058
    },
    "adopted": {
     "zone": "3A",
     "county": "Mecklenburg",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "storm-surge",
     "label": "Storm surge"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    }
   ],
   "house_types": [
    {
     "name": "Shotgun",
     "climate_fit": "one room wide, doors aligned — cross-breeze before air conditioning"
    },
    {
     "name": "Creole cottage / townhouse",
     "climate_fit": "raised main floor and galleries above street water"
    },
    {
     "name": "Florida Cracker / dogtrot",
     "climate_fit": "elevated frame, breezeway core, metal roof sheds torrential rain"
    },
    {
     "name": "Lowcountry raised cottage",
     "climate_fit": "piers for flood and breeze; deep piazzas for shade"
    },
    {
     "name": "Key West conch",
     "climate_fit": "metal roof, shutters and porches built for hurricane country"
    },
    {
     "name": "Mediterranean / Spanish Revival",
     "climate_fit": "stucco and tile against sun and salt air"
    },
    {
     "name": "Brick ranch",
     "climate_fit": "slab-on-grade postwar default of the inland South"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed, cooling-leaning",
     "because": "IECC zone 3: CDD50 at or under 6300 and HDD65 3058 at or under 3600",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 44 in, snow 3.5 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 3",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3A (Mecklenburg County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops",
     "because": "Hurricane wind, Storm surge, Riverine / urban flood, Ice storm, Tornado",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in North Carolina, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 3058, CDD65 1769); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    788.7,
    344.8
   ],
   "live": {
    "nws_alert_area": "NC",
    "nws_station": "KCLT",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "ND": {
   "usps": "ND",
   "name": "North Dakota",
   "fips": "38",
   "region": "plains",
   "anchor": {
    "ncei_station": "USW00024011",
    "name": "BISMARCK, ND US",
    "lat": 46.7708,
    "lon": -100.7603,
    "elev_m": 505.4,
    "nws_station": "KBIS",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      12.8,
      17.5,
      30.1,
      43.2,
      55.3,
      65.4,
      71.3,
      69.6,
      59.7,
      44.8,
      29.9,
      17.9
     ],
     "tmax": [
      23.2,
      27.8,
      41.0,
      56.0,
      68.3,
      77.9,
      84.7,
      83.5,
      73.4,
      57.1,
      40.6,
      27.7
     ],
     "tmin": [
      2.4,
      7.2,
      19.1,
      30.4,
      42.4,
      52.9,
      57.9,
      55.7,
      45.9,
      32.6,
      19.1,
      8.1
     ],
     "prcp": [
      0.48,
      0.52,
      0.84,
      1.34,
      2.5,
      3.36,
      3.07,
      2.5,
      1.72,
      1.43,
      0.69,
      0.6
     ],
     "snow": [
      8.9,
      7.5,
      8.5,
      4.6,
      0.4,
      0.0,
      0.0,
      0.0,
      0.0,
      2.5,
      8.0,
      10.1
     ],
     "hdd65": [
      1618.0,
      1329.9,
      1083.5,
      654.6,
      315.8,
      76.6,
      15.8,
      31.4,
      204.4,
      626.3,
      1054.5,
      1460.0
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      0.5,
      16.6,
      88.5,
      211.0,
      173.8,
      43.8,
      1.7,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 43.1,
     "jan_mean_f": 12.8,
     "jul_mean_f": 71.3,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 19.05,
     "snow_in": 50.5,
     "hdd65": 8471,
     "cdd65": 536,
     "cdd50": 2351,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "Dfb",
    "name": "Warm-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 6.2,
     "map_mm": 484,
     "thot_c": 21.8,
     "tcold_c": -10.7,
     "tmon10": 5,
     "pdry_mm": 12,
     "pthreshold_mm": 403.6,
     "summer_share": 0.76
    }
   },
   "iecc": {
    "zone": 6,
    "moisture": "A",
    "label": "6A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 19.1,
     "dry_limit_in": 10.4,
     "tcold_f": 12.8,
     "thot_f": 71.3,
     "months_over_50f": 5,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2351,
     "hdd65": 8471
    },
    "adopted": {
     "zone": "6A",
     "county": "Burleigh",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "wind",
     "label": "High wind"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    }
   ],
   "house_types": [
    {
     "name": "Ranch (post-sod-house)",
     "climate_fit": "low profile and small footprint present the least surface to sustained plains wind"
    },
    {
     "name": "Hipped-roof prairie cottage",
     "climate_fit": "hipped roof resists uplift better than gable ends in open wind"
    },
    {
     "name": "Storm-cellar / basement tradition",
     "climate_fit": "below-grade shelter is standard practice, not an amenity, in tornado country"
    },
    {
     "name": "Shelterbelt farmstead",
     "climate_fit": "planted windbreak rows cut wind-driven snow drift and soil erosion around the house"
    },
    {
     "name": "Prairie foursquare",
     "climate_fit": "compact two-story boxy form holds heat against open-plains winter wind"
    },
    {
     "name": "Pole-barn / Quonset outbuilding vernacular",
     "climate_fit": "curved or braced-frame ancillary structures shed snow load and resist wind"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "minor",
    "snow_load": "secondary (drifting matters more than static load)",
    "wind": "dominant",
    "seismic": "minor to secondary, concentrated in central Oklahoma (induced)",
    "wildfire": "secondary (grassland and rangeland fire)",
    "flood": "secondary (flash flooding, prairie pothole/playa)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 6: HDD65 8471",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 50 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 6: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 6",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 6A (Burleigh County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Extreme cold, Riverine / urban flood, High wind, Drought, Snow load",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in North Dakota, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 8471, CDD65 536); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfb normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    422.5,
    102.2
   ],
   "live": {
    "nws_alert_area": "ND",
    "nws_station": "KBIS",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "OH": {
   "usps": "OH",
   "name": "Ohio",
   "fips": "39",
   "region": "midwest",
   "anchor": {
    "ncei_station": "USW00014821",
    "name": "COLUMBUS PORT COLUMBUS INTL AP, OH US",
    "lat": 39.9914,
    "lon": -82.8808,
    "elev_m": 246.9,
    "nws_station": "KCMH",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      29.6,
      32.5,
      41.6,
      53.2,
      63.3,
      71.9,
      75.4,
      74.0,
      67.2,
      55.2,
      43.6,
      34.5
     ],
     "tmax": [
      37.1,
      40.8,
      51.1,
      64.1,
      74.1,
      82.2,
      85.4,
      84.1,
      77.8,
      65.5,
      52.3,
      41.5
     ],
     "tmin": [
      22.0,
      24.2,
      32.0,
      42.2,
      52.4,
      61.6,
      65.4,
      63.9,
      56.5,
      44.8,
      35.0,
      27.4
     ],
     "prcp": [
      3.0,
      2.41,
      3.62,
      3.85,
      3.99,
      4.33,
      4.67,
      3.74,
      3.14,
      2.9,
      2.79,
      3.13
     ],
     "snow": [
      9.5,
      7.6,
      4.1,
      0.5,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      1.2,
      5.1
     ],
     "hdd65": [
      1098.6,
      910.0,
      728.5,
      367.4,
      138.0,
      16.1,
      0.5,
      2.8,
      60.6,
      323.1,
      640.7,
      947.1
     ],
     "cdd65": [
      0.0,
      0.1,
      1.6,
      11.9,
      83.7,
      222.9,
      322.8,
      281.7,
      125.0,
      17.7,
      0.3,
      0.1
     ]
    },
    "annual": {
     "tavg_f": 53.5,
     "jan_mean_f": 29.6,
     "jul_mean_f": 75.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 41.57,
     "snow_in": 28.2,
     "hdd65": 5233,
     "cdd65": 1068,
     "cdd50": 3479,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 11.9,
     "map_mm": 1056,
     "thot_c": 24.1,
     "tcold_c": -1.3,
     "tmon10": 7,
     "pdry_mm": 61,
     "pthreshold_mm": 378.9,
     "summer_share": 0.57
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 41.6,
     "dry_limit_in": 15.0,
     "tcold_f": 29.6,
     "thot_f": 75.4,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3479,
     "hdd65": 5233
    },
    "adopted": {
     "zone": "4A",
     "county": "Franklin",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "lake-effect-snow",
     "label": "Lake-effect snow"
    }
   ],
   "house_types": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 5233 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 28 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Franklin County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Tornado, Riverine / urban flood, Freeze-thaw and ice, Lake-effect snow",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Ohio, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5233, CDD65 1068); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    712.7,
    248.7
   ],
   "live": {
    "nws_alert_area": "OH",
    "nws_station": "KCMH",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "OK": {
   "usps": "OK",
   "name": "Oklahoma",
   "fips": "40",
   "region": "plains",
   "anchor": {
    "ncei_station": "USW00013967",
    "name": "OKLAHOMA CITY WILL ROGERS AP, OK US",
    "lat": 35.3889,
    "lon": -97.6006,
    "elev_m": 391.7,
    "nws_station": "KOKC",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      38.2,
      42.3,
      51.2,
      59.3,
      68.2,
      76.9,
      81.7,
      80.7,
      72.7,
      61.1,
      49.2,
      40.0
     ],
     "tmax": [
      49.3,
      53.8,
      62.9,
      71.1,
      78.9,
      87.5,
      93.1,
      92.2,
      83.9,
      72.8,
      60.7,
      50.4
     ],
     "tmin": [
      27.0,
      30.8,
      39.5,
      47.5,
      57.6,
      66.2,
      70.3,
      69.1,
      61.5,
      49.4,
      37.7,
      29.5
     ],
     "prcp": [
      1.32,
      1.42,
      2.55,
      3.6,
      5.31,
      4.49,
      3.59,
      3.6,
      3.72,
      3.32,
      1.68,
      1.79
     ],
     "snow": [
      1.8,
      1.8,
      0.8,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.5,
      1.8
     ],
     "hdd65": [
      832.3,
      636.6,
      437.3,
      205.7,
      50.2,
      1.1,
      0.0,
      0.2,
      20.2,
      176.9,
      478.3,
      776.4
     ],
     "cdd65": [
      0.1,
      1.1,
      9.4,
      34.8,
      151.0,
      356.5,
      517.6,
      485.2,
      251.2,
      56.0,
      4.4,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 60.1,
     "jan_mean_f": 38.2,
     "jul_mean_f": 81.7,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 36.39,
     "snow_in": 6.7,
     "hdd65": 3615,
     "cdd65": 1867,
     "cdd50": 4872,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 15.6,
     "map_mm": 924,
     "thot_c": 27.6,
     "tcold_c": 3.4,
     "tmon10": 8,
     "pdry_mm": 34,
     "pthreshold_mm": 452.5,
     "summer_share": 0.67
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 36.4,
     "dry_limit_in": 17.9,
     "tcold_f": 38.2,
     "thot_f": 81.7,
     "months_over_50f": 8,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 4872,
     "hdd65": 3615
    },
    "adopted": {
     "zone": "3A",
     "county": "Oklahoma",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 4A from 1991-2020 station normals; Table R301.1 assigns 3A to Oklahoma County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "hail",
     "label": "Hail"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    },
    {
     "id": "extreme-heat",
     "label": "Extreme heat"
    },
    {
     "id": "seismic-induced",
     "label": "Induced seismicity"
    }
   ],
   "house_types": [
    {
     "name": "Ranch (post-sod-house)",
     "climate_fit": "low profile and small footprint present the least surface to sustained plains wind"
    },
    {
     "name": "Hipped-roof prairie cottage",
     "climate_fit": "hipped roof resists uplift better than gable ends in open wind"
    },
    {
     "name": "Storm-cellar / basement tradition",
     "climate_fit": "below-grade shelter is standard practice, not an amenity, in tornado country"
    },
    {
     "name": "Shelterbelt farmstead",
     "climate_fit": "planted windbreak rows cut wind-driven snow drift and soil erosion around the house"
    },
    {
     "name": "Prairie foursquare",
     "climate_fit": "compact two-story boxy form holds heat against open-plains winter wind"
    },
    {
     "name": "Pole-barn / Quonset outbuilding vernacular",
     "climate_fit": "curved or braced-frame ancillary structures shed snow load and resist wind"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "minor",
    "snow_load": "secondary (drifting matters more than static load)",
    "wind": "dominant",
    "seismic": "minor to secondary, concentrated in central Oklahoma (induced)",
    "wildfire": "secondary (grassland and rangeland fire)",
    "flood": "secondary (flash flooding, prairie pothole/playa)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 3615 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 36 in, snow 6.7 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3A (Oklahoma County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; impact-rated roofing (UL 2218 Class 4); ice-dam eave membrane, snow guards, buried or protected service drops; cool roof, shaded outdoor rooms, thermal mass where nights are cool",
     "because": "Tornado, Hail, Ice storm, Extreme heat, Induced seismicity",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Oklahoma, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 3615, CDD65 1867); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    463.5,
    370
   ],
   "live": {
    "nws_alert_area": "OK",
    "nws_station": "KOKC",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "OR": {
   "usps": "OR",
   "name": "Oregon",
   "fips": "41",
   "region": "northwest",
   "anchor": {
    "ncei_station": "USW00024229",
    "name": "PORTLAND INTL AP, OR US",
    "lat": 45.5908,
    "lon": -122.6003,
    "elev_m": 5.8,
    "nws_station": "KPDX",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      41.9,
      44.1,
      48.3,
      52.8,
      59.4,
      64.2,
      70.2,
      70.6,
      65.4,
      55.6,
      47.1,
      41.6
     ],
     "tmax": [
      47.5,
      51.5,
      56.8,
      62.0,
      69.3,
      74.3,
      81.9,
      82.3,
      76.7,
      64.4,
      53.5,
      46.9
     ],
     "tmin": [
      36.2,
      36.8,
      39.7,
      43.7,
      49.4,
      54.1,
      58.5,
      58.9,
      54.1,
      46.7,
      40.6,
      36.2
     ],
     "prcp": [
      5.03,
      3.68,
      3.97,
      2.89,
      2.51,
      1.63,
      0.51,
      0.54,
      1.52,
      3.42,
      5.45,
      5.77
     ],
     "snow": [
      1.7,
      1.2,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      1.2
     ],
     "hdd65": [
      717.7,
      583.8,
      519.3,
      366.6,
      196.0,
      80.0,
      10.2,
      7.4,
      60.9,
      296.5,
      538.5,
      726.9
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      2.1,
      20.9,
      56.0,
      171.3,
      181.0,
      72.8,
      3.6,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 55.1,
     "jan_mean_f": 41.9,
     "jul_mean_f": 70.2,
     "warmest_month": "Aug",
     "coldest_month": "Dec",
     "precip_in": 36.92,
     "snow_in": 4.2,
     "hdd65": 4104,
     "cdd65": 508,
     "cdd50": 2858,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Dec",
     "driest_month": "Jul"
    }
   },
   "koppen": {
    "code": "Csb",
    "name": "Warm-summer Mediterranean",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 12.8,
     "map_mm": 938,
     "thot_c": 21.4,
     "tcold_c": 5.3,
     "tmon10": 7,
     "pdry_mm": 13,
     "pthreshold_mm": 256.7,
     "summer_share": 0.26
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 36.9,
     "dry_limit_in": 15.7,
     "tcold_f": 41.6,
     "thot_f": 70.6,
     "months_over_50f": 7,
     "summer_dry_season": true,
     "note": "meets the marine temperature and rainfall criteria but not the CDD50 cap or zone range for a C subzone",
     "rule": "not dry, not marine",
     "cdd50": 2858,
     "hdd65": 4104
    },
    "adopted": {
     "zone": "4C",
     "county": "Multnomah",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 4A from 1991-2020 station normals; Table R301.1 assigns 4C to Multnomah County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "atmospheric-river",
     "label": "Atmospheric river"
    },
    {
     "id": "seismic",
     "label": "Earthquake"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    },
    {
     "id": "wind",
     "label": "High wind"
    }
   ],
   "house_types": [
    {
     "name": "Craftsman bungalow",
     "climate_fit": "deep eaves and covered porches shed the long wet season"
    },
    {
     "name": "Northwest Modern",
     "climate_fit": "shed roofs, cedar, big glass for soft light and views — needs disciplined rain detailing"
    },
    {
     "name": "A-frame / mountain cabin",
     "climate_fit": "steep roof dumps the inland snow load"
    },
    {
     "name": "Valley farmhouse",
     "climate_fit": "gabled roof and wrap porch for the wet-mild Willamette pattern"
    },
    {
     "name": "Inland ranch",
     "climate_fit": "low-pitch postwar stock where snow loads stay modest"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4104 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 37 in, snow 4.2 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4C (Multnomah County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; ice-dam eave membrane, snow guards, buried or protected service drops",
     "because": "Atmospheric river, Earthquake, Wildfire, Ice storm, High wind",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Oregon, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4104, CDD65 508); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Csb normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    101.1,
    131.7
   ],
   "live": {
    "nws_alert_area": "OR",
    "nws_station": "KPDX",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "PA": {
   "usps": "PA",
   "name": "Pennsylvania",
   "fips": "42",
   "region": "mid-atlantic",
   "anchor": {
    "ncei_station": "USW00013739",
    "name": "PHILADELPHIA INTL AP, PA US",
    "lat": 39.8683,
    "lon": -75.2311,
    "elev_m": 3.0,
    "nws_station": "KPHL",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      33.7,
      35.9,
      43.6,
      54.5,
      64.3,
      73.5,
      78.7,
      76.8,
      69.9,
      58.2,
      47.4,
      38.6
     ],
     "tmax": [
      41.3,
      44.3,
      52.8,
      64.7,
      74.4,
      83.2,
      87.8,
      85.8,
      78.9,
      67.2,
      55.9,
      46.0
     ],
     "tmin": [
      26.0,
      27.5,
      34.3,
      44.3,
      54.2,
      63.9,
      69.6,
      67.9,
      60.9,
      49.2,
      38.8,
      31.2
     ],
     "prcp": [
      3.13,
      2.75,
      3.96,
      3.47,
      3.34,
      4.04,
      4.38,
      4.29,
      4.4,
      3.47,
      2.91,
      3.97
     ],
     "snow": [
      7.1,
      8.4,
      3.6,
      0.3,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      3.5
     ],
     "hdd65": [
      971.7,
      814.7,
      665.6,
      329.7,
      104.1,
      9.9,
      0.0,
      0.6,
      28.4,
      236.5,
      530.0,
      818.3
     ],
     "cdd65": [
      0.0,
      0.0,
      0.7,
      14.7,
      82.4,
      266.4,
      424.6,
      367.8,
      175.4,
      25.7,
      0.6,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 56.3,
     "jan_mean_f": 33.7,
     "jul_mean_f": 78.7,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 44.11,
     "snow_in": 23.1,
     "hdd65": 4510,
     "cdd65": 1358,
     "cdd50": 3960,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Sep",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 13.5,
     "map_mm": 1120,
     "thot_c": 25.9,
     "tcold_c": 0.9,
     "tmon10": 7,
     "pdry_mm": 70,
     "pthreshold_mm": 409.5,
     "summer_share": 0.54
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 44.1,
     "dry_limit_in": 16.2,
     "tcold_f": 33.7,
     "thot_f": 78.7,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3960,
     "hdd65": 4510
    },
    "adopted": {
     "zone": "4A",
     "county": "Philadelphia",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "noreaster",
     "label": "Nor'easter"
    }
   ],
   "house_types": [
    {
     "name": "Federal / Georgian rowhouse",
     "climate_fit": "party walls and masonry mass buffer winter cold on dense urban lots"
    },
    {
     "name": "Pennsylvania bank barn farmhouse",
     "climate_fit": "earth-banked lower level insulates against the interior's colder winters"
    },
    {
     "name": "Cape (Jersey Shore)",
     "climate_fit": "low, compact form stands up to coastal wind and nor'easter exposure"
    },
    {
     "name": "Colonial Revival",
     "climate_fit": "symmetric massing and a central chimney hold heat through the four-season interior climate"
    },
    {
     "name": "Baltimore rowhouse",
     "climate_fit": "shared walls and marble stoops handle dense, humid-summer urban blocks"
    },
    {
     "name": "Dutch Colonial",
     "climate_fit": "gambrel roof sheds snow while adding headroom in the Pennsylvania/New Jersey Dutch country"
    },
    {
     "name": "Tidewater farmhouse",
     "climate_fit": "raised foundation and wide porches manage Chesapeake humidity and tidal flooding"
    }
   ],
   "design_drivers": {
    "heating": "secondary to dominant, heavier in the Appalachian interior than the coastal plain",
    "cooling": "secondary",
    "moisture": "secondary",
    "snow_load": "secondary, higher in Appalachian ridge counties than the coast",
    "wind": "secondary (hurricane remnants and nor'easters)",
    "seismic": "minor, elevated in the Central Virginia Seismic Zone",
    "wildfire": "minor",
    "flood": "dominant (coastal and tidal flooding, nor'easter storm surge)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4510 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 23 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Philadelphia County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Riverine / urban flood, Freeze-thaw and ice, Snow load, Nor'easter",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Pennsylvania, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4510, CDD65 1358); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    793.4,
    221.9
   ],
   "live": {
    "nws_alert_area": "PA",
    "nws_station": "KPHL",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "RI": {
   "usps": "RI",
   "name": "Rhode Island",
   "fips": "44",
   "region": "northeast",
   "anchor": {
    "ncei_station": "USW00014765",
    "name": "PROVIDENCE T F GREEN AP, RI US",
    "lat": 41.7219,
    "lon": -71.4325,
    "elev_m": 18.3,
    "nws_station": "KPVD",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      30.2,
      32.0,
      38.9,
      49.3,
      59.1,
      68.2,
      74.4,
      73.0,
      65.6,
      54.4,
      44.5,
      35.5
     ],
     "tmax": [
      38.3,
      40.5,
      47.7,
      58.9,
      68.9,
      77.7,
      83.6,
      82.2,
      74.8,
      63.8,
      53.2,
      43.4
     ],
     "tmin": [
      22.1,
      23.5,
      30.2,
      39.6,
      49.2,
      58.8,
      65.2,
      63.9,
      56.5,
      45.1,
      35.8,
      27.6
     ],
     "prcp": [
      3.96,
      3.44,
      4.9,
      4.29,
      3.37,
      3.81,
      2.91,
      3.59,
      4.17,
      4.18,
      4.27,
      4.65
     ],
     "snow": [
      10.3,
      10.5,
      6.4,
      0.6,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      1.0,
      7.6
     ],
     "hdd65": [
      1078.7,
      924.0,
      807.7,
      475.3,
      212.4,
      38.6,
      1.5,
      2.9,
      71.4,
      336.1,
      615.1,
      914.4
     ],
     "cdd65": [
      0.0,
      0.0,
      0.2,
      2.8,
      27.9,
      136.0,
      292.8,
      252.3,
      90.9,
      9.1,
      0.1,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 52.1,
     "jan_mean_f": 30.2,
     "jul_mean_f": 74.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 47.54,
     "snow_in": 36.6,
     "hdd65": 5478,
     "cdd65": 812,
     "cdd50": 3042,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Mar",
     "driest_month": "Jul"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 11.2,
     "map_mm": 1208,
     "thot_c": 23.6,
     "tcold_c": -1.0,
     "tmon10": 6,
     "pdry_mm": 74,
     "pthreshold_mm": 363.2,
     "summer_share": 0.47
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 47.5,
     "dry_limit_in": 14.3,
     "tcold_f": 30.2,
     "thot_f": 74.4,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3042,
     "hdd65": 5478
    },
    "adopted": {
     "zone": "5A",
     "county": "Kent",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "noreaster",
     "label": "Nor'easter"
    },
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    },
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    }
   ],
   "house_types": [
    {
     "name": "Colonial / Colonial Revival",
     "climate_fit": "compact two-story form and central chimney hold heat through winter"
    },
    {
     "name": "Cape Cod",
     "climate_fit": "low profile and steep roof shed snow and shrug off wind"
    },
    {
     "name": "Saltbox",
     "climate_fit": "long rear roofline turns its back to the north wind"
    },
    {
     "name": "Brownstone / rowhouse",
     "climate_fit": "party walls buffer winter cold on dense urban lots"
    },
    {
     "name": "Triple-decker",
     "climate_fit": "stacked flats — New England's dense urban housing form"
    },
    {
     "name": "Queen Anne Victorian",
     "climate_fit": "the heavy ornate stock of the region's industrial-era boom"
    },
    {
     "name": "Split-level / raised ranch",
     "climate_fit": "postwar suburban default on graded lots"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 5478",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 37 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Kent County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; ice-dam eave membrane, snow guards, buried or protected service drops",
     "because": "Nor'easter, Coastal flood, Hurricane wind, Freeze-thaw and ice",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Rhode Island, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5478, CDD65 812); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    890.8,
    181.2
   ],
   "live": {
    "nws_alert_area": "RI",
    "nws_station": "KPVD",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "SC": {
   "usps": "SC",
   "name": "South Carolina",
   "fips": "45",
   "region": "southeast",
   "anchor": {
    "ncei_station": "USW00013883",
    "name": "COLUMBIA, SC US",
    "lat": 33.9486,
    "lon": -81.1186,
    "elev_m": 70.4,
    "nws_station": "KCAE",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      45.7,
      49.1,
      55.9,
      64.1,
      72.2,
      79.1,
      82.4,
      81.0,
      75.5,
      64.6,
      54.0,
      47.7
     ],
     "tmax": [
      56.8,
      60.8,
      68.3,
      76.7,
      83.8,
      89.7,
      92.7,
      90.8,
      85.7,
      76.5,
      66.4,
      58.9
     ],
     "tmin": [
      34.6,
      37.3,
      43.6,
      51.5,
      60.5,
      68.6,
      72.0,
      71.2,
      65.3,
      52.7,
      41.6,
      36.5
     ],
     "prcp": [
      3.49,
      3.39,
      3.57,
      2.83,
      3.49,
      4.97,
      5.35,
      4.65,
      3.91,
      3.13,
      2.76,
      3.7
     ],
     "snow": [
      0.6,
      0.4,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1
     ],
     "hdd65": [
      599.9,
      450.7,
      302.0,
      108.8,
      17.7,
      0.6,
      0.0,
      0.0,
      5.7,
      104.5,
      343.0,
      539.7
     ],
     "cdd65": [
      1.8,
      4.2,
      21.4,
      81.8,
      239.3,
      425.0,
      537.7,
      495.9,
      320.6,
      92.1,
      13.1,
      3.5
     ]
    },
    "annual": {
     "tavg_f": 64.3,
     "jan_mean_f": 45.7,
     "jul_mean_f": 82.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 45.24,
     "snow_in": 1.2,
     "hdd65": 2473,
     "cdd65": 2237,
     "cdd50": 5800,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Nov"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 17.9,
     "map_mm": 1149,
     "thot_c": 28.0,
     "tcold_c": 7.6,
     "tmon10": 9,
     "pdry_mm": 70,
     "pthreshold_mm": 498.6,
     "summer_share": 0.56
    }
   },
   "iecc": {
    "zone": 3,
    "moisture": "A",
    "label": "3A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 45.2,
     "dry_limit_in": 19.7,
     "tcold_f": 45.7,
     "thot_f": 82.4,
     "months_over_50f": 9,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 5800,
     "hdd65": 2473
    },
    "adopted": {
     "zone": "3A",
     "county": "Richland/Lexington",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "storm-surge",
     "label": "Storm surge"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "heat-humidity",
     "label": "Heat and humidity"
    },
    {
     "id": "seismic",
     "label": "Earthquake"
    }
   ],
   "house_types": [
    {
     "name": "Shotgun",
     "climate_fit": "one room wide, doors aligned — cross-breeze before air conditioning"
    },
    {
     "name": "Creole cottage / townhouse",
     "climate_fit": "raised main floor and galleries above street water"
    },
    {
     "name": "Florida Cracker / dogtrot",
     "climate_fit": "elevated frame, breezeway core, metal roof sheds torrential rain"
    },
    {
     "name": "Lowcountry raised cottage",
     "climate_fit": "piers for flood and breeze; deep piazzas for shade"
    },
    {
     "name": "Key West conch",
     "climate_fit": "metal roof, shutters and porches built for hurricane country"
    },
    {
     "name": "Mediterranean / Spanish Revival",
     "climate_fit": "stucco and tile against sun and salt air"
    },
    {
     "name": "Brick ranch",
     "climate_fit": "slab-on-grade postwar default of the inland South"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed, cooling-leaning",
     "because": "IECC zone 3: CDD50 at or under 6300 and HDD65 2473 at or under 3600",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 45 in, snow 1.2 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 3",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3A (Richland/Lexington County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; deep porches, cross-ventilation plan, right-sized cooling with dehumidification",
     "because": "Hurricane wind, Storm surge, Riverine / urban flood, Heat and humidity, Earthquake",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in South Carolina, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 2473, CDD65 2237); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    767.3,
    386
   ],
   "live": {
    "nws_alert_area": "SC",
    "nws_station": "KCAE",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "SD": {
   "usps": "SD",
   "name": "South Dakota",
   "fips": "46",
   "region": "plains",
   "anchor": {
    "ncei_station": "USW00014944",
    "name": "SIOUX FALLS, SD US",
    "lat": 43.5878,
    "lon": -96.7289,
    "elev_m": 435.9,
    "nws_station": "KFSD",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      17.9,
      22.3,
      34.7,
      47.2,
      59.1,
      69.9,
      74.4,
      72.0,
      63.8,
      49.6,
      34.8,
      22.5
     ],
     "tmax": [
      27.2,
      32.0,
      45.0,
      59.0,
      70.8,
      80.9,
      85.3,
      82.8,
      75.6,
      61.1,
      45.0,
      31.6
     ],
     "tmin": [
      8.5,
      12.6,
      24.3,
      35.5,
      47.5,
      58.8,
      63.4,
      61.1,
      51.9,
      38.1,
      24.5,
      13.4
     ],
     "prcp": [
      0.6,
      0.83,
      1.6,
      3.0,
      3.86,
      4.23,
      3.25,
      3.34,
      2.73,
      2.36,
      1.22,
      0.83
     ],
     "snow": [
      8.0,
      8.6,
      7.2,
      5.1,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      1.4,
      6.2,
      8.7
     ],
     "hdd65": [
      1461.4,
      1195.4,
      941.5,
      537.6,
      226.7,
      32.5,
      4.7,
      11.9,
      126.4,
      485.3,
      907.7,
      1317.3
     ],
     "cdd65": [
      0.0,
      0.0,
      0.6,
      5.1,
      45.4,
      177.8,
      294.4,
      227.3,
      88.8,
      7.9,
      0.2,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 47.3,
     "jan_mean_f": 17.9,
     "jul_mean_f": 74.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 27.85,
     "snow_in": 45.3,
     "hdd65": 7248,
     "cdd65": 847,
     "cdd50": 2919,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 8.5,
     "map_mm": 707,
     "thot_c": 23.6,
     "tcold_c": -7.8,
     "tmon10": 5,
     "pdry_mm": 15,
     "pthreshold_mm": 450.6,
     "summer_share": 0.73
    }
   },
   "iecc": {
    "zone": 6,
    "moisture": "A",
    "label": "6A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 27.9,
     "dry_limit_in": 12.3,
     "tcold_f": 17.9,
     "thot_f": 74.4,
     "months_over_50f": 5,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2919,
     "hdd65": 7248
    },
    "adopted": {
     "zone": "6A",
     "county": "Minnehaha",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "hail",
     "label": "Hail"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "wind",
     "label": "High wind"
    }
   ],
   "house_types": [
    {
     "name": "Ranch (post-sod-house)",
     "climate_fit": "low profile and small footprint present the least surface to sustained plains wind"
    },
    {
     "name": "Hipped-roof prairie cottage",
     "climate_fit": "hipped roof resists uplift better than gable ends in open wind"
    },
    {
     "name": "Storm-cellar / basement tradition",
     "climate_fit": "below-grade shelter is standard practice, not an amenity, in tornado country"
    },
    {
     "name": "Shelterbelt farmstead",
     "climate_fit": "planted windbreak rows cut wind-driven snow drift and soil erosion around the house"
    },
    {
     "name": "Prairie foursquare",
     "climate_fit": "compact two-story boxy form holds heat against open-plains winter wind"
    },
    {
     "name": "Pole-barn / Quonset outbuilding vernacular",
     "climate_fit": "curved or braced-frame ancillary structures shed snow load and resist wind"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "minor",
    "snow_load": "secondary (drifting matters more than static load)",
    "wind": "dominant",
    "seismic": "minor to secondary, concentrated in central Oklahoma (induced)",
    "wildfire": "secondary (grassland and rangeland fire)",
    "flood": "secondary (flash flooding, prairie pothole/playa)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 6: HDD65 7248",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 45 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 6: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 6",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 6A (Minnehaha County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; impact-rated roofing (UL 2218 Class 4); thermal-bridge-free envelope, protected water lines, arctic entry vestibule",
     "because": "Extreme cold, Tornado, Hail, Drought, High wind",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in South Dakota, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 7248, CDD65 847); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    423.1,
    169.4
   ],
   "live": {
    "nws_alert_area": "SD",
    "nws_station": "KFSD",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "TN": {
   "usps": "TN",
   "name": "Tennessee",
   "fips": "47",
   "region": "southeast",
   "anchor": {
    "ncei_station": "USW00013897",
    "name": "NASHVILLE INTL AP, TN US",
    "lat": 36.1189,
    "lon": -86.6892,
    "elev_m": 182.9,
    "nws_station": "KBNA",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      39.6,
      43.4,
      51.5,
      60.8,
      69.3,
      77.1,
      80.7,
      79.7,
      73.1,
      61.7,
      50.3,
      42.7
     ],
     "tmax": [
      49.1,
      53.8,
      62.7,
      72.6,
      80.4,
      87.7,
      90.9,
      90.4,
      84.4,
      73.5,
      61.4,
      52.2
     ],
     "tmin": [
      30.1,
      33.0,
      40.2,
      48.9,
      58.3,
      66.4,
      70.5,
      69.0,
      61.8,
      49.9,
      39.2,
      33.3
     ],
     "prcp": [
      4.02,
      4.47,
      4.52,
      4.72,
      5.02,
      4.36,
      4.16,
      3.79,
      3.8,
      3.36,
      3.86,
      4.43
     ],
     "snow": [
      2.0,
      1.5,
      0.7,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.1,
      0.4
     ],
     "hdd65": [
      787.5,
      606.1,
      430.7,
      179.7,
      41.9,
      1.3,
      0.0,
      0.1,
      14.4,
      164.6,
      446.9,
      690.8
     ],
     "cdd65": [
      0.3,
      1.3,
      10.6,
      52.2,
      176.7,
      362.8,
      486.7,
      455.8,
      257.3,
      62.2,
      6.0,
      1.1
     ]
    },
    "annual": {
     "tavg_f": 60.8,
     "jan_mean_f": 39.6,
     "jul_mean_f": 80.7,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 50.51,
     "snow_in": 4.7,
     "hdd65": 3364,
     "cdd65": 1873,
     "cdd50": 4940,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Oct"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 16.0,
     "map_mm": 1283,
     "thot_c": 27.1,
     "tcold_c": 4.2,
     "tmon10": 9,
     "pdry_mm": 85,
     "pthreshold_mm": 460.3,
     "summer_share": 0.51
    }
   },
   "iecc": {
    "zone": 3,
    "moisture": "A",
    "label": "3A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 50.5,
     "dry_limit_in": 18.2,
     "tcold_f": 39.6,
     "thot_f": 80.7,
     "months_over_50f": 9,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 4940,
     "hdd65": 3364
    },
    "adopted": {
     "zone": "3A",
     "county": "Davidson",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    },
    {
     "id": "seismic-nmsz",
     "label": "New Madrid seismic zone"
    }
   ],
   "house_types": [
    {
     "name": "Shotgun",
     "climate_fit": "one room wide, doors aligned — cross-breeze before air conditioning"
    },
    {
     "name": "Creole cottage / townhouse",
     "climate_fit": "raised main floor and galleries above street water"
    },
    {
     "name": "Florida Cracker / dogtrot",
     "climate_fit": "elevated frame, breezeway core, metal roof sheds torrential rain"
    },
    {
     "name": "Lowcountry raised cottage",
     "climate_fit": "piers for flood and breeze; deep piazzas for shade"
    },
    {
     "name": "Key West conch",
     "climate_fit": "metal roof, shutters and porches built for hurricane country"
    },
    {
     "name": "Mediterranean / Spanish Revival",
     "climate_fit": "stucco and tile against sun and salt air"
    },
    {
     "name": "Brick ranch",
     "climate_fit": "slab-on-grade postwar default of the inland South"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed, cooling-leaning",
     "because": "IECC zone 3: CDD50 at or under 6300 and HDD65 3364 at or under 3600",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 51 in, snow 4.7 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 3",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-20 or R-13+5ci or R-0+15ci; floor R-19; slab R-10ci, 2 ft; basement wall R-5ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 3A (Davidson County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; ice-dam eave membrane, snow guards, buried or protected service drops",
     "because": "Tornado, Riverine / urban flood, Ice storm, New Madrid seismic zone",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Tennessee, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 3364, CDD65 1873); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    663.2,
    355.4
   ],
   "live": {
    "nws_alert_area": "TN",
    "nws_station": "KBNA",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "TX": {
   "usps": "TX",
   "name": "Texas",
   "fips": "48",
   "region": "south-central",
   "anchor": {
    "ncei_station": "USW00003927",
    "name": "DALLAS FT WORTH AP, TX US",
    "lat": 32.8978,
    "lon": -97.0189,
    "elev_m": 170.7,
    "nws_station": "KDFW",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      46.3,
      50.5,
      58.2,
      65.6,
      74.0,
      81.9,
      85.7,
      85.7,
      78.5,
      67.7,
      56.4,
      48.1
     ],
     "tmax": [
      56.5,
      60.9,
      68.6,
      76.1,
      83.6,
      91.5,
      95.6,
      95.8,
      88.6,
      78.4,
      66.6,
      57.9
     ],
     "tmin": [
      36.1,
      40.1,
      47.8,
      55.2,
      64.5,
      72.2,
      75.8,
      75.7,
      68.5,
      57.1,
      46.2,
      38.3
     ],
     "prcp": [
      2.53,
      2.76,
      3.3,
      3.22,
      4.78,
      3.7,
      2.08,
      2.18,
      2.72,
      4.37,
      2.53,
      2.84
     ],
     "snow": [
      0.1,
      1.0,
      0.3,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2
     ],
     "hdd65": [
      582.0,
      413.4,
      246.2,
      82.4,
      9.9,
      0.1,
      0.0,
      0.0,
      3.4,
      69.2,
      285.2,
      528.3
     ],
     "cdd65": [
      2.4,
      7.5,
      35.4,
      101.9,
      290.4,
      505.5,
      641.6,
      643.0,
      409.8,
      154.5,
      27.3,
      4.5
     ]
    },
    "annual": {
     "tavg_f": 66.6,
     "jan_mean_f": 46.3,
     "jul_mean_f": 85.7,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 37.01,
     "snow_in": 1.6,
     "hdd65": 2220,
     "cdd65": 2824,
     "cdd50": 6489,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Jul"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 19.2,
     "map_mm": 940,
     "thot_c": 29.8,
     "tcold_c": 7.9,
     "tmon10": 10,
     "pdry_mm": 53,
     "pthreshold_mm": 523.9,
     "summer_share": 0.5
    }
   },
   "iecc": {
    "zone": 2,
    "moisture": "A",
    "label": "2A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 37.0,
     "dry_limit_in": 20.7,
     "tcold_f": 46.3,
     "thot_f": 85.7,
     "months_over_50f": 10,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 6489,
     "hdd65": 2220
    },
    "adopted": {
     "zone": "2A",
     "county": "Tarrant/Dallas",
     "confidence": "verified",
     "url": "https://up.codes/viewer/dallas/iecc-2021/chapter/CE_3/ce-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane",
     "label": "Hurricane wind"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "hail",
     "label": "Hail"
    },
    {
     "id": "extreme-heat",
     "label": "Extreme heat"
    },
    {
     "id": "flash-flood",
     "label": "Flash flood"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "ice-storm",
     "label": "Ice storm"
    }
   ],
   "house_types": [
    {
     "name": "Dogtrot",
     "climate_fit": "open central breezeway cools two flanking rooms before mechanical air conditioning"
    },
    {
     "name": "Shotgun",
     "climate_fit": "one room wide with aligned doors for cross-ventilation in humid heat"
    },
    {
     "name": "Texas German stone farmhouse",
     "climate_fit": "thick limestone walls buffer the Hill Country's hot days and cool nights"
    },
    {
     "name": "Acadian cottage",
     "climate_fit": "raised floor and broad porch handle Louisiana humidity and standing water"
    },
    {
     "name": "Raised Gulf cottage",
     "climate_fit": "pier foundation lifts the living floor above storm surge and flood"
    },
    {
     "name": "Hill Country modern",
     "climate_fit": "deep overhangs and stone massing manage sun and flash-flood-prone sites"
    }
   ],
   "design_drivers": {
    "heating": "minor",
    "cooling": "dominant",
    "moisture": "dominant (Gulf humidity)",
    "snow_load": "minor (occasional damaging ice events)",
    "wind": "dominant (hurricane and tornado exposure)",
    "seismic": "minor",
    "wildfire": "secondary, concentrated in western Texas during drought",
    "flood": "dominant (hurricane storm surge and Hill Country flash flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "cooling-dominated",
     "because": "IECC zone 2: CDD50 above 6300",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 37 in, snow 1.6 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "elevated pier / pile or raised slab above design flood elevation",
     "because": "flood-class hazard flag",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "keep humid outdoor air out: exterior-side vapor control, sealed attic or vented with dehumidification",
     "because": "moisture regime A (moist), IECC zone 2",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-49; wood-frame wall R-13 or R-0+10ci; floor R-13; slab R-0; basement wall R-0",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 2A (Tarrant/Dallas County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "minimize west glass, shade south and west with overhangs or porches, low-SHGC glazing",
     "because": "cooling-leaning zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "continuous load path, wind-rated openings, hip roof preferred, elevate above surge; storm shelter or safe room; hurricane ties even outside hurricane zones; impact-rated roofing (UL 2218 Class 4); ice-dam eave membrane, snow guards, buried or protected service drops; cool roof, shaded outdoor rooms, thermal mass where nights are cool",
     "because": "Hurricane wind, Tornado, Hail, Extreme heat, Flash flood, Drought, Ice storm",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Texas, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (heating-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 2220, CDD65 2824); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    427.4,
    461.7
   ],
   "live": {
    "nws_alert_area": "TX",
    "nws_station": "KDFW",
    "usgs_feed": "2.5_day",
    "eonet": true
   },
   "secondary_stations": [
    {
     "ncei_station": "USW00012960",
     "name": "HOUSTON INTERCONT AP, TX US",
     "lat": 29.98,
     "lon": -95.36,
     "annual": {
      "tavg_f": 70.5,
      "jan_mean_f": 53.8,
      "jul_mean_f": 85.1,
      "precip_in": 51.8,
      "snow_in": 0.1,
      "hdd65": 1266,
      "cdd50": 7585
     },
     "koppen": "Cfa",
     "iecc_zone": 2
    },
    {
     "ncei_station": "USW00012921",
     "name": "SAN ANTONIO INTL AP, TX US",
     "lat": 29.5442,
     "lon": -98.4839,
     "annual": {
      "tavg_f": 69.6,
      "jan_mean_f": 52.2,
      "jul_mean_f": 84.8,
      "precip_in": 32.4,
      "snow_in": 0.2,
      "hdd65": 1438,
      "cdd50": 7354
     },
     "koppen": "Cfa",
     "iecc_zone": 2
    }
   ]
  },
  "UT": {
   "usps": "UT",
   "name": "Utah",
   "fips": "49",
   "region": "mountain",
   "anchor": {
    "ncei_station": "USW00024127",
    "name": "SALT LAKE CITY INTL AP, UT US",
    "lat": 40.7781,
    "lon": -111.9694,
    "elev_m": 1287.8,
    "nws_station": "KSLC",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      31.4,
      36.6,
      45.8,
      51.8,
      61.5,
      71.6,
      81.1,
      79.1,
      68.4,
      54.6,
      41.7,
      32.2
     ],
     "tmax": [
      38.6,
      44.7,
      55.3,
      61.9,
      72.6,
      84.1,
      94.0,
      91.7,
      80.6,
      65.5,
      50.7,
      39.0
     ],
     "tmin": [
      24.2,
      28.6,
      36.3,
      41.8,
      50.4,
      59.1,
      68.2,
      66.6,
      56.3,
      43.6,
      32.8,
      25.3
     ],
     "prcp": [
      1.43,
      1.3,
      1.75,
      2.16,
      1.82,
      0.95,
      0.49,
      0.58,
      1.06,
      1.26,
      1.32,
      1.4
     ],
     "snow": [
      12.7,
      10.7,
      5.9,
      2.9,
      0.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.5,
      7.0,
      12.1
     ],
     "hdd65": [
      1041.4,
      793.6,
      595.6,
      399.6,
      171.7,
      36.3,
      1.2,
      2.1,
      59.4,
      337.4,
      697.5,
      1018.0
     ],
     "cdd65": [
      0.0,
      0.0,
      0.2,
      5.3,
      63.1,
      234.3,
      500.0,
      440.6,
      162.7,
      13.5,
      0.1,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 54.7,
     "jan_mean_f": 31.4,
     "jul_mean_f": 81.1,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 15.52,
     "snow_in": 51.9,
     "hdd65": 5154,
     "cdd65": 1420,
     "cdd50": 3779,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Apr",
     "driest_month": "Jul"
    }
   },
   "koppen": {
    "code": "Dsa",
    "name": "Hot-summer Mediterranean continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 12.6,
     "map_mm": 394,
     "thot_c": 27.3,
     "tcold_c": -0.3,
     "tmon10": 7,
     "pdry_mm": 12,
     "pthreshold_mm": 391.7,
     "summer_share": 0.45
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 15.5,
     "dry_limit_in": 15.5,
     "tcold_f": 31.4,
     "thot_f": 81.1,
     "months_over_50f": 7,
     "summer_dry_season": true,
     "rule": "not dry, not marine",
     "cdd50": 3779,
     "hdd65": 5154
    },
    "adopted": {
     "zone": "5B",
     "county": "Salt Lake",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 4A from 1991-2020 station normals; Table R301.1 assigns 5B to Salt Lake County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "seismic",
     "label": "Earthquake"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "drought",
     "label": "Drought"
    },
    {
     "id": "flash-flood",
     "label": "Flash flood"
    }
   ],
   "house_types": [
    {
     "name": "Ski chalet",
     "climate_fit": "steep gable roof and deep eaves shed heavy mountain snowfall"
    },
    {
     "name": "Log cabin",
     "climate_fit": "thick log walls hold heat through long, cold winters"
    },
    {
     "name": "Mining-town Victorian",
     "climate_fit": "narrow lots and steep metal roofs from 19th-century boomtowns built for snow load"
    },
    {
     "name": "Mountain modern",
     "climate_fit": "large glazing and simple massing chase views while metal roofs shed snow"
    },
    {
     "name": "Valley ranch",
     "climate_fit": "low, single-story postwar stock in the drier basin towns where snow load is lighter"
    },
    {
     "name": "Earth-sheltered / passive solar",
     "climate_fit": "Rocky Mountain berm-and-solar tradition that banks on the region's intense high-elevation sun"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "minor",
    "moisture": "minor",
    "snow_load": "dominant",
    "wind": "secondary (exposed ridgelines, canyon winds)",
    "seismic": "secondary, concentrated on the Wasatch Front (UT)",
    "wildfire": "dominant",
    "flood": "secondary (snowmelt and canyon flash flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 5154 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 52 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5B (Salt Lake County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Earthquake, Snow load, Wildfire, Drought, Flash flood",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Utah, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 5154, CDD65 1420); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dsa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    223.2,
    264.3
   ],
   "live": {
    "nws_alert_area": "UT",
    "nws_station": "KSLC",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "VT": {
   "usps": "VT",
   "name": "Vermont",
   "fips": "50",
   "region": "northeast",
   "anchor": {
    "ncei_station": "USW00014742",
    "name": "BURLINGTON INTL AP, VT US",
    "lat": 44.4683,
    "lon": -73.15,
    "elev_m": 100.6,
    "nws_station": "KBTV",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      20.9,
      22.9,
      32.3,
      45.6,
      58.4,
      67.5,
      72.4,
      70.7,
      62.7,
      50.3,
      39.3,
      28.2
     ],
     "tmax": [
      28.9,
      31.5,
      40.9,
      55.3,
      69.0,
      77.6,
      82.4,
      80.7,
      72.6,
      58.9,
      46.4,
      35.0
     ],
     "tmin": [
      12.9,
      14.3,
      23.6,
      35.9,
      47.8,
      57.3,
      62.4,
      60.7,
      52.9,
      41.8,
      32.1,
      21.3
     ],
     "prcp": [
      2.13,
      1.77,
      2.24,
      3.07,
      3.76,
      4.26,
      4.06,
      3.54,
      3.67,
      3.83,
      2.7,
      2.5
     ],
     "snow": [
      21.1,
      19.3,
      17.5,
      4.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.3,
      5.7,
      19.5
     ],
     "hdd65": [
      1366.9,
      1178.7,
      1015.6,
      585.7,
      236.4,
      49.5,
      5.6,
      14.7,
      133.5,
      458.8,
      772.6,
      1142.3
     ],
     "cdd65": [
      0.0,
      0.0,
      0.4,
      3.7,
      31.7,
      122.9,
      234.9,
      191.3,
      65.9,
      4.7,
      0.1,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 47.6,
     "jan_mean_f": 20.9,
     "jul_mean_f": 72.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 37.53,
     "snow_in": 87.5,
     "hdd65": 6960,
     "cdd65": 656,
     "cdd50": 2638,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 8.7,
     "map_mm": 953,
     "thot_c": 22.4,
     "tcold_c": -6.2,
     "tmon10": 6,
     "pdry_mm": 45,
     "pthreshold_mm": 313.3,
     "summer_share": 0.6
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 37.5,
     "dry_limit_in": 12.4,
     "tcold_f": 20.9,
     "thot_f": 72.4,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2638,
     "hdd65": 6960
    },
    "adopted": {
     "zone": "6A",
     "county": "Chittenden",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 5A from 1991-2020 station normals; Table R301.1 assigns 6A to Chittenden County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    }
   ],
   "house_types": [
    {
     "name": "Colonial / Colonial Revival",
     "climate_fit": "compact two-story form and central chimney hold heat through winter"
    },
    {
     "name": "Cape Cod",
     "climate_fit": "low profile and steep roof shed snow and shrug off wind"
    },
    {
     "name": "Saltbox",
     "climate_fit": "long rear roofline turns its back to the north wind"
    },
    {
     "name": "Brownstone / rowhouse",
     "climate_fit": "party walls buffer winter cold on dense urban lots"
    },
    {
     "name": "Triple-decker",
     "climate_fit": "stacked flats — New England's dense urban housing form"
    },
    {
     "name": "Queen Anne Victorian",
     "climate_fit": "the heavy ornate stock of the region's industrial-era boom"
    },
    {
     "name": "Split-level / raised ranch",
     "climate_fit": "postwar suburban default on graded lots"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 6960",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "steep, 8:12 or more, with snow retention",
     "because": "annual snowfall normal 88 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 6A (Chittenden County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Snow load, Extreme cold, Freeze-thaw and ice, Riverine / urban flood",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Vermont, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 6960, CDD65 656); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    859.9,
    133.6
   ],
   "live": {
    "nws_alert_area": "VT",
    "nws_station": "KBTV",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "VA": {
   "usps": "VA",
   "name": "Virginia",
   "fips": "51",
   "region": "mid-atlantic",
   "anchor": {
    "ncei_station": "USW00013740",
    "name": "RICHMOND INTL AP, VA US",
    "lat": 37.505,
    "lon": -77.3203,
    "elev_m": 50.0,
    "nws_station": "KRIC",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      38.3,
      41.0,
      48.4,
      58.4,
      66.7,
      75.0,
      79.4,
      77.5,
      71.2,
      60.0,
      49.6,
      41.8
     ],
     "tmax": [
      47.8,
      51.6,
      59.6,
      70.4,
      77.8,
      85.6,
      89.5,
      87.5,
      81.2,
      70.9,
      60.4,
      51.5
     ],
     "tmin": [
      28.8,
      30.4,
      37.2,
      46.4,
      55.7,
      64.5,
      69.2,
      67.6,
      61.1,
      49.0,
      38.8,
      32.1
     ],
     "prcp": [
      3.23,
      2.61,
      4.0,
      3.18,
      4.0,
      4.64,
      4.37,
      4.9,
      4.61,
      3.39,
      3.06,
      3.51
     ],
     "snow": [
      3.7,
      2.2,
      1.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      1.8
     ],
     "hdd65": [
      827.7,
      672.4,
      519.4,
      235.1,
      72.0,
      6.1,
      0.0,
      0.2,
      21.5,
      196.9,
      465.0,
      719.9
     ],
     "cdd65": [
      0.2,
      0.4,
      4.9,
      37.1,
      126.2,
      307.6,
      444.8,
      389.2,
      205.9,
      40.4,
      3.1,
      0.8
     ]
    },
    "annual": {
     "tavg_f": 59.0,
     "jan_mean_f": 38.3,
     "jul_mean_f": 79.4,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 45.5,
     "snow_in": 8.8,
     "hdd65": 3736,
     "cdd65": 1560,
     "cdd50": 4445,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Aug",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 15.0,
     "map_mm": 1156,
     "thot_c": 26.3,
     "tcold_c": 3.5,
     "tmon10": 7,
     "pdry_mm": 66,
     "pthreshold_mm": 439.4,
     "summer_share": 0.56
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 45.5,
     "dry_limit_in": 17.4,
     "tcold_f": 38.3,
     "thot_f": 79.4,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 4445,
     "hdd65": 3736
    },
    "adopted": {
     "zone": "4A",
     "county": "Henrico",
     "confidence": "inferred-from-county-list",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "hurricane-remnant",
     "label": "Tropical remnants"
    },
    {
     "id": "coastal-flood",
     "label": "Coastal flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "seismic",
     "label": "Earthquake"
    }
   ],
   "house_types": [
    {
     "name": "Federal / Georgian rowhouse",
     "climate_fit": "party walls and masonry mass buffer winter cold on dense urban lots"
    },
    {
     "name": "Pennsylvania bank barn farmhouse",
     "climate_fit": "earth-banked lower level insulates against the interior's colder winters"
    },
    {
     "name": "Cape (Jersey Shore)",
     "climate_fit": "low, compact form stands up to coastal wind and nor'easter exposure"
    },
    {
     "name": "Colonial Revival",
     "climate_fit": "symmetric massing and a central chimney hold heat through the four-season interior climate"
    },
    {
     "name": "Baltimore rowhouse",
     "climate_fit": "shared walls and marble stoops handle dense, humid-summer urban blocks"
    },
    {
     "name": "Dutch Colonial",
     "climate_fit": "gambrel roof sheds snow while adding headroom in the Pennsylvania/New Jersey Dutch country"
    },
    {
     "name": "Tidewater farmhouse",
     "climate_fit": "raised foundation and wide porches manage Chesapeake humidity and tidal flooding"
    }
   ],
   "design_drivers": {
    "heating": "secondary to dominant, heavier in the Appalachian interior than the coastal plain",
    "cooling": "secondary",
    "moisture": "secondary",
    "snow_load": "secondary, higher in Appalachian ridge counties than the coast",
    "wind": "secondary (hurricane remnants and nor'easters)",
    "seismic": "minor, elevated in the Central Virginia Seismic Zone",
    "wildfire": "minor",
    "flood": "dominant (coastal and tidal flooding, nor'easter storm surge)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 3736 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 to 6:12, or engineered low-slope",
     "because": "annual snowfall normal 9 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Henrico County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; ice-dam eave membrane, snow guards, buried or protected service drops",
     "because": "Tropical remnants, Coastal flood, Freeze-thaw and ice, Tornado, Earthquake",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Virginia, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 3736, CDD65 1560); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    790.2,
    299.5
   ],
   "live": {
    "nws_alert_area": "VA",
    "nws_station": "KRIC",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "WA": {
   "usps": "WA",
   "name": "Washington",
   "fips": "53",
   "region": "northwest",
   "anchor": {
    "ncei_station": "USW00024233",
    "name": "SEATTLE TACOMA INTL AP, WA US",
    "lat": 47.4444,
    "lon": -122.3139,
    "elev_m": 112.8,
    "nws_station": "KSEA",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      42.8,
      44.0,
      47.1,
      51.3,
      57.5,
      62.0,
      67.1,
      67.4,
      62.6,
      53.8,
      46.5,
      42.0
     ],
     "tmax": [
      48.0,
      50.3,
      54.2,
      59.3,
      66.3,
      71.1,
      77.4,
      77.6,
      71.6,
      60.5,
      52.1,
      47.0
     ],
     "tmin": [
      37.7,
      37.7,
      39.9,
      43.3,
      48.7,
      53.0,
      56.8,
      57.2,
      53.6,
      47.0,
      40.9,
      37.1
     ],
     "prcp": [
      5.78,
      3.76,
      4.17,
      3.18,
      1.88,
      1.45,
      0.6,
      0.97,
      1.61,
      3.91,
      6.31,
      5.72
     ],
     "snow": [
      1.8,
      2.2,
      0.4,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.2,
      1.7
     ],
     "hdd65": [
      686.7,
      588.0,
      556.6,
      411.9,
      241.8,
      117.9,
      31.1,
      23.7,
      102.4,
      349.3,
      555.0,
      711.4
     ],
     "cdd65": [
      0.0,
      0.0,
      0.2,
      0.9,
      9.3,
      29.4,
      96.1,
      98.1,
      30.4,
      0.5,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 53.7,
     "jan_mean_f": 42.8,
     "jul_mean_f": 67.1,
     "warmest_month": "Aug",
     "coldest_month": "Dec",
     "precip_in": 39.34,
     "snow_in": 6.3,
     "hdd65": 4376,
     "cdd65": 265,
     "cdd50": 2322,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Nov",
     "driest_month": "Jul"
    }
   },
   "koppen": {
    "code": "Csb",
    "name": "Warm-summer Mediterranean",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 12.0,
     "map_mm": 999,
     "thot_c": 19.7,
     "tcold_c": 5.6,
     "tmon10": 7,
     "pdry_mm": 15,
     "pthreshold_mm": 240.8,
     "summer_share": 0.25
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "C",
    "label": "4C",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 39.3,
     "dry_limit_in": 15.0,
     "tcold_f": 42.0,
     "thot_f": 67.4,
     "months_over_50f": 7,
     "summer_dry_season": true,
     "rule": "27<Tcold<65, Thot<72, >=4 months >50F, summer dry season, CDD50 under the marine cap",
     "cdd50": 2322,
     "hdd65": 4376
    },
    "adopted": {
     "zone": "4C",
     "county": "King",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "atmospheric-river",
     "label": "Atmospheric river"
    },
    {
     "id": "seismic",
     "label": "Earthquake"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "wind",
     "label": "High wind"
    }
   ],
   "house_types": [
    {
     "name": "Craftsman bungalow",
     "climate_fit": "deep eaves and covered porches shed the long wet season"
    },
    {
     "name": "Northwest Modern",
     "climate_fit": "shed roofs, cedar, big glass for soft light and views — needs disciplined rain detailing"
    },
    {
     "name": "A-frame / mountain cabin",
     "climate_fit": "steep roof dumps the inland snow load"
    },
    {
     "name": "Valley farmhouse",
     "climate_fit": "gabled roof and wrap porch for the wet-mild Willamette pattern"
    },
    {
     "name": "Inland ranch",
     "climate_fit": "low-pitch postwar stock where snow loads stay modest"
    }
   ],
   "design_drivers": {},
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4376 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "4:12 or more for rain shedding; metal or tile where rain is torrential",
     "because": "precip 39 in, snow 6.3 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "rainscreen cladding with a drained, vented cavity; vapor-open to the exterior; keep sheathing warm",
     "because": "moisture regime C (marine)",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4C (King County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "anchored sill plates, shear walls, cripple-wall bracing, flexible utility connections; Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Atmospheric river, Earthquake, Wildfire, Snow load, High wind",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Washington, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4376, CDD65 265); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Csb normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    122.3,
    57.7
   ],
   "live": {
    "nws_alert_area": "WA",
    "nws_station": "KSEA",
    "usgs_feed": "2.5_day",
    "eonet": true
   },
   "secondary_stations": [
    {
     "ncei_station": "USW00024157",
     "name": "SPOKANE INTL AP, WA US",
     "lat": 47.6217,
     "lon": -117.5281,
     "annual": {
      "tavg_f": 48.6,
      "jan_mean_f": 29.6,
      "jul_mean_f": 71.0,
      "precip_in": 16.4,
      "snow_in": 45.4,
      "hdd65": 6463,
      "cdd50": 2322
     },
     "koppen": "Dsb",
     "iecc_zone": 5
    }
   ]
  },
  "WV": {
   "usps": "WV",
   "name": "West Virginia",
   "fips": "54",
   "region": "mid-atlantic",
   "anchor": {
    "ncei_station": "USW00013866",
    "name": "CHARLESTON YEAGER AP, WV US",
    "lat": 38.3794,
    "lon": -81.59,
    "elev_m": 277.4,
    "nws_station": "KCRW",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      35.0,
      38.2,
      46.0,
      56.9,
      64.7,
      72.3,
      75.8,
      74.6,
      68.3,
      57.0,
      46.4,
      38.7
     ],
     "tmax": [
      43.9,
      47.8,
      56.8,
      69.4,
      76.2,
      83.1,
      86.0,
      85.2,
      79.5,
      68.7,
      57.3,
      47.5
     ],
     "tmin": [
      26.1,
      28.6,
      35.1,
      44.5,
      53.2,
      61.5,
      65.5,
      64.1,
      57.1,
      45.3,
      35.6,
      29.9
     ],
     "prcp": [
      3.27,
      3.36,
      4.14,
      3.56,
      4.93,
      4.72,
      5.38,
      3.75,
      3.46,
      2.91,
      3.2,
      3.56
     ],
     "snow": [
      10.3,
      7.7,
      5.9,
      0.5,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.6,
      1.5,
      5.0
     ],
     "hdd65": [
      929.8,
      750.7,
      595.5,
      271.6,
      103.6,
      10.4,
      0.1,
      1.0,
      44.9,
      271.4,
      558.5,
      815.6
     ],
     "cdd65": [
      0.0,
      0.3,
      5.0,
      30.0,
      94.3,
      229.4,
      333.4,
      300.1,
      143.9,
      23.4,
      2.0,
      0.3
     ]
    },
    "annual": {
     "tavg_f": 56.1,
     "jan_mean_f": 35.0,
     "jul_mean_f": 75.8,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 46.24,
     "snow_in": 31.5,
     "hdd65": 4353,
     "cdd65": 1162,
     "cdd50": 3831,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jul",
     "driest_month": "Oct"
    }
   },
   "koppen": {
    "code": "Cfa",
    "name": "Humid subtropical",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 13.4,
     "map_mm": 1174,
     "thot_c": 24.3,
     "tcold_c": 1.7,
     "tmon10": 7,
     "pdry_mm": 74,
     "pthreshold_mm": 408.4,
     "summer_share": 0.56
    }
   },
   "iecc": {
    "zone": 4,
    "moisture": "A",
    "label": "4A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 46.2,
     "dry_limit_in": 16.1,
     "tcold_f": 35.0,
     "thot_f": 75.8,
     "months_over_50f": 7,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 3831,
     "hdd65": 4353
    },
    "adopted": {
     "zone": "4A",
     "county": "Kanawha",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "landslide",
     "label": "Landslide"
    }
   ],
   "house_types": [
    {
     "name": "Federal / Georgian rowhouse",
     "climate_fit": "party walls and masonry mass buffer winter cold on dense urban lots"
    },
    {
     "name": "Pennsylvania bank barn farmhouse",
     "climate_fit": "earth-banked lower level insulates against the interior's colder winters"
    },
    {
     "name": "Cape (Jersey Shore)",
     "climate_fit": "low, compact form stands up to coastal wind and nor'easter exposure"
    },
    {
     "name": "Colonial Revival",
     "climate_fit": "symmetric massing and a central chimney hold heat through the four-season interior climate"
    },
    {
     "name": "Baltimore rowhouse",
     "climate_fit": "shared walls and marble stoops handle dense, humid-summer urban blocks"
    },
    {
     "name": "Dutch Colonial",
     "climate_fit": "gambrel roof sheds snow while adding headroom in the Pennsylvania/New Jersey Dutch country"
    },
    {
     "name": "Tidewater farmhouse",
     "climate_fit": "raised foundation and wide porches manage Chesapeake humidity and tidal flooding"
    }
   ],
   "design_drivers": {
    "heating": "secondary to dominant, heavier in the Appalachian interior than the coastal plain",
    "cooling": "secondary",
    "moisture": "secondary",
    "snow_load": "secondary, higher in Appalachian ridge counties than the coast",
    "wind": "secondary (hurricane remnants and nor'easters)",
    "seismic": "minor, elevated in the Central Virginia Seismic Zone",
    "wildfire": "minor",
    "flood": "dominant (coastal and tidal flooding, nor'easter storm surge)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "mixed",
     "because": "IECC zone 4: HDD65 4353 between 3600 and 5400",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 32 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "conditioned crawlspace or basement; slab acceptable with edge insulation",
     "because": "IECC zone 4",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 4",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-19; slab R-10ci, 4 ft; basement wall R-10ci or R-13",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 4A (Kanawha County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "south glass with sized overhangs; moderate SHGC; shade west",
     "because": "mixed zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "ice-dam eave membrane, snow guards, buried or protected service drops; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Riverine / urban flood, Freeze-thaw and ice, Snow load, Landslide",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in West Virginia, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 4353, CDD65 1162); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Cfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    754.9,
    280
   ],
   "live": {
    "nws_alert_area": "WV",
    "nws_station": "KCRW",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "WI": {
   "usps": "WI",
   "name": "Wisconsin",
   "fips": "55",
   "region": "midwest",
   "anchor": {
    "ncei_station": "USW00014839",
    "name": "MILWAUKEE MITCHELL AP, WI US",
    "lat": 42.955,
    "lon": -87.9044,
    "elev_m": 204.2,
    "nws_station": "KMKE",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      24.0,
      27.1,
      36.4,
      46.3,
      57.1,
      67.6,
      73.3,
      72.3,
      65.0,
      53.0,
      40.4,
      29.5
     ],
     "tmax": [
      30.9,
      34.2,
      44.2,
      54.7,
      66.5,
      76.8,
      81.9,
      80.3,
      73.5,
      61.3,
      47.8,
      36.1
     ],
     "tmin": [
      17.2,
      20.0,
      28.7,
      37.8,
      47.8,
      58.4,
      64.7,
      64.2,
      56.4,
      44.7,
      33.1,
      23.0
     ],
     "prcp": [
      1.79,
      1.69,
      2.2,
      3.86,
      3.54,
      4.38,
      3.4,
      3.65,
      3.16,
      2.78,
      2.24,
      1.88
     ],
     "snow": [
      14.9,
      11.8,
      6.7,
      2.1,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0.3,
      2.5,
      10.4
     ],
     "hdd65": [
      1269.2,
      1061.1,
      885.8,
      566.0,
      277.8,
      63.8,
      6.3,
      7.6,
      94.3,
      382.6,
      736.9,
      1098.8
     ],
     "cdd65": [
      0.0,
      0.0,
      0.7,
      3.5,
      34.4,
      141.7,
      263.4,
      232.3,
      92.7,
      10.6,
      0.4,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 49.3,
     "jan_mean_f": 24.0,
     "jul_mean_f": 73.3,
     "warmest_month": "Jul",
     "coldest_month": "Jan",
     "precip_in": 34.57,
     "snow_in": 48.7,
     "hdd65": 6450,
     "cdd65": 780,
     "cdd50": 2787,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "Jun",
     "driest_month": "Feb"
    }
   },
   "koppen": {
    "code": "Dfa",
    "name": "Hot-summer humid continental",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 9.6,
     "map_mm": 878,
     "thot_c": 22.9,
     "tcold_c": -4.4,
     "tmon10": 6,
     "pdry_mm": 43,
     "pthreshold_mm": 332.6,
     "summer_share": 0.64
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 34.6,
     "dry_limit_in": 13.1,
     "tcold_f": 24.0,
     "thot_f": 73.3,
     "months_over_50f": 6,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2787,
     "hdd65": 6450
    },
    "adopted": {
     "zone": "5A",
     "county": "Milwaukee",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": true
   },
   "hazards": [
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "tornado",
     "label": "Tornado"
    },
    {
     "id": "ice",
     "label": "Freeze-thaw and ice"
    },
    {
     "id": "flood",
     "label": "Riverine / urban flood"
    }
   ],
   "house_types": [
    {
     "name": "American Foursquare",
     "climate_fit": "compact two-story box with a hipped roof holds heat and sheds snow efficiently"
    },
    {
     "name": "Chicago bungalow",
     "climate_fit": "brick construction and a raised basement handle freeze-thaw and heating load on dense city lots"
    },
    {
     "name": "I-house",
     "climate_fit": "narrow two-story farmhouse form vents summer heat through tall rooms"
    },
    {
     "name": "Gable-front cottage",
     "climate_fit": "simple steep gable sheds snow on the narrow lots of Midwest mill and rail towns"
    },
    {
     "name": "Split-level",
     "climate_fit": "postwar suburban form that separates heating zones across a continental temperature swing"
    },
    {
     "name": "Farmhouse (gabled, wrap porch)",
     "climate_fit": "deep porch and tall windows manage humid-summer heat on the open Corn Belt"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "secondary",
    "moisture": "secondary (humid summers)",
    "snow_load": "secondary, dominant in Great Lakes snowbelt counties",
    "wind": "secondary, elevated in the Corn Belt derecho corridor",
    "seismic": "minor, elevated near the New Madrid Seismic Zone (southeastern MO)",
    "wildfire": "minor",
    "flood": "dominant (Mississippi/Ohio/Missouri river-valley flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 6450",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "6:12 to 8:12, ice-dam eave detailing",
     "because": "annual snowfall normal 49 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5A (Milwaukee County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "storm shelter or safe room; hurricane ties even outside hurricane zones; ice-dam eave membrane, snow guards, buried or protected service drops; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Extreme cold, Snow load, Tornado, Freeze-thaw and ice, Riverine / urban flood",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Wisconsin, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 6450, CDD65 780); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a Dfa normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    585.6,
    163.8
   ],
   "live": {
    "nws_alert_area": "WI",
    "nws_station": "KMKE",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  },
  "WY": {
   "usps": "WY",
   "name": "Wyoming",
   "fips": "56",
   "region": "mountain",
   "anchor": {
    "ncei_station": "USW00024018",
    "name": "CHEYENNE, WY US",
    "lat": 41.1519,
    "lon": -104.8061,
    "elev_m": 1867.8,
    "nws_station": "KCYS",
    "note": null
   },
   "normals": {
    "period": "1991-2020",
    "units": {
     "temp": "F",
     "precip": "in",
     "snow": "in",
     "degree_days": "F-days"
    },
    "monthly": {
     "tavg": [
      29.2,
      29.5,
      37.1,
      42.8,
      52.3,
      63.1,
      70.1,
      68.1,
      59.6,
      46.5,
      36.1,
      28.7
     ],
     "tmax": [
      40.0,
      40.6,
      49.1,
      54.8,
      64.4,
      76.7,
      84.1,
      82.0,
      73.3,
      59.1,
      47.5,
      39.3
     ],
     "tmin": [
      18.4,
      18.4,
      25.1,
      30.8,
      40.2,
      49.4,
      56.1,
      54.3,
      45.8,
      33.9,
      24.7,
      18.1
     ],
     "prcp": [
      0.35,
      0.52,
      0.96,
      1.79,
      2.44,
      2.16,
      2.11,
      1.52,
      1.47,
      1.0,
      0.61,
      0.48
     ],
     "snow": [
      6.3,
      9.0,
      9.7,
      11.3,
      3.4,
      0.0,
      0.0,
      0.0,
      1.0,
      5.9,
      7.5,
      8.8
     ],
     "hdd65": [
      1109.9,
      993.8,
      865.0,
      666.0,
      398.1,
      114.7,
      17.2,
      32.6,
      195.9,
      573.9,
      867.0,
      1125.1
     ],
     "cdd65": [
      0.0,
      0.0,
      0.0,
      0.0,
      4.3,
      56.1,
      175.2,
      130.1,
      32.3,
      0.5,
      0.0,
      0.0
     ]
    },
    "annual": {
     "tavg_f": 46.9,
     "jan_mean_f": 29.2,
     "jul_mean_f": 70.1,
     "warmest_month": "Jul",
     "coldest_month": "Dec",
     "precip_in": 15.41,
     "snow_in": 62.9,
     "hdd65": 6959,
     "cdd65": 398,
     "cdd50": 2146,
     "cdd50_method": "single-sine estimate from monthly normal daily max/min (Allen 1976); NCEI base-50 series is not served by the access API",
     "wettest_month": "May",
     "driest_month": "Jan"
    }
   },
   "koppen": {
    "code": "BSk",
    "name": "Cold semi-arid",
    "computed": true,
    "method": "Peel-Finlayson-McMahon 2007 Table 1",
    "trace": {
     "mat_c": 8.3,
     "map_mm": 391,
     "thot_c": 21.2,
     "tcold_c": -1.8,
     "tmon10": 5,
     "pdry_mm": 9,
     "pthreshold_mm": 445.8,
     "summer_share": 0.75
    }
   },
   "iecc": {
    "zone": 5,
    "moisture": "A",
    "label": "5A",
    "computed": true,
    "method": "2021 IECC Table C301.3 thermal criteria and moisture-regime definitions, applied to the anchor station's 1991-2020 normals",
    "trace": {
     "annual_precip_in": 15.4,
     "dry_limit_in": 12.1,
     "tcold_f": 28.7,
     "thot_f": 70.1,
     "months_over_50f": 5,
     "summer_dry_season": false,
     "rule": "not dry, not marine",
     "cdd50": 2146,
     "hdd65": 6959
    },
    "adopted": {
     "zone": "5B",
     "county": "Laramie",
     "confidence": "verified",
     "url": "https://up.codes/viewer/colorado/iecc-2021/chapter/RE_3/re-general-requirements",
     "fetched_on": "2026-09-26"
    },
    "matches_adopted": false,
    "adopted_note": "Computed 5A from 1991-2020 station normals; Table R301.1 assigns 5B to Laramie County. The adopted zone governs permits; the computed zone describes the current climate."
   },
   "hazards": [
    {
     "id": "extreme-cold",
     "label": "Extreme cold"
    },
    {
     "id": "wind",
     "label": "High wind"
    },
    {
     "id": "snow-load",
     "label": "Snow load"
    },
    {
     "id": "wildfire",
     "label": "Wildfire"
    },
    {
     "id": "drought",
     "label": "Drought"
    }
   ],
   "house_types": [
    {
     "name": "Ski chalet",
     "climate_fit": "steep gable roof and deep eaves shed heavy mountain snowfall"
    },
    {
     "name": "Log cabin",
     "climate_fit": "thick log walls hold heat through long, cold winters"
    },
    {
     "name": "Mining-town Victorian",
     "climate_fit": "narrow lots and steep metal roofs from 19th-century boomtowns built for snow load"
    },
    {
     "name": "Mountain modern",
     "climate_fit": "large glazing and simple massing chase views while metal roofs shed snow"
    },
    {
     "name": "Valley ranch",
     "climate_fit": "low, single-story postwar stock in the drier basin towns where snow load is lighter"
    },
    {
     "name": "Earth-sheltered / passive solar",
     "climate_fit": "Rocky Mountain berm-and-solar tradition that banks on the region's intense high-elevation sun"
    }
   ],
   "design_drivers": {
    "heating": "dominant",
    "cooling": "minor",
    "moisture": "minor",
    "snow_load": "dominant",
    "wind": "secondary (exposed ridgelines, canyon winds)",
    "seismic": "secondary, concentrated on the Wasatch Front (UT)",
    "wildfire": "dominant",
    "flood": "secondary (snowmelt and canyon flash flooding)"
   },
   "decisions": {
    "envelope_priority": {
     "value": "heating-dominated",
     "because": "IECC zone 5: HDD65 6959",
     "basis": "ncei.hdd65, ncei.cdd50 -> iecc.zone"
    },
    "roof_pitch": {
     "value": "steep, 8:12 or more, with snow retention",
     "because": "annual snowfall normal 63 in",
     "basis": "ncei.snow_in, ncei.precip_in"
    },
    "foundation": {
     "value": "full basement or frost-protected footing below frost line",
     "because": "IECC zone 5: deep frost line",
     "basis": "iecc.zone, hazards"
    },
    "moisture": {
     "value": "interior-side class II vapor retarder, airtight envelope, balanced ventilation with heat recovery",
     "because": "moisture regime A (moist), IECC zone 5",
     "basis": "iecc.moisture, iecc.zone"
    },
    "insulation": {
     "value": "ceiling R-60; wood-frame wall R-30 or R-20+5ci or R-13+10ci or R-0+20ci; floor R-30; slab R-10ci, 4 ft; basement wall R-15ci or R-19 or R-13+5ci",
     "because": "2021 IECC Table R402.1.3 for the adopted county zone 5B (Laramie County, Table R301.1)",
     "basis": "iecc.adopted -> R402.1.3 (confirm the adopted edition and local amendments)"
    },
    "glazing": {
     "value": "concentrate glass south with overhangs tuned to winter sun; minimize north glass; high-performance frames",
     "because": "heating-dominated zone",
     "basis": "iecc.zone"
    },
    "structure": {
     "value": "Class A roof, ember-resistant vents, noncombustible 5 ft zone, defensible space; thermal-bridge-free envelope, protected water lines, arctic entry vestibule; roof framed for ground snow load; avoid valleys that trap drifts",
     "because": "Extreme cold, High wind, Snow load, Wildfire, Drought",
     "basis": "STATE_HAZARDS (editorial, state-level)"
    },
    "_trace": [
     {
      "step": 1,
      "family": "P",
      "code": "P6",
      "op": "Point-of-View Anchoring",
      "note": "the anchor station is the state's primary airport; the house is somewhere in Wyoming, not at the airport"
     },
     {
      "step": 2,
      "family": "IN",
      "code": "IN17",
      "op": "Counterfactual Negation",
      "note": "if the same house stood in the opposite regime (cooling-dominated), the roof, foundation and vapor logic would invert; every decision above should change, or it was not climate-driven"
     },
     {
      "step": 3,
      "family": "DE",
      "code": "DE7",
      "op": "Pareto Decomposition (80/20)",
      "note": "degree-days decide the envelope first (HDD65 6959, CDD65 398); snow and rain decide the roof; hazard flags decide structure"
     },
     {
      "step": 4,
      "family": "CO",
      "code": "CO4",
      "op": "Interdisciplinary Synthesis",
      "note": "normals (climatology), the vernacular house types (architecture) and the hazard flags (risk science) are read together; none of the three decides alone"
     },
     {
      "step": 5,
      "family": "RE",
      "code": "RE17",
      "op": "Versioning & Diff",
      "note": "normals are the 1991-2020 period; the live NWS panel is today's diff against that baseline"
     },
     {
      "step": 6,
      "family": "SY",
      "code": "SY18",
      "op": "Measurement & Telemetry",
      "note": "never treat a BSk normal as a tail-risk model; the live alerts, quakes and events feeds are the instruments that catch the tails"
     }
    ]
   },
   "centroid": [
    303.1,
    192
   ],
   "live": {
    "nws_alert_area": "WY",
    "nws_station": "KCYS",
    "usgs_feed": "2.5_day",
    "eonet": true
   }
  }
 }
}
