Methodology
PulseCities methodology
PulseCities tracks where displacement pressure is increasing across NYC. Each neighborhood score reflects changes in public records: evictions, building complaints, permits, and ownership patterns. It does not predict outcomes. It shows where pressure is building.
- Displacement pressure by neighborhood
- Based on public record activity
- Updated nightly
- Not predictive
Explore the map or browse operator profiles.
How to read the score
What this shows
A nightly pipeline that pulls public data from New York City, joins it by Borough Block Lot (BBL), and produces a displacement risk score for every ZIP code in the city. Select a neighborhood to see the score, the signals driving it, and what has been recorded on the ground.
You can also search any landlord or LLC name to see their full NYC portfolio: how many entities they use, which buildings they own, and what violations or evictions are connected to them.
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 approximately two weeks.
Permit filings from the Department of Buildings. The scorer counts alteration permits (type AL) on residential buildings with 3+ units. Updated daily.
Housing-related complaints including heat, hot water, pests, mold, and maintenance issues. Filtered to displacement-relevant complaint types. Updated daily.
Residential evictions executed by NYC marshals. The scorer uses executed evictions only, not filings. OCA data typically lags 2 to 4 weeks. Updated daily.
Class B and C violations on 3+ unit residential buildings. The scorer uses a 90-day inspection window. Updated daily.
Annual rent-stabilized unit counts per building from DHCR. Used to measure year-over-year RS unit loss. Updated annually.
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. Higher numbers mean more displacement-pressure signals in the public record.
All displacement signals are measured over the past 365 days (HPD violations use a 90-day window), normalized per residential unit.
Six signals
| 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. OCA data typically lags 2 to 4 weeks. |
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 Year-over-year loss in registered rent-stabilized units per building. A direct signal of rent-stabilized housing loss when annual comparisons are available. Dormant until 2027. Requires two consecutive DHCR annual snapshots.
|
15% | Annual |
When a signal is dormant, its weight is redistributed proportionally to the active signals so the composite always sums to 100%.
Score ranges
Bonus signals
These adjust the composite score upward independent of the six weighted signals.
- +8 pts Building appears on HPD Speculation Watch List
- +4 pts Owner portfolio over 20 properties citywide
- +3 pts 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 data typically lags two weeks. 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.
How data updates
Scrapers run every night at 2am UTC. Most datasets refresh daily. ACRIS data has a 2-week reporting lag from the city. Eviction data has a 2 to 4 week reporting lag. The site shows the timestamp of the most recent successful scraper run at the bottom of every page.
Stack
Frequently asked questions
What does the score mean?
The score shows how many displacement-pressure signals appear in public records for a ZIP code. A higher number means more indicators are present. It does not predict what will happen to any specific tenant or building.
Does this predict eviction?
No. PulseCities shows where public-record pressure is building, not where evictions will occur. The score reflects activity in the record, not outcomes.
Where does the data come from?
All data is from NYC Open Data: ACRIS deed records, DOB permits, HPD violations, 311 complaints, eviction records, and DHCR rent-stabilized building registrations. Every dataset is public record.
How often is it updated?
Scrapers run nightly at 2am UTC. Most datasets refresh daily. ACRIS data lags approximately two weeks; eviction data lags two to four weeks.
Contact
Questions, corrections, or story tips.
Last updated: April 2026