
Most agencies price subcontracted work by taking the number their delivery partner quoted and putting a multiple in front of it. That produces a markup, and a markup is not a margin. The difference is everything that happens between the two invoices: the hours nobody billed, the week that slipped, the scope the client believed was included, and the sixty days between your client paying you and your partner having already been paid. Each of those is predictable. None of them appears in the multiple.
Start with the arithmetic you are implicitly doing. The instinct is to compare a partner's hourly rate against what an employee costs you, and almost everyone does that comparison wrong in the same direction, because salary is not employment cost. The US Bureau of Labor Statistics measures the whole of it: "Total employer compensation costs for private industry workers averaged $46.89 per hour worked in June 2026. Wages and salaries averaged $32.82 and accounted for 70.0 percent of employer costs, while benefit costs averaged $14.07 and accounted for the remaining 30.0 percent" (US Bureau of Labor Statistics, Employer Costs for Employee Compensation, June 2026, released 9 September 2026). Seventy cents in the dollar. Before utilisation, before the bench between engagements, before recruiting, and before the fact that nobody bills 2,080 hours a year. Whatever your true internal cost per productive hour is, it is not the salary divided by the calendar, and a comparison against a partner's rate that uses the wrong number on your own side will either talk you out of good margin or into imaginary margin.
Then the structural mistake, which is worth more than all the rate haggling put together: you sell one contract shape and buy a different one. The Federal Acquisition Regulation is the clearest free description of what each shape does, because it was written to allocate risk deliberately rather than to win work. Of the shape most agencies sell, it says: "A firm-fixed-price contract provides for a price that is not subject to any adjustment on the basis of the contractor's cost experience in performing the contract. This contract type places upon the contractor maximum risk and full responsibility for all costs and resulting profit or loss" (Federal Acquisition Regulation, 16.202-1 Firm-fixed-price contracts, FAC 2026-01). Maximum risk, full responsibility. That is the thing you signed with your client.
Now the shape most agencies buy. The same regulation is blunt about it: "A time-and-materials contract provides no positive profit incentive to the contractor for cost control or labor efficiency. Therefore, appropriate Government surveillance of contractor performance is required to give reasonable assurance that efficient methods and effective cost controls are being used," and it may be used "only when it is not possible at the time of placing the contract to estimate accurately the extent or duration of the work or to anticipate costs with any reasonable degree of confidence" (FAR 16.601(c), same source). Subpart 16.6 opens by saying the quiet part outright: "Time-and-materials contracts and labor-hour contracts are not fixed-price contracts" (FAR 16.600).
Put the two sentences side by side and the leak is obvious. You carry maximum risk and full responsibility for all costs. Your supplier carries none of it and has no positive incentive to control it. Every hour of inefficiency between you is converted into your margin, one hour at a time, and nobody is behaving badly. This is not an argument for never selling fixed price — clients often will not buy anything else, and the shape is correct where the work is genuinely knowable. It is an argument that the mismatch is the thing you are actually pricing.
So price the surveillance, because the regulation is right that it is mandatory. A fixed price bought with time and materials only works if somebody on your side is reading the work rather than the status report, and those hours are a real cost that has to sit in the number before you quote it. Treat it as a line in your own estimate — a named technical owner, a stated number of hours a week, for the length of the engagement — not as overhead you hope disappears. Whatever that number turns out to be for you, put it in the estimate and measure it afterwards, because an agency that refuses to fund the role does not get a cheaper project; it gets the same project with the variance uncovered.
Four things must agree across the two contracts, and margin escapes through every gap. The unit of work: if you sold features and you are buying hours, you own the translation and every ambiguity in it. The definition of done: if your client's acceptance criteria include performance, accessibility and documentation, and your subcontract says a merged pull request, you have bought less than you sold. Change control: one process, with a named approver, and no work starting on an unpriced change — this is the single most common place a profitable engagement turns unprofitable, because change is cumulative and approval is verbal. And the remedy when it slips, which is a different conversation from the price and belongs in the paper before kickoff — what belongs in a white-label subcontract covers the clauses, and when subcontracted work is late and the client is yours covers what happens when you need them.
Three shapes, honestly ranked. Buy time and materials and sell time and materials: your margin is thin and reliable, you carry almost no cost risk, and many clients simply will not sign it. Buy fixed price and sell fixed price: the risk sits with your partner, which is comfortable until you notice they have priced their own uncertainty into the number and are now motivated to argue about scope rather than to build. Buy time and materials and sell fixed price: the highest expected margin and by far the highest variance, appropriate when you have worked with the partner before and the scope is well understood, and reckless on a first engagement with an unfamiliar codebase. The mistake is not choosing one. The mistake is choosing the third without pricing the variance, which means without holding a contingency you have actually costed.
Then there is cash, which is not the same problem as margin and kills more agencies. Your client pays on acceptance, and acceptance takes as long as their finance function takes. Your partner invoices monthly. In between, you are financing a build out of working capital, and a profitable engagement can still be the reason payroll is tight in March. The European Union legislated this gap precisely because it is structural rather than exceptional: its late payment directive requires that "the period for payment fixed in the contract does not exceed 60 calendar days, unless otherwise expressly agreed in the contract and provided it is not grossly unfair to the creditor," and that where a contract provides for an acceptance procedure, "the maximum duration of that procedure does not exceed 30 calendar days from the date of receipt of the goods or services" (European Union, Directive 2011/7/EU on combating late payment in commercial transactions, Article 3(4)–(5)).
Read those two numbers together and you have the shape of the exposure even outside Europe, where nothing obliges anyone: up to thirty days for a client to decide the work is acceptable, and up to sixty after that to pay for it. US contracts leave both entirely to negotiation, which means an agency that has not negotiated them has agreed to whatever its client's accounts payable policy says. The fixes are unglamorous and they work. Tie milestone invoices to events that happen during the build rather than at the end of it. Make acceptance time-boxed in writing — deemed accepted after N business days absent written objection — because an open-ended acceptance window is an open-ended loan. And align the two clocks: payment terms to your partner that sit behind your client's, agreed at signature rather than discovered in month three.
Understand what a discount actually costs you, because it is not what it looks like. Take an engagement where your margin is a third of the sell price. Shave ten percent off the price to win it and the cost has not moved, so the margin falls from a third to roughly a quarter — you have given away close to a third of the profit for a tenth off the price. On a thinner margin the multiplier is worse. This is generic arithmetic rather than anyone's rate card, and it is the reason the right answer to price pressure is almost always to change what is in the scope rather than what is on the invoice. Cut a capability, shorten the engagement, move something to a later phase. A smaller piece of work at the same margin is a business. The same work at a lower price is a subsidy you did not decide to give.
Charge for what you are actually supplying, which is not hours. You are supplying an accountable counterparty: one throat to choke, an IP warranty your client can rely on, a guarantee that the work continues if an individual leaves, and a single relationship instead of a procurement exercise. Those are the things clients pay a premium for and the things a pass-through cannot offer, and they are the honest justification for the difference between what you pay and what you charge. If you cannot name them in a sentence to your own client, the margin is harder to defend than it should be — which is also why who your client trusts when you subcontract matters commercially and not only relationally.
Three things not to do. Do not price the first engagement at cost to win the account: absorbing an overrun once is a decision, and starting at zero margin is the same decision made permanently. Do not quote before you have a written scope from the partner who will build it, because the estimate you are marking up is the only thing standing between you and unlimited liability. And do not build the margin out of secrecy — an arrangement that only works while your client does not know there is a partner is a fragile way to earn money, which is one reason our own pricing page publishes the model rather than a rate, and why a serious white label software development partner will give you a written scope you could show a client if you ever had to.
The test is a question about your own books, not your contracts. Within a week of the final invoice on the last engagement you subcontracted, could you say what the margin was in money — after the unbilled hours, the two weeks that slipped, the change nobody charged for, and the cost of carrying the cash? Most agencies cannot, which is why the next one gets priced off the same multiple as the last one. Where the scope is understood and the boundary is real, a scoped sprint makes that arithmetic possible by ending. Long engagements are not the enemy — the multi-year platform consolidation we ran for Cove was continuous delivery, not one priced promise — but they stay priceable only when they are cut into periods you close the books on. An open-ended arrangement nobody closes the books on is not a high-margin engagement or a low-margin one. It is an unmeasured one, and the not-knowing is itself the expensive part.
Find this useful? Tell Google to show you more of it.
