Back to Blog
Job Costing

Electrical Contractor Profit Margin and Job Costing: The Bid Math That Protects 17-20% Net

Most electrical shops net 2.5-6% when they should hit 10-20%. The gap is almost never pricing intent. It's job costing math and field hours that never make it onto the bid. Here is the full system, worked end to end.

FieldTimesheet TeamProduct Team
June 4, 2026
11 min read

If you mark a job up 20% and assume you just earned a 20% margin, you are quietly underbidding every job you win. That single confusion is one of the biggest reasons electrical contractor profit margin and job costing get blamed for losses that actually started at the quote.

A 20% markup on cost is only a 16.7% margin on price. On a $100,000 job, that gap is roughly $3,300 you thought you had and never did.

This guide is the operator's version of the math: how to turn a target margin into the number you put on the bid, how to build a fully-burdened labor rate, how to cost one real job from estimate to closeout, and how to capture field hours so your actual margin matches the one you bid. Benchmarks tell you where you should land. Job costing tells you whether you did.

What Is Job Costing for an Electrical Contractor?

Job costing is tracking every dollar a single job consumes — materials, burdened labor, equipment, subs, and an overhead slice — against the price you charged, so you know the real margin on that job and not just the shop average.

The shop-wide P&L tells you that you made money this quarter. It never tells you which jobs paid for the ones that bled.

For electricians, labor is the largest controllable cost and the easiest to mis-track. A crew on three sites, logging hours to the wrong job or rounding to memory on Friday, will hand you a margin number that is fiction. Job costing only works when the field hours feeding it are real.

The whole system has five moving parts:

Cost categoryWhat it includesWhy it leaks margin
LaborBurdened crew hours, not base wageHours logged late or to the wrong job
MaterialsWire, gear, fixtures, devices, fittingsPrice volatility between bid and buy
EquipmentLifts, trenchers, bucket trucks, toolsRental days that outrun the estimate
SubcontractorsFire alarm, low-voltage, controlsSub change orders absorbed silently
Overhead allocationOffice, trucks, insurance, non-billable timeSpread too thin, so jobs look profitable that aren't

What Is a Good Profit Margin for an Electrical Contractor?

A healthy electrical contractor targets a 65-67% gross margin and a 10-20% net profit margin, with most well-run shops landing around 17-20% net after overhead. The uncomfortable reality: the average small-to-mid electrical shop nets just 2.5% to 6%. These benchmark figures are drawn from ServiceTitan and 2026 contractor margin reporting.

Margins also move with the type of work, so a single target hides the real picture. The ranges below are illustrative — typical bands operators see across job types, not benchmarked figures from the sources above. Treat them as a starting feel and confirm against your own closed jobs:

Work typeTypical gross marginNet margin target
Residential service and repair50-60%15-20%
Residential new construction15-25%5-10%
Commercial construction20-35%5-12%

The reason a shop can target 18% and land at 4% is rarely greedy pricing. It is a burden rate that's too low, field hours that show up short, and change orders that never got costed. Every one of those is a job-costing failure, not a sales problem.

Markup vs. Margin: The Math That Decides Your Bid

Markup is profit measured against your cost. Margin is profit measured against your price. They are never the same number, and treating them as the same is the fastest way to underbid.

The formulas:

  • Margin = (Price − Cost) ÷ Price
  • Markup = (Price − Cost) ÷ Cost
  • Required markup to hit a target margin = Margin ÷ (1 − Margin)
To net a given margin, you do not add that percentage to cost. You multiply cost by a markup that is always larger. Here is the conversion every electrician should tape to the bid screen:
Desired margin (on price)Required markup (on cost)Price multiplier
10%11.1%cost × 1.111
15%17.6%cost × 1.176
20%25.0%cost × 1.250
30%42.9%cost × 1.429
40%66.7%cost × 1.667
50%100.0%cost × 2.000

Read the 20% row twice. To keep 20% of the price, you mark cost up 25%, not 20%. A contractor who "adds 20%" on a $40,000 cost bids $48,000 and keeps 16.7% — about $1,330 short of where they thought they were on a single job. Run that error across forty jobs a year and the margin gap is a truck.

How to Calculate True Labor Cost Per Hour (Labor Burden)

Your burdened labor rate is the base wage plus every cost of employing that person per worked hour — payroll taxes, workers' comp, insurance, benefits, PTO, vehicle, and tools. For electricians it typically runs 40-52% on top of the base wage.

Bid against the base wage and you are guaranteeing a loss on the largest line on the job.

Here is a journeyman at $35/hour, burdened out. The percentage rows are taken against the $35.00 base wage; the two fixed-dollar benefits are converted to an hourly figure across ~173 worked hours a month (about 2,080 hours a year ÷ 12), so every row can be reproduced from the data shown:

Cost componentRate / amount$ per worked hour
Base wage$35.00/hr$35.00
FICA (Social Security + Medicare)7.65% of base$2.68
FUTA + SUTA~3.5% of base$1.23
Workers' comp (electrical)7% of base$2.45
General liability allocation~2% of base$0.70
Health insurance$500/mo ÷ ~173 hrs$2.88
Vehicle, fuel, toolsallocated$3.50
PTO / holiday (non-billable)~5% of base$1.75
Fully burdened rate~$50.19/hr

Tax and insurance percentages are drawn from SmartBarrel and a contractor labor-burden guide; your workers' comp class rate and state SUTA will shift the total.

That journeyman costs about $50/hour before a dollar of profit — a 43% burden on the base wage. The copy-paste formula for any employee:

Fully burdened rate = (Annual base pay + payroll taxes + insurance + benefits + vehicle + tools) ÷ actual billable hours worked.

Note the denominator: billable hours, not 2,080. A tech who is paid for 2,080 hours but is only on billable work for about 1,800 of them costs more per productive hour than the raw math suggests. PTO, drive time, shop time, and rework all shrink that denominator and raise your real rate. Recalculate it at least annually — comp rates and benefit costs move every year.

A Worked Electrical Job: Estimate vs. Actual

Numbers in a table convince nobody until you watch one job run from bid to closeout. Here is a small commercial tenant build-out, estimated and then job-costed against actuals.

The estimate. The shop targets a 20% net margin, so it prices cost at a 25% markup.
LineEstimated
Labor: 320 hrs × $50 burdened$16,000
Materials (takeoff)$14,000
Equipment (lift, 4 days)$1,600
Subcontractor (fire alarm tie-in)$3,000
Overhead allocation (12% of cost)$4,272
Total cost$38,872
Price (cost × 1.25)$48,590
Estimated net margin20.0%
The actual. The crew ran long, copper moved, and a change order landed.
LineEstimatedActualVariance
Labor hours320 hrs372 hrs+52 hrs
Labor cost$16,000$18,600−$2,600
Materials$14,000$14,900−$900
Equipment$1,600$2,000−$400
Subcontractor$3,000$3,000$0
Overhead$4,272$4,572−$300
Total cost$38,872$43,072−$4,200
Price collected$48,590$48,590$0
Net margin20.0%11.4%−8.6 pts

The bid was sound. The job still lost almost half its margin, and 52 untracked overtime hours did most of the damage. If the price had been re-quoted for the change order, even part of that gap closes. The only reason anyone can see this at all is that the actual labor hours were captured per job — which is exactly where most shops are flying blind.

Why Bad Field Hours Silently Destroy Your Margin

A 15-person crew that loses 30 minutes a day to memory-based or rounded timesheets is throwing away 7.5 hours a day. At a $75 billable rate, that is about $140,000 a year of labor that never lands on a job cost.

Labor is the largest controllable cost on an electrical job, which makes it the largest source of margin leakage when the hours are wrong. Three failure modes do most of it:

  • Hours logged to the wrong job. Margin moves from a tight job to a loose one, so both numbers lie and your next bid inherits the error.
  • Friday-from-memory timesheets. Manual timekeeping commonly loses 1-5% of payroll to rounding and recall error. On a $1.2M labor base that's $12,000-$60,000 of mis-costed time.
  • Overtime that never gets re-quoted. The 52 hours in the example above were real work; nobody flagged them while the job was open.
Job costing is only as honest as its labor input. This is the mechanism the conceptual guides hand-wave: hours have to attach to the right job and cost code as they happen, in the field, not get reconstructed at the office. Capturing field hours to the job in real time is what makes the estimate-vs-actual table above possible at all — and when those hours sync straight to QuickBooks Online, the cost side of every job is live instead of a month-end guess. The deeper mechanics live in our job costing guide for electricians.

The Closeout Loop: Turn One Job Into a Better Next Bid

The point of job costing is not the autopsy — it is the next estimate. A closeout review compares estimated vs. actual on every cost line, names the variance, and feeds the lesson into the next bid before the memory fades.

Run it within a week of finishing, while the crew still remembers why hours ran long:

  1. Pull estimate vs. actual by cost code, not just the job total. A profitable job can hide a labor overrun that materials happened to offset.
  2. Name the biggest variance. In the example it was 52 labor hours — was it scope creep, a bad estimate, or rework?
  3. Decide the fix. Tighten the hours assumption for that job type, raise the burden rate, or write a change order trigger.
  4. Update the estimating template so the next bid of that type starts from real numbers.
Two recurring electrical-specific leaks belong in every closeout:
  • Change orders. Cost and re-price every change the moment scope moves. Unpriced change-order labor is the most common way a winning bid turns into a losing job.
  • Retainage. On progress-billed work, 5-10% held back is normal — track it as a receivable, not as margin you've already banked, or your job P&L will read richer than your bank account.
For T&M and service work, the same discipline applies at the invoice level — see our T&M billing best practices for billing the captured hours cleanly.

FAQ

What is a good profit margin for an electrical contractor?

Target a 65-67% gross margin and a 10-20% net profit margin, with well-run shops landing near 17-20% net after overhead. Margins run higher on residential service and lower on commercial new construction. The industry average net sits far below target at roughly 2.5-6%, almost always because of weak job costing rather than weak pricing.

What markup should an electrician use?

It depends on the margin you want to keep. To net 20% of the price you mark cost up 25%; for 15% margin you mark up about 17.6%; for 30% margin, about 42.9%. Adding the margin percentage straight to cost (a "20% markup" for 20% margin) underprices every job — that combination only yields a 16.7% margin.

What is labor burden for electricians?

Labor burden is every cost of employing a worker beyond base wage — payroll taxes, workers' comp, general liability, benefits, PTO, vehicle, and tools — expressed per worked hour. For electrical contractors it typically adds 40-52% to the base wage, so a $35/hour journeyman often costs around $50/hour fully burdened.

How do I calculate true labor cost per hour?

Add annual base pay, payroll taxes, insurance, benefits, vehicle, and tool costs, then divide by the employee's actual billable hours worked — not 2,080. Using billable hours captures the drag from PTO, drive time, and rework, which is why the real rate runs higher than a quick base-wage estimate.

Markup vs. margin — what's the difference?

Markup measures profit against your cost; margin measures profit against your price. Markup is always the larger number. A 25% markup equals a 20% margin, and a 50% markup equals a 33% margin. Quoting as if they were equal is the single most common cause of underbidding in electrical work.

Why do my estimates keep losing money?

Usually because actual field hours run past the estimate and nobody catches it while the job is open. Untracked overtime, hours logged to the wrong job, and unpriced change orders quietly erode the margin you bid. A closeout review comparing estimated vs. actual by cost code surfaces the leak and tightens the next bid.

How does time tracking connect to job costing?

Tracked field hours are the labor input that makes per-job margin real. When crews log time to the correct job and cost code as they work and those hours flow into QuickBooks Online, the cost side of every job is current instead of a month-end reconstruction — which is what lets you compare estimate to actual while it still matters.

The Bottom Line

Electrical contractor profit margin and job costing are the same conversation: the margin you keep is decided at the bid by your markup math and your burden rate, then defended in the field by the hours you actually capture.

Get the markup-vs-margin math right, burden your labor honestly, cost every job estimate-vs-actual, and re-price change orders. Then capture field hours in real time so the actual margin matches the one you bid — because a job costing system is only as honest as the timesheets feeding it. Start with the time tracking guide or run your own numbers in the margin calculator.

Ready to Try FieldTimesheet?

Start capturing every billable hour with time tracking built specifically for electrical contractors.

No credit card required. 14-day free trial.

Tips for Electrical Contractors

Practical time tracking and job costing advice. Unsubscribe anytime.