← Back to blog

Subcontractor Markup Explained: A Trade Contractor's Guide

June 14, 2026
Subcontractor Markup Explained: A Trade Contractor's Guide

Subcontractor markup is the percentage a contractor adds on top of a subcontractor's billed cost to cover overhead, risk, and profit. Every electrical, plumbing, HVAC, or roofing firm that manages lower-tier subs needs to understand this number. Get it wrong and you absorb real costs with zero compensation. Get it right and your bids hold margin even when a sub runs late, disputes an invoice, or triggers a warranty call. This guide breaks down what subcontractor markup covers, how to calculate it, and why specialty trades need a different strategy than general contractors.

What does subcontractor markup cover?

Subcontractor markup is not a bonus. It is a recovery mechanism for real costs you incur every time you bring a sub onto a job.

When your masonry or fire protection crew manages a lower-tier sub, you absorb costs that never show up on the sub's invoice. Those costs include:

  • Insurance and liability exposure from work performed by a party you do not directly control
  • Administrative time spent reviewing submittals, processing invoices, and tracking lien waivers
  • Scheduling coordination to sequence the sub's work with your own crew
  • Payment float because you typically pay the sub before the GC pays you
  • Warranty reserves of roughly 1% of revenue to cover future repair liabilities tied to the sub's scope

Overhead components in a well-built markup also include payroll burden, tool depreciation, and project risk contingencies. Overhead alone commonly runs 20% or higher depending on your trade and business scale.

Passing sub costs at zero markup means you absorb every one of those costs with no recovery. Even a reliable sub requires management effort and financial risk coverage. You are not just forwarding an invoice. You are financing it, insuring it, and standing behind it.

Estimator calculating subcontractor overhead at desk

Pro Tip: Treat subcontractor markup as a return on risk. You are deploying capital and accepting liability. If you are not charging for that, you are transferring the sub's risk to your own balance sheet for free.

How to calculate subcontractor markup

The formula most estimators get wrong is treating markup and margin as the same number. They are not.

Markup is not margin. A 20% markup on a $100,000 sub cost produces $120,000 in revenue but only a 16.7% gross margin. Estimators who price to a "20% margin" but apply a 20% markup are systematically underpricing every job.

Infographic comparing subcontractor markup and margin

The correct formula to convert your overhead and profit targets into a required markup is:

Markup = (Overhead % + Profit %) / (1 − Overhead % − Profit %)

Here is what that looks like in practice. If your overhead rate is 20% and your target net profit is 10%, your required markup is not 30%. It is 42.9% on direct costs. That gap is where underbidding lives.

The table below shows how markup percentages translate to actual gross margin and what that means for a $50,000 sub cost:

Markup %Sub CostBilled AmountGross Margin %
10%$50,000$55,0009.1%
15%$50,000$57,50013.0%
20%$50,000$60,00016.7%
25%$50,000$62,50020.0%
43%$50,000$71,50030.1%

Typical markup rates for subcontractors run 10–25%, with 20% being common in residential construction. That range is a starting point, not a target. Your actual number depends on your overhead structure, the risk profile of the sub, and your profit goals.

Pro Tip: Run your overhead calculation once a year. Divide total annual overhead costs by total annual direct costs. That percentage feeds directly into the markup formula above. Skip this step and you are guessing.

Why specialty trades need different markup rates

The most expensive mistake a drywall, glazing, or insulation contractor can make is pricing like a general contractor.

Specialty contractors lose money by adopting the GC's coordination-only markup model. A GC's overhead is primarily administrative. Your overhead as a specialty trade includes self-performed labor burden, specialized tools, supervision, and trade-specific insurance. Those costs are structurally higher.

A GC applying a 10–20% flat markup on subs is covering coordination and schedule oversight. When a framing or concrete contractor applies that same flat rate to their own lower-tier subs, they are leaving out the cost of their own field supervision, equipment, and risk exposure. The numbers do not work.

The fix is a segmented markup approach. Apply different rates to different cost categories:

  • Self-performed labor: 25–50% markup to cover labor burden, supervision, and productivity risk
  • Materials: 15–25% markup to cover procurement time, storage, and waste
  • Subcontractor costs: 10–15% markup for coordination, liability, and payment float

Blended markup rates obscure true profitability. When you apply one flat percentage across labor, materials, and subs, you cannot see which cost category is eroding your margin. Segmenting gives you visibility and control.

Specialty trades also carry risk that GCs do not. A low-voltage or fire protection contractor stands behind the performance of their system, not just the coordination of it. That liability must show up in the markup. Reviewing your subcontract agreement terms before setting markup rates is a practical step most estimators skip.

How to apply subcontractor markup in your bids

Knowing the formula is half the job. Applying it consistently across every bid is where most specialty trade estimators fall short.

Set your rates annually, not per job

Calculate your overhead rate every year using actual financials. Divide total overhead by total direct costs. Feed that number into the markup formula. If your overhead rate changes because you hired a project manager or added a truck, your markup must change too. Treating markup as a fixed number you set once is a common job costing mistake that compounds over time.

Adjust for sub risk and relationship

Not every sub carries the same risk. Long-term subs with a clean track record may justify a 10–15% markup. A first-time or higher-risk sub may require markup rates up to 25–35% to cover the added management and risk costs. Build that flexibility into your estimating process.

The table below summarizes markup guidance by cost type and project context:

Cost TypeTypical Markup RangeKey Driver
Self-performed labor25–50%Labor burden, supervision, productivity risk
Materials15–25%Procurement time, waste, storage
Trusted sub (repeat)10–15%Low coordination overhead, known risk
New or high-risk sub25–35%Higher management cost, unknown performance
Warranty reserve~1% of revenueFuture repair liability coverage

Use estimating software to lock in consistency

Manual spreadsheets let markup rates drift. One estimator uses 15%, another uses 20%, and no one tracks which jobs hit their margin targets. Estimating software for small subs solves this by embedding your markup rates into templates so every bid starts from the same baseline.

Tracking subcontractor performance over time also gives you data to justify markup adjustments. If a roofing or painting sub consistently causes rework or payment disputes, that history belongs in your risk assessment. Poor sub performance is a direct cost to your business, and your markup should reflect it. Unresolved contract disputes often trace back to markup errors made at the bid stage.

Pro Tip: Build a simple sub scorecard. Track on-time completion, rework incidents, and invoice accuracy for every sub you use. Review it before setting markup on the next bid. Two or three data points per sub will change how you price risk.

Key takeaways

Accurate subcontractor markup requires segmented rates by cost type, an annual overhead calculation, and a clear understanding that markup and margin are different numbers.

PointDetails
Markup covers real costsSub markup recovers overhead, insurance, payment float, and warranty risk, not just profit.
Markup is not marginA 20% markup yields only 16.7% gross margin; use the correct formula to avoid underpricing.
Specialty trades need higher ratesSelf-performed labor markup runs 25–50%; applying GC-level flat rates causes systematic losses.
Segment your markup by cost typeApply separate rates to labor, materials, and subs to see true profitability per category.
Adjust rates for sub riskNew or unreliable subs warrant 25–35% markup; trusted repeat subs may justify 10–15%.

The number most estimators never actually calculate

I have talked to a lot of estimators at electrical and HVAC firms who know they should be marking up sub costs. Most of them are doing it. But when I ask what number they use and why, the answer is almost always "we've always done 10%" or "our PM said 15%." Nobody ran the math.

The overhead formula is not complicated. You take your actual overhead costs, divide by your direct costs, and you have your rate. Then you plug it into the markup formula. The problem is that most specialty trade businesses have never sat down and done that calculation with real numbers from their own financials. They are using a rate they inherited from a previous employer or copied from a GC they used to work for.

That is how a concrete or steel/rebar contractor ends up doing $3 million in revenue and wondering why the bank account never grows. The markup is covering costs on paper but not in reality because the overhead rate was wrong from the start.

My honest advice: do the overhead calculation before your next bid cycle. Pull last year's P&L, separate overhead from direct costs, and run the formula. You will probably find your current markup is 5–10 points lower than it should be. That gap is not a rounding error. On a $500,000 job, 5 points is $25,000 in margin you left on the table.

The other thing I would push back on is the idea that you need to stay competitive by keeping markup low. Your competitors who are pricing at 10% on subs are either losing money or they have overhead structures you do not. Price your business, not theirs.

— Dave

How Subascent helps you price subs right

Subascent is built for specialty trade contractors who need to build accurate bids without rebuilding a spreadsheet every time. The platform lets you set segmented markup rates by cost type, so your sub costs, labor, and materials each carry the right percentage from the start.

https://subascent.com

When your markup rates live inside your estimating workflow instead of someone's memory, every bid goes out consistent. You stop leaving margin on the table because an estimator used last year's rate or forgot to add the sub markup line entirely. Explore Subascent's bid and job management tools to see how specialty trades are building tighter bids and tracking profitability from estimate to closeout.

FAQ

What is a subcontractor markup in construction?

Subcontractor markup is the percentage added to a sub's billed cost to cover the managing contractor's overhead, risk, and profit. It is distinct from the markup applied to self-performed labor or materials.

What is the typical markup rate for subcontractors?

Most contractors apply a 10–25% markup on subcontractor costs, with 10–15% common for trusted repeat subs and up to 25–35% for new or higher-risk subs.

How is subcontractor markup different from margin?

Markup is calculated on cost; margin is calculated on revenue. A 20% markup on a $100,000 sub cost produces $120,000 in revenue but only a 16.7% gross margin, not 20%.

Why can't specialty trades use the same markup as general contractors?

Specialty trades carry higher overhead from self-performed labor, tools, and trade-specific insurance. Applying a GC's coordination-only markup of 10–20% to specialty trade work systematically underprice the job.

Should i use a blended markup rate for all costs?

No. Segmenting markup by cost type, separate rates for labor, materials, and subs, gives you accurate profitability data per category and prevents one cost type from masking losses in another.