Data dictionary
93 measurements, each with its source, units, and validation status. Validation status is stated plainly, including where a measurement rests on a constant nobody has checked.
Address
addr_uniqueAddress identifies one buildingMethod sound, unmeasuredWhether this street address belongs to this building alone. False where several buildings share it — a two-flat, a duplex, or two structures on one parcel.
Three states. 1 unique, 0 shared, NULL means the building has no address on file — 149 rows in Cook, 1,258 in DuPage. NULL must never be coerced to 0: that would tell a house with no address that its address is shared. Some source rows also carry the literal string 'UNKNOWN' as the address, which the loader converts to NULL rather than storing, so nobody can look up a house by searching for 'unknown'.
derived
gers_idOverture GERS address idValidatedThe Overture Global Entity Reference System id of the address feature this house keys to. It is what turns an address a user types into this house.
2,857,206 of 3,693,609 Illinois houses carry one — 77.4% of the state, and 91.0% of the houses that have an address at all. Those denominators are not interchangeable: answering a coverage question with 91.0% drops 528,085 addressless houses out of the denominator without saying so. Blank means the address was looked for and not matched; a house with no address has no value here at all.
derived
assessor_classAssessor property classValidatedThe county assessor's own class code for this parcel. It says what KIND of building this is, which decides whether a measurement validated on single-family houses may be reported for it.
Published by the county assessor, carried through unchanged. Cook classes 202-210 are single-family and 211 is two-to-six apartments; the accuracy figures for pool, roof_shape and detached were all measured on single-family stock. A row whose class is outside that set has those columns withheld rather than reported at an accuracy nobody measured for it.
derived
Detectors
poolSwimming poolValidatedA swimming pool was detected within the parcel boundary.
Hand-checked. Two figures, because the boundary matters: 97.2%/88.7% where a real assessor parcel exists, and 97.8%/80.6% against a drawn lot at a stricter threshold. Available in all 102 counties since drawn lots closed the 92-county gap; each answer carries whether its boundary was real or estimated.
USDA NAIP aerial imagery · needs parcel boundary
pool_pPool confidenceMethod sound, unmeasuredModel probability for the pool detection.
USDA NAIP aerial imagery · needs parcel boundary
solarRooftop solarBetaRooftop solar panels were detected. Suitable for flagging an individual property. NOT suitable for counting installations across a portfolio.
85.9% precision but only 43.7% RECALL on 9,158 hand-reviewed labels. Accurate when it flags a property; it misses more than half of them. Every surface describing this field must disclose that it is for individual flagging and must NOT be used to count installations across a geography.
USDA NAIP aerial imagery
solar_pSolar confidenceMethod sound, unmeasuredModel probability for the rooftop solar detection.
USDA NAIP aerial imagery
roof_shapeRoof shapeValidatedFlat or pitched. Classified on the roof mask for all building types.
Hand-checked on 7,218 labels. `roof_shape_p` is the probability of FLAT and the flag fires at p >= 0.9. Cook once stored the opposite polarity and was suppressed for it; the re-score landed 2026-08-24 and was verified in Cook's own stored values, where flat carries a median p of 0.9986 against pitched's 0.0000 and the split falls exactly on 0.9. All 102 counties now share one convention.
USDA NAIP aerial imagery
roof_shape_pRoof shape confidenceMethod sound, unmeasuredModel probability for the roof shape classification.
USDA NAIP aerial imagery
detachedDetached structureValidatedA separate building (garage, shed, ADU) stands in the yard. Fuses LiDAR yard features with Clay embeddings where LiDAR exists.
Two counties have their own hand-checked measurement, at DIFFERENT thresholds: Lake (17097) runs at 0.5 from 800 reweighted houses, and Cook (17031) runs at 0.6 from ~4,000 houses. The other four LiDAR counties carry Lake's 0.5 with no local measurement, so their precision is unknown - Sangamon's detached rate is five times Kane's. Blanked where the parcel is shared or holds more than 9 buildings. Cook cannot hit that gate; its assessor class filter names single-family outright.
USDA NAIP aerial imagery · needs parcel boundary
detached_pDetached structure confidenceMethod sound, unmeasuredModel probability for the detached structure detection.
USDA NAIP aerial imagery · needs parcel boundary
detached_srcDetached structure methodValidatedWhich evidence produced the detached value for this house: lidar+clay, clay_only, or no_single_lot.
derived · needs parcel boundary
lot_open_fracLot boundary inventedValidatedShare of this lot's boundary that had to be invented by the 120 ft cap rather than being bounded by a neighbouring house or a road. 0 means the lot was fully constrained; higher means more of it was guessed.
THE confidence column for pool and detached in the 92 counties with no published parcel. Detached is 76.1% precise where neighbours and roads bounded the lot against 47.3% where they did not — a 29-point spread, so any consumer filtering on detached should filter on this too. 81% of houses sit in the good bucket. Only 10 Illinois counties publish a parcel boundary; the other 92 (1,962,953 houses, 53% of the state) use a drawn lot.
derived · needs parcel boundary
Roof geometry
roof_h_p50_mRoof height (median)(m)Method sound, unmeasured50th percentile roof return height above ground.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_h_p90_mRoof height (p90)(m)Method sound, unmeasured90th percentile roof return height above ground.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_h_max_mRoof height (max)(m)Method sound, unmeasuredMaximum roof return height above ground.
Illinois Height Modernization Program LiDAR · LiDAR only
stories_estEstimated storiesUnvalidatedround(roof_h_p50_m / 3.0).
Per-house values discriminate correctly. COUNTY-LEVEL SUMMARIES ARE MISLEADING and must not be quoted: the 3 m per storey constant returns a median of 1 storey for most counties regardless of their actual housing stock.
derived · LiDAR only
roof_pitch_proxy_mRoof pitch proxy(m)Method sound, unmeasuredHeight spread across the roof surface, used as a pitch stand-in.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_planarity_std_mRoof planarity(m)Method sound, unmeasuredStandard deviation of residuals from a fitted plane. Read it with roof_resid_m, which says whether that plane fitted anything.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_tilt_degRoof tilt(deg)Method sound, unmeasuredTilt of the dominant fitted roof plane.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_resid_mRoof plane residual(m)Method sound, unmeasuredMean absolute residual from the fitted roof plane.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_area_sqftRoof footprint area(sqft)Method sound, unmeasuredPlan-view roof footprint area.
Correlates only 0.22 with assessor floor area. This is a footprint, not a substitute for living area, and must not be presented as one.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_mean_slope_degRoof mean slope(deg)Method sound, unmeasuredMean slope across roof cells.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_aspect_degRoof aspect(deg)Method sound, unmeasuredCompass bearing the sloped part of the roof faces. 0 = north, 90 = east. A value of -1 means FLAT, which is a real answer about the roof rather than a missing measurement.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_south_fracRoof fraction with a southward componentMethod sound, unmeasuredShare of roof area whose aspect falls anywhere in 90-270 degrees. That is half the compass, so it includes due east and due west faces - it is NOT the S/SE/SW area a solar installer means.
NEVER PRESENT THIS AS USABLE SOLAR AREA. The loose 90-270 degree definition measures the same roofs at about 54% where the tight S/SE/SW definition measures about 30% - a 24-point gap that would overstate a solar estimate by most of its value. For real per-face direction, pitch and surface area, the facets data is the right source once it has a shape in this schema.
Illinois Height Modernization Program LiDAR · LiDAR only
solar_potential_sqftSolar potential area(sqft)UnvalidatedRoof area estimated from the southward-component share and slope. Not a figure of installable area, and not an upper bound on one either - see the validation note.
Never compared against a real installation. THIS COLUMN IS AGGREGATE-ONLY - measured 2026-08-31 against per-face solar across all 48 counties that carry it, 1,133,968 houses, superseding the three-county reading this note gave on 2026-08-27. Summed over every house it is within 10% of the per-face answer (1,239 M against 1,130 M sq ft), so it is serviceable for sizing a market. PER HOUSE IT IS NOT: the median ratio is 0.94 but p10 is 0.53 and p90 2.61, and only 31.0% of houses land within a quarter of the right answer. It also cannot filter, because it is almost never zero - it reports nothing usable for 4,290 houses out of 1.13 million, while 18.1% (205,335 houses) carry a positive figure with no mountable face at all. A prospecting list ordered by this column sends someone to a roof that cannot host panels about one visit in five. Where solar_sqft_s / solar_sqft_sew / solar_sqft_all exist, use those and ignore this. DO NOT SHIP A SCALING FACTOR: the median sits near 1 only because two opposite errors cancel - the 90-270 degree window overstates the southward share 1.6-1.7x while roof_area_sqft is the bare FOOTPRINT and understates a pitched roof - so scaling it makes it worse. That correction retracted an earlier version of this note which said it simply runs high. DO NOT STACK A kW CONVERSION ON IT either - the product of an unvalidated area and a nameplate factor reads like an engineering estimate while being neither.
Illinois Height Modernization Program LiDAR · LiDAR only
Per-face solar
solar_tierBest solar tier reachedMethod sound, unmeasuredThe best orientation tier this roof reaches: south-facing, south plus east/west, any orientation, or none. The natural sort key for a prospecting list.
Illinois Height Modernization Program LiDAR
solar_sqft_sMountable area, south-facing(sqft)Method sound, unmeasuredRoof area on faces pointing south, south-east or south-west at a mountable pitch, summed from the measured planes.
Illinois Height Modernization Program LiDAR
solar_sqft_sewMountable area, south plus east/west(sqft)Method sound, unmeasuredAdds east and west faces to the south-facing area. East and west yield 80-85% of south, which installers routinely accept.
Illinois Height Modernization Program LiDAR
solar_sqft_allMountable area, any orientation(sqft)Method sound, unmeasuredEvery face at a mountable pitch regardless of direction, including north. The widest figure and the least selective.
Illinois Height Modernization Program LiDAR
solar_flat_sqftMountable area, flat roof(sqft)Method sound, unmeasuredRoof area flat enough to take a ballasted or tilted mount, where orientation is chosen by the installer rather than by the roof.
Illinois Height Modernization Program LiDAR
solar_best_sqftLargest single usable face(sqft)Method sound, unmeasuredArea of the biggest single mountable plane. A roof split into many small faces takes more hardware than one large plane of the same total area, so this matters separately from the totals.
Illinois Height Modernization Program LiDAR
solar_best_aspect_degDirection of that face(deg)Method sound, unmeasuredCompass bearing the largest usable face points, 0 north through 180 south.
Illinois Height Modernization Program LiDAR
solar_best_slope_degPitch of that face(deg)Method sound, unmeasuredSlope of the largest usable face, in degrees from horizontal.
Illinois Height Modernization Program LiDAR
solar_facets_sSouth-facing facesMethod sound, unmeasuredHow many separate planes make up the south-facing area. More faces for the same area means a more broken roof.
Illinois Height Modernization Program LiDAR
solar_facets_sewSouth plus east/west facesMethod sound, unmeasuredFace count behind the south-plus-east/west area.
Illinois Height Modernization Program LiDAR
solar_facets_allFaces at any orientationMethod sound, unmeasuredFace count behind the all-orientation area.
Illinois Height Modernization Program LiDAR
facet_countRoof facesMethod sound, unmeasuredHow many distinct planes the roof breaks into, from the per-house roof summary.
From our per-county facet exports — the lot-classified set where the survey carries class-6 building returns, the derived set elsewhere — 2026-09-13, 99 counties and 3,428,442 houses. Scales with how many returns the survey put on the roof: 430 class-6 points per house gives a median of 4 faces, 2,742 gives 7. Not comparable across counties without that figure.
derived
facet_area_sqftRoof surface area(sqft)Method sound, unmeasuredTrue surface area of the roof, summed over its faces — larger than the footprint because a pitched face is longer than its shadow.
CLASS-6 COUNTIES ONLY. The 49 derived counties publish no area — OPEN-ISSUES D65 — because the derived source measures about 0.85x of class 6 per house and nothing establishes which is closer to the truth. Do not compare this figure across counties: it tracks point density on the roof as much as house size.
derived
facet_south_sqftSouth-facing roof area(sqft)Method sound, unmeasuredRoof surface area on faces pointing south, on the strict definition.
derived
facet_south_fracShare of roof facing southMethod sound, unmeasuredSouth-facing surface area as a share of the whole roof.
THE STRICT DEFINITION, and the reason it exists. `roof_south_frac` counts every face between 90 and 270 degrees — half the compass — and measures around 54%. This one has a statewide median of 0.14-0.30. They are different questions and must never be presented as the same number.
derived
facet_has_usable_southHas a usable south roofMethod sound, unmeasuredAt least one south-facing face large enough and shallow enough to mount on.
derived
solar_shade_classCanopy shadingMethod sound, unmeasuredHow much tree canopy sits over the roof: clear, light, moderate or heavy.
A CLASSIFICATION, not a subtraction. It does not say WHICH face the canopy sits over, so a shaded house may still have a clear mountable face — an earlier version of the analysis layer excluded on shading and removed 300,346 houses whose only shade was on a face that did not matter.
Illinois Height Modernization Program LiDAR
Insurance
bldg_height_ftBuilding height(ft)ValidatedStructure height above ground.
Two regimes, and `bldg_src` says which one a house is in. MEASURED where the survey classifies buildings (`class6`). DERIVED from the last return of each laser pulse where it does not — and the derivation's accuracy depends on the flight, graded across six counties on 2026-08-25: 97.5-98.7% within 5 ft with a median error of about 1 ft where pulses carry multiple returns (Sangamon, McHenry, Peoria, Tazewell), against 72.0-73.7% within 5 ft with a p90 error near 17 ft on a single-return flight (Kane, Lake), where the last-return test that separates roof from tree canopy has nothing to discard. Quote the error, not a correlation: r depends on how much the heights vary, reading 0.958 on Cook's mix of storeys and 0.899 on one-to-two storey Sangamon for the same real accuracy.
Illinois Height Modernization Program LiDAR, Overture Maps building footprints · LiDAR only
bldg_srcBuilding height methodValidatedWhich evidence produced this house's building height: class6 where the survey classified building points and the height is measured, derived_p95_last where it did not and the height was derived from the last return of each pulse.
Read this before comparing heights across counties. A derived height is 97.5-98.7% within 5 ft on a multi-return flight but 72.0-73.7% on a single-return one, so `bldg_src` is the difference between a measurement and an estimate — 1,113,282 of the 1,712,264 Illinois houses that carry a height at all have a derived one.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_complexity_scoreRoof complexityUnvalidatedPlanarity standard deviation x 10, capped at 100. Drives rebuild cost.
std of building point heights x10, capped at 100. Requires LiDAR class 6 and is BLANK without it. The ORDERING claim was asserted until 2026-08-27 and now has evidence: against per-facet solar, Spearman +0.443 over 64,357 Sangamon houses and +0.550 over 22,806 in Adams, both rising monotonically from a median 2-3 faces in the lowest score decile to 7-9 in the highest. Moderate, not strong - a house scoring 35 is genuinely likelier to have a complicated roof than one scoring 15; a single house score is not a precise complexity measure. The x10 scaling and the cap at 100 remain untested, and the derived variant overshoots the measured one badly - Lake median 61.3 against 39.8, Kane 56.4 against 32.6.
derived · LiDAR only
tree_overhang_5ftCanopy points within 5 ft(points)Method sound, unmeasuredCount of vegetation LiDAR returns within 5 ft of the structure. A COUNT of laser points, not an area and not a share — higher means more canopy against the wall, but it cannot be converted to square feet or to a percentage.
Illinois Height Modernization Program LiDAR · LiDAR only
tree_overhang_30ftCanopy points within 30 ft(points)Method sound, unmeasuredCount of vegetation LiDAR returns within 30 ft of the structure. A COUNT of laser points, not an area and not a share. Compare it between properties; do not read it as a proportion of anything.
Illinois Height Modernization Program LiDAR · LiDAR only
defensible_space_pctDefensible space(%)Method sound, unmeasuredShare of the 30 ft ring around the structure carrying vegetation.
Illinois Height Modernization Program LiDAR · LiDAR only
tree_countTree countUnvalidatedCanopy cells divided by 4.
Corrected 2026-08-18. The earlier formula assumed 100 sq ft per tree and overcounted by roughly 5x — the median Cook house claimed 18 trees within 30 feet. The corrected formula uses 490 sq ft per crown and the median is now 4. Every extracted county was converted, so there is ONE version of this number.
derived · LiDAR only
Terrain and drainage
terrain_slope_degLot slope(deg)Method sound, unmeasuredMean ground slope across the parcel.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
lot_relief_mLot relief(m)Method sound, unmeasuredElevation range across the parcel.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
terrain_aspect_degLot aspect(deg)Method sound, unmeasuredCompass direction the lot slopes toward.
Meaningless on a flat lot. Consumers MUST gate this on terrain_slope_deg before displaying it.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
grade_to_house_ftGrade to house(ft)ValidatedElevation change from the parcel toward the structure. Negative means ground falls toward the foundation, so water drains at the house.
Negative means the house sits at the low end and water drains toward the foundation. The genuinely new capability here: a FEMA flood map gives a zone, this gives a direction per property. VALIDATED 2026-08-25 against USGS 3DEP — an independent survey flown 8-12 years apart, so agreement is not two readings of one measurement. Quote the SIGN, not a correlation: it agrees on which way the ground falls for 95.9% of 367 houses in Pike (11.62% of lots over 5 degrees) and 89.6% of 337 in Jo Daviess (50.13% over 5 degrees). So 90-96%, and lower in hill country — the harder the terrain, the more often it disagrees. The claim that it degrades safely on flat ground also holds: a median of 0.09 ft across 303 lots under 2 degrees.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
Vegetation and fuels
tree_canopy_fracCanopy coverMethod sound, unmeasuredShare of the parcel under tree canopy.
Illinois Height Modernization Program LiDAR · LiDAR only
max_tree_h_mTallest tree(m)Method sound, unmeasuredHeight of the tallest vegetation return on the parcel.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_overhang_fracRoof overhang ratioMethod sound, unmeasuredOverhanging vegetation measured against the building FOOTPRINT rather than the roof surface, so it is a ratio that can exceed 1 — Cook reaches 12.6. It says how much canopy sits over the structure, not what share of the roof is shaded.
Footprint-based, so values above 1 are normal and it is NOT a shaded-share figure. It also does not say WHICH face the canopy sits over, so it cannot be used to exclude houses from a solar list — an earlier version of the analysis layer subtracted on it and removed 300,346 houses whose only shade was on a face that did not matter.
Illinois Height Modernization Program LiDAR · LiDAR only
veg_low_fracLow vegetationMethod sound, unmeasuredShare of the parcel in low vegetation.
Illinois Height Modernization Program LiDAR · LiDAR only
veg_med_fracMedium vegetationMethod sound, unmeasuredShare of the parcel in medium-height vegetation.
Illinois Height Modernization Program LiDAR · LiDAR only
ladder_fuel_fracLadder fuelsMethod sound, unmeasuredShare of canopy with low brush beneath it, the path fire climbs into the crown.
Illinois Height Modernization Program LiDAR · LiDAR only
Pool confirmation
pool_void_sqftLargest lot void area(sqft)UnvalidatedArea of the largest LiDAR return void anywhere in the lot. On most lots that is lawn, not a pool. Does NOT measure a pool and must not be read as pool dimensions.
TESTED 2026-08-25 AND IT DOES NOT MEASURE A POOL. It finds the largest empty region in the lot, which is usually lawn. In Cook the median void is 50 sq ft whether the pool model says pool or not; in Sangamon it is 1,138 sq ft at houses the model calls a pool against 2,075 sq ft at houses it does not. A pool-sized void (200-1,200 sq ft) is MORE common at houses with no pool - 13.5% against 5.2% in Cook, 25.1% against 16.4% in Sangamon. It therefore contradicts the pool detector rather than corroborating it. Recovering a real pool size means recomputing the void inside the pool's own footprint, which is a new measurement rather than a join.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
pool_void_compactnessLargest lot void compactnessUnvalidatedShape regularity of that largest void. Compact shapes are not specific to pools, so this does not confirm one either.
TESTED 2026-08-25 AND IT DOES NOT MEASURE A POOL. It finds the largest empty region in the lot, which is usually lawn. In Cook the median void is 50 sq ft whether the pool model says pool or not; in Sangamon it is 1,138 sq ft at houses the model calls a pool against 2,075 sq ft at houses it does not. A pool-sized void (200-1,200 sq ft) is MORE common at houses with no pool - 13.5% against 5.2% in Cook, 25.1% against 16.4% in Sangamon. It therefore contradicts the pool detector rather than corroborating it. Recovering a real pool size means recomputing the void inside the pool's own footprint, which is a new measurement rather than a join.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
Roof reflectance
roof_int_p50Roof intensity (median)Method sound, unmeasuredMedian LiDAR return intensity on the roof. Comparable WITHIN a roof only, not between roofs or flightlines.
Intensity is not calibrated across flightlines. Only within-roof relative comparisons are meaningful.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_int_rel_p10Roof intensity (relative p10)Method sound, unmeasured10th percentile intensity relative to the roof median.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_int_rel_p90Roof intensity (relative p90)Method sound, unmeasured90th percentile intensity relative to the roof median.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_int_cvRoof intensity variationMethod sound, unmeasuredCoefficient of variation of roof return intensity.
Illinois Height Modernization Program LiDAR · LiDAR only
roof_int_patch_fracRoof patch fractionUnvalidatedShare of the roof whose reflectance differs from the dominant surface. Elevated values indicate partial replacement or mixed materials.
No permit or re-roof ground truth has been compared against it. Treat as a lead, not a finding.
Illinois Height Modernization Program LiDAR · LiDAR only
Yard features
npts_normLot point densityMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
bldg6_fracLot share, building classMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
veg5_fracLot share, high vegetationMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
grd_fracLot share, groundMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
tall_fracLot share, tall returnsMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
bldgh_fracLot share at building heightMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
maxhTallest return in the lotMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
h_p50Return height, medianMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
h_p75Return height, p75Method sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
h_p90Return height, p90Method sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
h_stdReturn height, spreadMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
b6_coverBuilding-class coverMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
MIXED UNITS. Roughly 10.8x a true fraction and routinely above 1. Never render as a percentage and never compare against a 0-1 scale.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
b6_maxdistBuilding class, farthest pointMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
b6_cnt_normBuilding-class point densityMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
b6_p90hBuilding-class height, p90Method sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
Model input, not a standalone measurement. Blanked where the parcel is shared or holds more than 9 buildings.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
tall_coverTall-return coverMethod sound, unmeasuredParcel-level LiDAR yard feature. An input to the detached structure detector, exposed for customers building their own models.
MIXED UNITS. Roughly 10.8x a true fraction and routinely above 1. Never render as a percentage and never compare against a 0-1 scale.
Illinois Height Modernization Program LiDAR · needs parcel boundary · LiDAR only
Data quality
gers_sourceHow the address id was establishedValidatedWhether the address id came from matching the address text and then confirming by distance, or from proximity alone.
overture_gers_address_join is the 99 LiDAR counties: the address text matched and the distance then confirmed it. overture_gers_nearest_unclaimed is Kendall, Logan and Madison, which have no address file to match against, so the id rests on proximity alone. Serving the two as one answer presents a distance guess as a key hit.
derived
gers_match_ftDistance to the matched address(ft)ValidatedHow far this house sits from the address feature it keys to. Not the same measurement as Address match distance, which is how far the house sits from the address point it took its street address from.
On every keyed row. The join gate is 150 ft; statewide the keyed rows run p50 18.7 ft and p90 49.8 ft. A 19 ft join and a 140 ft join must not look alike downstream, which is why it is published rather than collapsed into a boolean.
derived
gers_rankWhich building this address points atValidatedWhere this building sits among the buildings sharing its address id, nearest first. 1 is the closest to the address point.
1 is the building closest to the address point. Measured 2026-09-23: 49,754 ids in the store are shared by more than one building in the same county, across 104,580 rows — several structures at one address, not duplicate rows for one structure. Ranked by gers_match_ft ascending, ties broken by house_id so the order is stable across re-exports.
derived
address_normalisedAddress, normalised for matchingValidatedThe street address folded to one form so that the two conventions in this store compare equal. For joining, not for display — the address column holds what the county published.
Produced by our own address normaliser, imported into the ingest pipeline and run unmodified. Verified to fold both conventions together: '18412 CAVE Road' and '18412 Cave Rd' both become '18412 cave road', as do '201 West PROSPECT Street' and '201 W PROSPECT ST'. The raw address column is never rewritten.
derived
npts_roofReturns on the roofValidatedLiDAR point-density counter. Use to reject rows whose measurements rest on too few returns.
A counter, not a measurement. Never render as a property attribute.
Illinois Height Modernization Program LiDAR · LiDAR only
npts_parcelReturns in the lotValidatedLiDAR point-density counter. Use to reject rows whose measurements rest on too few returns.
A counter, not a measurement. Never render as a property attribute.
Illinois Height Modernization Program LiDAR · LiDAR only
npts_ground_lastLast returns from the groundValidatedLiDAR point-density counter. Use to reject rows whose measurements rest on too few returns.
A counter, not a measurement. Never render as a property attribute.
Illinois Height Modernization Program LiDAR · LiDAR only
ground_under_canopy_fracGround visible under canopyValidatedLiDAR point-density counter. Use to reject rows whose measurements rest on too few returns.
A counter, not a measurement. Never render as a property attribute.
Illinois Height Modernization Program LiDAR · LiDAR only
npts_class14Returns classed as wireValidatedLiDAR point-density counter. Use to reject rows whose measurements rest on too few returns.
A counter, not a measurement. Never render as a property attribute.
Illinois Height Modernization Program LiDAR · LiDAR only
Metadata
lidar_tileLiDAR tileValidatedIdentifier of the source LiDAR tile.
Illinois Height Modernization Program LiDAR · LiDAR only
Accuracy
Every figure below is labelled with how it was measured, because the method changes what the number means. A balanced cross-validation score flatters a detector, since real properties are not evenly split between classes. A real-world corrected figure is measured on a random draw from actual predictions and reweighted to the true class frequency. We publish both and say which is which.
| Measurement | Precision | Recall | Method | Scope |
|---|---|---|---|---|
Swimming poolpool | 97.2% | 88.7% | Hand-checked | All covered counties |
Swimming poolpool | 97.8% | 80.6% | Hand-checked | All covered counties |
Rooftop solarsolar | 85.9% | 43.7% | Hand-checked | All covered counties |
Roof shaperoof_shape | 92.6% | 88.2% | Hand-checked | All covered counties |
Detached structuredetached | 89.7% | 83.3% | Hand-checked | All covered counties |
Detached structuredetached | 81.5% | 78.1% | Hand-checked | All covered counties |
Detached structuredetached | 75.8% | 69.3% | Hand-checked | All covered counties |
Swimming pool: Measured where a real parcel boundary exists. Measured on Real assessor parcel boundaries, 8,597 hand-reviewed labels, threshold 0.9. Completion report, weeks 1-8, 2026-08-23. 34,661 houses judged by humans in total, with 5,294 pool negatives re-checked on a second pass that corrected 226 labels. Threshold 0.9.
Swimming pool: Measured against an estimated lot rather than a filed parcel. The stricter 0.99 threshold buys precision at the cost of recall, which is the right trade when the boundary itself is inferred. Measured on Drawn lot boundaries, 5,849 hand-reviewed labels, threshold 0.99. Completion report, weeks 1-8, 2026-08-23. 34,661 houses judged by humans in total, with 5,294 pool negatives re-checked on a second pass that corrected 226 labels. Threshold 0.99.
Rooftop solar: Individual flagging only. At 43.7% recall this misses more than half of all installations, so a count over any geography will be badly low. Measured on 9,158 hand-reviewed labels. Completion report, weeks 1-8, 2026-08-23. 34,661 houses judged by humans in total, with 5,294 pool negatives re-checked on a second pass that corrected 226 labels.
Detached structure: Where LiDAR is available. Measured on 8,549 hand-reviewed labels, Clay embeddings fused with LiDAR yard features. Completion report, weeks 1-8, 2026-08-23. 34,661 houses judged by humans in total, with 5,294 pool negatives re-checked on a second pass that corrected 226 labels.
Detached structure: Photo only, without LiDAR, on a published parcel. The 8-point gap against the fused figure is the clearest measure of what the point cloud contributes. Measured on 9,801 hand-reviewed labels, Clay embeddings only, threshold 0.6. Completion report, weeks 1-8, 2026-08-23. 34,661 houses judged by humans in total, with 5,294 pool negatives re-checked on a second pass that corrected 226 labels. Threshold 0.6.
Detached structure: Drawn lot rather than a published parcel. Read with lot_open_frac: 76.1% precise where neighbours and roads bounded the lot, 47.3% where they did not. Measured on Retrained on drawn lots and measured against the same 11,365 hand-checked Cook houses, so nothing but the polygon differs. Completion report, weeks 1-8, 2026-08-23. 34,661 houses judged by humans in total, with 5,294 pool negatives re-checked on a second pass that corrected 226 labels. Threshold 0.6.
Sources
Leaf-on aerial imagery with a near-infrared band, flown by the USDA National Agriculture Imagery Program. The input to all four Clay detectors and to the spectral overlays.
Vintage: Varies by state, 1 to 3 years old · Resolution: 30 cm in Illinois, 60 cm elsewhere · Coverage: 49 states at 60 cm. 30 cm currently Illinois only (FIPS 17).
Licence verified: not recorded — this claim predates the rule that a source must be named.
Classified aerial LiDAR point clouds. The source of all 57 height, roof geometry, terrain, vegetation and yard measurements.
Vintage: Varies by county · Resolution: Point density varies by county. Sangamon is 0.28x Lake's. · Coverage: 99 of 102 Illinois counties carry the full 57 features, finished 2026-08-25. The other three are permanently blocked by their published archives rather than by absent LiDAR: Logan's holds a survey of a county 90 miles away, and Kendall's and Madison's index no archive that exists. Where a survey classified no building points the 57 still ship, but five b6_ columns are constant and the LiDAR detached head cannot be used.
Licence verified: not recorded — this claim predates the rule that a source must be named.
Building footprint polygons and heights. Used as the structure source where no open county assessor parcel layer exists, and as the validation reference for building height.
Vintage: Monthly release · Coverage: Global
Licence verified: Overture's own attribution page states the buildings theme is published under the Open Database License and carries the notice "© OpenStreetMap contributors. Available under the Open Database License", because OpenStreetMap is its highest-priority conflation source. Overture requires every other source blended into the theme to be ODbL or compatible. Read at https://docs.overturemaps.org/attribution/ and https://docs.overturemaps.org/guides/buildings/ on 2026-10-09. NOTE: this entry previously read "CDLA-Permissive 2.0" with a null licenseSource — the permissive licence belongs to Overture's PLACES theme, not buildings, and the claim had never been verified.
Regulatory flood zone polygons and Special Flood Hazard Area designation.
Vintage: Continuously revised by FEMA · Coverage: All 51 states and territories with NFHL data
Licence verified: not recorded — this claim predates the rule that a source must be named.
Tract-level demographic, housing, income, education and commute estimates.
Vintage: 5-year rolling estimates · Resolution: Census tract · Coverage: National
Licence verified: not recorded — this claim predates the rule that a source must be named.
House price appreciation and loan-level characteristics used to adjust value estimates to the present.
Vintage: Quarterly · Resolution: Tract, ZIP and county with a fallback chain · Coverage: National
Licence verified: not recorded — this claim predates the rule that a source must be named.
Modeled household electricity and natural gas cost, used for energy burden.
Vintage: See DOE release · Resolution: Census tract · Coverage: National
Licence verified: not recorded — this claim predates the rule that a source must be named.
Every structure over 450 square feet in the United States, as footprints with a modelled primary occupancy. Filtered to single-family dwellings, this is the house list for the 92 Illinois counties with no usable assessor parcel universe — it supplies which structures exist and where they are, and `idHouse` is built from its OBJECTID.
Vintage: Checked annually for updates by the publisher · Resolution: One footprint per structure over 450 sq ft · Coverage: United States and territories. Used for the 92 Illinois counties without an open assessor parcel universe; the other 10 come from county assessors.
Licence verified: The ArcGIS item behind the FeatureServer we actually query (item 0ec8512ad21e4bb987d7e848d14e7e24, owner Esri_US_Federal_Data) states: "This work is licensed under a Creative Commons by Attribution (CC BY 4.0) license." Its accessInformation credits Oak Ridge National Laboratory (ORNL) and the FEMA Geospatial Response Office. The layer itself returns an EMPTY copyrightText, so the item record is the only statement there is. Read 2026-09-04. NOTE: FEMA data is often assumed public domain as a US Government work; the thing we consume is an Esri-hosted view that declares CC BY, and what the publisher of the artefact we actually use says is what governs.
Street address points. The address source for the 97 Illinois counties whose houses come from FEMA structure ids and carry no assessor address of their own. Read from the Overture addresses theme, pinned release 2026-08-19.0, in the same public S3 bucket the building footprints already come from.
Vintage: Overture release 2026-08-19.0 · Resolution: One point per address · Coverage: 97 of the 99 Illinois counties that carry addresses. About 550,000 Illinois houses have no address point within 150 ft of them at all; Champaign 17019 alone is 53,131 houses against 1,929 points in the whole county.
Licence verified: Overture's attribution page names the United States source as the USDOT National Address Database and lists no separate Illinois, Cook or DuPage entry, so the national NAD terms govern every Illinois address we take from it. data.gov records the NAD's license as http://www.usa.gov/publicdomain/label/1.0/, and USDOT states the NAD is a work of the federal government and not subject to copyright under 17 U.S.C. Verified 2026-08-27.
Street addresses held against parcels by the county, pulled from DuPage's own ArcGIS parcel service and joined to houses through the parcel they stand on. An exact join, so match_ft is 0 and nothing is interpolated.
Vintage: As published by the county service · Resolution: One address per parcel · Coverage: DuPage County (17043) only.
Licence verified: DuPage County GIS open data licence, drafted by the county IT/GIS Division with its State's Attorney's office, as recorded in the rights statements the BTAA Geoportal carries for DuPage layers. Verified 2026-08-27. NOTE: the primary licence document itself was not reachable from the county GIS pages that day, so the wording recorded here is second-hand and worth re-checking before it appears in a contract.
Street addresses joined to houses on the 14-digit PIN, from the Assessor's published Parcel Addresses table. Exact, so match_ft is 0. Also the only clean address ground truth in Illinois - every accuracy figure quoted for the matched counties was measured against these 924,288 rows.
Vintage: 1999 to present, republished bi-weekly · Resolution: One address per parcel PIN · Coverage: Cook County (17031) only. 924,288 houses.
Licence verified: Cook County Open Data (Socrata) dataset 3723-97qp returns an attribution field of "Cook County Assessor's Office" and NO licenseId; catalog.data.gov shows the dataset with an access level of public and no License field; cookcountyil.gov/terms-use asserts copyright over County website content and tells a user to presume permission is needed before reuse. Verified 2026-08-27.