dc rat radar
signal · rodent reports

Where are the rats — and where were we too slow?

Live read on DC rat reports: where it's hot right now, what's trending up, which recent surges we could have caught early, and whether abatement is actually driving reports down. Detection runs per hex, labeled by neighborhood, scored causally so "should-have-known" dates are honest.

🔥 Hot right now

last ~90 days vs each area's seasonal normal

📈 Trending up

accelerating over the past month

⏰ Caught late

recent spikes we had early warning on

Pick a hotspot on the map or from the board.

reports · last 90d
vs seasonal normal
best early warning

the analytics behind it

Anatomy of an early-warning signal

Anyone can plot a line that rises in summer. The hard part is separating a real, actionable surge from ordinary seasonality and years-long growth, dating it honestly using only what was knowable at the time, and then asking whether the response actually worked. That's the whole pipeline — and it re-points at any 311 service type, not just rats.

01

Ingest

Every geolocated rodent report and its ticket-closure date, straight from DC's live 311 API, back to 2018.

DC Open Data · S0311
02

Locate

Each report snapped to an H3 hexagon and labeled with its nearest single DC neighborhood — fine, uniform, no merged clusters.

res-8 hex · 132 nbhd names
03

Seasonal baseline

Expected count = the same week-of-year in prior years. Kills the "everything spikes in July" false alarm.

±3-week window
04

Trend correction

A trailing multiplier tracks each area's current trajectory, so a decade of growth isn't a permanent alarm.

adaptive level
05

Causal scan

Week t uses only data before t. Fire on an overdispersed-Poisson exceedance or a sustained warm run, then measure lead time to the peak.

z ≥ 3.5 · no look-ahead
06

Abatement check

Do ticket closures drive future reports below baseline? A partial correlation (controlling for current levels) separates treatment from regression-to-mean.

closures → future excess

Built with PythonH3 hex gridNumPy Leaflet + heatChart.jsDC Open Data API

Detection at H3 res 8 labeled by nearest neighborhood; heatmap at res 9. One script re-points the engine at any 311 service code. Abatement is observational — suggestive, not proof. Aggregate DC public-records data; not an official DPW signal.

Aggregate DC public-records data from DC Open Data (ArcGIS). Detection + visualization are experimental.