Methodology
How a report is built
Every figure comes from a public city record and links back to it. Here’s how those records become a number — and what that number doesn’t mean.
Step one
Finding the right building
You pick from a list rather than typing freely. Each suggestion carries a BBL — the Borough-Block-Lot number identifying a tax lot — and every record is keyed to it.
The worst thing this could do is confidently report on the wrong building. So we never guess at an address, and never accept one the city can’t confirm.
Step two
Weighing the violations
Violations come in three classes: A (non-hazardous, 90 days to fix), B (hazardous, 30) and C (immediately hazardous, 21). Counting them isn’t enough.
Class alone misleads. Under Local Law 55 every pest violation is automatically Class C — the same as no heat in January. Score by class and one mouse outranks a winter without heating. So each violation is weighted by what it is: lead and heat at the top, paperwork at the bottom.
Age matters. Weight halves every two years, and anything still open counts triple — it’s a condition you’d move into.
The total is divided by apartment count, so a 200-unit building isn’t punished for being large.
The number we would look at
Whether anyone actually fixes things
A violation means an inspector showed up. The repair rate means someone did something — the share fixed before the city’s deadline. Two buildings with forty violations each are very different places to live if one fixes 90% on time and the other 9%.
Below ten assessable violations we say so rather than publish a percentage about a named business from a handful of records.
Rent regulation
What we can and cannot tell you about stabilization
No public list says which apartments are stabilized. But the Department of Finance prints the count on each building’s annual tax bill, and those figures are public with a link to every source document.
So where we have it we report a fact — “the 2024 tax bill recorded 41 of 43” — and show how it’s moved since 2018, because a falling count is what deregulation looks like. Where we don’t, we infer from age and size and label it as an inference.
None of this tells you about one apartment. Buildings hold stabilized and market-rate units side by side. Only New York State can answer for a specific unit — free, and every report links you there.
Plainly
What this is not
Not a verdict on a landlord.
We publish what the record says, with its date. We don’t characterise anyone.
A missing building isn’t a good building.
No HPD record reads as “not found”, never as clean.
Dismissed violations don’t count.
The city withdraws ~29% of what it issues. Not a repair, not a black mark.
Walk times are estimates.
Straight-line distance plus a grid allowance. Fine for comparing; not a routing engine.
Not legal advice, and records can be wrong.
Check HPD Online before deciding. Every row links straight there.
Provenance
Where the data comes from
All public, refreshed daily from NYC Open Data.
- HPD violations ↗Every housing maintenance violation, its class, and whether it was corrected on time.
- HPD registrations & contacts ↗Who the city has on file as the owner or managing agent.
- PLUTO ↗Apartment counts, year built, floors — the denominator for everything per-unit.
- Rent-stabilized unit counts ↗The number of stabilized apartments printed on each building’s annual Department of Finance tax bill, extracted by JustFix with a link to every source document.
- MTA station entrances ↗Every subway entrance, and which trains serve it.
- NYC Parks properties ↗Park boundaries, used to measure distance to the nearest edge.
Each report shows when the city last published each dataset, and warns when one goes stale.
Try it on a real address
Or go back to the front page.