Decision intelligence
Don't predict who repays.Predict who repaysbecause you acted.
Most collections models rank customers by how likely they are to pay. That puts the people who were going to pay anyway at the top of the list, spends your most expensive capacity on them, and books their payment as the model's own success. Collections Hub is built to score the difference your action makes instead, and it shows its working on every decision.
The thesis
One equation, andeverything follows from it.
The quantity worth estimating is not the probability that a customer cures. It is the increase in that probability caused by the action you are considering.
τ(action, x) = P(cure | action) − P(cure | no action)
Read it as: what this intervention is worth on this account, over and above leaving it alone. A response model estimates the first term and ignores the second, which is why it recommends contacting self-curers. Until an uplift model has beaten the comparison group, Collections Hub scores from each borrower's own history and from rates learned on your book, and every decision says which.
The self-cure trap
A large share of early delinquency resolves without you. A propensity ranking finds those accounts first, contacts them, and reports a magnificent recovery rate that would have happened anyway.
The sleeping-dog trap
For some accounts, contact makes things worse: a complaint, an opt-out, an escalation. Uplift can go negative, and an engine that cannot represent a negative cannot avoid it.
The persuadable middle
The accounts worth your capacity are the ones where the action changes the outcome. They are neither the most likely nor the least likely to pay, which is exactly why propensity misses them.
The gap
Two curves. The gapis the whole product.
One strand is what happens to an account if you act. The other is what happens if you leave it alone. A propensity model measures the first and never looks at the second. Across most of a book the two are the same line, and that is exactly where the money gets spent for nothing.
The pipeline
The ordering isthe architecture.
Candidate actions are planned, then vetoed, then scored, then arbitrated, then logged. Vetoing before scoring is what makes compliance structural rather than aspirational: a high score cannot resurrect an action that a gate refused, because scoring never sees it.
Features
Point-in-time correct. A feature computed from data that did not exist yet is how a model learns to cheat.
Candidates
All ten actions, each planned to a specific moment, because asking may-we-dial at 02:00 answers no for every customer alive.
Veto
Consent, calling window, contact caps, cooling-off, third-party contact, holds, days-past-due stage, stale bank data, technical bounces and what the customer said on the last call.
Score
Expected value in money for each surviving candidate.
Arbitrate
One action wins, with the reasons that eliminated the others.
Log
Every decision, including the blocked ones, with the probability it was chosen under. Searchable, exportable, and one click from its full trace.
The score
Money, not aconfidence number.
A collections head can argue with a figure in currency, and can do nothing at all with a 0.62. Every candidate carries an expected value built from terms that each mean something on their own.
exposure × recovery fraction × P(reach) × P(resolve | reach) × decay(delay) − cost − contact fatigue
Waiting evaluates to exactly zero, and anything that acts must also clear a small minimum value, so a recommended action is always a claim that doing something beats doing nothing on this account, today, by this much.
- Timing is scored, not asked afterwards
- Each candidate is planned to a moment before it is vetoed. Digital nudges land near the salary credit when the failure was insufficient funds, calls prefer an hour this customer has actually answered at, and a field visit takes a day's notice and never lands on a Sunday.
- Cost is real, not nominal
- Attempts per connect dominates the cost base and is usually unmeasured. At a 30% answer rate a connect costs 3.3 rings; at 15% it costs 6.7. Answer rates are learned from your own outcomes and bot-call cost is metered, while the rest of the cost table is yours to set, through review.
- Fatigue is a term, not a policy afterthought
- Contact has a cost to the relationship as well as to the P&L. It is priced in the score, on top of the hard frequency cap that no score can override.
- Book-level allocation, not just per-account
- Agent hours and field slots are finite. The allocation layer prices that scarcity every night, and it only starts steering decisions once it has cleared its own checks. It ships switched off.
The action space
Ten things to do,and one of them is nothing.
Silence is a first-class action with a real score, which is the only way an engine can ever recommend fewer contacts.
| Action | Channel | When it wins |
|---|---|---|
| Wait | No contact | Scores exactly zero. Every other action has to beat it. |
| Re-present the mandate | No contact | Costs almost nothing, annoys nobody and sits outside the contact cap. For an insufficient-funds return it is a timing problem, and this beats any call. |
| Change the EMI date | No contact | When the due date keeps landing a few days before payday, moving it fixes the cause instead of chasing the bounce every month. |
| Self-service plan | No contact | Opens a resolution path the borrower can take in their own time, where they already are: the app, the portal, the next statement. |
| SMS with a pay link | SMS | Cures the forgot segment at a fraction of a call. Timed to the credit, not the calendar. |
| WhatsApp with a pay link | The same cure on the channel most customers actually read, inside their consent. | |
| Voice agent | Voice | Volume work in the early book: identity, amount, promise, objection. |
| Agent call | Voice | Hardship, disputes, settlements, and anything outside what an agent may do. |
| Field visit | In person | Expensive and often unanswered. Only from 31 days past due, above a minimum balance, when digital is exhausted. |
| Legal notice | Legal | A clock, not a conversation. Served by registered post, outside the contact cap, and still allowed under a legal hold. |
Mandates, field visits and legal notices land in supervisor queues with a Confirm and enact step, so a person signs off on anything that leaves the building. Re-presentation goes to your loan system as a work item unless a payment-rail adapter is connected.
The record
Every decision,with its working shown.
Open any decision and the engine shows why it acted now, every option it weighed, and where each number came from. A language model can put that into plain words, but only with numbers the record already holds.
- Why now
- The trigger, the facts it relied on, how fresh the bank feed was and which rules were in force.
- Every option
- All ten actions, each scored or marked blocked before scoring, with the reason in plain language.
- Where each number came from
- This borrower's history, a rate learned from recent outcomes, or the starting assumption. It says which.
- What happened next
- The calls, messages, promises and payments that followed, and the version of every rule and model involved.
Why the engine decided this
ExampleTrigger: EMI bounce, insufficient funds · Bank feed 2h old · Rules v14
- WhatsApp with a pay link₹412
- SMS with a pay link₹301
- Voice agent₹24
- Wait₹0
- Agent callBlocked before scoring · Outside calling hours
- Field visitBlocked before scoring · Under 31 days past due
The model's job
The model explains.The engine decides.
There is a real and useful role for a language model around a collections decision. Making it is not that role.
What the model does
- Understands the customer on a call, and follows if they switch language
- Puts a decision into plain words, using only numbers from its record
- Proposes up to three setting changes a week, with the numbers behind each, for a person to approve
- Drafts a whisper a supervisor can send to a live agent
What it cannot do
- Choose an action, or take any part in scoring, vetoes or arbitration
- Revive anything a gate blocked
- Change the channel or the moment an action was planned for
- Quote a settlement or approve a waiver
- State a figure the record does not contain
The first is enforced by the build itself: the scoring, policy and arbitration code cannot import a language model. The last is enforced at runtime: an explanation containing a number the record does not hold is thrown away, and the rule-written text is shown instead.
Stopping
Eight reasons to stopget a row, not a label.
Hardship, dispute, complaint, bereavement, legal, cease-and-desist, deceased and no-upsell each place a hold on the account. A hold is a record the runtime reads, which is what binds an agent at 02:00 exactly as it binds a supervisor at noon.
A hold is not a routing label
Routing labels are advisory and get lost between systems. A hold is checked at the point of action, so nothing downstream has to remember it.
Holds are precise about what they stop
A legal hold still permits a legal notice. A dispute hold still permits a specialist call about the dispute itself. A hardship hold allows nothing but waiting. Blanket silence is its own failure mode.
Releasing one takes two people
Legal, cease-and-desist, deceased and bereavement holds need a second person to lift them. And what a customer says on a call can only take options away, never add one.
Offers come from what customers ask for
Offers are never spoken on a collections call. A buying signal from a conversation becomes an offer only with a written suitability finding, goes out later by WhatsApp with marketing consent or to a relationship manager, and one in ten is held back to measure.
The ladder stops on its own
A broken promise re-enters the engine the hour it breaks, with a cap of five attempts, a twelve-hour backoff and a repeat penalty. Following up forever is a bug, not persistence.
Proving it
A number nobodycan argue with.
An engine that cannot be evaluated is a story. The measurement apparatus ships with it, and most of it runs on a schedule.
- 01
Shadow first, always
The engine runs and logs every decision, including the blocked ones, without acting. A fortnight of that tells you what it would have done and what it would have cost, before anything changes for a customer.
- 02
Rates that learn in the open
Every night, reach and cure rates are re-learned from outcomes and shown side by side: what was assumed, what the engine now uses, and the evidence that moved it.
- 03
A genuine comparison group
A randomised group gets only what policy requires. It is the only thing that separates lift from seasonality, and the platform will not report uplift without one.
- 04
Off-policy evaluation, every week
A challenger is trained and estimated against logged decisions (importance sampling, self-normalised and doubly robust), so it can be compared before it ever touches a customer.
- 05
A promotion gate that says no by default
A challenger needs a pre-registration signed by a second person and has to clear the gate. Silence from the gate means no.
- 06
Changes need a second person
About twenty strategy settings, costs included, are edited as proposals with an estimated impact. A change applies only when someone other than its author approves it.
Until a model has beaten the comparison group, the engine says so. On every decision.
Questions
What people askabout the engine.
How is uplift different from a propensity model?
A propensity model ranks people by how likely they are to pay, which puts self-curers at the top: customers who would have paid anyway. Your most expensive capacity is then spent on people who needed nothing, and their payment is booked as the model's own success. Uplift ranks by the difference your action makes: the chance of cure if you act, minus the chance of cure if you do not.
Can the language model overrule the engine?
No. There is no language model in scoring, policy or arbitration, and the build fails if someone adds one. Candidate actions are vetoed before they are scored, so a vetoed action cannot come back on a high score. A model can explain a decision afterwards, or propose a setting change for a person to approve.
Where do the probabilities come from on day one?
From starting assumptions you can see and edit. Each night the engine re-learns reach and cure rates from real outcomes, and every decision shows whether a number came from this borrower's history, a learned rate, or the starting assumption.
Why is the score in money rather than a probability?
Because a collections head can argue with a number in currency and cannot argue with 0.62. The score is exposure times recovery fraction, times the probability of reaching the customer and of resolving once reached, decayed by delay, minus cost and contact fatigue. Waiting scores exactly zero, so every action has to beat silence.
How do we know it is working, and not taking credit for self-cures?
A randomised comparison group, and off-policy evaluation against logged decisions every week. The Is it working? view shows the extra cure rate against that group, and what is stopping contact, by reason. A challenger has to clear a promotion gate that refuses by default.
Bring your book.We will score it.
In a walkthrough we run the engine over real accounts of yours in shadow mode and show you what it would have done, what it would have held back, and why.
