Each of the 64 city blocks carries its own climate-risk score ri(t), a vulnerability score vi (limited adaptive capacity — income, housing quality, tree cover) and a population share pi. Risk escalates with the projection year at a rate that is itself correlated with vulnerability, mirroring how under-resourced areas usually adapt slower:
r_i(t) = clamp(r_i(2025) + k·v_i · (t-2025)/25, 0, 1)
A single city-wide KPI — what most public dashboards actually publish — is the population-weighted mean, blind to who bears it:
R_avg = Σ p_i·r_i
The equity-adjusted burden reweights each block by its own vulnerability, controlled by the slider weight w ∈ [0,1]:
B(w) = Σ p_i · r_i · (1 + w·v_i) ⁄ Σ p_i · (1 + w·v_i)
The disparity ratio compares mean risk in the top vulnerability quartile against the bottom quartile — the number a single averaged headline figure cannot show. City-Wide Average flattens every block to R_avg to make that concealment visible; By Neighborhood restores the real distribution, colored by risk and marked with a dot sized by vulnerability. Blocks above the high-risk threshold outline in red; the "population in high-risk gap" reads the population share where both risk exceeds the threshold and vulnerability exceeds 0.5 — exactly the disaggregation the article's Equity FAQ calls for. Drag to pan the grid, scroll/pinch to zoom.