What a book of business gives up when you finally hold it against something the counterparty does not control.
In short. An agent produced 19 active policies. 17 were paid. Nobody was looking at the other 2, because finding them means holding 2 systems side by side, policy by policy, across tens of thousands of records. The first instrument built for this was a command line matcher, and it worked on everything except the failure that mattered. A matcher reads the counterparty's statement, so its entire universe is the rows the counterparty chose to write down. A policy that appears on no statement has no row to match, and no amount of better matching reaches it. The replacement inverts that. The book ages on its own, every policy carries 2 statuses that are never collapsed into 1, and absence becomes a state rather than a nonevent. Across 22,331 policies, $1,777,715 was sitting unpaid in a book that looked reconciled.
19 policies, 17 payments
Start with the smallest version of it.
An agent produced 19 active policies. 17 were paid.
Nobody was looking at the other 2. Not because anyone was careless, but because finding them means holding 2 systems side by side, policy by policy, across tens of thousands of records. So the question never gets asked, and the answer is always money.
Now do that for every agent who has ever written a policy on the book, including the ones who left.
The book this ran against
A Florida health insurance agency on a multi carrier book. 2 uplines and 2 agencies operating under one roof, with different reporting formats and different payment rules, all reconciled through a single ledger.
Roughly 200 agents across the 2 year book. 60 to 70 concurrent at peak, 49 today, 36 selling and 13 enrolling, with around 95 staff supported in total.
That shape matters more than the headcount suggests, because the book spans an expansion and then a contraction. A book that only grows is straightforward. A book that grows and then sheds producers generates terminated agent orphaned commissions, mid cycle splits, and unclaimed chargebacks, and that is precisely where the missing money comes from.
Credit compounds it. A single deal credits both the originating agent and the enroller, while the lead cost attaches only once. 2 people are credited for 1 policy, 1 charge exists. That asymmetry is why commission goes missing at scale, and why it stays missing once it does.
You take every dollar on faith
The upline controls both the payment and the reporting.
Their statement is the only account of what you are owed. Their books are never shared. The agency has no independent instrument, so every dollar that arrives, and every dollar that does not, is taken on faith.
That is the constraint the whole problem sits inside, and it is worth holding onto, because the first thing we built did not respect it.
The instrument before this one
RTR was a command line tool and nothing more. No screens, no tenants, no vocabulary layer. You handed it a statement file, it read the book of record, and it walked every row on that statement into the book through a cascade of identity keys, most specific first. Enrollment identifier if the counterparty had included one. Member identifier plus effective date if they had not. Unmatched if neither landed.
It was the right first shape. A cascade is honest about its own confidence, since each layer reports how it matched and the caller can weight a layer 1 hit differently from a layer 2 one. It found underpayments. It predicted clawbacks before the next cycle closed. For the failure it was pointed at, money that arrived wrong, it did the job.
It is retired now, and not because it broke.
What a matcher cannot see
Every row RTR could evaluate was a row the counterparty had already written down.
That sounds like a small observation. It is the whole thing. There are 4 dispositions a commission can land in, and only 1 of them needs a second source.
| Disposition | Found by |
|---|---|
| Paid | Reading their statement |
| Charged back | Reading their statement |
| Underpaid | Reading their statement |
| Omitted | An independent source |
Anyone patient can find the first 3. All 3 are discrepancies between 2 things the statement already contains, so a matcher fed that statement will surface them.
A policy that appears nowhere on any statement, no payment, no reversal, no acknowledgment, can only be found by holding the counterparty's document against a record they do not control. There is no row. There is nothing to match, nothing to flag, and nothing to be suspicious about. The tool returns clean, and clean is the correct answer inside its own universe.
This is the part worth understanding. A reconciliation fed by the upline can never detect omission. It inherits their version of events, so whatever they did not publish is invisible to it by construction, permanently. Not a gap that closes in the next release. A property of where the data comes from.
No amount of better matching fixes that, because better matching is more layers in a cascade whose input never contained the record.
Inverting the spine
So the book stopped being the thing a statement gets matched into, and became the thing a statement gets overlaid onto.
Every policy carries 2 independent statuses that are never collapsed into 1. The position side is what the carrier says about the policy. The payment side is what the upline says about the money. Neither can overwrite the other, and the records worth acting on are exactly the ones where the 2 disagree.
A single status forces that collapse at write time, and the collapse always resolves toward whoever wrote last. Keep them apart and the contradiction survives long enough for somebody to look at it.
An active policy with no payment against it stops being a missing row in somebody else's file. It becomes a policy in a state, and the state has a name.
Absence had to become a state
An active policy that was never advanced reads Missing. Once the advance lands it reads Advanced. At the configured maturity it flips to Reconcile, meaning time to collect the full balance. If the pay date passes with no reconciliation line against it, it moves to Audit, expected payment, not received.
Nothing in that sequence requires a statement to say anything. The policy ages into Audit on its own, driven by the calendar and the carrier side, which is the entire point. The counterparty's silence stopped being the absence of information and became information.
What the instrument found
- 22,331
- Policies carried through the full lifecycle, across 2 counterparties
- $1,777,715
- Outstanding across 2,129 policies flagged this year to date
- ~$200,000
- Recovered across last year, the first pass, before any of it was automated
The 2,129 flagged policies are roughly 1 in 10 of everything the ledger carried.
Those cells are 2 different periods, and reading them as one would be the easy mistake. The $200,000 came back across last year, on the first pass, while the work was still being done by hand. The $1,777,715 is this year to date. So the recovery is not a drawdown of the exposure, they do not net against each other, and the outstanding figure is not $1.5 million.
Taken in order they are the actual argument. The manual year proved the method was worth the hours. The instrumented year found what a person working by hand could never have reached.
Two caveats on how the total should be read, and both matter more than the total does.
Flagged policies are valued at full commission rather than at a measured per policy amount. Where a partial payment was received, the balance is typically offset by a clawback of amounts legitimately owed, so the outstanding position resolves to the full balance anyway.
And it is exposure identified, not money in hand. $200,000 is the only figure here that has actually come back.
The backlog, then the leak
That $200,000 did not arrive evenly. It came in 2 distinct regimes, and the second is the more useful number.
The first 6 months returned $20,000 to $50,000 a month. Every month after that returned $3,000 to $12,000.
That decline is not fading value, it is the shape of the work. The first pass clears a backlog that accumulated while nobody was watching, and a backlog is finite by definition. What follows is the ongoing leak, caught as it happens.
Both numbers answer different questions. The first tells you what is sitting in your book right now. The second tells you what it costs every month to keep not looking.
Quoting only the first would inflate the instrument. Quoting only the second would undersell what a first pass is worth to an operator who has never run one.
Suppression is what makes the flags credible
The output of this is not a report. It is a claim against somebody who would rather you were wrong, and that changes which errors you can afford.
So the list gets cut before it goes out. A policy that has gone inactive is charged back, not chased, nothing is owed on it. A policy the upline has already declared ineligible, or duplicate, or on their own book, is flagged never to audit. Every one of those rules makes the list shorter, and every one of them was added on purpose.
An instrument that produces false claims is ignored after the 2nd one. Once the other side has found 2 things on your list that are not true, every remaining line becomes negotiable, including the true ones. A shorter list that survives scrutiny is worth more than a longer list that starts an argument, and the difference between the 2 is whether the thing can be handed over at all.
The verification pass on the other side of this book reaches the same conclusion from the opposite direction, and declines to publish a recovery total for it. In both cases the temptation is a bigger number, and in both cases the bigger number is the one that loses the room.
What transfers
The screens run off a vocabulary layer rather than being wired to 1 industry. The same logic renders Account, Position, Analyst, Desk and Custodian for a securities desk, and Policyholder, Policy, Producer, Team and Carrier for an insurance agency. A new vertical is a preset, not a fork.
That matters more than it sounds like it should, because the argument here is not about insurance. It is about any arrangement where a counterparty both owes you money and is the only party reporting what you are owed. Carrier statements. Remittance advice. Explanations of benefit. Bank confirmations. Custodian and prime broker reporting.
In every one of those the same blind spot exists for the same reason, and it closes the same way. Stop matching into their file. Keep your own ledger, let it age, and make silence mean something.
The mechanics, the lifecycle states, the additive overlay rules and a sanitized read of the reconcile pass are on the work page.