How it works
Four steps. Only one of them is yours.
You keep running payroll the way you do now. After payroll runs, upload the export. We turn it into a checked WH-347 package and your state's file, and you sign.
- 1
Upload your payroll
The QuickBooks, Gusto or ADP export you already have, or any CSV, Excel file or PDF payroll register. Weekly or bi-weekly.
- 2
Confirm your crew
Pick each worker's classification from your WD (remembered next week), J or RA, and daily hours if your file only has totals.
- 3
We check every line
Every number recomputed in cents against your WD. Anything code cannot confirm goes to a person.
- 4
You sign and send
Download the package, sign the Statement of Compliance, send it to your prime, or one-click email it to them.
Step 1: set up once
Your project, your WD, your rates.
Create a project with its state, county and construction type. We suggest the wage determination and its current modification; you confirm the one in your contract. Then pick the classifications your crew uses, and the fringe plans you pay into (or "we pay fringe in cash").
Federal and state projects
Davis-Bacon WDs from SAM.gov, or state rates you enter with their source.
Apprentices
Program name, OA or SAA, the period's wage percentage and the apprentice fringe.
Step 1: every week
The files we read.
| Source | Export | Daily hours in the file? |
|---|---|---|
| QuickBooks Online Payroll | Payroll Details or Payroll Summary by Employee (CSV or Excel) | No, you enter days in the grid |
| QuickBooks Time | Time Activities by Employee Detail | Yes |
| Gusto | Payroll Journal (CSV); Time Tracking Hours | Journal no; time export yes |
| ADP RUN, Workforce Now | Payroll register or payroll details (CSV or Excel); timecard export | Register no; timecards yes |
| Anything else | Any CSV or Excel file with a header row | If it has a date column |
| Paper or PDF | A PDF payroll register or scanned pay stubs | If present |
Step-by-step export guides: QuickBooks · Gusto · ADP
Step 3
Every check, in plain words.
Money is computed in whole cents and hours in hundredths, so nothing drifts. A check either stops the report and tells you exactly what to fix, sends it to a person for a second look, or adds a note to the summary.
Base rate against the WD
The straight-time rate paid is at least the WD base for the classification; for apprentices, the program percentage of the journeyworker rate. Below-WD pay is never shipped.
Stops the reportFringe met for every hour
Rate paid above base, plus cash in lieu, plus plan credit, covers the WD fringe on every hour, overtime hours included.
Stops the reportOvertime over 40
Hours over 40 in the workweek (this project plus other work you tell us about) are on the OT line, paid at least 1.5 times the base rate.
Stops the reportCalifornia daily overtime
On California projects, hours over 8 in a day are overtime.
FlaggedHours add up
Daily ST and OT hours add up to the weekly total, and the weekly total matches the hours on your payroll.
Asks youNo impossible days
No day over 24 hours; days over 16 hours get a second look.
FlaggedGross, deductions, net
7A equals hours times rates plus cash fringe; 7B is at least 7A; total deductions and net pay tie out to your payroll to the cent.
Second lookFringe credit matches page 2
Column 6B equals total hours times the plan credit listed in the Statement of Compliance.
Second lookApprentices registered
Every RA line has a program name and its registration agency (OA or SAA). The apprentice to journeyworker ratio is shown on the summary.
Asks youEvery classification is on the WD
Each line maps to a rate row on your project's wage determination, or to a rate you entered with its source.
Asks youThe right WD modification
We warn when SAM.gov shows a newer modification than your contract (your contract's WD still governs).
WarningPay periods split by week
Bi-weekly and semi-monthly payrolls are split into workweeks by date; deductions are shared out by gross and noted in remarks.
NotedUnfunded plans
Credit claimed for an unfunded plan gets a reminder that DOL approval is required first.
WarningSanity checks
Rates over $250 an hour, gross far off recent weeks, a name spelled differently, duplicate rows.
Second lookRequired fields
Project name and location, WD number, week ending, your business and signer, worker IDs (last 4 only).
Asks you
Underpayment is never shipped, and there is no override. If a worker is short on base rate or fringe, we tell you who, how much per hour, how many hours and the total owed. Pay the difference, upload the corrected payroll, and we finish the report.
Step 4
What lands in your inbox.
Transmittal, WH-347, summary
A cover sheet with the project, week, payroll number, WD and checks passed; the official WH-347 (Rev. January 2025) pages 1 and 2; a deductions addendum when needed; and a review summary of every check.
DIR eCPR XML
For California public works, the eCPR file built to DIR's CPR schema version 1.3, ready to upload in your DIR account.
Within 8 working hours
Monday to Friday, 7am to 7pm Eastern. Most come back in minutes. Miss it on a report that was not waiting on you, and that report is free.
The signature and date on page 2 are left blank. We prepare reports for your review; you check them and sign. We never sign for you.
Questions
How it works, answered.
What does 'a specialist double-checks' mean?
What do you do with my uploaded payroll file?
Can I fix something after I get the report?
Do you send it to my prime?
Your first certified payroll is free.
Upload last week's payroll, get a checked WH-347 back today.
No card. Same full report, no watermark.