PulseCities methodology
PulseCities ranks New York's 177 residential ZIP codes against each other on five public-record signals: ownership changes, permits, housing complaints, HPD violations and executed evictions. A high score means a ZIP stands out from the rest of the city on those records. It is a rank, and it does not predict outcomes.
Explore the map or browse operator profiles such as MTEK, PHANTOM, and BREDIF.
How to read the score
A score is not a prediction about a specific tenant or building. It ranks a ZIP code against the rest of the city on the five signals below, so a high score means the neighborhood stands out on those records. A low score does not mean no risk exists.
What this shows
A nightly pipeline pulls public data from New York City, joins it by Borough Block Lot (BBL), and scores every ZIP code in the city against the rest. Select a neighborhood to see the score, the signals driving it, and the records behind them.
You can also search any company or LLC name to see its full NYC portfolio: how many entities it uses, which buildings it owns, and what violations or evictions are connected to them. The search covers companies, not individuals. Deeds held by a private person are counted in the totals on this site but are not searchable by name, because a name-searchable index of private homeowners is a different product than this one.
Data sources
Every dataset is public record. Dataset IDs link to the underlying public records where available.
Deed transfers in NYC: document master, buyer/seller parties, and BBL legals. Three joined tables. ACRIS data has a city-side reporting lag of about two weeks, and the NYC Open Data deed feed publishes intermittently, so it can run several weeks behind. The latest deed date on file is shown on the status page.
Permit filings from the Department of Buildings. The scorer counts alteration permits (type AL) on residential buildings with 3+ units. Updated nightly.
Housing-related complaints including heat, hot water, pests, mold, and maintenance issues. Filtered to displacement-relevant complaint types. Updated nightly.
Residential evictions executed by NYC marshals. The scorer uses executed evictions only, not filings. The Department of Investigation publishes the marshal file 2 to 4 weeks after the fact. Updated nightly.
Class B and C violations on 3+ unit residential buildings. The scorer uses a 90-day inspection window. Updated nightly.
Apartment counts per building from HPD, used as a measure of building size. This is not rent-stabilization data. The state's annual rent-stabilized unit snapshot was withdrawn from NYC Open Data in April 2026, so the RS unit-loss signal has no live source and carries no weight in the score; its weight is redistributed across the active signals.
NYC Dept of City Planning parcel reference data. Used to normalize all signals per residential unit and to join records by BBL. Updated annually.
How scoring works
The score runs from 0 to 100. A higher number means the ZIP ranks higher against the rest of the city on the signals below.
All displacement signals are measured over the past 365 days (HPD violations use a 90-day window), normalized per residential unit.
Five signals, and one retired
| Signal | Weight | Window |
|---|---|---|
| LLC acquisitions Residential deed transfers to LLC buyers. LLC-to-LLC transfers (where both buyer and seller are LLCs) and mortgage servicers are excluded. | 26% | 365 days |
| Permit filings Alteration permits (type AL) on 3+ unit residential buildings. Can signal reinvestment, turnover pressure, or building changes. | 21% | 365 days |
| 311 complaint rate Housing-related complaints including heat, hot water, pests, mold, and maintenance issues. | 17% | 365 days |
| Evictions Executed residential evictions by NYC marshals. Filed cases that resolved without execution are not counted. The Department of Investigation publishes the file 2 to 4 weeks after the fact. | 13% | 365 days |
| HPD violations Class B and C violations on 3+ unit buildings. Clusters of serious violations can indicate building distress, neglect, or pressure on tenants. | 8% | 90 days |
| Rent-stabilized unit loss, retired Year-over-year loss in registered rent-stabilized units per building. Retired in April 2026, when the state withdrew the annual snapshot dataset. No published source carries building-level stabilized-unit counts past 2023, so this signal carries no weight and its share is redistributed across the active five. The 2018 to 2023 counts are kept as historical reference only, and the rent stabilization figures on the operator detail view are historical through 2023. | 15% | Annual |
When a signal has no live source, its weight is redistributed proportionally to the active signals so the composite always sums to 100%.
Score ranges
- 0 to 33 Low pressure
- 34 to 44 Moderate pressure
- 45 to 54 High pressure
- 55 and up Critical (alert flag shown)
The bands are set against the range the composite actually produces, not against a hypothetical 0 to 100 spread. The highest-scoring ZIP in the city sits at 64, because the composite blends five signals normalised across all 177 neighborhoods and no neighborhood is at the extreme of every one at once. 10457 ranks first in the city on both executed evictions and HPD violations and still scores 54.0, since acquisitions and permits carry more than half the weight and it is mid-pack on both. Bands were last calibrated on 2026-08-28.
Score adjustments
These adjust the composite score upward independent of the weighted signals.
- +8 points Building appears on HPD Speculation Watch List
- +4 points Owner portfolio over 20 properties citywide
- +3 points HPD building registration lapsed
Why scores are normalized
Raw event counts favor dense neighborhoods simply because they have more buildings and residents. PulseCities normalizes all signals per residential unit using MapPLUTO unit counts so the score reflects signal intensity, not neighborhood size.
ZIP codes with zero or null unit counts fall back to the borough median residential unit count to prevent division-by-zero artifacts in lower-density areas.
Methodology reference
PulseCities is inspired by displacement-risk indicator work from the Association for Neighborhood and Housing Development (ANHD), which has been scoring NYC buildings for displacement risk since 2016 using rent-stabilized unit loss, tenant turnover, and sale prices.
PulseCities uses its own scoring model, live data pipeline, and public-record normalization. It is not affiliated with ANHD or the NYC Equitable Development Data Explorer.
Limitations
- A score is not evidence that a specific landlord is breaking the law. Displacement pressure is not the same as illegal behavior.
- The score describes current conditions, not predictions. Whether pressure translates to displacement depends on factors outside the data.
- A high-score neighborhood does not mean every tenant is at risk. A low score does not mean no displacement pressure exists.
- Public records can lag. ACRIS usually lags about two weeks and sometimes stalls for a month or more; the pages that show deeds print the last date it published. Eviction data typically lags two to four weeks.
- Source data can contain address or entity inconsistencies that affect matching accuracy.
- Operator matching is conservative and based on public records. Some related entities may not be connected.
- The written summaries on neighborhood panels and in the weekly email are generated by a language model from the counts shown beside them. They restate the record in prose. They do not add to it, and the counts are what to cite.
How data updates
Scrapers run every night at 2am UTC. Most datasets refresh daily. ACRIS usually lags about two weeks from the city, and it stalls: it has gone a month at a time without publishing. Eviction data has a 2 to 4 week reporting lag. The status page shows when each feed last published.
Stack
PulseCities runs on FastAPI, PostgreSQL with PostGIS, MapLibre GL JS, Python scrapers, APScheduler and Pydantic.
Frequently asked questions
What does the score mean?
The score ranks a ZIP code against the other 176 on five public-record signals. A higher number means the ZIP stands out more from the rest of the city on those records. It does not measure an amount of pressure, and it does not predict what will happen to any specific tenant or building.
Does this predict eviction?
No. The score ranks a ZIP against the rest of the city on records already filed. It doesn't predict evictions, for a building or for a neighborhood.
Where does the data come from?
The score is built from NYC Open Data: ACRIS deed records, DOB permits, HPD violations, 311 complaints, eviction records, and HPD building registrations. Every dataset is public record.
How often is it updated?
Scrapers run nightly at 2am UTC. Most datasets refresh daily. ACRIS is the exception: it usually lags about two weeks, and it stalls, most recently for over a month. Eviction data lags two to four weeks. Every page that shows deeds prints the last date ACRIS actually published.
Contact
Questions, corrections, or story tips.