
You bid the job at a 40% labor target. It closed at 51%, and nobody in the office can say where the other eleven points went.
Closing that gap is the whole job of the electrical contractor labor cost percentage. It is a ratio you measure on your own books — not a number you look up in an article and adopt.
This page gives you the formula, where each input lives, the benchmark ranges and who published them, and a diagnostic for a number that comes back wrong. You can run it Monday morning with a payroll register and a P&L. Nothing here requires buying anything.
What "labor cost percentage" actually means — three different numbers
Labor cost percentage is fully burdened labor dollars divided by a denominator. Contractors use three different denominators, and they produce three very different numbers on the same job.
Before you compare your number to anybody's benchmark, say which denominator you used. A 45% that means labor-of-job-cost and a 45% that means labor-of-revenue are not the same number.
| Name | Formula | What it tells you | When to use it |
|---|
| Labor burden rate | (Employer costs above wage) ÷ base wage | How much a paid hour really costs you | Building your hourly rate before you bid |
| Labor % of job cost | Burdened labor ÷ (labor + material + equipment + sub) | How labor-heavy this type of work is | Comparing jobs of the same type to each other |
| Labor % of revenue | Burdened labor ÷ revenue (contract value, or collected) | Whether the price covered the crew | Whole-company health; monthly and annual review |
Labor burden rate is a rate, not a ratio
Burden answers "what does one hour of this electrician cost me?" It is an input to the other two, not a substitute for them. Full build-up in the labor burden rate guide; the short version is in Step 1 below.
Labor % of job cost is the estimating number
This is the one that tells you whether your labor units were right. It swings hard with the material package — a switchgear job and a service call are not comparable on this basis.
Labor % of revenue is the number your accountant means
When somebody says "labor should be 35% of revenue," this is the number they mean. It rolls up every job plus the hours that never landed on a job at all.
Step 1: build your burdened hourly cost
Start here, because every other number is built on it. Take one real electrician, take their base wage, and add every dollar you spend to have them on the truck.
Example build-up. Every input is visible — swap in yours.| Component | Basis in this example | Per hour on a $38.00 base wage |
|---|
| Base wage | Journeyman | $38.00 |
| FICA (Social Security + Medicare) | 7.65% | $2.91 |
| FUTA + SUTA | 2.5% | $0.95 |
| Workers' compensation | 8% of payroll | $3.04 |
| General liability | 1.5% | $0.57 |
| Health insurance | Flat dollar | $3.70 |
| Retirement match | Flat dollar | $1.60 |
| Paid leave + holidays | Flat dollar | $2.60 |
| Truck, tools, phone, license/CE | Flat dollar | $3.10 |
| Burdened cost per hour | $56.47 | |
| Burden as % of base wage | $18.47 ÷ $38.00 | 48.6% |
One of those lines deserves a note. Workers' comp for electrical work is one of the most variable numbers you carry — it moves with your state, your classification code, and your experience mod. The 8% above is an example input, not a benchmark. Get the real number off your policy declarations page, not off a blog.
Here is an independent cross-check you can verify yourself. The BLS Employer Costs for Employee Compensation release for Q4 2025 puts construction-industry wages at $35.47 per hour worked and total benefits at $15.45 — benefits equal to 43.6% of wages.
That BLS figure excludes truck, tools, and license costs. Strip those from the example above ($18.47 − $3.10 = $15.37, over the $38.00 base) and it lands at 40.4%, in the same neighborhood as the federal data. If your burden math comes out at 20%, you left something out.
Step 2: the formula, and where each input lives
The formula is two numbers over one denominator:
Labor cost percentage = (burdened labor dollars ÷ denominator) × 100Getting the two numbers is the actual work. Here is where each one lives for a shop running QuickBooks Online and an outside payroll service.
| Input | Where to pull it | The gotcha |
|---|
| Gross field wages | Payroll register / Payroll Summary for the period | Exclude office and owner-admin payroll. Include the owner's field hours |
| Employer taxes + comp + benefits | Same payroll report, employer-cost columns; comp and GL from your policy | Comp is billed on an audit lag; use the current rate, not last year's invoice |
| Field hours by job | Your time records | If hours aren't tagged to a job, you can compute a company number but not a job number |
| Revenue by job | Profit & Loss by Customer, or invoices by job | Only splits labor by job if payroll allocation to jobs is turned on — check whether yours is before you trust a per-job number |
| Cash actually collected | Deposits by customer, plus credit memos | Credit memos and write-offs live outside the job cost report. See Step 6 |
If your hours have never been tagged to jobs, start with the company-wide number this month and the per-job number next month. The company number is still useful, and it takes twenty minutes. The job costing walkthrough covers setting up the job structure underneath it.
Step 3: a worked example on two job types
Run the same math on two different kinds of work and the reason for the denominator confusion becomes obvious.
Example A — commercial tenant improvement, fixed price $86,000. All inputs visible. The journeyman is the $38.00 build-up above. Apprentice base $23.50 and foreman base $46.00, burdened at the same 48.6%: $34.92 and $68.36.| Line | Hours | Burdened rate | Cost |
|---|
| Journeyman ($38.00 base) | 320 | $56.47 | $18,070.40 |
| Apprentice ($23.50 base) | 240 | $34.92 | $8,380.80 |
| Foreman ($46.00 base) | 80 | $68.36 | $5,468.80 |
| Total burdened labor | 640 | $31,920.00 | |
| Material + gear | $34,500.00 | ||
| Equipment, lift rental, misc. | $3,800.00 | ||
| Total job cost | $70,220.00 |
Labor as a percentage of contract value: $31,920 ÷ $86,000 = 37.1%.
Labor as a percentage of job cost: $31,920 ÷ $70,220 = 45.5%.
Same job, same hours, two numbers eight points apart. Nothing changed except the denominator.
Example B — residential service call, T&M invoice $1,450.| Line | Detail | Amount |
|---|
| On-site hours | 8.5 hrs × $56.47 burdened | $480.00 |
| Drive + supply house (paid, not billed) | 1.5 hrs × $56.47 | $84.71 |
| Total burdened labor | 10.0 hrs paid | $564.71 |
| Material cost | Billed at $387.50 | $258.00 |
| Total job cost | $822.71 |
Labor as a percentage of the invoice: $564.71 ÷ $1,450 = 38.9%.
Labor as a percentage of job cost: $564.71 ÷ $822.71 = 68.6%.
The TI job reads 45.5% of job cost. The service call reads 68.6%. Both are healthy. A single blended benchmark applied to both would flag one of them as a disaster.
Note the 1.5 paid hours nobody billed. That is 1.5 hours out of 10 paid — 15% of that job's labor sitting outside the invoice. Run it on your own drive and supply-house time with the unbilled-hours calculator.
What a good electrical contractor labor cost percentage looks like
Here are the ranges in circulation, with an honest note on where each one comes from. Treat all of them as starting points, not verdicts.
| Measure | Commonly cited range | Source, and how solid it is |
|---|
| Labor burden as % of base wage | 40–55% | Contractor pricing guides. Independently corroborated: BLS ECEC puts construction benefits at 43.6% of wages (Q4 2025), before truck and tools |
| Direct field labor as % of company revenue | 35–45% | Contractor-finance publishers citing NECA's Financial Performance Report. The FPR is member-gated, so this is secondhand — a rule of thumb, not a verified statistic |
| Labor as % of job cost — commercial / new construction | ~35–50% | Derived from published labor-to-material split conventions. Moves with the size of the material package |
| Labor as % of job cost — residential service | ~55–75% | Same basis. Small material orders push the ratio up. Service work inverts the 40/60 split below — see Example B at 68.6% |
| Labor-to-material split, residential new construction / remodel (material-heavy scope) | Around 40/60 | Widely published estimating convention. It describes material-heavy scopes, not service calls |
| Overhead as % of revenue | 14–28% | Range across published sources. Wide because "overhead" is defined differently in each one |
| Net profit margin | 5–6% median, 10–12% top quartile | Attributed to NECA's Financial Performance Report by contractor-finance publishers |
| Revenue per journeyman, annual | $180,000–$250,000 | Circulated as a NECA benchmark. We could not trace it to a primary NECA document — verify before you manage to it |
Your own trailing twelve months is a better benchmark than any of this. Compute the number for the last four quarters, split it by work type, and compare yourself to yourself. That comparison controls for your market, your wage scale, and your comp rate — no published range does.
Where the number sits relative to net margin is a separate question, covered in the profit margin and job costing breakdown.
The five things that corrupt the number before you calculate it
Every input to this ratio started as an hour somebody wrote down. These five distort the answer before any arithmetic happens, and none of them are the crew's fault.
Round-number recall at the end of the week
Nobody remembers Tuesday on Friday afternoon. Hours reconstructed from memory come out in halves and quarters, and they attach to whichever job is easiest to recall.
This does not change what you paid. It changes which job carries it — which is worse, because it corrupts every per-job number you have.
Example: 8 field electricians, 15 minutes a day of end-of-week rounding, 250 working days, at the $56.47 burdened cost above. That is 8 × 0.25 × 250 = 500 hours, about $28,235 of payroll sitting in the wrong column. Run it with your crew size and rate.Hours booked to the wrong job
Two crews, one truck, three addresses in a day. The hours net to zero across the company and lie about every individual job.
Job A reads 31% and looks like the best work you've ever done. Job B reads 58% and gets blamed on the crew that ran it.
Change-order work with no authorization behind it
The GC asks for two extra circuits. Your guys run them. The hours land in the labor column, the scope never lands on an invoice.
That shows up as an overrun on a job that was executed correctly. It is a paperwork failure, not a productivity failure, and the fix is a signed T&M authorization before the extra work starts — not a faster crew.
Overtime, which does not scale the way people assume
Overtime moves your labor cost three ways at once, and only one of them is the wage.
The wage goes to 1.5x. The percentage-based burden that rides the wage — FICA, unemployment, and GL, 11.65% in the build-up above — rides the higher number with it. Workers' comp is the exception: in most states comp premium is rated on straight-time-equivalent wages, with the overtime premium portion excluded, so that 8% rides the $38 base, not the $57. And the flat-dollar part does not repeat at all — health, retirement, PTO, and the truck are already spread across the straight-time hours.
Example, using the same build-up. A straight-time hour costs $56.47. An overtime hour: $57.00 wage + 11.65% of $57.00 ($6.64) + comp at 8% of the $38.00 straight-time-equivalent wage ($3.04) = $66.68 — about 18% more than a straight-time hour, not 50% more. Burden OT at the full 48.6% and you overstate the job; burden it at zero and you understate it. Check your own state's comp rating rules before you copy the exclusion.Apprentice and journeyman mix
Crew mix moves the blended rate more than most estimating errors do, and it changes week to week with the schedule.
Example: one journeyman at $56.47 burdened ($38.00 base) plus one apprentice at $34.92 burdened ($23.50 base) blends to $45.70 an hour. Swap the apprentice for a second journeyman and the blend goes to $56.47 — 24% more labor cost on identical hours.The number almost nobody computes: labor percentage after the invoice argument
Every pricing article computes labor against what you invoiced. You get paid on what you collected, and on this job the gap between those two moves the ratio further than a ten-point burden error does.
Here is the situation. You send a T&M invoice. The customer looks at the labor line and asks what three guys did for two days. You can't reconstruct it in a way they can follow, so you take 8% off to keep the relationship and keep the account.
Example: T&M job invoiced at $24,000, burdened payroll on the job $9,600.The third row asks what a burden mistake would have done to the same job, so the two distortions are comparable. $9,600 of burdened labor at 48.6% burden implies $6,460 in base wages ($9,600 ÷ 1.486). Understate burden by ten points — 38.6% instead of 48.6% — and the same hours book at $6,460 × 1.386 = $8,954.
| Basis | Math | Labor cost percentage |
|---|
| Against invoiced revenue | $9,600 ÷ $24,000 | 40.0% |
| Against collected revenue after an 8% concession | $9,600 ÷ $22,080 | 43.5% |
| For scale: same job, burden understated by 10 points | $8,954 ÷ $24,000 | 37.3% |
The invoice concession moved the number 3.5 points. A ten-point burden error moved it 2.7. The concession is the bigger distortion here, and it is the one your job cost report structurally cannot show you — it lands as a credit memo and never touches the job.
The charge was fair. The explanation was missing. That is a documentation problem, not a pricing problem, and it is fixed with the same record that fixes your labor percentage.
A line that reads 8.77 hrs asks the customer to take your word for it. A line that reads Thu 7:02a–3:48p — pulled and terminated circuits 12–18, second-floor east wing ends the conversation before it starts. What a defensible T&M package contains is laid out in the T&M billing guide.
Fix the input: what to capture, and in what words
Three fields, captured the same day, are enough to make both numbers honest — the internal ratio and the invoice backup.
- Which job. Not "the school." The job number or address you invoice against.
- Hours, with a start and stop. Actual times, not a daily total written on Friday.
- What got done. One line, in the electrician's own words, specific enough that a stranger could picture it.
Mon 6:55a–2:30p — trenched and set 2 in. PVC from transformer pad to panel MDP, 140 ft.Wed 9:10a–11:40a — troubleshot dead receptacle circuit, found failed backstab in J-box above ceiling grid, replaced device.Fri 7:00a–3:30p — hung and wired 22 troffers, grid line C, second floor. Waiting on lens kits for line D.
worked on the school, same as yesterday, 8 hrs.
Three ways to capture it, cheapest first: a carbon-copy field ticket book from the supply house, one ticket per person per day; a shared spreadsheet with one row per person per day; or a phone app that requires a job and a note before it will clock somebody out — FieldTimesheet does that, and so do several others. The paper ticket works. What matters is that the job and the note are written the same day, not reconstructed on Friday.
Frame it with the crew the way it actually is: the note is what stops a customer chiseling the company on work that was genuinely performed. That is a reason a field electrician has to cooperate with. "So I can check on you" is not.
Blank sheets to start from are in the free timesheet and field report templates — labor backup sheet, daily field report, change order log, and T&M authorization.
When your number is off: a diagnostic
A labor cost percentage is a symptom, not a diagnosis. Work it like a bad circuit — check the obvious thing first.
| What you're seeing | Likely cause | How to check it | What to change |
|---|
| One job 8–15 points over, the rest fine | Hours from another job landed on it | Pull that job's entries by day; look for days with no description | Require job + one-line note per entry going forward |
| Every job over since spring | Burden is stale | Rebuild burden from the last four payroll registers and your current comp declarations page | Reprice. A stale burden underprices every bid you write |
| Estimate looked fine, the number went bad after collections | Invoice concessions and write-offs | Compare invoiced to deposited by job; pull every credit memo for the quarter | Send backup with the invoice, not after the argument |
| Labor over on T&M, fine on fixed price | Change-order work performed without authorization | Match field notes against signed change orders | Signed T&M authorization before extra scope starts |
| One crew consistently higher on similar work | Crew mix, overtime, or rework | Split their hours into straight-time, OT, and callback returns | Adjust the schedule or the estimate — usually the estimate |
| Under 25% and gross margin is still thin | Field hours coded to overhead, or owner field time unpaid | Look at unassigned and admin payroll for the period | Code owner and helper field hours to jobs. An artificially low number hides a real overrun |
A number that is too low is not good news. It usually means hours that belong on jobs are sitting in overhead, which makes your bids look better than your bank account.
Run it Monday morning: a 20-minute pass
- Pull the payroll register for the last full quarter. Total gross field wages and employer costs. Exclude office payroll; include the owner's field hours.
- Divide employer costs by gross wages. That is your real burden percentage — compare it to the 40–55% commonly cited range.
- Pull the P&L for the same quarter. Take total revenue.
- Divide burdened field labor by revenue. That is your company labor cost percentage.
- Pull deposits and credit memos for the same quarter. Redo step 4 against collected revenue. The gap between the two is what the invoice conversations cost.
- Pick your three biggest closed jobs. Pull revenue per job from Profit & Loss by Customer (not the company P&L) and burdened labor per job from your time records, then redo step 4 per job. Note which denominator you used — contract value or job cost.
- Any job more than eight points off the others goes on the diagnostic table above.
Frequently asked questions
What is a good labor cost percentage for an electrical contractor?There is no single good number, because it depends on the denominator and the work type. Direct field labor at 35–45% of company revenue is the range most often cited for electrical contractors, sourced secondhand to NECA's member-gated Financial Performance Report. Against job cost, commercial work commonly lands around 35–50% and residential service around 55–75%.
Is labor cost percentage measured against revenue or against job cost?Both are used, and they produce different numbers on the same job. Use job cost when comparing similar jobs to each other, and revenue when looking at whole-company health. In the worked example above the same TI job reads 37.1% of contract value and 45.5% of job cost.
What percentage of an electrical job is labor versus materials?It inverts by scope. New-construction and remodel work runs material-heavy — roughly 40% labor and 60% materials is the commonly published estimating convention for that kind of scope. Service work runs the other way: Example B above is 68.6% labor because the material order was $258 against 10 paid hours. Compute it per job type rather than trusting a blended figure.
How do I calculate labor cost percentage in QuickBooks?Pull revenue from Profit & Loss by Customer and burdened labor from your payroll reports, then divide. The limitation is real: QuickBooks Online will only split labor by job if payroll allocation to jobs is turned on — check whether yours is before you trust a per-job number. Either way the per-job number depends on hours being tagged to the right job when they are worked, not reconstructed in the accounting file afterward.
Does a discounted invoice change my labor cost percentage?Yes, and it is usually invisible. Payroll on the job does not change, so a concession raises the ratio against collected revenue while the job cost report still shows the pre-concession number. In the example above an 8% concession moved the number 3.5 points, while a ten-point burden error on the same job moved it 2.7.
Why is my actual labor percentage higher than my estimate?The five usual causes are hours reconstructed from memory, hours booked to the wrong job, extra scope performed without a signed change order, overtime, and a crew mix that came in richer than you bid. Work them in that order — the first two are bookkeeping problems that look like productivity problems.
Should overtime be included in the calculation?Include it, and burden it correctly. FICA, unemployment, and GL scale with the higher wage. Workers' comp usually does not — in most states premium is rated on straight-time-equivalent wages, so it rides the base wage rather than the 1.5x wage. The flat-dollar components (health, retirement, PTO, truck) do not repeat at all, because they are already covered by the straight-time hours.
Do the owner's field hours count?If the owner is pulling wire, those hours belong on the job at a burdened rate. Leaving them out is a common reason a small shop's labor percentage looks excellent while the checking account disagrees.
The formula takes twenty minutes. The part that decides whether the answer means anything is what your crew wrote down that week — which is also the part your customer reads when they ask what they are paying for.