Aerial view of flooding in downtown Montpelier, Vermont, July 2023
Flooding in downtown Montpelier, Vermont, July 2023. Credit: Vermont National Guard / Wikimedia Commons, public domain.

Floodlines

Technical Appendix

Executive Summary

Floodlines integrates FEMA, Census, NFIP, and Vermont geospatial datasets to estimate relative flood mitigation need across Vermont municipalities. Need is modeled as a combination of flood exposure and social vulnerability. Funding alignment is evaluated by comparing FEMA mitigation investments against modeled need. The analysis finds that funding is only weakly associated with modeled structural need and more strongly associated with historical flood losses, suggesting a predominantly reactive allocation pattern.

Key Findings

Schematic of data processing and modeling workflow
Data sources and analytical workflow used in this study. Federal hazard, insurance, demographic, and mitigation datasets are integrated at the municipal level and transformed into comparative measures of need, funding, and funding alignment. Source: AI-generated.

Research Question

This analysis evaluates whether flood mitigation funding in Vermont aligns with underlying need. “Need” is treated as a normative construct (what funding should target), while observed funding patterns reflect real‑world allocation dynamics.

Data Sources

Data Processing and Integration

Spatial Data

NRI Aggregation

ACS Socioeconomic Data

FEMA HMA Funding Data

NFIP Claims and Policies

Final Dataset

Need Index Construction

A composite need index was developed to estimate relative flood mitigation need across towns.

Components

Method

Rationale

EAL was selected as the primary risk variable for its multidimensional loss capture. A parsimonious set of vulnerability variables preserves interpretability while retaining signal.

Model Evaluation

Robustness Checks

Sensitivity Analysis

Model Comparison

Normalization Choice

Rank-based normalization was used for all published indices rather than z-scores.

Model Selection

Three models were selected for the web analysis based on complementary strengths in predictive signal, stability, and external benchmarkability:

Funding Alignment Analysis

Gap Index

Gap = normalized need − normalized funding per capita (log-scaled). Positive values indicate underfunding relative to need; negative values indicate overfunding.

Observed: moderate positive correlation with need (~+0.32 to +0.49), indicating the index captures allocation mismatch rather than simply re‑labeling need.

Correlation Analysis

Regression Analysis

Spatial Analysis

Quadrant Analysis

Towns were categorized by need and funding into zero funding, underfunded (high need, low funding), aligned, overfunded, and low priority groups.

Key Findings

Key Limitations

Reproducibility

All data sources used in this analysis are publicly available. Data processing, model construction, sensitivity testing, and dashboard generation scripts are available in the project repository.

Abbreviated Dashboard Data Dictionary

The interactive dashboard uses a flat town table (town_stats.csv) and a simplified town GeoJSON to power choropleths, charts, rankings, and town-level summaries. A complete field-level data dictionary is available in the project repository.

Identifiers & base attributes

Core socioeconomic & exposure fields

pct_below_poverty, percent_elderly, pct_no_vehicle, pct_renter_occupied, median_income — socioeconomic indicators used to build the vulnerability component shown in the vulnerability choropleth and stats card.
IFLD_EALT_weighted, EAL_per_capita — expected annual loss (EAL) measures used as primary exposure/risk inputs.

Vulnerability composite

vulnerability, vulnerability_rank, vulnerability_rel — composite (percentile‑rank mean of poverty, elderly, no‑vehicle) used in the vulnerability choropleth and as part of need.

Modeled indices (per‑model naming convention)

For each model suffix (examples used in export: eal, eal_per_capita, nri) the dashboard expects the following patterns:

Funding and NFIP fields

State summary row

The export appends a synthetic town_name = "State of Vermont" row populated with population‑weighted averages (and totals where appropriate) so the dashboard can show statewide comparisons without extra aggregation.

Provenance & Notes