Most roofing contractors never touch a Davis-Bacon job, and then one shows up: a county reroofing its EMS building with FEMA hazard-mitigation funds, a school district using a federal grant to replace a roof, a housing authority reroofing a HUD property. The general contractor hands over a bid package that mentions "prevailing wage" once, in passing, and a roofing shop that prices the job at its normal $24-an-hour crew rate is already underwater before the first shingle comes off the truck — because the wage floor on that job isn't set by the local labor market. It's set by a federal wage determination, and it applies whether the contractor read it or not.
Why the Wage Floor on These Jobs Is a Different Number
The Davis-Bacon Act requires contractors on federal construction contracts over $2,000 to pay at least the locally prevailing wage and fringe benefit rate for each labor classification, as published by the Department of Labor in a wage determination for that county and trade. Davis-Bacon Related Acts extend the same rule to work funded through federal grants, loans, or loan guarantees passed through a state or local agency — which is how disaster-recovery and public-facility roofing work often ends up covered even though the roofing company never contracts directly with the federal government. Most states layer their own "little Davis-Bacon" law on top for state and local public work regardless of federal dollars. The rate that governs the job is whatever determination is attached to that specific contract, for that specific county and classification — not the shop's payroll rate, and not always the same number a general laborer classification gets for adjacent work on the same roof.
Worked Example: The Crew-Cost Gap on a 30-Day Job
A six-person crew works a 30-day federally funded reroof. The contractor's normal shop pay for roofers is $24.00 per hour with no separate fringe accounting. The wage determination attached to the contract lists a roofer classification at $28.15 base plus $11.86 in fringe benefits, for a total prevailing wage obligation of $40.01 per hour — payable either as cash wages, bona fide fringe benefits, or a combination of the two.
| Item | Shop Rate (What Was Bid) | Davis-Bacon Rate (What Was Owed) |
|---|---|---|
| Hourly rate per roofer | $24.00 | $40.01 |
| Crew hours (6 workers × 240 hours) | 1,440 hrs | 1,440 hrs |
| Total labor cost | $34,560 | $57,614 |
| Underpayment exposure | $23,054 in back wages owed, before penalties | |
That $23,054 doesn't come out of the general contractor's pocket — it comes out of the roofing subcontractor's, on top of whatever margin was already thin at the shop rate the job was bid at. The contracting agency can withhold progress payments to cover the shortfall the moment a compliance review or worker complaint surfaces it, and if the underpayment is found to be willful or the contractor has a prior history, debarment from federal contracts for up to three years is on the table — a bigger cost than the back wages for a shop that relies on public work.
What Certified Payroll Actually Requires
Paying the right rate is only half the obligation. Contractors on covered jobs must file certified payroll — typically Form WH-347 or an agency equivalent — every week work occurs on the project, for every worker including subcontractor crews, listing classification, daily hours, wage and fringe rate paid, and deductions, signed under penalty of perjury. A contractor who pays correctly but files late or with the wrong classification code can still see progress payments held up, since the paperwork is the agency's proof of compliance, not the payroll itself. Apprentice-to-journeyman ratios also need separate tracking, since apprentice rates below the full prevailing wage are only allowed within a registered program's approved ratio.
Where This Connects to Your Books
Certified payroll only works if the underlying job cost data is already clean — hours by worker, by classification, by job, every week, with fringe benefit contributions tracked separately from base wage. Shops that job-cost accurately in QuickBooks Online can pull that data straight into a WH-347 report; shops running payroll as one lump crew expense per job find out how expensive the gap is the first time an agency compliance officer asks for documentation. At JobCostBooks, clients bidding public or federally funded work get their payroll setup reviewed before the first certified payroll report is due, not after a payment gets held. For the broader picture on job-level cost tracking, see our guide: QuickBooks Job Costing for Roofers.