SERIES · CI-CONTRACTS·SOURCE · CITY RECORD REGISTRATIONS (qyyg-4tf5) · CHECKBOOK NYC SPENDING, NIGHTLY·UPDATED · ·AS OF · 
Contract Search

One contract at a time.

This page searches NYC public construction at the level of a single registered contract. Search by contract number, vendor, agency, or trade, then open a row to read its registered dates and amounts, its payment velocity, and the cumulative spend curve drawn from the City's payment ledger.

Loading the contract search index…

Loading the contract search index…

Couldn't load the contract index.

The nightly search file may be momentarily unavailable. Please refresh the page to try again.

Contracts indexed
Registered value
current (registered) amounts, summed
Paid to date
Median first-payment lag
days to first check, across dated contracts
How to read this page. This page does one thing: it looks up a single contract and shows how much of it the public record reports has been paid so far. Paid to date and percent paid come from the City's contract record and cover every contract. Contracts of $500,000 or more registered since 2019 that are open or closed within the past year also carry a dated spend curve and payment velocity built from their individual checks; that dated total is a floor, what the ledger confirms was disbursed rather than a full accounting. It does not total the market. The summed figures in the tape above describe only the contracts currently in view; they are not a market aggregate and should not be read as the value of NYC construction. Use it to check one contract's payment progress, not to build a headline total.

Search the contract record

FY2021–2025
Contract Vendor Agency Category Registered Current amt. Paid to date % paid

Contract search · Methodology & definitions

SERIES NOTES
What this is. A searchable index of registered New York City construction contracts. Every contract carries its paid to date and percent paid from the City's contract record; contracts of $500,000 or more registered since 2019 that are open or closed within the past year also carry a dated spend curve and payment velocity from their individual checks. Every figure comes from public records and is rebuilt nightly. The page reads one contract at a time and does not rate a vendor or predict whether a contract will finish. The dated disbursement total is a floor: it confirms what the ledger reports was paid, not what is still owed, and the totals shown describe the contracts in view rather than a market aggregate.

The universe

The index covers construction contracts registered with the City, drawn from the City Record registration notices (dataset qyyg-4tf5) for fiscal years 2021 through 2025. A contract enters the index when it is registered; the date row leads with registration because that is the point at which the obligation becomes a public record.

Scope and identifiers

Each contract carries the City's free-text scope description (the work the contract registers) and its PIN, the procurement identification number that the City uses to track the award. Both come straight from the registered-contract record and read blank where the record carries no value. The scope line and PIN are searchable alongside the contract number, vendor, and agency, so a query like a street name or a treatment plant can surface the contracts that name it.

Dates and what they mean

The scheduled end is the contract's planned end date as registered. It is the schedule on the paper, not a record of actual completion; a contract can run past it, finish early, or sit open without the published record changing. Read it as the original plan. The bid due date is a best-effort join to the City Record solicitation that preceded the award, matched where a clean link exists; it is blank where no match was found, so its coverage is partial by construction.

Amounts and percent paid

Original is the contract value at registration; current reflects registered modifications. Paid to date is the City's registered-contract spent-to-date figure, and percent paid divides it by the current amount, falling back to original. Both come from the City contract record and cover every contract in the index, so the table column, the percent paid, and the sort all read the same field for every row. A contract can read above one hundred percent where modifications, retainage release, or rounding push cumulative payment past the registered amount; the page shows the figure as published rather than capping it.

The dated spend curve and payment velocity

The dated spend curve and velocity cover a defined set: every registered construction contract of $500,000 or more registered since 2019 that is open or closed within the past year. Closure is judged by the registered end date because the public record carries no actual-completion date, so a contract whose registered end date is more than a year in the past drops out of the dated set while open contracts and recently closed ones stay in. For each one the nightly job pulls that contract's disbursements from Checkbook NYC and orders them in time. First-payment lag is the number of days from registration to the first disbursement. Days to fifty and ninety percent paid count from registration to the first day cumulative dated payment crosses that share of the contract amount; either reads as a dash when the contract has not reached that mark. Confirmed dated disbursements is the sum of those dated checks, a floor on what has been paid rather than a full accounting. A contract outside that scope, or one inside it that drew no disbursement, reads as a dash for the spend curve and every velocity figure; its paid to date and percent paid still come from the contract record.

Why two payment figures can differ

For a contract in the dated scope that drew a disbursement, the detail panel shows both paid to date, the City's running tally, and confirmed dated disbursements, the sum of individual checks the nightly job found. These can legitimately differ: a check the ledger has not yet published is not in the dated sum, so it can sit below the City's tally. The table and percent paid use the contract-record figure because it covers every contract; the dated sum is shown alongside it as a confirmed floor, and the nightly job reports how closely the two agree.

Where the payment timing comes from

Progress-payment timing is read from Checkbook NYC's Spending domain one contract at a time: for each contract in the dated scope the nightly job queries that contract's own checks, then dedupes them on the payment document so a re-reported check is not counted twice. The scope is fixed by definition, every registered construction contract of $500,000 or more registered since 2019 that is open or closed within the past year, not by a count cap. Checkbook serves no cross-origin access, so this page reads a static file the nightly job writes rather than calling the payment ledger from the browser.

What is not here

No borough, address, or coordinate appears on this page. The published registration and payment records do not carry a location field for these contracts, so the page omits geography rather than inferring it.

Coverage notes from the nightly build