I've had the fewest WH-347 issues when I treat the "classification + rate" combo as the single source of truth and reconcile everything against it before anything goes out. For every worker, every week, I run a line-by-line check that their job classification, base hourly rate, fringe rate, and total "effective" rate match the correct wage decision for that project, county, and trade. Then I confirm that every hour paid at that rate shows up the same way in three places: the WH-347, the payroll register, and the timecards or daily logs. If someone worked two roles in a week (say "Labourer" and "Operator"), I make sure those hours are split by classification with the right rate for each, not blended into one average. I also keep a short note in the file explaining any rate that's higher than the wage decision (for example, "company standard rate above minimum"), so an auditor doesn't have to guess why it's different. This matters because most rejections I've seen weren't about missing signatures or late forms; they were about misaligned classifications, wrong rates, or hours that didn't match across documents. When an agency can see that classification, rate, and hours line up everywhere, they tend to accept the report without pushback.
The one tactic that consistently prevented WH-347 rejections for us was running a weekly wage-to-classification cross check before submission, not after. We validate that each worker's classification exactly matches the wage decision language and that fringe benefits are applied consistently as cash or bona fide benefits, never mixed. The habit that matters most is attaching a simple fringe calculation worksheet to every report, even when not explicitly required. Agencies reject reports less for math errors than for ambiguity. I still remember the frustration of a report being kicked back over a missing fringe explanation. Since adding that documentation, approvals feel routine instead of stressful Albert Richer, Founder, WhatAreTheBest.com
The most common reason for rejection that we have seen in practice is a mismatch between the employee classification and the appropriate prevailing wage rate for the work performed. The most common pitfall is assigning an employee one classification (for example: Laborer) for the entire week, even though he or she performed work with more than one classification. Our best defense is to catch this during the system-level submission prior to any payroll submittal. We provide the operator with an electronics submission check in the essentially automated payroll component. This function checks the daily worker classification code the payroll operator has entered against the master copy wage determination document that is uploaded and included in that government contract. If a Laborer classification is entered for work requiring electrician rate work, for instance, we alert the payroll operator and hold it in exception. This way, the mistake never makes it onto the WH-347, nor gets it involved in the rejection and resubmission loop.