Headline gross margin says 60 percent. Realized margin after credits, replacements, and disputed work says 48. The gap is contract language, accumulated over years of negotiations where each concession looked small at the moment it was made. This is a revenue leak, and it sits inside the same bucket as below-the-rate-card pricing creep and pricing decisions made out of haste.
The difference between the headline number and the realized number rarely shows up as a single line item. It shows up as a slow widening that no one quarter explains. By the time it registers in the margin line, the cause is years upstream, written into agreements that were signed, filed, and never read together.
The Mechanism
Contract concession drift develops one renewal at a time. Each negotiation gives away something that looks marginal in the room. A completion definition broadens. A guarantee period stretches from 30 days to 60 to 90, with no matching adjustment to price. A scope-change clause that used to push extra work into a separately billed tier quietly migrates into the base engagement. Payment-terms language softens, and net-30 becomes net-45 becomes net-60 in practice if not on paper.
No single one of these is a bad decision. Each one closes a deal, or saves a relationship, or matches what a competitor was offering. The partner at the table is solving the problem in front of them, and the concession is the cheapest way to solve it. The cost does not land in that quarter. It lands three years later, distributed across dozens of agreements, in the form of work the firm now performs for free, disputes it can no longer win on the contract language, and revenue it recognizes on paper but never fully collects.
What Actually Drifts
The drift is concrete, and it is legible once the agreements are read side by side. We have observed the same handful of patterns across professional service firms in this size range.
A satisfaction clause that began as a 30-day window becomes a 90-day window. The work is the same. The exposure tripled. A completion criterion that once required affirmative client sign-off now requires only client non-objection, which means the firm carries the engagement open on its books until someone affirmatively closes it, and no one does. A scope-change pricing tier that existed in version two of the master services agreement disappears in version three and never returns, so every change order after that point is absorbed rather than billed.
Each of these started as a reasonable answer to a specific negotiation. None of them was ever reviewed as a trend, because the firm has no surface on which the trend is visible.
The Diagnostic Question
Here is the question that locates the leak. Can your firm produce, by master agreement, the cumulative concession history across the last five renewals? Not the current contract. The trail of what changed, renewal over renewal, and what each change was worth.
Almost no firm at this size keeps that record. The current agreement is on file. The prior versions are in an email thread or a folder somewhere. The person who negotiated the second renewal has moved on. The cumulative view, the one that would show a guarantee period that quietly tripled or a billing tier that silently vanished, exists nowhere. That absence is the finding. The margin gap is downstream of it.
The BDO Reference
The scaled-up version of this mechanism is visible in public. When BDO cut partner pay and reduced its partner ranks, the proximate story was performance, but the structural story underneath was revenue-side compression at scale: realized revenue per engagement no longer supporting the cost structure built on top of it. At a global firm, that compression surfaces as a partner-pay headline.
At a $30M professional service firm, the same mechanism surfaces as something quieter and harder to name. A partner draw stops growing, then starts shrinking, while revenue on paper looks fine. The headline says the firm is healthy. The draw says otherwise. The distance between those two facts is the realized-versus-headline gap, and contract concession drift is one of the largest contributors to it.
Why It Persists
The drift persists because the infrastructure that would catch it was never built. Most firms in this range wrote their contract templates when one partner negotiated every deal and held the entire concession history in their own memory. That worked. One person knew what had been given away, because one person had given it away.
Then the firm grew. More partners closed more deals across more service lines, and the single memory that used to hold the whole picture was never replaced with anything. No template versioning. No concession tracking. No cumulative review before the next negotiation opens. The firm scaled its deal volume and left its contract governance at the size it was when the firm was a third as large. This is the same root cause that sits underneath most of what the diagnostic surfaces: the firm grew, and the management infrastructure did not grow with it.
In our diagnostic work, the realized recovery from tightening this drift falls inside the published $150K to $500K range for revenue-bucket leaks. The recovery is not a renegotiation trick. It is the result of assembling the concession history in one place for the first time, seeing the pattern, and resetting the template before the next five renewals repeat it.
From any single contract review, this does not look like a problem. Each agreement is defensible on its own terms. It only looks like a problem when the cumulative concession history is assembled in one place, and the firm sees, all at once, how much it has been giving away one reasonable decision at a time.