FlowParse
Article 13 August 2026 21 min read

The gap between billed and banked

A practice's billed total and its bank balance are never the same number, and they were never meant to be. What separates them is a mix of expected contractual adjustments and genuine shortfalls that look identical from a distance — and most practices have never actually measured which is which.

FlowParse
flowparse.io
flowparse.iono sound needed
0:00 / 0:00

Two numbers, never equal

Every practice has both figures within reach. The billed total, added up automatically by the practice management system as claims go out. The banked total, growing as deposits actually clear. Ask anyone in the practice whether the two should be the same number and the answer is obviously no — and yet ask the same person how large the gap currently is, in an actual figure rather than a feeling, and the answer is usually a shrug.

That gap is not, by itself, evidence of anything wrong. It is made of ordinary, expected components — contractual adjustments a practice agreed to, claims still working their way through a payer's normal cycle, patient balances that have not been collected yet. What makes the gap worth measuring is that it is also made, sometimes, of a fourth component: money genuinely owed that was simply never collected, and that component looks identical to the other three until someone actually breaks the total down.

What actually makes up the gap

Four components, and only one of them is a genuine problem.

ComponentNature
Contractual adjustmentExpected — the payer's contracted rate is lower than the billed rate, by agreement
Timing lagExpected — a claim billed recently that simply has not cleared the payer's normal cycle yet
Uncollected patient balancePartly expected, partly recoverable — some balances never get collected regardless of effort
Genuine underpayment or lost claimNot expected — money the practice was actually owed and never received

Add all four together and the total gap between billed and banked can look alarmingly large on its own. Broken into these four components, most of that total is entirely explainable, and what remains — the fourth row — is usually a much smaller, much more specific number worth actually acting on.

Not all of the gap is a problem

Worth stating plainly, because the two get conflated constantly and the conflation is exactly where the anxiety around this topic comes from. Nobody wants to hear that their collections look weak, and a large unexplained gap sounds exactly like that.

A contractual adjustment is not lost revenue — it is the cost of being in-network with a payer, agreed to in advance in exchange for patient volume. Timing lag is not lost revenue either — it is simply revenue that has not arrived yet, and treating it as a shortfall produces a monthly panic that resolves itself a few weeks later once the claims actually pay out.

The genuinely lost revenue is what remains after the first three components are properly subtracted out — and that residual figure is what deserves attention, not the raw, unadjusted gap that includes everything.

FlowParse
flowparse.io

What an unmeasured gap actually costs

Three separate costs, and they compound rather than substitute for each other.

Direct revenue loss

Underpayments and denials that age past their appeal window represent money the practice was owed and will never see, permanently.

Late discovery of payer problems

A payer quietly underpaying or a coding pattern triggering denials stays invisible until someone notices — and the longer it runs, the more claims are affected before it is caught.

Decisions made on a wrong number

Staffing, expansion, and pricing decisions based on billed totals rather than actual collections risk being built on a figure the practice never actually receives.

The first is the one with an actual dollar figure attached, and the next section puts one on it.

A worked month

A single-provider practice, one month, billed total of £62,000.

ComponentAmount
Billed total62,000.00
Contractual adjustments-9,400.00
Timing lag (claims still in cycle)-6,100.00
Denials past appeal window-1,850.00
Actually banked this month44,650.00

A raw gap of £17,350 looks like a serious shortfall until it is decomposed. £9,400 is an expected contractual adjustment, and £6,100 is claims still in the payer's normal cycle that will very likely pay out next month. What remains — £1,850 in denials that aged past their appeal window — is the only figure in this table that represents money genuinely and permanently lost.

That £1,850 is roughly 3% of billed revenue, which sounds modest in one month and considerably less modest multiplied across a year of months where the same pattern repeats unnoticed.

FlowParse
flowparse.io

A practice that finally measured it

A two-provider family practice had never once produced this breakdown — the office manager checked the bank balance most mornings and compared it loosely, by memory, to what the billing software showed as invoiced that month. The comparison never felt precise, but nothing about it felt urgent enough to fix either.

Reading a full quarter of remittances and bank deposits, following the method above, took an afternoon the first time — three payers' worth of PDFs, read claim by claim, matched against the deposits that covered them. The raw gap for the quarter came to £14,200 against £186,000 billed, a number that, on its own, would have prompted a serious conversation about collections.

Broken into its components, £9,100 was contractual adjustment — expected, and already priced into the practice's contracts. £3,400 was timing lag on claims billed in the final two weeks of the quarter, which mostly cleared the following month right on schedule. What remained was £1,700 in denials, four claims, two of which were still inside their appeal window and two of which had already aged past it.

The two recoverable claims were appealed and £950 was eventually collected. The two that had aged out were written off, and the practice adopted the weekly reconciliation cadence described in this cluster's companion guide specifically so the next quarter's denials would not have the chance to age that far before anyone noticed them.

Nothing about that outcome required new software or a consultant engagement. It required one afternoon spent reading documents the practice already had, and a small change in cadence going forward — from checking loosely once a quarter to checking properly once a week, which is the entire difference between catching a denial with three weeks left on its appeal window and finding it four months too late.

What changed permanently was not the size of the practice or the number of payers it worked with — both stayed exactly the same. What changed was that a number that had always existed, silently, in the space between two spreadsheets finally had a name, a cause, and an owner.

That is, in the end, the whole argument for measuring this gap at all — not to eliminate it, which is not realistic and not even desirable given how much of it is entirely expected, but to know, at any moment, exactly what it is made of and why.

A practice that reaches that point has not solved billing. It has simply stopped guessing about it, which turns out to be most of the value on its own — the rest, the actual fixes and follow-ups, follows naturally once the guessing stops and a real, sourced number takes the place of a shrug and a rough impression that nobody could ever quite defend under a direct question from an owner, a partner, or an auditor asking for specifics rather than a general sense that things are probably fine, most likely, on balance, all things considered, more or less.

FlowParse
flowparse.io

Why the gap stays invisible

Almost nobody sets out to ignore this. It stays invisible for reasons that each look individually reasonable.

The billed total is easy to see — it is the headline number the practice management system already surfaces prominently.

The banked total requires cross-referencing the bank statement, a separate document nobody automatically compares against billing.

A busy month leaves no time to break the gap into its components, so it either gets ignored or assumed to be 'mostly normal'.

Contractual adjustments and timing lag really are the majority of most gaps, which makes it easy to assume the whole gap is benign without checking.

No single month's gap looks alarming enough on its own to justify the investigation — it is only the accumulation across a year that becomes significant.

FlowParse
flowparse.io

How to measure it honestly

The measurement is simple in principle and rarely done in practice, because the inputs it needs — a real billed total, a real banked total, and the components that separate them — each require reading documents that live in different places.

1

Build a real banked total

Every deposit for the period, read from the bank statement, tagged to the payer or source it came from.

2

Read every remittance for the same period

Claim-level detail — billed, adjusted, paid, denied — from the payers who actually paid during the period.

3

Separate contractual adjustments from denials

Both reduce the collected total, but only one represents money the practice was actually owed.

4

Track claim age on anything unpaid

So timing lag is distinguishable from a claim old enough that lag is no longer a reasonable explanation.

5

Watch the residual over time

One measurement is a snapshot. Tracking the genuine-loss component monthly shows whether it is growing, shrinking, or holding steady.

FlowParse
flowparse.io

Net collection rate, done properly

A single ratio is the common way practices try to summarise this: collections divided by what was billed. That ratio is only useful if the denominator is right, and the most common mistake is dividing by the full billed amount rather than by what was actually collectible after contractual adjustments.

Gross collection rateNet collection rate
DenominatorFull billed amountBilled amount minus contractual adjustments
PenalisesContractual discounts the practice agreed toOnly genuine shortfalls — denials, uncollected balances
UsefulnessLow — conflates expected and unexpectedHigh — isolates what is actually worth fixing

A practice with generous in-network contracts can show a mediocre gross rate while actually collecting nearly everything it is genuinely owed — the net rate is what actually tells that practice whether it has a collections problem or simply a contract with large agreed discounts.

What practices actually do about it

Once the genuine-loss component is a real number, the response is usually ordinary and specific rather than dramatic.

FindingTypical response
One payer consistently denies a specific codeA call to the payer, or a documentation change to prevent the denial recurring
Denials aging past the appeal windowA tighter weekly reconciliation cadence, so denials are caught while still actionable
A quiet rate change from one payerA comparison against the contract, and a call if the rate genuinely does not match
Patient balances rarely collectedA clearer patient-payment process, not a change to insurer relationships

None of these responses require rethinking the whole revenue cycle — they are targeted fixes to a specific, measured cause, which is only possible once the gap has actually been broken down instead of treated as one undifferentiated number.

Three practices, three gaps

The same £60,000 billed total, read three different ways depending on how carefully the gap was measured.

PracticeBilledRaw gapGenuine loss
A — never breaks it down60,00016,000Unknown — could be most of it
B — checks totals occasionally60,00016,000Roughly 4,000, best guess
C — reconciles claim by claim weekly60,00016,0001,900, confidently measured

Practice A has the same raw gap as the other two and the least useful information about it — a genuine-loss figure is not knowable without claim-level detail to subtract the expected components. Practice C is the only one of the three who can act on the figure with confidence, because it comes from an actual weekly reconciliation rather than an estimate.

FlowParse
flowparse.io

Mistakes this leads to

Treating the whole gap as lost revenue

Ignores contractual adjustments and timing lag entirely, producing a number too large to be credible and usually dismissed rather than acted on.

Treating none of the gap as a concern

The opposite failure — assuming the whole gap is 'just how billing works' without ever separating out the genuine losses hiding inside it.

Using gross collection rate as the only metric

Penalises the practice for contractual adjustments it agreed to, and hides real problems inside a number that looks fine on average.

Comparing this month's billed to this month's banked

Manufactures a shortfall out of ordinary timing lag, since much of what was billed this month is not due to pay for weeks.

Measuring this once a year instead of monthly

A genuine problem that started three months ago is three months more expensive to catch than the same problem caught in month one.

FlowParse
flowparse.io

Building a simple routine

None of this needs a formal revenue-cycle overhaul to start. A short, written routine covering four things is enough for most practices to move from “collections feel a bit low” to an actual, actionable number.

How the raw gap is broken into its four components, in terms anyone in the practice can check.

How often the breakdown is reviewed — monthly is common, weekly for practices with thin margins or a recent payer change.

Who owns following up when the genuine-loss component exceeds a threshold worth acting on.

What claim age counts as 'still normal' versus 'worth investigating', stated rather than assumed.

Four sentences, and the difference between a practice that periodically wonders whether collections could be better and one that has an actual routine for finding out.

FlowParse
flowparse.io

Why the gap changes shape over a year

The raw gap between billed and banked is rarely a flat, constant percentage across every month of the year. It moves with two things that have nothing to do with how well a practice is actually collecting: how billing volume itself fluctuates, and how payer processing speed shifts around holidays and year-end.

A month with unusually high billed volume — a seasonal illness surge, a new provider ramping up a full schedule — mechanically widens the raw gap even if collection performance is unchanged, simply because there is more recently billed volume still sitting in the normal payer cycle. The same practice, collecting at exactly the same rate, will show a smaller raw gap in a quieter month purely because less of the billed total is still in transit.

Payer processing speed adds a second, more predictable wrinkle: many payers slow down around major holidays and calendar year-end, which shows up as a widening gap in December and a partial catch-up in January and February. A practice that tracks the gap monthly without accounting for this seasonal rhythm can mistake an entirely normal December slowdown for a collections problem, and then mistake the January catch-up for a sudden improvement that was never really earned.

The fix is not a different measurement — it is the same claim-level decomposition described above, applied consistently enough that the seasonal pattern becomes visible as a pattern rather than a surprise each time it recurs. A practice that has watched this shape repeat for two or three years stops reacting to the December widening and starts simply expecting it.

That expectation is itself useful information. Once a practice knows roughly how much its gap normally widens in a slow month, a widening that is meaningfully larger than the usual seasonal pattern becomes a genuine signal worth investigating, rather than getting lost in a season where some widening was expected anyway.

FlowParse
flowparse.io

Does the gap vary by specialty?

Considerably, and mostly for structural reasons rather than anything about how well any particular practice runs its billing. A specialty with a high proportion of low-cost, high-volume visits behaves differently from one with fewer, higher-value procedures, even at an identical underlying collection rate.

A high-volume, low-cost specialty tends to show a larger proportion of its gap as ordinary timing lag simply because there are more individual claims cycling through the payer pipeline at any given moment — more claims in flight means more of the billed total is, at any snapshot, still working its way through processing rather than genuinely overdue. A lower-volume, higher-value specialty shows fewer claims in flight but each one represents a larger dollar figure, so a single denied or underpaid claim moves the genuine-loss percentage more visibly than the same event would in a high-volume practice.

Neither pattern is better or worse — they are simply different shapes the same underlying mechanics take depending on claim volume and claim size. What matters for any individual practice is not how its gap compares to a different specialty's benchmark, but whether its own gap is stable, growing, or shrinking against its own history, month over month.

A practice that switches specialty focus, or adds a service line with a materially different claim profile, should expect its historical gap shape to shift as well — not because collections got worse, but because the underlying mix of claim volume and claim value changed underneath it. Reading the gap in absolute terms without accounting for that shift risks mistaking a structural change for a performance change.

FlowParse
flowparse.io

What we do not tell you

We will not tell you what a healthy collection rate is

That depends on specialty, payer mix and region — a document reader has no basis for stating it.

We will not decide whether a denial is worth appealing

That is a judgement call for the practice or its biller, weighing the claim's value against the effort to appeal.

We will not renegotiate a payer contract

Rates and terms are a conversation between the practice and the payer, not a property of a remittance.

We will not flag a genuine loss automatically without claim-level detail

Doing so needs remittances read line by line, which is the reading work this reconciliation is built on, not a shortcut around it.

What we do is the part that has to happen before any of the above is possible: an honest, complete reading of every deposit and every remittance line, so the gap you break down is real rather than approximate. For that, see practice income reconciliation, and for the claim-level mechanics behind it, see payer remittance matching.

FlowParse
flowparse.io

Frequently asked questions

Find your real number first

Read a month of remittances and deposits together, break the gap into its components, and see what actually remains.

Keep reading