All Posts
Pricing

Electrical Contractor Profit Margins: What's Normal and How to Fix Yours

What gross and net margin should look like for an electrical contractor, where margin actually leaks, and the fixes that move the number.

Bruce Singh

Bruce Singh

· Updated

Three numbers, not one

"Profit margin" gets used loosely. There are three, and they tell you different things.

Gross margin is what's left after direct job costs — material and burdened labor. This is the number your pricing controls. If gross margin is weak, your prices or your job costing are wrong.

Operating margin is what's left after overhead — vehicles, insurance, the office, software, the person answering the phone. If gross is healthy and operating isn't, you have an overhead problem, not a pricing problem.

Net margin is what's left after everything, including tax and interest. It's the one that pays you.

Knowing which of the three is soft tells you where to look. Most contractors only track net, discover it's thin, and then guess.

Where margin actually goes

Material priced from old numbers. The quietest leak and usually the largest. Copper moves, breakers move, your supplier raises prices without telling you. A five percent drift on a $400 material package is $20 a job. Across a few hundred service calls, that's a real number nobody watched leave.

Unburdened labor rates. If your labor rate is built on wages rather than wages plus payroll tax, workers' comp, and benefits, every hour you bill is under-recovered. The burden is typically 25–40% on top of the wage.

Non-billable hours. Drive time, the supply house run, warranty callbacks, the truck that wouldn't start. If your rate assumes eight billable hours a day and your techs bill five, your rate is a third too low before you've priced a single job.

Change orders given away. Work added without a price attached. Usually because the original scope was never written down clearly enough to say what's outside it.

Markup set once and never revisited. Costs moved. The markup didn't.

The $500,000 job that made $10,000

A mid-size shop finishes a $500,000 commercial job. On paper it looked good.

Labor hours ran over because the estimate used optimistic productivity. Material came in above estimate because the bid was priced months before the work started. Three change orders went through without markup because nobody wanted to argue about them mid-job.

Final net profit: $10,000. Two percent.

Nothing dramatic went wrong. No disaster, no dispute. Three ordinary things went slightly wrong in the same direction.

The consequence wasn't just the thin profit. With no buffer, a slow-paying customer became a cash flow problem, and a government contract requiring proof of consistent 10%+ margins was out of reach.

The fixes that actually move the number

Price material from a catalog that updates. This is the highest-leverage change available to most shops because it costs nothing operationally. AccuPrice maintains 1,400+ electrical items with material costs refreshed every month. Quarterly is the industry standard, and a quarter is long enough for a supplier to raise prices twice.

Build a labor rate from the bottom up. Burdened wage, plus overhead divided by the billable hours you actually achieve, plus the profit you intend to make. Do it once properly and revisit it annually.

Track estimated hours against actual hours. Three months of this will give you a correction factor, and that factor is worth more than any pricing theory.

Separate material and labor on every quote. It makes the price defensible and makes change orders straightforward to price instead of awkward to raise.

Use tiered options on the jobs that support them. A panel upgrade can be quoted three ways — a basic 100-amp swap, a 200-amp with surge protection, a 200-amp with a smart panel and extended warranty. Customers choose on value rather than only on price, and average job value rises without a price increase on anything.

Make the price book maintain itself. The reason price books go stale is that updating them is manual work, and manual work loses to a busy week. When assemblies are built from catalog items and flat rate tasks are built from assemblies, a material price change flows through everything automatically. Change a markup once and every dependent line recalculates.

Watch the number monthly, not annually

Pull gross margin by job type, every month.

When it drops — say from 38% to 26% on lighting work — you can usually find the cause in two places: hours ran over, or material came in above estimate. Both are fixable when you catch them in a month. Neither is fixable when you find them in an annual review eleven months later.

Frequently asked questions

What's a good profit margin for an electrical contractor?

It varies by mix. Service work generally carries higher gross margin than new construction, which competes harder on price. What matters more than the benchmark is the trend — your own margin by job type, tracked month over month.

Why is my margin dropping when I'm busier than ever?

Usually material drift or non-billable time. Volume hides both. More jobs at a slightly wrong price produces more revenue and less profit.

How do I raise prices without losing customers?

Tiered options usually work better than an across-the-board increase. Give people a choice at three levels rather than one number that went up.

How often should material prices be updated?

Monthly. Quarterly is standard in this industry and it's too slow.


Stop losing margin in the material line.

See plans →

Related: How to price electrical work · Electrical price book