The official DOL instructions are 8 pages of legalese. This guide cuts through it and shows you exactly what goes in each field.
14-day free trial · 3 free reports · $0 setup · No credit card required
The WH-347 is the federal certified payroll form you file every week on Davis-Bacon projects. It's two pages: a payroll grid on page 1 and a Statement of Compliance on page 2. Sounds simple. It's not.
Most contractors get tripped up on the same handful of fields — fringe benefit splits, deductions, classification codes, and the exceptions box. Mess any of those up consistently and you're one DOL audit away from back wages and debarment.
Here's how to fill it out correctly the first time.
Pull these together before you open the form. You'll save yourself an hour of hunting.
The wage determination (WD) tied to your contract — by modification number, not just project name
Each worker's name, last 4 of SSN, and work classification (Carpenter, Electrician Group 1, Laborer Group 2, etc.)
Daily hours worked for the pay period ending date (Sunday through Saturday, typically)
Gross pay, deductions (FICA, federal, state, 401k, union dues, garnishments), and net pay for each worker
Your fringe method: paying cash in wages, paying into approved plans, or a mix
Project name and location as written on the prime contract
Contractor name, address, and contract number
Contractor license or EIN (some states require this)
Quick tip
If you can't find your wage determination, ask the contracting officer for the WD number attached to your contract award. Don't guess — a wrong WD makes every report wrong.
Page 1 is the weekly payroll. Each row is one worker on one classification. Here's what goes where.
Worker's full legal name plus the last 4 digits of their SSN. Don't use nicknames, don't put the full SSN. If you've got two workers named Mike Johnson, use middle initials.
This field is optional on the current WH-347 — the DOL stopped requiring it. You can leave it blank. Some states still want it, so fill it in if your state certified payroll requires it.
Use the exact classification from the wage determination. 'Carpenter' isn't enough if the WD splits into Carpenter Group 1, Group 2, and Group 3. Match the WD wording exactly.
Daily hours split into Overtime (O) and Straight Time (S). Seven columns for seven days. OT is anything over 40 hours in a work week on federal Davis-Bacon (some states add 8-hour day OT rules).
Sum of all hours in column 4 for that worker/classification. One number.
Show the base hourly rate and the fringe separately, like '$28.50 / $12.40'. The left number is straight-time base pay. The right number is fringe being paid to the worker (either in cash or into plans). Add them together and you should hit the WD minimum.
Two numbers stacked: (top) gross for this project only, (bottom) total gross for all work this week. If the worker only worked this project, they're the same number.
Break out FICA, federal withholding, state withholding, and 'other' (union dues, 401k, garnishments, etc.). 'Other' deductions need explanation in the exceptions box if they're non-standard.
Total net the worker received for the week across all projects. Gross minus deductions. This should match the paystub you handed them.
Page 2 is where you sign under penalty of perjury. Read it. Don't just scroll and sign.
These aren't hypotheticals. Every one of these has shown up in real Wage and Hour Division cases.
Paying the wrong classification
Listing a worker as Laborer when they did 3 hours of electrical work. If they did electrical, they get electrical pay for those hours. Split the classifications.
Rounding fringe benefits down
The WD says $12.43/hr fringe. You paid $12.00 because the math was easier. That's a $0.43/hour underpayment times every hour worked. Over a year, that's tens of thousands in back wages.
Forgetting to file a 'no work' week
If you didn't work the project that week, you still have to submit something. Silence looks like you're hiding hours.
Paying fringes in cash but not grossing up the base rate
If the WD base is $30 + $15 fringe and you're paying everything in cash, the worker needs $45/hr cash on their check. A $30/hr check with no fringe payment is an underpayment.
Listing apprentices without a registered program
Apprentice rates only apply if the worker is in a bona fide Office of Apprenticeship-registered program. 'Apprentice' isn't a pay rate — it's a legal status.
Unauthorized deductions
Tool deductions, safety gear charges, uniform fees — most are illegal on Davis-Bacon unless the worker signed a voluntary authorization. Pre-printed authorization doesn't count.
Signing the Statement of Compliance without reviewing payroll
The signer is personally liable. If an owner signs every Friday without looking, they're the one answering subpoenas.
Mismatched week-ending dates
Page 1 says week ending 3/22. Statement of Compliance says 3/29. That's an automatic red flag in DOL audits.
We're biased. But here's the real tradeoff.
If you've got 1 project and 2 workers, manual is fine. If you've got 3+ projects or 5+ workers, software pays for itself in saved time the first week.
The Davis-Bacon Act requires you to submit certified payroll within 7 days of the week-ending date. Miss it and the GC (or awarding agency) can withhold progress payments.
Weekly. You file one WH-347 per project, per week, even if the week had zero hours worked. If no work happened, you still submit a 'no work performed' statement to the contracting agency.
An owner, officer, or authorized payroll agent of the company. The signer is personally attesting under penalty of perjury that wages were paid correctly, so pick someone who actually knows what went out the door.
No. The DOL accepts any form that contains the same required data. Software-generated reports (including the ones CertifiedPayrollPro creates) are fine as long as they match WH-347 fields and include a signed Statement of Compliance.
The project name exactly as it appears on the prime contract plus the physical street address or county of the jobsite. If you're a sub, copy it from the GC's contract — don't make up your own version.
You have two options per worker: pay cash in lieu of fringes (shows up in the hourly rate) or pay fringes into approved plans. If you're paying into plans, check box 4(a) on the Statement of Compliance. If you're paying cash, check 4(b). If you're doing a mix, use 4(c) and explain in the exceptions.
List them twice. Each classification gets its own row with its own hours and rate. Don't average the rates — the DOL wants each classification tracked separately.
You can, but you shouldn't. Late certified payroll is one of the top triggers for a wage and hour investigation. If you're late, file immediately and include a brief written explanation. Don't backdate it.
Yes. Apprentices need their apprenticeship program and registration number noted. They can be paid less than journeymen only if they're in a bona fide registered program — otherwise you owe the full journeyman rate.
CertifiedPayrollPro generates compliant WH-347 PDFs in minutes. Validates wage rates, handles the fringe math, catches mistakes before you sign.
Start Free Trial14-day free trial · 3 free reports · $0 setup · No credit card required