Flood Risk Intelligence
SEEDED · NFHL 32257

Flood risk vs.
home listings

ZIP 32257 — Mandarin, Jacksonville FL Source: FEMA National Flood Hazard Layer 20 properties Seeded NFHL geography
32257 Mandarin · Duval County

Drop 32257_flood_enriched.csv to load real NFHL data

Output of fema_flood_lookup.py · point-in-polygon · Duval County shapefile
Showing seeded NFHL zones for ZIP 32257 — run fema_flood_lookup.py and upload the CSV for live point-in-polygon assignments.
Zone

Homes per zone

Median price by zone

Price vs. risk score

Flood zone map

AE — High X-500 X — Minimal River

Key insights

AUTO · ZIP 32257
Property listings Tap a row to see flood details
Address Price Beds/Ba Sqft $/sqft Zone Risk Src Panel

Source: FEMA National Flood Hazard Layer
Duval County

Florida coastal flood exposure

Comparing flood zone distribution and pricing across 5 high-activity Jacksonville-area ZIP codes.

AE zone % by ZIP

Median price vs. avg risk

ZIP comparison
ZIPAreaProperties % AE% X-500% X Median priceAvg riskIns. required

Source: FEMA National Flood Hazard Layer
Duval County

Live flood lookup

Query FEMA NFHL flood zone data by ZIP code or street address — live data, no seeded values.

Resolves county FIPS → fetches Layer 28 polygons → counts parcels per zone · ~5–15 sec

Fetching NFHL data…
Resolving county FIPS from ZIP
Fetching FEMA Layer 28 flood polygons
Counting parcels per flood zone
Rendering results
LIVE · NFHL

Flood zone distribution

Verify on FEMA MSC

Zone counts are estimates from the FEMA National Flood Hazard Layer. Always verify at msc.fema.gov for official flood zone determinations.

Looking up address…
Geocoding via OpenStreetMap
Resolving county FIPS from coordinates
Point query on FEMA NFHL Layer 28
Rendering flood zone result
LIVE · NFHL

Flood zone

Insurance

Annual flood probability

FIRM panel

Estimated risk score
Verify on FEMA MSC

Flood zone result from the FEMA National Flood Hazard Layer. Always verify at msc.fema.gov for official determinations.

Data methodology

How flood zone assignments, risk scores, and property data are sourced, processed, and visualized in this tool.

Data sources

FEMA · CENSUS · MLS

Three independent sources are combined to produce each property record:

  • FEMA NFHL — National Flood Hazard Layer, Layer 28 (S_FLD_HAZ_AR flood hazard area polygons). Duval County FIPS 12031. Updated quarterly by FEMA.
  • Census Geocoder — Free US address geocoding API (no key required). Returns lat/lng for each property address.
  • Property listings — 20 sample addresses in ZIP 32257, representative of active Mandarin market inventory across price tiers.

Processing pipeline

fema_flood_lookup.py

The fema_flood_lookup.py script runs locally to produce live NFHL assignments:

01
FEMA ArcGIS REST
Layer 28 · paginated
02
GeoPandas GDF
EPSG:4326 normalized
03
Census Geocoder
lat/lng per address
04
Point-in-polygon
shapely contains()
05
CSV output
32257_flood_enriched.csv

FEMA zone classification

NFHL LAYER 28
ZoneRisk tierIns. req.Annual probability
AE High — Special Flood Hazard Area (SFHA) ✓ Required ≥1% (100-yr flood)
X (shaded) Moderate — 500-yr floodplain Not required 0.2% (500-yr flood)
X Minimal — outside 500-yr floodplain Not required <0.2%
AO/AH/VE Treated as AE (high risk) ✓ Required ≥1%

Risk score model (1–10)

COMPOSITE SCORE

Risk scores are a composite of three inputs, not a direct FEMA output:

  • Zone tier — AE anchors 6.5–9.0, X-500 at 3.5–5.5, X at 1.0–2.8.
  • River proximity — AE properties closer to St. Johns River (lat ~30.170) receive up to +1.5 score boost, capped at 10.
  • Variance — Small random component within each tier range prevents identical scores across same-zone properties.

Seeded data uses pre-assigned scores matching realistic NFHL geography for 32257. Live CSV from fema_flood_lookup.py replaces seeded values with computed scores.

Seeded data vs. live NFHL assignments

SEED

Default state — 20 Mandarin properties with flood zones and risk scores pre-assigned from NFHL geographic knowledge of the 32257 corridor. AE properties are placed in the river-adjacent zone; X properties are in the inland elevated northern section.

No external API calls. Works offline. Suitable for demo and interview contexts.

LIVE

Run fema_flood_lookup.py locally to fetch real NFHL polygons from the FEMA ArcGIS REST API, geocode each address via Census Bureau, and perform a true point-in-polygon join. Upload the resulting 32257_flood_enriched.csv to replace seeded data.

Requires Python + geopandas. Takes ~2 min. Produces ground-truth FEMA zone assignments.

Disclaimer: This tool is a pre-production research demo built for interview purposes. Flood zone data reflects FEMA NFHL Layer 28 and should be independently verified at msc.fema.gov before any real estate or insurance decision. Property data is illustrative.

Source: FEMA National Flood Hazard Layer
Duval County