Staffing Markup vs Margin: Why 34% Nets Closer to 3%
From the founding team's operator analysis
Markup is not margin. A spread that looks like 34% of the bill rate can net closer to 3% once you load the full employment burden, the recruiter time to fill the req, and the cost of fronting weekly payroll while the client pays in 45 days.
Built across operating, PE, and CFO roles; labor inputs from named public sources
The short answer
A staffing placement whose bill-to-pay spread looks like about 34% of the bill rate usually nets closer to 3% once the full employment burden lands (all-in benefits run about 30% of total compensation per BLS, which already includes employer FICA at 7.65%, unemployment, and workers comp alongside health and retirement), the recruiter's time to fill the requisition is charged to it, and the agency finances weekly payroll while the client pays on net-30 to net-60 terms. The headline 34-to-3 is directional and illustrates the mechanism; the input rates below are anchored to named public sources. The fix is to bill off fully-burdened cost, charge recruiter time to the placement, and price in the AR carry.
Key takeaways
- Markup (spread as a percent of bill rate) is not margin: a $17/hr pay rate billed at about $25.76 looks like a ~34% spread but nets low-single-digit percent after mandated labor and G&A.
- Full employment burden is the biggest leak: BLS Employer Costs for Employee Compensation puts total benefits near 30% of compensation, and that figure already includes the legally-required pieces (employer FICA at 7.65%, unemployment insurance, and workers comp) plus health and retirement, so use the all-in ~30% rather than stacking FICA/UI/WC on top of it.
- Recruiter time to fill the req is company overhead that rarely gets charged to the placement it filled (BLS median for HR specialists, SOC 13-1071, is about $67,650/yr).
- The agency fronts payroll weekly but bills net-30 to net-60, so factoring or the cost of that float (1 to 4% of invoice, or your cost of capital) comes straight off the spread.
Staffing is the business most often confused by its own pricing, because markup feels like margin and it is not. A recruiter quotes a bill rate, subtracts the pay rate, and the spread looks healthy. Then the year closes and net margin is 3 to 6%, which is the industry norm, and nobody can explain where the spread went. It went into four costs that the markup math never counted.
Here is the teardown, and how to rebuild it from your own rates.
Markup is not margin
Start with the number every agency quotes: the markup, the spread as a percent of the bill rate.
A worker paid $17.00/hr, billed at $25.76/hr, is an $8.76 spread. As a percent of the bill rate that is about 34%. It feels like a 34% margin. It is not, because the pay rate is not the full cost of the worker, and the spread has to cover the cost of running the agency and financing the payroll. Watch what the spread actually has to absorb.
Leak 1: full employment burden (the biggest one)
The pay rate is what the worker sees. The agency pays much more:
- Employer FICA: 7.65% (IRS Topic 751).
- Federal and state unemployment insurance, plus workers comp, which varies by role and state.
- Benefits: the BLS Employer Costs for Employee Compensation series puts benefits near 30% of total compensation (BLS ECEC).
- For W2 staffing over the ACA threshold, the employer-mandate penalties are real money: the 2026 figures run in the low-to-mid thousands per affected employee per year.
Load all of that and the true cost of that $17.00/hr worker is well above $17. The spread is smaller than it looked before you covered a single overhead dollar.
Leak 2: recruiter and sourcing time
The recruiter's salary is booked as company overhead, not charged to the requisition it filled. But that time is a direct cost of the placement. The BLS median for human resources specialists (SOC 13-1071) is about $67,650/yr (BLS OEWS); fully loaded and divided across the placements a recruiter fills in a year, it takes a few points off every deal.
Leak 3: financing weekly payroll on net-30 to net-60 terms
The agency pays the worker every week. The client pays the invoice in 30 to 60 days. That gap is financed, either by factoring (commonly 1 to 4% of invoice value per 30 days) or by the agency's own cost of capital. Either way it comes off the spread, and it scales with how slowly the client pays.
Leak 4: bench pay, backouts, and replacements
Idle-bench pay between assignments, and the cost of re-placing a candidate who washes out, get absorbed as overhead rather than charged to the original deal. This one is structural and hard to source cleanly, so treat it as directional, but it is real and it is why net margin lands where it does.
Add the four leaks to a 34% markup and the net margin that reaches the bottom line is typically 3 to 6%, consistent with published staffing-agency net margins.
Free benchmark review
See how your margins benchmark.
We compare your jobs, crews, and service lines against real margin data, then show which gaps deserve the free audit.
How to rebuild your real margin
- Start from the spread, bill rate minus pay rate, as a percent of the bill rate.
- Re-cost the worker fully burdened: pay rate plus the all-in employment burden. BLS ECEC puts total benefits near 30% of compensation, and that already covers the legally-required load (employer FICA 7.65%, unemployment, workers comp) plus health and retirement, so apply the ~30% once rather than adding FICA/UI/WC separately. Recompute the true spread over fully-burdened cost, not pay rate.
- Charge recruiter time: take the fully-loaded recruiter cost, divide by placements filled per year, and subtract that per placement.
- Subtract the AR carry: if you factor, use the factoring fee; if you self-fund, use (days to collect divided by 365) times your cost of capital times the invoice.
The number left is your real margin. If it is a fraction of your markup, that is not a mistake, it is the structural economics of staffing, and it is exactly why bill-rate discipline and fast collection matter more here than in almost any other service business.
Why this is directional
The 34%-markup-to-3%-margin path is an illustration of the mechanism, not a measured survey of your book. The input rates (FICA, benefits share, recruiter wage, factoring range) are sourced to named public data; the exact points depend on your state, role mix, and how fast clients pay. The point stands regardless: markup is a pricing input, margin is the outcome, and confusing the two is how staffing agencies grow revenue while making almost nothing.
Related reading:
Get the next one
Want next week's benchmark in your inbox?
One email a week. Real numbers from 2,200+ service businesses. No fluff. Unsubscribe anytime.
Related reads
Job Costing
Contractor Finance KPIs Ranked by Profit Impact (2026)
The 8 financial KPIs that actually move a contractor's bottom line, ranked by profit impact, each with its median and top-quartile benchmark.
Job Costing
Your 45% Job Was Really a 24% Job. Here's Where the Margin Went.
A contractor job bid at 45% gross margin usually earns closer to 24% once labor is fully burdened, callbacks counted, material drifts, and AR is financed.
Job Costing
Landscaping Margin: Why a 50% Route Earns 27%
A landscaping route quoted at 50% margin usually earns closer to 27% once burden, drive time, equipment per crew-hour, and off-season labor land.

About the author
Sam Yang
Founder & CEO
Founder of Level, the AI operating layer for contractors and skilled trades, and the other operating businesses where scarce labor is the constraint. Ex-CFO across trades, SaaS, and service businesses. 4 years as Director of Growth Product at BuildOps, building financial tooling used by 1,000+ commercial contractors. Four years in PE and investment banking rolling up and acquiring service businesses, $2.5B in total transactions including M&A and IPOs. Stanford MBA, Brown undergrad. The Level founding team's analysis of 2,200+ contractors ($13.25B in revenue) across operating, private-equity, and CFO roles anchors the Level Index benchmark research.
LinkedIn