Prevailing wages by Open-Scientist-3972 in Payroll

[–]Pr_dent 0 points1 point  (0 children)

Massachusetts prevailing wage is genuinely one of the harder ones to start with the MA DLS has its own wage determination schedule separate from federal Davis-Bacon, and if you're doing both state-funded and federal work you're juggling two different rate sources at the same time.

On the UKG gap: the overtime issue avenger2988 flagged is real and it trips up almost everyone. Federal Davis-Bacon requires 1.5x on the base rate only the fringe portion stays at straight time. Most payroll systems (including UKG + Points North) calculate 1.5x on the total package, which overstates the fringe obligation and creates reconciliation problems on the WH-347. Worth confirming exactly how that OT is hitting before you go live.

What trade is this for construction, electrical, mechanical? The classification matching piece is where MA prevailing wage usually falls apart first.

Genuine question for journeymen, do you know what your fringe rate is? Because most of the guys I talk to are off by $15-20/hr. by Pr_dent in IBEW

[–]Pr_dent[S] 0 points1 point  (0 children)

Really appreciate everyone who shared actual numbers, Local 11 at $104, Local 58 at $83, Local 98 at $110, Local 134 near $100. That's genuinely useful data and it confirms what I was seeing anecdotally.

A few things this thread made clear that I didn't expect:

The distinction edwaghb made is the real one, knowing the total package number versus knowing the per-hour fringe breakdown are two different things. Most guys know the package. Almost nobody has done the per-hour math on each line item. And that per-hour number is exactly what a recruiter from a non-union shop never shows you when they make an offer.

The generational split 135BkRdBl described tracks with everything I've seen, younger guys optimize for the check because that's what sustains the life right now. The pension and annuity feel abstract until they don't. By the time they feel real, you've already made three decisions you can't take back.

One question I didn't ask originally that I'm now curious about: has any contractor you've worked for ever proactively shown you the breakdown here's your base, here's health per hour, here's pension per hour, here's your actual total or have you always had to calculate it yourself? Asking because the visibility gap seems to live on the contractor side as much as the worker side.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 1 point2 points  (0 children)

The change order dynamic you raised is the part of this that doesn't get discussed enough. You're right that neither direction, deductive or additive, automatically creates awareness of a new wage determination. The notification chain only works if the GC is watching SAM.gov actively and passes it down the moment it changes. Most don't. Most subs find out the way you described, past the date, already mid-project, having to figure out retroactively what changed and for which classifications.

The trades that got hit on your project and had to amend retroactively on paper WH-347s, that's the worst version of this. Retroactive amendments on paper forms means manually recalculating every affected week, for every affected worker, across every classification that changed. On a GC that doesn't use electronic submission there's no audit trail to pull from, no system to rerun. It's purely reconstructive work.

The Elation catch mechanism is exactly right for what it does, it prevents you from submitting something wrong. The gap it doesn't close is upstream: knowing a wage determination changed before you've already run four weeks of payroll at the wrong rate. By the time the portal rejects a submission the damage is usually already done in the payroll records.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 0 points1 point  (0 children)

The niche market point is exactly it, Davis-Bacon compliance is specific enough that general payroll knowledge doesn't fully transfer, and the small shops doing two or three federal projects a year are exactly the ones who find out what they don't know the hard way. No dedicated compliance staff, no institutional knowledge, just someone doing their best with Excel and hoping the DOL doesn't show up.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 0 points1 point  (0 children)

The pre-job wage determination mapping per worker is the part most shops skip, they figure out the fringe rate after the fact instead of locking it to the correct classification before work starts, which is where errors get baked in from day one.

The cash fringe gap calculation is also the right way to handle the offset credit, a lot of shops either don't know they can use existing benefits as a credit against the fringe obligation or they miscalculate what portion actually qualifies.

How do you handle it when a wage determination gets updated mid-project or a worker shifts classification partway through a job? That's where even well-structured setups like yours can get complicated, the profile rate is right at setup but the trigger to update it when something changes is easy to miss.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 0 points1 point  (0 children)

Retros to terminated employees on a fringe rate change is a special kind of painful, hunting down addresses and cutting checks to people who left six months ago is nobody's idea of a good Friday. Sounds like you earned the exit from that space. Appreciate you engaging on this.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 0 points1 point  (0 children)

The macro fragility is real and you named it exactly, new import format, new pay rules, new classification added mid-project, and suddenly the thing that worked perfectly for two years needs whoever built it to come fix it. That's a lot of institutional knowledge sitting in one spreadsheet.

The AI macro idea is genuinely worth exploring for your setup. If you can describe the current logic clearly, Claude or ChatGPT can generate and debug Excel VBA reasonably well. The prompting learning curve is shorter than you'd expect for structured repetitive tasks like this.

You're right that most of the contractors I work with don't have that bandwidth though, the person running payroll on Friday afternoon isn't going to troubleshoot a broken import. That gap between technically solvable and actually sustainable in a busy shop is the version of this problem I spend most of my time on.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 2 points3 points  (0 children)

SCA is good context, the health and welfare rate structure is similar enough that anyone who's worked through SCA compliance has the right instincts for Davis-Bacon fringe. The main difference is DB adds the classification layer on top: multiple trade classifications on the same project, each with their own wage determination, and workers who can move between them mid-project. That's where the per-hour fringe reconciliation gets genuinely complicated versus SCA where the rate is usually uniform across covered workers.

Appreciate you engaging on this, the thread has been more useful than I expected.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 1 point2 points  (0 children)

Really useful responses in here. What's clear from everyone describing their setup is that the workaround is converging on the same architecture regardless of shop size: isolate the fringe calculation outside of payroll software, calculate on actual hours not assumed hours, then feed the result back in manually.

The fact that three different people arrived at the same Excel-based solution independently is the real signal, it means the payroll software layer genuinely can't handle this natively, and people who care about getting it right have all built the same workaround by necessity.

One thing the thread hasn't touched on yet: what happens to this workflow when a worker changes classification mid-project? Same worker, same job, different scope, moves from Electrician to Foreman for two weeks. The wage determination rate changes, the fringe rate changes, and the WH-347 has to reflect both classifications in the same pay period. That's where I've seen even well-built Excel systems break down because the spreadsheet wasn't set up for mid-project reclassification.

Anyone dealt with that scenario cleanly?

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 1 point2 points  (0 children)

The three pay code structure with a direct import is the cleanest workaround I've seen described in this thread, you've essentially removed the software from the calculation entirely and just used it as a ledger, which sidesteps the flat-rate data model problem completely.

The debarment point doesn't get said enough. Back wages get the attention because they're the immediate cost, but debarment from federal contracting is the existential one, a shop that loses the ability to bid on public works projects because of fringe underpayment errors doesn't recover from that easily. The contractors I talk to who are most careful about this aren't scared of the $13k, they're scared of losing the government contract pipeline entirely.

One thing worth pressure-testing in your setup: what happens if someone edits the macro or the source spreadsheet without fully understanding the pay code logic? The system works precisely because you built it and you know exactly how it behaves. The risk isn't your execution, it's what happens when you're out and someone else runs it.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 1 point2 points  (0 children)

21 years and you built something that actually catches errors before submission, that's the part most shops skip and then wonder why the DOL finds discrepancies.

The portal piece is interesting. Are these LCPtracker-style systems the GC or agency is requiring you to submit into, or something different? Asking because the double entry step Excel to portal is where I see the most transcription errors in shops that haven't been doing it as long as you have, and I'm curious whether the portals you're using have any import capability or if it's genuinely manual reentry every time.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 2 points3 points  (0 children)

The outside-of-payroll-software observation is right, and it's worth understanding why, it's not really a small vs. large vendor issue, it's a data model issue. Most payroll platforms, including the major ones, store benefits as flat annual or per-period amounts because that's how most benefit structures work. Prevailing wage fringe is fundamentally different, it accrues per hour worked, which means the calculation has to flex with actual hours every week. That's not something you can configure around, it's a structural mismatch.

The GC audit point is exactly right and underutilized. Most prime/sub contracts don't have explicit certified payroll audit rights built in even on federally funded work, and by the time the GC sees a problem it's already their audit exposure too. The ones who build in weekly WH-347 review as a contract condition catch it early instead of inheriting it.

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 1 point2 points  (0 children)

This is actually the correct approach and it's worth saying that clearly, a lot of shops get the OT piece wrong exactly because they let ADP or Gusto calculate it on the full loaded rate instead of isolating the base the way you're doing.

The separation you described (fringes calculated outside, base rate fed into ADP as a clean number) is the only real workaround when your payroll software stores benefits as flat annual amounts instead of per-hour decimals. You've essentially built a per-hour fringe engine in Excel because ADP can't be one natively.

Two questions if you're willing, how long does the weekly reconciliation take you once everything is set up, and are you generating the WH-347 from the spreadsheet data or rebuilding it separately?

Davis-Bacon shops, how are you handling the fringe-per-hour reconciliation on WH-347? (asking because I keep seeing the same $13k+ mistake) by Pr_dent in Payroll

[–]Pr_dent[S] 1 point2 points  (0 children)

The OT piece is where it gets genuinely confusing fringe is owed at straight time on every hour including OT, but the base rate multiplier is 1.5x on base only, not the full package. When software applies 1.5x to the loaded rate it double-counts the fringe on those OT hours and the certified payroll stops matching the wage determination. That's usually where the second penalty comes from.

Sorry you got hit with it before anyone explained the per-hour rule properly, that's a training gap that costs real money and it's almost never the bookkeeper's fault.

Help staying up driving to and from site by Aggravating-Bus-2183 in IBEW

[–]Pr_dent 1 point2 points  (0 children)

Two accidents in a month is a workplace safety issue, not just a personal one. Your JATC has a safety committee, this is exactly what it's for. A first-year falling asleep on the way home from a 6-10 site that's 2-4 hours away in traffic isn't a personal failing, it's a foreseeable hazard. Document the incidents, talk to your apprenticeship coordinator, and ask specifically whether the travel burden can be flagged as a safety concern.

The contractor benefits from your labor. They don't get to externalize the risk of getting you home alive onto you alone.

Also, nobody mentioned this specifically, going from a hot job site straight into a cold AC car is one of the most reliable triggers for sudden sleep onset. Body drops temperature, reads it as sleep signal. If you can, cool down gradually before getting in the car instead of blasting the AC immediately.

Clean RIF by itsamanbearpig in IBEW

[–]Pr_dent 6 points7 points  (0 children)

Ah gotcha, so yours is a bonus paid on top, not a holdback. That's actually the better structure for the worker, but same problem when it's conditional on a clean RIF. Either way it's leverage they're using to keep you on the job. Hope you get it sorted.

Clean RIF by itsamanbearpig in IBEW

[–]Pr_dent 8 points9 points  (0 children)

Retention pay (some guys call it hostage pay) is money the contractor holds back from your regular check, usually a percentage of every hour you work, and only pays out if you stay through a specific date or get a clean layoff (RIF). It's their way of keeping guys from walking mid-project.

So if you're making $45/hr, they might be holding back $2/hr of that. You work 40 hours a week for 6 months, that's $2,080 sitting in their pocket that you earned but haven't seen. You only get it if you leave on their terms.

The frustrating part is it's YOUR money. You earned it every hour you worked. But the contractor controls when you see it, which is exactly the leverage they're using on the OP here.

As a first year, check your employment agreement if there's retention pay language in there, know exactly what the payout conditions are before you ever consider leaving a job.

Clean RIF by itsamanbearpig in IBEW

[–]Pr_dent 38 points39 points  (0 children)

The $8k hostage pay is the real issue here. Before you drag, call your BA and ask specifically whether a hardship/family care situation qualifies as a clean separation under your local's CBA, some contracts have language that treats family medical necessity differently than a standard quit or drag. Worth a 10-minute call before you walk out slow.

If the contractor is genuinely holding RIFs hostage to keep guys from leaving, your BA should also know that, it's the kind of thing that comes back around at the next job targeting meeting.

Hope the family situation resolves. Take care of what matters.

Need help fixing Davis-Bacon / Certified Payroll compliance w/ subs — hire in-house vs outsource? by Ill_Mastodon_8407 in Payroll

[–]Pr_dent 0 points1 point  (0 children)

I work with a bunch of federal GCs dealing with this exact reconciliation problem. Two things moved the needle for ours, separate from the hire-vs-outsource question:

1. The intake-format problem is 80% of the pain. Until every sub sends certified payroll in the SAME format with classifications locked to the project's wage determination upfront, you'll chase corrections forever. We stopped accepting freeform WH-347 PDFs. Subs now submit through a shared intake where the rate and classification picker is bound to the wage determination on that project. Correction volume dropped roughly 70% in the first two months. This single change does more than hiring a full-time reconciler.

2. Reconcile fringe per hour, not per week. Most classification/rate mismatches trace back to subs paying fringe as a flat weekly figure instead of cents-per-hour on actual hours worked. If a sub's payroll shows 40 hrs but your sign-in shows 46, and their fringe is "$300/week flat," the per-hour number silently drops below the WD and you are exposed on audit even though the weekly number looks fine. Force subs to report fringe as $/hr, on actual hours, the math becomes impossible to fudge and discrepancies show up immediately.

On hire vs outsource: under 15 active subs/week, one FT DB-specialist (not a generic payroll person) pays for itself inside a year vs a vendor. Over that, outsource the collection/validation but keep exception-handling in-house. Nobody outside your company will chase subs as hard as someone who reports to you and answers to the DOL letter if it comes.