A WIP report and certified payroll draw from the same field hours, gross wages, and fringe benefits, so a single miscoded crew hour distorts percent complete and earned revenue while simultaneously creating a prevailing wage compliance gap. Building the WIP report from fully burdened labor data first and then reconciling payroll register totals and weekly hours against WH-347 filings keeps cash flow, audits, and bonding capacity intact.
Most contractors running prevailing wage jobs keep two separate paper trails. One person builds the WIP report for the CPA and the surety. Someone else files WH-347 forms every week for the contracting agency. They rarely compare notes, which is a problem because both documents draw from the same well: field hours, gross wages, and fringe benefits.
When those numbers disagree, you don't get one error. You get two. A misallocated crew hour inflates cost-to-date on one job, understates it on another, and shows up as a discrepancy in a Department of Labor audit at the same time.
Here's how certified payroll data feeds WIP reporting, what breaks when the two drift apart, and how to create a WIP report that ties back to your payroll register line by line. You'll also get the standard WIP report format and the reconciliation checks worth running before anyone signs off.
Ask most office managers what connects the WIP report to certified payroll and you'll get a shrug. One goes to the accountant, the other goes to the agency. Strip both documents down to their inputs, though, and you find the same crew, timecards, and pay rates sitting underneath each one.
WIP stands for work in progress, and a WIP report tracks job costs incurred to date against your estimated total costs, producing a percent complete figure that tells you whether each contract is overbilled or underbilled. People sometimes ask about the difference between a WIP report and a WIP schedule. Functionally, there isn't one. “Schedule” is the term your CPA and surety use for the same document when it's attached to financial statements.
The completeness percentage drives many downstream decisions. It shapes how much revenue you can recognize this period, how your bonding agent reads your capacity, and whether your banker sees a contractor collecting cash ahead of cost or floating the job out of pocket. Accurate WIP reporting starts with accurate cost data, not clever spreadsheet formatting.
Certified payroll is your evidence that everyone on a prevailing wage job got paid correctly. Form WH-347, published by the US Department of Labor, captures each worker's classification, hours by day, gross wages, deductions, and fringe benefit contributions. You file it weekly or monthly depending on the contracting agency, and a company officer signs a statement of compliance attesting that the figures are accurate.
That signature carries weight. The officer is personally attesting to classifications and Davis-Bacon fringe benefit amounts, which means the underlying hour-by-hour detail has to hold up to review months after the crew has moved on to the next site.
Here's where the two documents meet. The hours and gross wages you certify on WH-347 are the same raw data that feeds your job-costing module, and that module is what generates the cost-to-date column in your WIP report. Labor is typically the largest and most volatile cost bucket on a construction job, so it carries the most weight in the “percent complete” calculation.
If a crew hour gets coded to the wrong job, you've created a payroll compliance exposure and a distorted WIP figure with a single keystroke.
Misallocated or underreported labor breaks your WIP numbers before profitability analysis even begins. The percent complete is wrong, so the revenue recognition built on top of it is wrong too. Fix the coding at the timecard, and both reports correct themselves at the same time.
Three checks catch most of the damage before it reaches either report:
When those three hold, WIP reports and certified payroll stop being separate chores. They become two views of one clean dataset, which is exactly how anyone asking how to create a WIP report should be thinking about the process. The WIP report format your CPA wants is straightforward to produce once the labor data underneath it is trustworthy, and certified payroll reporting software that syncs with your job costing keeps that data honest week after week.
{{banner-large-cp="/banners"}}
The failure mode here is rarely dramatic: nobody discovers a $400,000 hole on a Tuesday afternoon. Small allocation errors compound quietly over months, and by the time someone catches the pattern, the damage has already spread into four separate places: your bank account, audit file, bonding line, and compliance record.
When crew hours get coded to the wrong job or dumped into a general labor bucket, the affected project shows lower costs than it actually incurred. Percent complete drops and earned revenue right along with it. Your WIP report now says you're overbilled on a job where you genuinely earned every dollar you invoiced.
An overbilled job is one where you've invoiced the owner for more than you've actually earned based on work completed. That excess billing is a liability on your balance sheet, not profit, because you still owe the labor and materials to finish the work.
Project managers who see phantom overbillings react the way you'd expect: they slow down billings to “correct” the imbalance, which simply means that you've delayed cash on a job that was performing fine. Meanwhile, the job that absorbed those misallocated hours looks over budget, and someone starts hunting for a productivity problem that never existed. Two jobs damaged, one coding error.
CPAs testing a WIP schedule work backward. They pick a job, pull the cost-to-date figure, and trace it to source documents: invoices, purchase orders, and the payroll register. Labor is usually the largest and messiest piece of that trail. If your certified payroll filings show 1,240 hours charged to a project and your job cost ledger shows 1,190, that 50-hour gap needs an explanation, in writing, with support behind it.
Auditors don't accept “the office manager reclassified some hours.” Unsupported cost-to-date figures lead to adjusting entries, qualified opinions, or a management letter comment about weak controls over labor allocation. None of those read well when you're handing financials to a lender. Contractors who build job costing directly off payroll data avoid most of this because the trail from timecard to WIP line never breaks in the first place.
Sureties read WIP reports more carefully than almost anyone else who touches your financials. They're studying gross profit trends by job, the ratio of underbillings to overbillings, and whether your earlier estimates actually held up. Wild swings in margin between quarters signal that your cost data was wrong the first time around, and a surety underwriter has no way to tell a bookkeeping problem from a company that loses control of its jobs.
Underwriters don't penalize a thin margin nearly as much as they penalize a margin that keeps changing.
The practical outcome is a reduced single-job limit or a smaller aggregate program, which quietly removes larger public work from your bid list. You rarely get a phone call explaining it; you just stop qualifying for the jobs you used to chase.
On the compliance side, that same labor data carries legal weight. Hours recorded against the wrong classification, fringe credits calculated on an incorrect base, or overtime missed across multiple jobs in a single week all surface as violations. The US Department of Labor can require back wage payments, withhold contract funds, and pursue debarment from future federal contracts for up to three years.
Falsifying a certified payroll statement is a separate and far more serious matter since each weekly filing carries a signed statement of compliance. Sloppy allocation and intentional misstatement look uncomfortably similar in a records review, which is why the details on your WH-347 filings deserve the same scrutiny you'd give a change order.
Notice the pattern running underneath all four consequences. Every one of them traces to the same root cause: labor hours that were never allocated correctly at the source. Here is how a single coding error travels through both reports at once:
Two teams then spend a week reconciling spreadsheets to figure out which version was right, but neither was. Fixing the allocation at the timecard level is the only correction that holds because everything downstream (WIP reporting, billing decisions, compliance filings) is just arithmetic on top of that one number.
The build order matters more than most controllers expect. Start with contract values and work backward toward costs, and you'll end up plugging numbers to make the schedule balance. Start with labor, the largest and most error-prone bucket on almost every job, and the rest of the schedule falls into place with real support behind every figure.
No accounting board mandates a single WIP report format, but the version your CPA and your surety expect looks broadly the same from contractor to contractor. What actually varies between a clean schedule and a questionable one is the discipline behind each column. Here's what belongs in each one and where the number should originate:
Two columns cause most of the trouble. Estimated total cost gets stale when nobody updates it after the bid, and cost to date gets distorted when labor posts at base wage instead of fully burdened cost. Fix those two and your WIP reports stop drifting from reality.
Work through these steps in order, pulling every data set as of the same cutoff date, or the comparisons at the end won't hold:
Follow that sequence and every figure on the schedule traces back to a document you can hand an auditor without a narrative explanation. That traceability is the whole point of WIP reporting, and it's what separates a schedule your banker trusts from one they interrogate line by line.
An underbilled job is one where you've earned more revenue than you've invoiced, which means you're financing the owner's project with your own working capital until the next billing cycle catches up.
Three checks catch most problems before they reach a lender.
First, tie total payroll register dollars for the period to total labor posted across all jobs in the job cost ledger. If the ledger comes up short, hours are sitting in an unallocated or overhead bucket where they don't belong.
Second, compare hours per job per week against your certified payroll filings for those same weeks. Any variance needs a documented reason before either report leaves the building because the two are read side by side during an audit.
Third, verify that no unapproved change order costs are inflating cost to date while the matching revenue sits outside the contract amount. That mismatch is the fastest way to manufacture a fake underbilling and the first thing a seasoned reviewer looks for.
Every problem covered so far traces back to the same structural flaw: labor data lives in one system, job costs live in another, and a person moves numbers between them by hand. Dapt closes that handoff by treating payroll, time tracking, and accounting as one connected pipeline instead of three systems that only occasionally agree with each other.
Dapt's Intelligent SYNCHRONIZATION Engine pulls time and attendance data from trackers like QuickBooks Time, maps hours, pay rates, and benefits against payroll providers (including ADP, Paychex, Paycor, and Paycom), and then feeds the results into QuickBooks, Sage, or Microsoft Dynamics 365. Project data from platforms like JobTread lines up alongside it, so budgets and actuals sit in the same view instead of two different tabs.
The practical effect for a prevailing wage contractor is simple: the hours that appear on your certified payroll filing are identical to the hours sitting in your cost-to-date column. No export, no pivot table, no version control argument on a Friday afternoon. When someone asks how to create a WIP report without a week of prep, this is the answer because the underlying labor data is already coded correctly.
Prevailing wage work breaks most job costing setups because a single employee can carry three classifications, two rate schedules, and fringe obligations that shift by jurisdiction inside one week. Dapt handles varying labor rates, pay rules, and multi-jurisdictional compliance at the allocation level, assigning every dollar of labor, materials, and overhead to the correct project, phase, or task before it ever reaches a report.
Allocation accuracy at the source is cheaper than reconciliation accuracy after the fact. One happens automatically; the other costs you a week.
Here is how four routine tasks play out when payroll and accounting stay separate, compared with running both from one labor record.
The right-hand column also changes what your WIP report format can realistically include. Once labor is allocated at the source, adding phase-level detail or a labor-only cost column costs you nothing extra in prep time.
When your CPA traces a cost-to-date figure back to source, the support already exists. The same holds for a wage determination review. Because both reports pull from one labor record, there is no gap to explain and no second team assembling a competing version of the truth.
Owners and COOs usually notice the time savings first, then the bidding improvement, since accurate historical labor costs (and a reliable job cost report behind them) make the next estimate sharper. Better WIP reporting tends to follow on its own, because the inputs stopped being a guess. If you're carrying prevailing wage work and reconciling two sets of numbers every month, get in touch.
{{banner-small-1="/banners"}}
The gap between your compliance filings and your WIP report comes down to data, not paperwork. Both documents pull from the same well: every hour a crew member works either lands on the right job with the right classification, or it quietly corrupts two records at once, the one your surety reads and the one a wage investigator might request two years from now. Month-end cleanup can't repair a number that was already wrong when it left the field, which is why anyone asking what is a WIP report usually ends up asking a harder question about where their hours actually come from.
So start at the source. Pick one active prevailing wage project, pull last month's certified filings alongside your job cost ledger, and compare hours week by week. If the totals don't line up, you've found the leak before your CPA, your banker, or the Department of Labor does. That one exercise tells you more about your WIP reporting than any template will, and it also shows you how to create a WIP report that holds water instead of one that simply fills in a WIP report format. Consistent WIP reports come from connected systems, not from a spreadsheet stitched together the night before a bank meeting.
Monthly is the practical minimum for most contractors, though anyone running multiple prevailing wage jobs benefits from a weekly refresh as payroll posts. The more frequently labor hours flow into job costing, the less catch-up work a month-end WIP report requires.
Your CPA uses it to support revenue recognition, your surety underwriter uses it to set bonding limits, your bank uses it to assess working capital, and your project managers should use it to catch budget problems while there is still time to react.
They make an excellent cross-check, since your weekly WH-347 submissions already document hours and gross wages by worker and project. Comparing those totals to your labor postings by job will expose allocation errors long before an auditor or an underwriter finds them.
A controller or accounting lead typically owns the WIP schedule, pulling cost-to-date from the job cost ledger, while project managers supply the estimated cost to complete. On smaller shops, the same office manager who runs payroll often builds the WIP report too.
The strongest setups connect payroll and time tracking directly into job costing rather than relying on a spreadsheet template. Platforms like Dapt are built for that, tying certified payroll and WIP reporting to the same labor data instead of two separate systems.