Can Gusto do certified payroll?
No. Gusto's help center lists every standard report, from the payroll journal to workers' comp audits, and none of them is a certified payroll, a WH-347 or a state format. When we searched the help center in November 2026, it had no article on Davis-Bacon or on filling the WH-347.
That doesn't mean you have to switch payroll providers. The certified payroll is a separate weekly report. It restates what you paid, by trade, and you sign that it meets the wage determination. DOL lets you send it on the optional WH-347 or in any other format, as long as it has all the required information (29 CFR 5.5(a)(3)(ii)). Gusto supplies about half of that information. You supply the rest.
What the WH-347 needs that Gusto lacks
Here is where each part of the form comes from when you pay through Gusto.
| WH-347 field | From Gusto? | Where to get it |
|---|---|---|
| Project, contract number, wage determination, payroll number, week ending | No | Your contract and the wage determination |
| Worker name and identifying number (1B–1E) | Yes | A custom report with the “Employee SSN (last 4)” field. Never the full SSN. |
| Journeyworker or registered apprentice, and level (2) | No | Your apprenticeship registration records |
| Classification (3) | No | The wage determination, for the work actually done. A Gusto job title is only a label. |
| Hours each day, straight time and overtime, and weekly total (4, 5) | No | Your timesheets, by day and classification. Gusto reports total hours per payroll. |
| Hourly rate paid (6A) | Yes | The rate on each Gusto job |
| Fringe credit from plans (6B) and the plan table on page 2 | No | Your plan costs, worked out per hour |
| Cash in lieu of fringe (6C) | Partly | A custom earning, if you set one up |
| Gross earned on this project (7A) | Only if they worked nowhere else | Project hours × rates from your timesheets |
| Gross for all work, deductions, net pay (7B, 8, 9) | Yes | The payroll journal |
| Statement of Compliance and signature | No | You, after checking the numbers |
If you use apprentices, keep proof of each apprentice's registration and the program's ratios and wage rates (29 CFR 5.5(a)(3)(i)(D)), and stay within the allowed apprentice-to-journeyworker ratio on site (29 CFR 5.5(a)(4)). Gusto tracks neither.
One trap: Gusto's Project Tracking looks like the fix, but its help center says project hours are for job costing only and never feed payroll. It spreads a worker's total pay across their tracked hours. That is not the 7A figure the WH-347 asks for.
Set up Gusto before the job starts
- Pay weekly. Workers on a Davis-Bacon site must be paid at least once a week (29 CFR 5.5(a)(1)(i)). Put the crew on a weekly pay schedule. On weekly schedules, Gusto starts the workweek on the first day of the pay period, so one payroll matches one certified payroll week.
- One job per classification. Name each Gusto job after the classification on the wage determination, such as “Laborer Group 2,” not “Foreman.” Set its rate to at least the determination's base rate. See how to read a wage determination.
- Decide how the fringe is paid, and set it up before the first payroll (next section).
Paying the fringe through Gusto
Each classification has a base rate and a fringe. You owe both for every hour. Gusto knows nothing about the fringe, so you choose how it shows up on the check.
| Method | How to set it up in Gusto | Trade-off |
|---|---|---|
| Rate = base + fringe | Set the job's hourly rate to the total | Simplest. The whole rate goes in column 6A and 6C stays empty. Gusto figures overtime on the whole rate, which is more than the law requires. |
| Base rate + cash in lieu | Job rate = base. Add a custom earning (type “Other”) for the fringe, excluded from overtime, and enter hours × fringe each payroll. | Matches columns 6A and 6C. Gusto's Simple plan allows only one custom earning type; Plus and Premium allow unlimited. |
| Benefit plans | Run health or retirement contributions through Gusto as usual | Gusto records the contributions, not the hourly credit. You work that out yourself. |
Why the second method works: federal rules leave cash paid in lieu of fringe out of the overtime calculation (29 CFR 5.32). Overtime is 1.5 times the base rate, and the fringe is paid at its straight-time amount. But if the extra cash is simply part of the worker's normal hourly wage, DOL counts it in overtime. More detail in fringe benefits on prevailing wage jobs.
Workers in two classifications
If someone runs equipment Monday and does labor Tuesday, you may pay each rate for the time actually spent in it, but only if your payroll records show the time spent in each classification (29 CFR 5.5(a)(1)(i)). In Gusto, add each classification as an additional job on the employee's Work tab, and enter hours under each job when you run payroll. Additional jobs are only available for hourly employees.
Watch the overtime. When hours come from Gusto Time Tracking, Gusto splits overtime hours across a worker's rates in proportion to the hours worked at each. That works out to a weighted average, which DOL accepts. But the split is a formula, not a record of when the overtime happened. On the WH-347, put overtime hours on the row for the classification actually worked, from your timesheets. See prevailing wage overtime for worked examples.
The weekly routine
- Collect timesheets with hours per day, per classification, per project. If you use Gusto Time Tracking, it holds daily hours; paper works too.
- Run payroll in Gusto. Enter hours under each classification's job, and the fringe cash if you pay it that way.
- Download the payroll journal (Reports, then Payroll journal or the newer payroll template) for that one check date, as CSV. Include earnings, taxes and deductions, broken out by job. Gusto's report totals follow the check date, not the pay period, so pick the payroll, not a date range that spans two.
- Fill the certified payroll. Daily hours and classifications from the timesheets; rates, gross, deductions and net from the journal; fringe credit from your plan numbers. Field-by-field help is in the WH-347 instructions.
- Check before you sign. Base rate paid at least the required base; base plus fringe at least the total; overtime at least 1.5 times the base.
- Sign and send to the contracting agency, or to the prime contractor if you are a subcontractor. Use an original or legally valid electronic signature, and keep a copy for 3 years after the prime contract is completed.
California and other state formats
State prevailing wage jobs often want their own format. In California, contractors on most public works projects send certified payroll records to the Labor Commissioner electronically, at least once every 30 days while work is going on (Labor Code 1771.4). You either type each payroll into DIR's online form or upload an XML file in DIR's V2 format, which allows several classifications per worker. Unlike the WH-347, it needs each worker's full SSN or ITIN. Gusto has no export for it. See California certified payroll.
Other states and agencies may use their own forms or an online portal. The contract tells you which.
Where PrevailCrew fits
For one-off weeks, the free WH-347 builder fills the form in your browser from what you type, with no account. If you file every week, paid plans save the crew, classifications and rates, and import the Gusto payroll CSV to fill pay and deductions. Gusto's journal totals hours per payroll, not per day, so you still enter daily hours by classification. The checks above run on every line.