Screening New York State certified payrolls against published prevailing-wage schedules

Data through July 20, 2026 · screen generated July 21, 2026 · 62 counties · two schedule vintages

Every week, contractors on New York public-work projects file certified payrolls that the State publishes as open data. The State also publishes the prevailing-wage schedules those payrolls must meet. This project joins the two — 588,505 wage lines against both 2025–2026 and 2026–2027 rate schedules for all 62 counties — and surfaces a ranked, evidence-cited set of candidates for human review.

6,835
payroll lines across 468 contractors report a cash wage materially below the published rate for their trade, county and week — and are not explained by any screen the public data supports.
$1,754,083
indicative exposure — shortfall per hour × reported project hours
468
contractors in the standing candidate set
370
findings independently corroborated by the weekly gross-wages field
588,505
wage lines screened, with zero silent drops

Browse the candidate set →

How to read these findings

These are screening candidates for human review. Nothing here is a finding of wrongdoing, and no contractor named on this site has been determined by anyone to have underpaid a worker.

Every finding on this site is a screening candidate drawn from public records, requiring investigation — not a determination that any law was broken. A finding means one thing only: a certified-payroll line, filed by the contractor itself in a public state dataset, reports an hourly cash wage below the lowest published journeyworker rate for the matched trade classification in that county and schedule period.

Lawful explanations that public data cannot rule out include: workers in registered apprenticeship or training programs whose registration is not visible in the dataset; wage components paid as supplements rather than cash; classification nuances the published schedules do not capture; and data-entry errors in the underlying filings. The screen removes the candidate classes it can detect (payments matching scheduled apprentice rates, payments matching another classification’s exact rate), but it cannot verify apprenticeship registration or supplement payments from public data.

Exposure figures are indicative screening magnitudes (shortfall per hour times reported project hours), not damages estimates. If you believe any entry is in error, contact thomas@concoursetech.com and it will be reviewed promptly.

The screen

From 588,505 lines to 6,835 candidates

The screen is deliberately conservative at every stage. It compares each payroll line only against the lowest published journeyworker rate for the matched trade family in that county and schedule period, and then removes the false-positive classes it can detect from public data.

Certified-payroll wage lines harvested from data.ny.gov588,505
Starting corpus — every published line in the window
January 1, 2026 through July 20, 2026 · 3,503 contractor accounts · all 62 counties
Screenable journeyworker lines554,606
94.2% of the previous stage · 94.2% of all harvested lines33,899 lines not screenable
Lines labeled Journeyman carrying a plausible hourly rate. Every excluded line is logged with a reason — none is silently dropped.
Tier 1 — reported cash wage below the scheduled floor24,947
4.5% of the previous stage · 4.2% of all harvested lines529,659 lines at or above the scheduled floor
928 contractors. The floor is the lowest published journeyworker rate mappable to that trade family, in that county, under the schedule in force that week — a deliberate under-flag.
High confidence — shortfall of 15% or more12,602
50.5% of the previous stage · 2.1% of all harvested lines12,345 flags with a shortfall under 15%
605 contractors.
Standing candidate set after the Tier 2 screens6,835
54.2% of the previous stage · 1.2% of all harvested lines5,767 flags explained by the published schedules themselves
468 contractors · $1,754,083 indicative exposure. Set aside here: flags whose reported rate matches a scheduled apprentice rate, or another classification’s exact journeyworker rate. Across all 24,947 Tier-1 flags those two screens account for 6,486 and 1,379 respectively.

Each bar is drawn to a linear scale against the stage above it, so its length is exactly the share of that stage which survived the test. Percentages of the full 588,505-line corpus are given as numbers rather than as bar length — a single scale across an 86-fold drop would render the last stage invisible, and compressing it would make length overstate what remains.

Geography

Where the standing findings are

Top 10 of 62 counties, ranked by indicative exposure.

CountyIndicative exposureStanding findingsContractors
Orange$217,29966427
Albany$134,81653759
Erie$133,37236834
New York$110,78534129
Suffolk$106,36448343
Dutchess$106,21827918
Westchester$103,27541635
Nassau$92,56143435
Onondaga$66,87735528
Ulster$64,57918819
Trades

By trade

Top 10 of 20 trades, ranked by indicative exposure.

TradeIndicative exposureStanding findingsContractors
Electrician$391,40191554
Laborer$251,7761,192103
Plumber$246,27676759
Carpenter$212,69689288
Mason$110,87864222
Electrician Lineman$102,50038914
Painter$77,39625423
Ironworker$68,53230622
Steamfitter$60,69223922
Sheetmetal$50,85626029
Read more

Method, validation and limits