live data
EVERY GEOLOCATED CAPITAL PROJECT · TAP A DOT
Filter

Flood-resilience status

Flood-aligned
Not flood-aligned
◍ size & brightness = committed spend
INITIALIZING MAP…

What's at stake

New York is committing billions in capital funds to defend neighborhoods from flooding. Here's where that money stands today — and how many projects sit in the city's most flood-vulnerable ground.

Where the flood-resilience dollars go

Spend by category

Total committed spend by flood-resilience category · USD

Full ranking

All tracked categories, highest first
    Shade by

    Flooding vs. flood funding

    Each dot = a community district · lower-right = floods a lot, funded little

    Most flood-burdened districts

    Flooding events vs. flood-aligned $ · ranked by flooding
      MAY 20, 2026 · NYC FLASH-FLOOD EVENT
      --:--
      0 sensors flooding 0" deepest now 0 trains 0 buses

      FLOOD DEPTH

      0"12"24"+
      LOADING STORM…
      Methodology & Credits

      How TIDELINE was built

      TIDELINE connects where New York floods to where the city commits its flood-resilience capital dollars — down to the community-district level — and replays a real flash-flood. Everything below documents the data, the joins, and the judgment calls, including where a number is a measured fact versus a modeled estimate.

      1 · Data sources

      All inputs are open datasets (NYC snapshot 2026-06-24; MTA static GTFS):

      2 · Connecting projects to spending

      Join. CPDB maprojid (e.g. 039LQMTGRMS) and the budget's Project Id (e.g. 035 L21FREEZE) are the same agency-prefixed code with a stray space, so we join on a whitespace-stripped, uppercased key. This matches 2,161 of 2,747 CPDB projects (the rest aren't tracked as climate investments).

      One snapshot, to avoid double-counting. The report contains three publication snapshots; the same dollars appear in each. Every figure uses the single latest snapshot — FY2026 Executive Budget (published 05/12/2026). Amounts are USD thousands, formatted to $M/$B.

      Flood definitions (from the budget's own ratings): a project is flood-aligned if Flood Resiliency ∈ {Aligned, Aligned Component}; flood-vulnerable if Flood Vulnerability Index = true; the category breakdown sums spend by Flood Resiliency Tracking Category.

      3 · Flood funding vs. flood burden (Districts)

      This is the dashboard's headline equity claim, so it carries the most interpretation. The unit is the community district (FloodNet's CommunityBoard and the districts' BoroCd share the same borough-prefixed coding, so they join directly).

      • Flooding burden = count of measured FloodNet flood events per district (robust, intuitive). 52 of 71 districts have ≥1 event.
      • Flood funding = flood-aligned $ assigned to each district by point-in-polygon (Shapely; multipoint projects use their centroid).
      • Adequacy gap = fund − need, where each is normalized 0–1 against the citywide max. Negative ⇒ floods more than its funding share suggests.
      StatusRuleMeaning
      Underfundedgap < −0.15High flooding, comparatively low flood funding
      Balanced−0.15 … 0.15Funding roughly tracks flooding
      Well-fundedgap > 0.15Flood funding outweighs measured flooding
      No data0 eventsNo FloodNet-measured flooding to compare

      4 · The May 20, 2026 storm

      Flooding (measured). We replay every FloodNet event on 2026-05-20 — 105 events across 97 sensors, peak depth 46 in, up to 68 sensors flooding at once (~23:35 GMT) — by interpolating each sensor's depth time series along a storm clock. Rain density tracks the live intensity.

      Subway & bus movement (scheduled, not a live replay). MTA real-time feeds are present-tense only and the static GTFS calendar doesn't reach a past date, so we apply the weekday timetable to that Wednesday and animate trains/buses along their real routes and stops: ~10,500 subway trips (with route geometry) and ~11,000 bus trips (thinned from ~65k citywide for performance).

      Disruption flags (a proximity heuristic). A line is flagged when one of its stops sits within ~300 m of a sensor flooding above 12 inches (track-level) at that moment — 12 subway lines (peak 8) and 33 bus routes (peak 26). It flags service near flooding; it does not alter movement and is not a record of actual MTA service changes that night.

      Read this before quoting the numbers

      Treat the equity finding as a screening signal, not a verdict. FloodNet coverage is uneven, so event counts partly reflect where sensors are, not only where flooding is worst. Funding is attributed by a project's mapped point, which may not be where its benefit lands (a sewer or coastal barrier protects beyond its centroid). Normalization is relative to the citywide max, and figures reflect a single budget snapshot. Transit motion and disruptions are scheduled/modeled, not live recordings.

      5 · Credits

      This project was a combined effort between David A. Lee, Dean Berkowitz, and Lyndsey Kaplan for the State Capacity and AI Hackathon hosted on June 24, 2026 at the CUNY Graduate Center. Many thanks to the organizers and judges for their incredible work in orchestrating this wonderfully fun event!

      Couldn't load dashboard_data.json
      Browsers block file access over file://. Serve the folder:
      python -m http.server 8000  →  open http://localhost:8000