What PulseCities does

Search a place Look up an address or ZIP and see recent public-record activity nearby.
Track signals Review permits, complaints, evictions, violations, ownership changes, and rent-stabilized unit loss in one place.
Follow patterns Spot neighborhoods, buildings, and operators where multiple displacement-pressure signals appear together. Operator profiles are being expanded through public-record matching.

Who it is for

Tenants

For people trying to understand what is changing around their building or block.

Journalists

For reporters looking for public-record leads, landlord patterns, and neighborhood movement.

Legal aid and organizers

For teams that need a faster way to triage places worth reviewing.

Researchers

For people studying housing pressure, NYC public records, and urban change.

PulseCities is an investigative tool, not legal advice.

Built from public records

PulseCities combines six public-record signals into a neighborhood-level score: DOB permits, HPD violations, 311 complaints, eviction records, ACRIS ownership transfers, and DHCR rent-stabilized unit data.

Scores are normalized by residential units so raw counts do not overwhelm dense neighborhoods. A score is not a prediction about a specific tenant or building. It shows where multiple displacement-pressure signals appear together.

Read the full methodology, data sources, and scoring weights →

Why PulseCities exists

NYC housing records are public, but they are scattered across separate systems. PulseCities brings those records into one place so tenants, reporters, organizers, and researchers can see where pressure is building and trace the signals back to source data.

Built by Michael Espin

PulseCities was built by Michael Espin, a computer science and AI systems graduate focused on public data infrastructure, civic tools, and applied data engineering.

The project combines Python data pipelines, FastAPI, PostgreSQL/PostGIS, public-record scraping, geospatial scoring, and a fast MapLibre interface.

Python pipelines FastAPI PostgreSQL + PostGIS MapLibre GL JS Public-record scraping Six-signal scoring

Contact

Questions, corrections, or story tips.

nycdisplacement@gmail.com

Data corrections

PulseCities uses public records that can lag, contain address inconsistencies, or change after publication. If something looks wrong, send the address, ZIP, source label, and record date. NYC public records have city-side reporting lags: ACRIS data typically lags two weeks, eviction data two to four weeks.

For reporters

Reporters can cite PulseCities as a public-record analysis tool. When referencing scores or ownership patterns, please link to the relevant ZIP page, operator profile, or the methodology so readers can review the underlying data and sources.

Follow project updates: @PulseCities

Last updated: April 2026