Guide
WH-347 instructions: filling out every column, in plain language
Plain-language WH-347 instructions for subcontractors, column by column, with a filled example row and the checks to run before you sign page 2.
The WH-347 is the Department of Labor's form for the weekly certified payroll on federal and federally assisted construction jobs covered by the Davis-Bacon and Related Acts. Using the form itself is optional. Reporting the information every week is not: 29 CFR 5.5(a)(3)(ii) requires a weekly certified payroll, and DOL's form is the most common way to send one.
This guide walks through the current form (Rev. January 2025, OMB No. 1235-0008) column by column, in the order you will fill it in, then covers page 2 and the checks worth running before anyone signs. DOL publishes its own instructions, a fillable version and an annotated guide on its WH-347 page; when your contract or the agency says something different from this guide, they win.

Before you start: what you need on the desk
- The week's payroll register from your payroll system: gross pay, tax withholding, FICA, other deductions and net pay for each worker.
- Hours by day and by project from your timesheets. Payroll registers rarely split hours by job, and the WH-347 needs them that way.
- The wage determination in your contract (the WD number and its classifications, base rates and fringe rates).
- Your fringe benefit details: which plans you contribute to and what each costs per hour, or how much you pay in cash in lieu of fringes.
- Last week's WH-347 for this project, so the payroll number continues in sequence.
The header
- Final payroll box. Check it only on the submission for the last week of work on the project.
- Prime contractor or subcontractor. Check the one that describes you on this project.
- Project name, location, and project or contract number. Copy them from the contract so the agency can match your payroll to the job.
- Certified payroll no. Start at 1 for your first payroll on the project and count up by one each week you submit.
- Wage determination no. The WD number and revision from the contract that applies to this week's work. If more than one applies, list them all.
- Week ending date. The last day of the workweek this payroll covers.
- Your business name and address.
Page 1, column by column
| Column | What goes in it | Watch out for |
|---|---|---|
| 1A Entry no. | Number each worker from 1, continuing across pages | A worker on two classification rows keeps one entry number |
| 1B-1D Name | Last name, first name, middle initial | Match the name in your payroll records |
| 1E Identifying no. | An identifier such as the last four digits of the SSN | DOL's instructions say full Social Security numbers must not be included |
| 2 J or RA | J for a journeyworker, RA for a registered apprentice, with the apprentice's level | RA only for apprentices in a program registered with DOL's Office of Apprenticeship or a State Apprenticeship Agency |
| 3 Labor classification | The classification from the wage determination for the work actually done | If no classification fits, ask the contracting officer; don't invent one |
| 4 Hours each day | Day letters and dates across the top, then straight time (ST) and overtime (OT) hours on this project for each day | On contracts covered by the Contract Work Hours and Safety Standards Act, hours past 40 in the week count as overtime, including hours on other jobs |
| 5 Total hours | The sum of column 4 | Check it against the timesheet |
| 6A Rate paid | The actual hourly rate paid for ST (top) and OT (bottom) | Leave cash in lieu of fringes out of this rate |
| 6B Fringe credit | Total hours times the hourly fringe credit you claim on page 2 | Only for bona fide plans you actually fund |
| 6C Cash in lieu | Total hours times the hourly cash you pay instead of fringes | Paid in the paycheck, so it also lands in 7A |
| 7A Gross, this project | Gross earned this week on this project | Should not exceed 7B |
| 7B Gross, all work | Gross earned this week on all work, including non-prevailing-wage jobs | Comes from your payroll register |
| 8 Deductions | Tax withholding, FICA, "other" (described on page 2) and the total, all from 7B | Do not prorate deductions across projects |
| 9 Net pay | The amount actually paid to the worker for all work | 7B minus total deductions should equal it |
When a worker does two kinds of work
Give each classification its own row, with the same entry number. DOL's instructions say that if you did not track hours by classification, all the hours must be paid at the highest applicable rate.
A filled example row
Example data only. A journeyworker electrician who worked 40 hours on this project, at a $58.40 base rate, with no fringe credit or cash in lieu:
1A: 1 1B-1D: Worker 1 1E: 4821 2: J 3: Electrician
4: ST 8 / 8 / 8 / 8 / 8 (Mon-Fri), OT 0
5: 40.0 6A: ST 58.40, OT 87.60 6B: 0.00 6C: 0.00
7A: 2,336.00 7B: 2,336.00
8: Withholding 262.80, FICA 178.70, Other 0.00, Total 441.50
9: 1,894.50
Page 2: the Statement of Compliance
Page 2 is where the payroll becomes certified. A certifying official at your company signs it, and DOL's page notes that the statement is subject to penalties under 18 U.S.C. 1001. You can use the WH-347's page 2 or another document with the same wording.
- Boxes 1, 2, 3 and 6 always must be checked.
- Box 4 applies when anyone on the payroll is paid as a registered apprentice. List each apprenticeship program. If it does not apply, enter "N/A".
- Box 5 covers fringe benefits paid in cash or to plans. Fill in its hourly credit table, one column per plan, only when you claim a credit for plan contributions; those hourly figures are what column 6B multiplies.
- Additional remarks is where you describe an "other" deduction from column 8.
- Signature. A legally valid electronic signature is accepted. DOL says photocopied or scanned signatures do not satisfy the requirement, so check how your agency or prime wants signed copies delivered.
Checks to run before you sign
- Every worker on the timesheet for this project appears on the form, and nobody on the form is missing from the payroll register.
- Every worker has a classification from the wage determination.
- Each rate in 6A is at least the WD base rate, and 6A plus the hourly fringe credit plus cash in lieu covers base plus fringe.
- Hours past 40 in the week, counting all jobs, are paid at 1.5 times the rate.
- 7A is no larger than 7B.
- 7B minus total deductions equals net pay.
- The payroll number follows last week's, and a week with no work on the project is reported the way your agency asks.
Doing this every week
The WH-347 is mostly copying: the register gives you columns 7B through 9, the timesheet gives you 4 and 5, the wage determination gives you 3 and the minimum for 6A. The time goes into splitting hours by project, re-checking rates and doing the arithmetic again for every job. If you are building it by hand, a certified payroll template with the column mapping helps.
Cert Pay Weekly does the copying from the files you already have. You upload your payroll export from Gusto, QuickBooks or ADP and your hours by project, and it fills a WH-347 for each prevailing-wage project, flags missing classifications and pay below the wage determination's rates, and leaves page 2 for you to review and sign.
A sign-ready WH-347 from your payroll export, every week
Upload your payroll export from Gusto, QuickBooks or ADP plus hours by project from your timesheet or a weekly grid. Get a WH-347 for each prevailing-wage project, ready to sign, with reminders until it is submitted.
$79/ month
Get startedCancel any time.