Check your certified payroll before you sign it
Drop in one week of payroll as a CSV file and type each trade's rates from your wage determination. The page flags pay under the base rate, short fringe, overtime under time and a half, and apprentices over the ratio. It checks your numbers before you sign.
- Free. Nothing to install, and no account.
- Your file stays on your computer. Nothing is uploaded or saved.
- Built on the federal Davis-Bacon rules, with a Michigan mode for state projects.
Looking for the blank WH-347? The U.S. Department of Labor gives it away free, as a PDF and as an online form. This page doesn't replace the form. It checks the numbers you put on it. New to the form? How to fill out the WH-347, line by line.
Run the check
Type your rates, pick your payroll file, then press Check my numbers. No CSV file yet? Start from the sample file and type over it in any spreadsheet.
To see how it works first, press Try the sample week. Its 9 made-up rows hide 4 pay problems: overtime paid at the straight rate, a short fringe, a wage under the base rate and too many apprentices on three days. The check flags all 4 and shows a possible $215.00 short for the week.
What happens to your file: your browser reads it on this computer. It isn't uploaded and it isn't saved. Close the tab and it's gone. The page counts visits and button presses, never what's in your file.
How to use it
- Get one week out of payroll. Save it as a CSV file with the columns below. Most payroll and spreadsheet programs can do that. Or start from the sample file and type over it.
- Type your rates. For each trade on the payroll, copy the base rate and the fringe from the wage determination in your contract. If you have apprentices, add the ratio from their apprenticeship program, like 1:3.
- Press Check my numbers. Fix what it flags and check again.
- Then fill in the WH-347 and sign it. The check helps you get there. The signature is still yours.
The columns
| Column | What to put in it | Example |
|---|---|---|
worker | A name or ID, like the last four digits of the Social Security number. One row per worker for each trade they worked. | Ana R. |
classification | The trade, spelled the way it is in your rates. | Carpenter |
day1 to day7 | Hours worked each day of the pay week. Day 1 is the first day of your pay week. Blank counts as 0. | 8 |
rate_paid | The hourly wage, not counting any cash paid in place of fringe. | 30.00 |
cash_fringe | Cash paid each hour in place of fringe benefits. Blank counts as 0. | 10.00 |
plan_fringe | What you pay into health, pension or other plans, per hour. Use the plan's hourly credit, spread over every hour the worker works in the year. Blank counts as 0. | 0.00 |
apprentice | yes for a registered apprentice, no for everyone else. RA and J work too. | no |
ot_rate_paid | Optional. The hourly wage for overtime hours, not counting cash fringe. Add it to check overtime. | 45.00 |
These line up with the WH-347. The rate is column 6A, plan fringe is column 6B, and cash in place of fringe is column 6C. The form shows 6B and 6C as weekly totals. This page wants them per hour.
What it checks
- Base plus fringe. Every hour needs at least the base rate plus the fringe. You can pay it as cash, as plan payments, or both, and cash above the base rate counts toward the fringe. Sources: 29 CFR 5.31 and 40 U.S.C. 3142(d).
- Overtime. Hours over 40 in the week need at least 1.5 times the basic rate, and the fringe is added at its straight amount. The basic rate is never lower than the base rate on your wage determination. Sources: 40 U.S.C. 3702, 40 U.S.C. 3142(e) and 29 CFR 5.32.
- Apprentices. On any day, a trade's apprentices can't outnumber what the program's ratio allows. An apprentice over the ratio gets the full rate for the work. Source: 29 CFR 5.5(a)(4).
- Your file and your rates. Rows it can't read and trades with no rate typed are listed, so nothing gets skipped quietly.
Rules it's built on: 29 CFR part 5, 29 CFR part 3, 40 U.S.C. 3142, 40 U.S.C. 3702, DOL's WH-347 instructions and Michigan's Act 10 of 2023.
An overtime example
Say the base rate is $30.00 and the fringe is $10.00, paid in cash. An overtime hour needs at least $30.00 times 1.5, which is $45.00, plus the $10.00 cash fringe. That's $55.00. Paying 1.5 times $40.00, or $60.00, is fine too. It's just more than the minimum.
One catch: the page goes by your columns. If you pay a single $40.00 rate and put all of it under rate_paid, it figures overtime on $40.00. If $10.00 of that is cash in place of fringe, put the $10.00 under cash_fringe. Then overtime is figured on $30.00.
What it doesn't check
- Whether each worker is in the right trade for the work they did.
- Whether you have the right wage determination, or its latest changes.
- Whether your fringe plans count, or their hourly credit. It uses the numbers you type.
- Gross pay, deductions and net pay.
- Apprentice pay steps, and whether each apprentice is registered.
- Hours worked off this job in the same week. Those count toward overtime too.
- Overtime for a worker split across two trades. It tells you when to check that by hand.
- Michigan double-time pay, start and end times, and trades whose schedules set their own overtime rules.
- Due dates, and other states' prevailing wage rules.
It checks math against the rates you type. It doesn't decide which trade a job belongs to, and it isn't a lawyer. If something doesn't fit your job, ask the contracting officer or the agency named in your contract.
Michigan certified payroll went online on 2 April 2026
Checked 8 November 2026
On Michigan state projects, contractors and subcontractors now send certified payroll to the state's online system instead of the contracting agent. It's due no later than 10 days after each pay period ends. That rule is MCL 408.1122, part of the prevailing wage law Michigan brought back in 2023 Public Act 10 and amended in 2024 Public Act 110.
The 10-day clock
The 10 days start when the pay period ends. For a pay week that ends Saturday, 7 November 2026, day 10 is Tuesday, 17 November 2026. Federal jobs run on a different clock. The WH-347 goes in within 7 days after the regular payday, under 29 CFR 3.4.
The portal
Michigan's labor department, LEO, runs the system. The Online Certified Payroll Submission button on LEO's prevailing wage page opens an LCPtracker portal at userportal.fortifyv2.lcptracker.net. To get in, you register with LEO's Wage and Hour Division, which costs $500 a year, and you register each project. LEO then sends the steps to log in.
What the state's system asks for
- Each worker's trade
- Apprentice, journeyman or other level
- Gross wages for the pay period
- Hours worked each day
- Start and end time each day
- Hourly wage rate, hourly overtime rate and hourly fringe rate
It leaves out home addresses, phone numbers and Social Security numbers. When you submit, you sign electronically that the record is complete and accurate, and that you paid at least the required wage and fringe rates. You also confirm you understand that breaking the rule can lead to a suspended or revoked state project registration. LEO can fine up to $5,000 for each violation, plus 10%, under MCL 408.1113.
Overtime on Michigan rate schedules
LEO's rates page says every trade follows these rules unless its schedule notes otherwise:
- Time and a half for hours over 8 in a day, or over 10 where four 10-hour days are allowed.
- Time and a half for hours over 40 in a week, and for Saturdays.
- Double time for Sundays and recognized holidays.
LEO updates its rates every year on 1 November. Tick Michigan state project in the checker to count these hours.
Which jobs it covers
State-funded work on public buildings, schools, roads, bridges and other public works, plus wind, solar and storage projects of 2 megawatts or more, private ones included. Contracts that already carry federal Davis-Bacon rates are exempt from the Michigan law. So are projects that send certified payroll to MDOT, and routine maintenance on energy projects.
Federal jobs use the WH-347
The U.S. Department of Labor gives the WH-347 away free, as a PDF and as an online form that runs in your browser. The online form does the pay math, one worker at a time. DOL's form pages don't mention checking your pay against your wage determination's rates. That's the part this page does. Get the form from DOL's WH-347 page, or use the online WH-347.
Sources, read 8 November 2026: MCL 408.1101, 408.1102, 408.1113 and 408.1122 in Michigan's Act 10 of 2023; LEO's prevailing wage and rates pages on michigan.gov; 29 CFR 3.4; and DOL's WH-347 pages.
Guides
- How to fill out the WH-347, line by line: every box on the January 2025 form, with a filled-in row.
- Davis-Bacon wage rates for 2026: find your wage determination on SAM.gov and read its rate lines.
A desktop app, if this page earns it
If contractors use this page, I'll build a desktop version. It would check every week straight from your payroll export, keep your payroll on your own computer, and cost one price with no monthly fee. It isn't built yet.
Thanks. Your click is counted, and nothing else was sent. There's no email list yet, so check back on this page.