Motor / Portfolio Console
Retention & Risk Desk
Batch scored — Q4 2018
48

One console for churn, claims and value — built so the next call is the right call.

RiskDesk turns the portfolio's three predictive models into a daily worklist: who to retain, what a claim will likely cost, and which customers are quietly worth protecting. Built for underwriting, retention and claims teams.

105,555policies scored, 2015–2018 book
$4.1M+annual revenue sitting in excess churn
24msmedian scoring latency per customer
+5.4pt vs bench
20.4%
Portfolio churn rate — 21,548 lapsed policies
Above 12–15% norm
18.6%
Claims frequency across the active book
Median $289
$825
Mean claim cost — heavy right tail to $260,853
2015–2018
$16.2M
Total incurred losses, observation period
Model instrument cluster
Last retrained · Phase 7 batch
0%
Churn · ROC-AUC
Drivers: tenure loyalty score, premium percentile, months since renewal
0%
Claims frequency · ROC-AUC
Drivers: composite risk score, driver age group, vehicle type
0·R²
Claims severity · R²
Leakage-free — the honest, deployment-ready reading
Leakage caught & corrected Severity R² before correction: 0.646 → after removing four target-derived columns: 0.352, the number this console reports on.
Today's worklist

48 renewals need a human this week.

Ranked by churn probability × customer lifetime value. Work top to bottom — mark a customer contacted once you've called, offered, or logged a note.

Score a customer

Run the model on a customer at the counter, not next quarter.

Enter a policy profile to get an on-the-spot churn read, expected claim cost and lifetime-value segment — the same logic underlying the portfolio-level worklist above.

Customer profile
Illustrative scoring for internal demonstration — mirrors the direction of the production XGBoost drivers, not their exact coefficients.
Fill in a profile and score it to see the customer's churn read, expected claim cost, and CLV segment here.
Scored just now
PROTECT
—
Churn probability
—
Claim probability (1yr)
—
Expected claim cost
—
10-yr discounted CLV
Recommended action will appear here.
Value vs. risk

Every customer sorted into one of four operating lanes.

CLV and churn probability, split at the portfolio median, produce four strategies your team can act on directly — no gut-feel segmentation required.

Protect
28,985 customers · 30.9%
$781 avg CLV
$22.6M total value
High value, 16% churn risk. VIP treatment, loyalty perks — this is the base to defend.
Manage
17,916 customers · 19.1%
$568 avg CLV
$10.2M total value
High value, 22% churn risk. Proactive retention outreach ahead of renewal.
Develop
17,915 customers · 19.1%
$27 avg CLV
$488K total value
Low value, 59% churn but low cost to lose. Upsell and cross-sell to grow value.
Exit
28,985 customers · 30.9%
−$1,182 avg CLV
−$34.3M total value
Loss ratio 1.17. Minimal investment — let this tier attrite naturally.
HIGH VALUE LOW VALUE LOW RISK HIGH RISK 31% 19% 19% 31%
Bubble size ∝ share of portfolio · positioned by median value/risk split
Acquisition economics

Not all new business is created equal.

Agent and broker channels source structurally different customers — the gap shows up directly in return on acquisition spend.

Agent
Agent-sourced
752%
Broker
Broker-sourced
297%
14.8%
Of the book priced below expected loss — underwriting to correct
24ms
Median scoring latency achieved, target was <100ms
98
Engineered features, up from 30 raw variables
47,613
Unique policies indexed for semantic search
Pipeline status

What's running behind this console, end to end.

Data understanding
105,555 policies profiled across 30 source variables.
Data preparation
Date fields parsed into tenure, age and experience features; missing values imputed.
Feature engineering
30 raw variables expanded to 98 engineered features.
Predictive modelling
XGBoost classifiers & regressor, tuned with Optuna Bayesian search.
CLV & segmentation
10-year discounted CLV mapped into the four operating lanes above.
Production & search
Models versioned; vector index built for the policy search above.
XGBoost Optuna / TPE FastAPI Next.js 14 Supabase FAISS Sentence-Transformers