Sources
Methodology and sources
Every page on this site exists because a row exists in a City of New York file. This page names those files, states when they were retrieved, explains exactly how they are joined, and lists what was left out.
Last reviewed 4 September 2026
The datasets
All of these are published on the NYC Open Data portal at data.cityofnewyork.us except the building classification list, which the Department of Finance publishes as a page on nyc.gov. None requires a key. All were retrieved on 2026-09-04.
| Dataset | Agency | Identifier |
|---|---|---|
| Primary Land Use Tax Lot Output (PLUTO)The physical and administrative description of every tax lot: address, building class, residential and total units, storeys, year built, year altered, lot and building area, assessed values, zoning district and coordinates. | Department of City Planning | 64uk-42ks |
| ACRIS Real Property MasterOne row per recorded document: type, consideration, date on the document and date recorded. | Department of Finance | bnx9-e6tj |
| ACRIS Real Property LegalsOne row per tax lot named on a document, with the unit designation and property type. This is the file that connects a transaction to a building. | Department of Finance | 8h5j-fqxa |
| Digital Tax Map: CondominiumsEvery condominium, its base lot and its billing lot. Supplies the condominium name where one is recorded. | Department of Finance | p8u6-a6it |
| Digital Tax Map: Condominium UnitsEvery condominium unit lot and the condominium it belongs to. Without this file a condominium apartment sale cannot be attached to the building it is in. | Department of Finance | eguu-7ie3 |
| NYC Citywide Annualized Calendar SalesPriced sales for 2016 to 2025 with the neighbourhood and Neighborhood Tabulation Area of each lot. Used for the neighbourhood a building sits in, and as an independent check on the ACRIS join. | Department of Finance | w2pb-icbu |
| 2020 Neighborhood Tabulation AreasThe 262 official neighbourhood names and codes used for the neighbourhood pages. | Department of City Planning | 9nt8-h7nd |
| ACRIS Property Type CodesThe agency's own description of each property type code. | Department of Finance | 94g4-w6xz |
| ACRIS Document Control CodesThe agency's own description of each document type code. | Department of Finance | 7isb-wh4c |
What gets a page
A building page exists for every PLUTO tax lot that satisfies both of the following, and for no other lot.
- Its building classification code begins with R (condominium), C (walk-up apartments) or D (elevator apartments).
- It carries 20 or more residential units.
The unit threshold is a deliberate cut-off, not a natural boundary, so here is the effect of choosing it. Measured against PLUTO on the retrieval date, R, C and D lots with six or more residential units number 65,752; with ten or more, 40,804; with twenty or more, 27,122; with thirty or more, 19,063; with fifty or more, 11,607. Twenty was chosen because it is the point at which a building reliably has a sale history worth reading rather than one or two transfers, while still covering every large co-operative, condominium and rental in the city.
| Borough | Buildings | Residential units | Transfers attached |
|---|---|---|---|
| Manhattan | 10,277 | 795,237 | 302,097 |
| The Bronx | 5,812 | 420,856 | 37,759 |
| Brooklyn | 6,734 | 496,489 | 100,190 |
| Queens | 3,996 | 372,071 | 142,328 |
| Staten Island | 303 | 29,217 | 12,913 |
Neighbourhood pages exist for each of the 200 Neighborhood Tabulation Areas that contain at least one building on file. ZIP pages exist for each of the 181 ZIP codes recorded on at least one of those lots.
How a sale is attached to a building
The join is the whole substance of this site, so it is set out in full.
- A BBL is built for every row in ACRIS Real Property Legals as the borough digit, the block padded to five digits and the lot padded to four.
- If that BBL is a PLUTO lot on this site, the document attaches to it directly. This is what happens for co-operatives and rentals, where the whole building is a single lot.
- Otherwise the BBL is looked up in the Digital Tax Map condominium unit file. If it is a condominium unit lot, the condominium's billing lot is taken from the condominium file, and the document attaches to that billing lot, which is the row PLUTO carries.
- The document's type, date and consideration are read from ACRIS Real Property Master.
- Where one document names several lots in the same building it is counted once, and the row is marked with the number of lots on the document.
The join is precomputed as a lookup keyed by BBL and built once, not evaluated per page. This is not a stylistic preference: filtering a transfer list of 595,287 rows once per building page across 27,122 pages would be tens of billions of comparisons in a single build.
What is excluded and why
- Documents recording no consideration
- Excluded entirely. A transfer filed at zero is normally a trust, estate, entity or correction filing. Including them would fill the hero table of most buildings with rows that say nothing about the market.
- Documents before 2003
- Excluded. Earlier ACRIS coverage is uneven and mixing it with the modern record would imply a completeness the file does not have.
- Instruments that are not transfers
- Mortgages, satisfactions, assignments, agreements and the rest of the ACRIS document catalogue are not carried at all. Only DEED, DEEDO, RPTT&RET, RPTT are kept.
- Accessory property types
- Parking spaces, storage rooms and maid's rooms are dropped. They are real transfers but their prices would drag every median on the site downwards without describing a home. The property types kept are SC, SP, MC, MP, AP, BS, CA, SA, SM.
- Owner names
- PLUTO's owner name field is not downloaded, so it cannot appear here even by accident. See privacy for the reasoning.
- Buildings under 20 residential units
- Excluded by the threshold above, including one and two family houses, small walk-ups and the great majority of small condominiums.
- Anything that is not a City record
- No estimates, no models, no listing data, no photographs, no third-party valuations, no school or crime data.
A hard rule
Where a value cannot be traced to a named dataset it is left blank. A missing field on this site is a deliberate outcome, not an oversight.
Checks run against the result
A pipeline that reports success is not a pipeline that is correct, so the compiled data is checked against material that did not come from the same join.
- An independent City file. The Department of Finance publishes its own annualized sales file for 2016 to 2025, produced by a different process from the ACRIS extract. Every building page prints the number of priced sales that file lists for the lot, next to the number this site attached, so a reader can see the two counts disagree if they do.
- Named buildings with a knowable answer. The condominium crosswalk was verified against a building whose unit count is independently recorded in PLUTO: the crosswalk returns exactly as many unit lots as PLUTO records total units.
- Counts at every stage. Rows read, documents kept, rows attached and buildings with at least one transfer are all recorded and published on this page.
| Borough | Attached here | Listed by Finance | Ratio |
|---|---|---|---|
| Manhattan | 120,859 | 117,534 | 1.03 |
| The Bronx | 15,440 | 16,152 | 0.96 |
| Brooklyn | 44,093 | 43,986 | 1.00 |
| Queens | 61,763 | 60,158 | 1.03 |
| Staten Island | 6,190 | 6,383 | 0.97 |
The two files are not expected to agree exactly. The Department's file is a curated sales extract and drops transfers it does not treat as sales; this site keeps every recorded transfer with a consideration above zero, including transfers between entities. A ratio close to one is what a correct join looks like. A borough far from one would mean the join had failed there, which is the single failure this check exists to catch.
| Stage | Rows |
|---|---|
| ACRIS legal rows read | 4,787,961 |
| Priced transfer documents kept | 1,443,833 |
| Transfers attached to a building | 595,287 |
| Buildings with at least one transfer | 15,214 |
| Buildings with a neighbourhood | 26,384 |
| Department of Finance sales rows used for the check | 845,607 |
Known limits
- The consideration is what was filed. It is not verified, not adjusted and not necessarily the price a buyer would recognise.
- Unit designations are verbatim. ACRIS carries whatever the filer typed, so the same apartment can appear as 6C, 6-C and 06C in different years. They are not normalised, because normalising would mean guessing.
- A building page prints its 40 most recent transfers. The yearly summary counts all of them, so totals and medians are computed over the complete record.
- Neighbourhood is assigned, not surveyed. A lot takes the Neighborhood Tabulation Area recorded against it in the Department of Finance sales file; where that file has never recorded a sale on the lot, the commonest area on its tax block is used. A tax block is small, but this is an assignment rule and it is stated rather than hidden.
- PLUTO is a snapshot. Assessed values, unit counts and classifications change between releases. The retrieval date is printed on every page for that reason.
- Year built can be wrong. Very early and obviously rounded dates are common in the source. They are printed as filed.
Refresh and reproducibility
The raw responses from every source are mirrored to disk before anything is derived from them, and the compiled files the site reads are committed alongside the code. A rebuild therefore produces the same pages from the same bytes without going back to the City's servers, and a refresh is a deliberate act with a new retrieval date rather than a silent drift.
Found something wrong? The corrections page explains what can be fixed here and what has to be fixed at the agency.