It is the second week after quarter-end. The recoverables workbook has a tab for each reinsurer, a column of due dates and a column that is meant to say who was chased and when. That column is the one that is never up to date. The analyst sorts by amount, writes four reminders by hand, copies each balance out of the ledger into the body of an email, and goes back to the close. The reinsurer that owes the least and has owed it longest gets nothing, again, because there were only four emails’ worth of morning.
Nothing in that morning needs judgement until the very end. Which balances are past due, by how much, to whom the email should go and what it should list are all facts the ledger already has. The judgement is whether this reinsurer, this week, gets a courteous reminder or a call from the head of reinsurance. This post is about how InsightCede splits the two.
From a paid loss to a balance someone owns
A cession says a contract responds. A recoverable is the claim against a named reinsurer for its share, and it is raised when a loss cession is paid. Until it is billed, nobody has asked for the money, which is why the Recoverables page leads with Unbilled beside Outstanding, Overdue and Disputed. Billing sets a due date thirty days out (the settlement window most treaties allow) and from then on the balance ages.
Three things run off that ageing, and only one of them is an agent:
- A task per reinsurer. The daily ageing job refreshes days outstanding and keeps one open collection task per reinsurer with anything overdue, in the ceded desk’s queue. Its priority rises with lateness and size (urgent past sixty business days or at $1M and above), its clock is five business days on the carrier’s own calendar, and it completes itself when nothing is past due any more.
- A notification. Once a day per reinsurer, to the desk: the amount, how many bills, how late. Past ninety days it is marked critical.
- A drafted chaser. Every six hours the collections agent reads each reinsurer with recoverables past due, largest first, and prepares one decision for each.
sequenceDiagram
participant L as Ledger
participant J as Ageing job
participant A as Collections agent
participant P as Analyst
participant R as Reinsurer
J->>L: refresh days outstanding
J->>P: a task per reinsurer, five-day clock
A->>L: past-due balances, contact, news
A->>P: decision in the queue, chaser held
P->>R: released on Accept
R-->>P: payment
P->>L: Record collection
A->>L: next run: nothing past due
What the agent reads, and how it chooses a tone
For one reinsurer the agent gathers every recoverable with an outstanding balance past its due date, the oldest lateness among them, any marked disputed, the reinsurer’s AM Best rating, the collateral held, the contact on file, and up to the last thirty days of news on that reinsurer that InsightPulse has supplied. The tone is set by the oldest item, not by a model:
gantt
title One bill, issued 7 Sep and due 7 Oct
dateFormat YYYY-MM-DD
axisFormat %d %b
todayMarker off
section Not yet due
Settlement window, 30 days :a1, 2026-09-07, 30d
section Past due
Friendly reminder, up to 30 days late :a2, after a1, 30d
Firm request, up to 90 days late :a3, after a2, 60d
Final notice naming escalation :a4, after a3, 30d
The model is then given those facts and asked for a subject, a body, a title and whether to
propose escalation, with a reason. What comes back is checked against what the agent may not
invent: the recipients are only ever the reinsurer’s contact_email, and the
figures in the record are the ledger’s. If the model cannot be reached the agent writes a
plain chaser itself from the same rows, and the record says the model did not write it.
Escalation is proposed when the model says so, when the oldest item is past ninety days, or when any balance is disputed. It is a recommendation on the decision — drawn under the draft as The agent thinks a reminder is not enough, with the reason — not an action. Nothing in Cede escalates on its own.

Use case details
| Collections | |
|---|---|
| Trigger | Scheduled, every six hours (the settlement step), for each reinsurer with recoverables past due |
| Actor(s) | Ceded analyst answers; head of reinsurance for an escalation; the reinsurer receives the chaser |
| Agent | collections_agent, action send_chaser |
| Grounded in | cede_recoverable (outstanding, due date, disputed), cede_reinsurer (contact, rating, collateral), cede_external_signal (Pulse news) |
| Prepares | One decision per reinsurer: the chaser in the held outbox, the tone, the evidence, an escalation recommendation where warranted |
| Checkpoint & default level | chaser_send at L2 Ask first; the tenant ceiling is L2 until the carrier raises it |
| What a person decides | Whether this chaser goes, in this tone, now; whether to escalate; recording the money when it arrives |
| What is recorded | The run (identity, prompt version, model, cost), the decision and its answer as feedback, the held, released or cancelled message, and the collection itself |
What accepting does
At L2 the answers mean what they say. Accept releases the held message: in production it goes to the outbox worker; anywhere else the dry-run provider records it and nothing leaves. Reject cancels the held message and records why. Ask records a question without counting as feedback. Change records what you changed — recipients, tone, wording or amount — against the proposal. Accept, Change and Reject all count towards the agreement rate that, after fifty answers at ninety per cent or better, lets the roll-up recommend L3 for chasers on that line. Until then nothing goes without a person.
The agent re-runs every six hours, but it does not stack copies. If the facts have not changed, the run finds its own open decision and leaves it waiting. If they have — a payment came in, another bill fell due — the old decision is marked superseded and a fresh one takes its place, with the new figures. An answered decision is no longer open, though, so if the balance is still past due at the next run, a fresh chaser is drafted and waits in the queue. Answering does not snooze a reinsurer; leaving the repeat unanswered does, and an unanswered chaser expires after five days.
The one write the agent never makes is the payment. When the money arrives the analyst opens the row on Recoverables and uses Record collection, which takes the full amount or part of it and refuses anything over the balance or against a bill never issued. The next run finds less to chase, or nothing, and the task closes itself.

The demo programme, as it stands
The demo ledger is a US property and casualty writer with one property catastrophe excess of loss treaty that two losses in 2025 ran into. Its billed recoverables, $52,435,097 across the panel, all fell due on 7 October 2026 and are thirteen days late at the time of writing. The collections agent has one chaser waiting for each of the five reinsurers. The largest, for the 30% lead line, is for $15,730,529 across four recoverables: two claims, each with a layer 1 and a layer 2 balance. The tone is friendly, because thirteen days is inside the first band. The model proposed escalation anyway, and gave its reason: a balance that size, with no collateral held against it, should be seen by a manager before the reminder goes.
It also asked a question it could not answer from the evidence: whether the two lines under each claim are separate balances or a duplicate. They are separate — one per layer — but the evidence line names the claim and the treaty, not the layer, so the model was right to ask rather than assume. That is what a person reading the record is for.
Priya wrote no email and copied no balance. She made four answers — send, leave the repeat, record the money, ask — and each one is on the record with the evidence she saw when she made it.
What it does not do
- No contact, no send. The agent never guesses an address. Where the reinsurer has no contact on file, as in the demo, the draft has no addressee and there is no held message to release: accepting records your agreement and sends nothing. Add the contact to the reinsurer and the next run drafts an addressed chaser.
- A changed wording is not yet carried into the message. Change records your edit on the decision, and that edit counts as feedback. In this build the held message that is released on accept is still the one the agent wrote. Until that is fixed, reword by rejecting with a reason and sending your own.
- It does not read the reply. A reinsurer’s answer comes back to a person’s inbox. Capturing a dispute from the reply is on the roadmap, not in the product, and there is no screen in this build that sets the disputed flag the agent reads; a dispute today is a note tagged dispute on the recoverable.
- Escalation is advice. The agent can recommend it, and say why. Calling the broker or the reinsurer’s claims head is still a person’s act, outside Cede.
- There is no cadence setting. While a balance is past due, every run that finds no open chaser for that reinsurer drafts one. How often a reinsurer actually hears from you is decided in the queue, by what you accept.
- Two clocks. The tone counts calendar days past due; the task’s clock counts business days on the carrier’s calendar. They will disagree around holidays, and the task’s priority is the one the desk is measured on.
Why the payment stays with a person
An agent that books collections would be reconciling its own chasers. The point of the split is that the money in the ledger is only ever what a person saw arrive, so the next chaser is drafted from a balance nobody’s automation has touched.
If your recoverables still live in a workbook with a column that is meant to say who was chased, bring a quarter’s worth and we will load it into a demo ledger and show you the queue it produces.