The deal sold at 55% margin. In the quarterly review it landed at 32%. Same as the deal before it, and the one before that. The post-mortem reached the same verdict it always reaches: delivery overran, scope crept, someone staffed it wrong. The head of delivery took the note, again, and the room moved on to the next slide believing the problem had a name.
It does have a name. It is just the wrong one. The gap between sold vs delivered margin gets filed as a delivery execution failure on almost every services firm I have seen, and because the diagnosis is wrong, the fix never holds. You tighten delivery, you add a kickoff checklist, you put a senior person on the next one, and two quarters later the same 23 points have evaporated off a different deal. The pattern survives every fix because the fix is aimed at the wrong layer.
TLDR; Sold margin and delivered margin were never the same number.
- Two numbers, not one that slipped. Two functions, two models, two things being optimised.
- The gap is designed in. It separates in four predictable places, none of them delivery being slow.
- Fixing delivery treats a symptom. It closes only when sales and delivery run the same model.
- Test it this week. Attribute each lost point on five closed deals to one of the four seams. The same seam leaks every time.
The rest is each seam in detail, and the one diagnostic that tells you which is costing you most.
Sold vs delivered margin are two numbers, not one number that slipped
Here is the part the post-mortem skips. The sold margin and the delivered margin were never the same number. They are produced by two different functions, working from two different commercial models, optimising for two different things. One of them is a forecast made by people who will not be the ones to deliver it. The other is what actually happened. Treating the difference as "slippage" assumes there was one true number that drifted. There wasn't. There were two numbers from the start, and the firm only ever wrote one of them down.
Sales produces the first number. Its job is to win the work at a price the buyer will sign, on a timeline the buyer will accept, with a margin that clears whatever threshold the deal desk applies. Every incentive in that function points the estimate the same way: competitive, credible, signable. Optimism is not a character flaw here. It is what the role rewards. The number that wins is the number that gets celebrated, and nobody is grading the seller on what the work actually costs eight months later.
Delivery produces the second number, and it inherits the first. It gets handed a margin it had no hand in setting, built on assumptions it never saw, against a scope it read for the first time after the ink was dry. From that point the second number is not a forecast. It is a measurement of reality colliding with a price that was fixed before reality got a vote. The two numbers were always going to differ. The only open question was by how much, and in which direction.
The gap is designed in, not bad luck
Once you see it as two numbers, the interesting question stops being "why did delivery miss" and becomes "where, structurally, do the two numbers separate". They separate in four predictable places, and none of them is an execution failure.
Sales incentives pull the estimate optimistic. Not dishonestly. The estimate is a sales instrument, set to win, and over years that quietly becomes its only job. The number is competitive enough to clear procurement and credible enough to survive a review. Whether it survives delivery is a question for a different function and a different quarter. The structural fact is that the people who set the margin are graded on signing, not on holding it.
The handover loses the model. This is the most expensive seam in the whole firm, and it is the one everyone treats as a meeting. The deal that gets signed is a structured object: a scope, a set of assumptions, a resourcing shape, a margin built role by role. What reaches delivery is usually a flattened version of it. A proposal PDF, a pricing spreadsheet someone re-keys, a verbal "here's what we sold". The structure that justified the margin does not survive the translation, so delivery rebuilds its own plan from the artefacts it can read, and the rebuilt plan does not reconcile to the sold number because it was never the same object.
The assumptions were never written down. Every estimate rests on assumptions. The client has a test environment ready. The third-party API behaves. Two of the integrations are "the same as last time". Under the old model nobody had to surface these, because if they turned out wrong the client funded the difference. So they lived in the estimator's head and went out the door with them. Delivery hits each wrong assumption as a surprise, prices it as rework, and the rework lands against a margin that already spent its buffer winning the deal.
Scope and capacity arrive after signing. Delivery sees the real shape of the work, and the real state of the bench, only once the deal is signed and the capacity is committed. By then the price cannot move. If the right people are not free in the right month, the firm either delays (and eats the gap in idle senior time) or substitutes (and eats it in slower, more expensive delivery). Either way the margin was set against a staffing assumption that the calendar never agreed to.
None of these four is delivery being slow. Each one is a place where the firm's structure guarantees that the number sales set and the number delivery hits are computed differently. The gap is not an accident on top of a sound system. It is the system working as built.
Why fixing delivery keeps not working
This is the part that should be uncomfortable. Every standard fix for the margin gap targets delivery, and every one of them treats a symptom.
Tighten estimation discipline, and you make a better sales number. It is still a sales number, still optimised to win, still handed across a seam that flattens it. Add a handover meeting, and you move information across the gap once, verbally, with no durable structure underneath, so the model still gets re-keyed and the assumptions still live in someone's memory. Put a senior delivery lead on the deal, and you have bought yourself a more expensive way to absorb a gap that was priced in at sale. The work the lead does to claw back margin is real, and the firm has started to treat that heroics as the operating model rather than the warning sign it is.
You can run all three at once and still watch the next deal lose its points. The fixes do not hold because they accept the premise that there is one margin number and delivery is failing to hit it. Remove that premise and the fixes look like what they are: effort spent reconciling two numbers by hand, deal after deal, instead of making them one number in the first place.
Run the bridge before you blame the team
There is one diagnostic you can run this week, with nothing but the deals you have already closed. Take the last five. For each, write the sold margin and the delivered margin, then attribute every point of the gap to one of the four seams: estimate optimism, handover loss, a wrong assumption, a capacity substitution. Not "delivery overran." Which seam, and how many points.
Two things fall out of it. The first is that on most deals you cannot do the attribution cleanly, because the assumptions were never written down and you are reconstructing them from memory. That absence is itself the finding. The second is that once five deals sit side by side, the same seam tends to leak the same points every time. That is the seam to fix, and it is almost never the one the post-mortem names.
What it takes to close it
The gap closes when sold margin and delivered margin stop being two estimates that drift and become the same object read from two angles. That is the structural move, and it is the only one that survives the next deal.
One commercial model. The deal sales negotiates and the deal delivery executes are the same structured thing: the same scope, the same resourcing, the same margin built role by role, the same assumptions recorded where both functions can see them. Sales is not signing a price and lobbing a PDF over a wall. It is committing to a model that delivery inherits intact, with its structure and its assumptions still attached. When that holds, "sold margin" and "delivered margin" are not two forecasts produced by two functions. They are one number, computed once, that everyone is reading from the same place.
That changes what the four seams can do. The estimate is still optimistic where sales wants it optimistic, but the optimism is now visible as specific assumptions and specific margins, not buried in a single headline percentage. The handover stops being a translation, because there is nothing to translate. The assumptions are in the model, so a wrong one is a recorded thing you re-price, not a surprise you absorb. And capacity is read against the same structure before signing, not discovered after.
This does not require a tool. It requires the firm to stop producing two margin numbers and pretending they were one. A disciplined spreadsheet can hold a shared model in principle. It tends not to survive contact with the second function, because the moment delivery re-keys it or sales redrafts it, the shared object forks back into two, and you are reconciling by hand again.
This is the part of Estii built for exactly that seam. A deal is one structured model that carries scope, price, margin, schedule, and capacity together, so the deal sales signs and the deal delivery runs are the same object rather than two estimates. The rate card holds low and high margin thresholds and flags a role whose margin crosses them while the deal is still being negotiated, so a thin margin is visible at sale, not at the quarterly review. Every redraft and every approval snapshots a read-only deal version automatically, so the scope and assumptions a margin was set against are recorded, and a later change reads as a change you can re-price rather than a quiet drift you find in delivery. When delivery picks the work up, the same structured deal exports to Jira or ClickUp and to a spreadsheet with the work breakdown intact, so the handover carries the model instead of flattening it into a document. The point is not that Estii guarantees the margin. It is that there is one margin number to govern instead of two to reconcile.
The number you signed was always a forecast
The firms that close this gap are not the ones with the best delivery teams. They are the ones that stopped asking delivery to hit a number it never helped set. The margin you signed was a forecast, made to win, by people who would not be the ones to deliver it. Until the signed deal and the delivered deal are the same object, that forecast and the reality underneath it will keep diverging, and the post-mortem will keep blaming the wrong function for a gap that was designed in before kickoff.
The maths in the review is fine. The two numbers feeding it were never the same.
