← All guides

What to actually charge when you subcontract work

Real markup ranges by field, the arithmetic mistake that quietly eats your profit, and what a client is actually paying for when they see your markup on the invoice.

If you've ever brought in a subcontractor and then sat there wondering what to actually bill the client, you're not missing something obvious. Most people who subcontract occasionally never get a straight answer to "what's normal here," because the people who'd know either don't talk about it or work in a completely different industry with completely different numbers. This guide is an attempt at giving you real numbers, plus the one bit of math that trips up almost everyone who tries to work this out from first principles.

The mistake almost everyone makes first

Say you want your markup to leave you with 30% profit on a subcontractor's work. The natural move is to add 30% to their rate. That's wrong, and it's wrong in a way that costs real money.

Adding 30% to a cost doesn't give you 30% profit on the resulting price. It gives you about 23%. That's because "markup" and "margin" answer different questions using different denominators. Markup is how much you add on top of the cost. Margin is what fraction of the final price is profit. Since the final price is always bigger than the cost, the same dollar amount of profit is a smaller percentage of the price than it is of the cost. A 30% markup and a 30% margin are never the same thing, and mixing them up always shorts you, never the other way around.

The actual formula: markup = margin ÷ (1 − margin). If you want a 30% margin, you need a 42.9% markup. Want 50% margin, you need to double the cost (100% markup). This isn't a rounding error at the edges. On a subcontractor invoice of any real size, confusing the two numbers is the difference between a comfortable profit and quietly running the job at a loss once your own overhead is accounted for.

If you want this marginYou need this markupAs a multiplier
15%17.6%1.18x
20%25.0%1.25x
25%33.3%1.33x
30%42.9%1.43x
40%66.7%1.67x
50%100%2.00x

Markup = margin ÷ (1 − margin). As Groundplan's contractor-finance guide puts it: "if your business target is a 30% margin, you need to be quoting on a 42.9% markup, not 30%."

So what markup is normal, by field?

"Normal" varies a lot by industry, and the honest answer is that none of it is arbitrary once you see what it's covering. Here's what's actually documented, pulled from staffing industry data, agency profitability benchmarks, and construction financial surveys.

FieldTypical markup on subcontractor pay
Staffing — light industrial / clerical25% – 40%
Staffing — general professional35% – 50%
Staffing — IT / specialized technical40% – 75%
Creative & marketing agencies (the "2x rule")100%, i.e. bill at least double
Software development agencies50% – 100%, higher when using offshore rates
Management consulting100% – 200%+ (independent-contractor reports of 2–4x are common; treat as anecdotal, not a formal benchmark)
General contractors marking up subsWidely cited around 10% – 25%, though this one is thinly documented (see note below)

Staffing figures per Human Cloud's 2026 staffing markup guide. The 2x rule is agency consultant Karl Sakas's recommendation: "charging your clients at least 2X what you pay the freelancer," a named convention, not a formal industry survey number. The construction figure is repeated often but we couldn't pin it to a primary benchmark report during fact-checking. Treat it as a rough starting point, not a hard number, and expect it to vary a lot by trade and region.

Notice the pattern: it's lowest where the work is more interchangeable and the agency's job is mostly logistics (light industrial staffing, coordinating subs on a job site), and highest where a firm is putting its own reputation and judgment behind someone else's output (specialized IT placements, consulting). That's not a coincidence. It's the same thing driving every number on this page.

What the markup is actually paying for

A client who pushes back on markup is usually assuming it's pure profit sitting on top of someone else's labor. It almost never is. A few things eat into it before any of it becomes your money:

Practically, this only works if the two numbers stay genuinely separate in whatever you use to run the engagement. What you bill the client lives on the project:

Bizily projects list showing several client-facing billing rates: an agreed fixed price, and several hourly rates per hour on different projects
The client-facing rate, set per project. This is what shows up on the invoice.

What you pay the subcontractor lives on their own profile, set once as a default and never derived from any client's rate:

Bizily worker profiles settings page listing each worker with their own default compensation rate and currency
The subcontractor's pay rate, independent of what any given client is billed.

Keeping those as two separate numbers, in Bizily or anywhere else, is what makes the rest of this math actually usable in practice: you can raise a markup on new work without renegotiating pay, or pay a subcontractor more without exposing that to the client, because neither number is derived from the other.

Even at what looks like a generous markup, the actual profit left over tends to be modest. In staffing, for instance, a 40–75% markup on an IT placement typically nets the agency only about 3–8% profit once statutory costs, benefits, and overhead are paid. The rest of the spread is spoken for before it ever becomes anyone's take-home. Firms across professional services more broadly have been under real margin pressure too. A Workday summary of SPI Research's Professional Services Maturity benchmark found "EBITDA margins across professional services have also taken a hit, dropping to a five-year low of 9.8%," with "billable utilization… plummeted to 68.9% in the last year, far below the 75% benchmark." None of that is an argument for padding your markup arbitrarily. It's context for why "just cut your markup" is a harder ask than it sounds.

What happens if you cut the markup too thin

The failure mode isn't dramatic. It's slow. You take on a project where the markup barely clears your overhead, and on paper it looks fine. Then something ordinary happens: a revision round runs long, a subcontractor needs more hand-holding than expected, an invoice goes out thirty days later than planned. The thin margin that looked fine in the estimate is gone before the project even wraps. Do that on enough projects in a row and you can be fully booked and still losing money, which is a much harder problem to notice than an empty pipeline.

Construction gives a clean, well-documented example of how tight this actually runs even for established firms. A Relay breakdown of CFMA's 2025 Construction Financial Benchmarker cites "net income before taxes at 6.7% across 1,558 respondents," with even "Best in Class" firms only reaching around 21.8% gross margin. There's very little room in numbers like that to absorb a miscalculated markup on subcontracted work.

If a client pushes back

The most direct answer isn't a lecture on overhead. It's pointing out what the markup replaces: if the client would rather pay the subcontractor's rate directly, they're welcome to hire and manage that person themselves: find them, brief them, chase their invoices, and take on the risk if the work falls short. Most clients, once that's spelled out plainly, would rather pay you to handle it.

The bottom line

A markup isn't something to feel awkward about charging, and it isn't something to guess at either. Pick a number that's actually in line with what firms like yours charge, run it through the real markup-to-margin math instead of eyeballing it, and be ready to explain, to yourself as much as to the client, exactly what it's paying for. That's the difference between a markup you can defend and one you're quietly hoping nobody asks about.

Further reading

See how it works

Start for free. No credit card required.

Sign up free