FA Assessor — Roof Code Lookups
Code→meaning lookups for the two First American Assessor roof fields, extracted from FA Assessor Custom_8020 20231006.xlsx (sheets ROOF_COVER, ROOF_TYPE). Source dictionary: ~/Downloads/Dictionary FA-20260518T230302Z-3-001.zip.
Column definitions (from notes/fa_column_meanings.csv):
| Column | FA definition | Type | Null rate | In-data values |
|---|---|---|---|---|
RoofCoverCode | "Type of cover installed on the roof of the building" | int(3) → ROOF_COVER lookup | 67 % (33 % populated) | 18 distinct observed |
RoofTypeCode | "Shape of roof" | int(3) → ROOF_TYPE lookup | 96 % (4 % populated) | 13 distinct observed |
Column-review verdict (notes/columns_reviewed_v2.csv): RoofCoverCode → INCLUDE (construction feature with condition signal). RoofTypeCode → EXCLUDE (96 % null).
ROOF_COVER — roof cover material (28 codes)
Material drives expected roof lifespan, which drives replacement timing — the core Step 5 use. Lifespan bands below are rough industry ranges (validate before using as a hard feature).
| Code | Material | Rough lifespan |
|---|---|---|
| 1 | Asbestos | 30-50 yr (legacy, rarely re-permitted) |
| 2 | Built-up | 10-20 yr (flat/low-slope) |
| 3 | Composition Shingle | 15-25 yr |
| 4 | Concrete | 40-50 yr |
| 5 | Metal | 40-70 yr |
| 6 | Slate | 75-100 yr |
| 7 | Rock / Gravel | 10-20 yr |
| 8 | Tar & Gravel | 10-20 yr |
| 9 | Bermuda | — (rare) |
| 10 | Masonite / Cement Shake | 20-30 yr |
| 11 | Fiberglass | 20-30 yr |
| 12 | Aluminum | 40-50 yr |
| 13 | Wood Shake / Shingles | 20-30 yr |
| 14 | Other | — |
| 15 | Asphalt | 15-25 yr |
| 16 | Roll Composition | 8-15 yr |
| 17 | Steel | 40-70 yr |
| 18 | Tile | 50+ yr |
| 19 | Urethane | 10-20 yr (foam, flat) |
| 20 | Shingle (Not Wood) | 15-25 yr |
| 21 | Wood | 20-30 yr |
| 22 | Gypsum | — (rare) |
| 23 | Ceramic tile | 50+ yr |
| 24 | Clay tile | 50-100 yr |
| 25 | Concrete tile | 40-60 yr |
| 26 | Copper | 70+ yr |
| 27 | Tin | 40-50 yr |
| 28 | Solar | n/a — solar roof; cross-check vs SOLAR permit_type |
Model relevance: RoofCoverCode + EffectiveYearBuilt (or last ROOFING permit date) → roof age relative to material lifespan → replacement-due signal. Short-lifespan materials (asphalt/composition/roll, codes 3/15/16/20) hitting their lifespan band = high reroof propensity. Long-lifespan (tile/slate/metal) = low. This is a strong Step 5 INTERNAL feature.
ROOF_TYPE — roof shape (17 codes)
96 % null — EXCLUDE per column review. Listed for completeness only.
| Code | Shape | Code | Shape | |
|---|---|---|---|---|
| 1 | Gable | 10 | Gambrel | |
| 2 | Bowstring Truss | 11 | Mansard | |
| 3 | Reinforced Concrete | 12 | Prestress Concrete | |
| 4 | Dome | 13 | Rigid Frm Bar Jt | |
| 5 | Steel Frm/Truss | 14 | Shed | |
| 6 | Flat | 15 | Sawtooth | |
| 7 | Gable or Hip | 16 | Wood Truss | |
| 8 | Hip | 17 | Monitor | |
| 9 | Irr/Cathedral |
Access status (as of 2026-06-05)
RoofCoverCode lives in Silver REM (s3://8020rei-silver-data-lake/Real_Estate_Master_V1/). The local coverage subset (data/coverage_run/silver/<FIPS>/sfh.parquet, 25 cols) does NOT carry it. The ClaudeCode-Ignacio-Full IAM policy has gold-lake read only — AccessDenied on s3:ListBucket for the silver lake. Pulling RoofCoverCode needs an IAM expansion (silver-lake read) — pending Ignacio.
Other FA Assessor code-list sheets available (same xlsx)
40+ lookup sheets extracted to /tmp/fa_dict/ — relevant for Step 5 if silver access lands: CONDITION, QUALITY, CONST_TYPE, EXT_WALL, BLDG_CODE, HEAT, AC, STORIES, STYLE, POOL, GARAGE, BASEMNT, FLOOD, OWNER_OCC, etc. Extract on demand.