Borrowers
| Borrower | Outstanding | Start | Status | Segment | Next action |
|---|
Intelligence
Analysis of the historical book in R: a behavioural similarity network, statistics that test what it found, and one small model. Everything here is evidence for the agent - none of it can change an amount, a floor, or a status. Three panels below reuse the same network and survival data through different lenses: a percolation/robustness check on the network, an intervention-scenario sweep in the shape of impact network analysis, and an epidemic-curve reframing of the survival analysis.
Behavioural similarity network
Segments
communities found by LouvainNetwork robustness
Two ways of deleting borrowers from the similarity network above, and what's left standing. "Targeted" removes the highest-betweenness borrowers first — the same bridge borrowers ringed in the network chart, who sit between behavioural communities. "Random" removes an equally-sized random sample, repeated 30 times and averaged, as the baseline any network this size and density would show just from losing that many borrowers. If the targeted curve falls further than random's noise band, the bridges are structurally load-bearing at that point in the sweep.
Intervention scenarios
Impact-network-style scenario analysis: give an intervention to k borrowers and ask how many extra payments to expect, depending on who gets it. Each borrower it reaches (at their own historical contact rate) has their payment odds multiplied by their segment’s estimated effect from the findings above, drawn from its confidence interval on every one of 200 realizations — so an effect that was not significant stays small and noisy rather than being switched off. “Random” is the null: the same k chosen at random, shaded ±1 SD. A rule only matters where its line leaves that band.
Statistical findings
Benjamini-Hochberg adjusted; nothing shown without its sample size and uncertaintyAccount states over time
Every historical account moves through up to four states: not yet opened, active (in the
collections process), recovered (paid), or escalated (sent to human review — an absorbing exit from the process,
the same as a competing-risks censoring event). This uses the exact same event and censoring data as the Kaplan-Meier
curve above (days_to_payment/observed), just counted per calendar day instead of expressed
as a survival probability.
Reproduction number of the collections process (Reff)
β × contact rate × duration, by segmentβ (conversion per attempt): share of call attempts that end in an on-the-spot payment
agreement (outcome = answered_paid) — immediate conversions only; promises that convert later are
the slower pathway already covered by the reminder-effect finding above, not counted here. Contact rate: total call
attempts in the segment ÷ total account-days spent active. Duration: the restricted mean time an account spends
active before payment, escalation, or the horizon (Kaplan-Meier), all segments compared on the same horizon so the
numbers are comparable across segments.