Superseded, 27 September 2026. This page is the record of Call #4 (6 Aug) as presented, and keeps the figures and vocabulary of that date. In paper v5.2 (27 September 2026): the seven-policyholder cohort earns +$5,306.98 (was $3,126.62); the ten-year renewer is $1,093.62, breaking even in year 2 (was $782.14, year 4); mean CLV rises 4.3× across tenure (was 4.1×); filing / planning basis are now the revenue-neutral / level-effect basis. The current state is on the project hub.
Call: Thursday, August 6, 2026 · 4:30 PM ET · Call #4 of the bi-weekly series
Rescheduled: moved from Thu Jul 30 at the group's request on the Jul 16 call (POG travel).
Hard stop: 5:00 PM ET — 30 minutes, agenda timed accordingly.
Project: Customer Lifetime Value Pricing (CAS Ratemaking Working Group)
Phase: 4 — Ratemaking Integration & Regulatory Analysis (CAS window Jul 15–28) — closed complete;
Phase 5 (Cross-Functional Validation & Case Studies, Jul 29 – Aug 19) underway
Researcher: Pramod Misra (5G Vector partner: Neha Tiwari)
CAS staff / coordinators: Elizabeth Smith, Heather Davis
POG: Mondello (QBE) · Robinson (Allstate) · Paik · Werner (Werner Advisory) · Kozlowski (RTK)
Master log: docs/calls/README.md
loss_trend=0.0 is an exact no-op, asserted per model
family. Nothing previously published moved.predict_clv() to the cent.| Min | Item | Ref |
|---|---|---|
| 0–3 | Phase 4 closed; tranche-2 bundle delivered — what's in it | §2, §6 |
| 3–8 | Mark's cohort, hand-checkable: two renew once, five renew ten years | §3 |
| 8–14 | Tenure-varying loss: what we measured, and the finding that inverts it | §4 |
| 14–19 | Scenario planning + live demo of the planner | §5 |
| 19–27 | Decisions Q1–Q4 (poll slide) | §7 |
| 27–30 | Aug-14 feedback window, RPM priority, open items | §8, §9 |
If we run long, Q1 and Q3 are the two that must be answered — by email is fine.
Delivered inside the CAS window (Jul 15–28), unchanged since the Jul 30 brief:
| Deliverable | Status |
|---|---|
clv_rate_relativities — credibility-weighted, loss-cost basis, premium-balanced |
✅ |
retention_adjusted_loss_ratio — survival-weighted lifetime loss ratio by tenure |
✅ |
expense_recovery_exhibit — acquisition recoupment + discounted breakeven |
✅ |
cross_sell_adjusted_premium — business-optimization only, firewalled from indications |
✅ |
disparate_impact_test · rate_adequacy_check · filing_exhibit_generator |
✅ |
docs/regulatory_mapping.md — CA Prop 103 · TX Title 28 Ch.5 · NY §2304 · CO SB21-169 + Reg 10-1-1 · NAIC model laws + AI Model Bulletin · GDPR Arts. 21–22 |
✅ |
Structural compliance is unchanged: filing exhibits consume the unconstrained variant (cross-sell term = 0) on renewal-expense margins, so NY §2304 / CA no-price-optimization compliance is by construction rather than by procedure.
"Even if it's a very simple case study. You have again like a very small cohort of policyholders. Two people renew, five people renew for ten years. … how would this model account for that and what would it show? … it'd be interesting to see how this adds to the lens of how you evaluate that in terms of profit." — Mark Mondello, Jul 16
Built as cas_clv.cohorts.mark_cohort() + micro_cohort_walkthrough() — seven named
policyholders, term-by-term arithmetic, checkable with a calculator. Persistence is stated, not
modelled, so no model is involved and nothing is hidden.
At premium $1,450, loss ratio 0.66, renewal expense 0.20, acquisition 0.40, discount 8%:
The profit lens: an identical 0.66 loss ratio on every policy produces CLVs from −$392 to +$782. Persistence, not loss experience, is doing the work. Two of seven policyholders destroy value and the cohort still earns. A book written entirely of one-renewal policyholders at a "profitable" 0.66 would lose money.
Scaled to the book (5,000 customers, hybrid model, 5-year horizon):
| Tenure cohort | Customers | Mean CLV | P25 | P75 | Loss ratio | Share of value |
|---|---|---|---|---|---|---|
| 1 yr | 919 | 1,870.71 | 146.36 | 4,649.52 | 0.6468 | 9.8% |
| 2–3 yrs | 1,350 | 1,570.73 | 0.00 | 4,504.36 | 0.6034 | 12.1% |
| 4–5 yrs | 943 | 3,111.95 | 0.00 | 5,855.88 | 0.5593 | 16.8% |
| 6–9 yrs | 1,268 | 5,275.14 | 1,126.73 | 8,993.79 | 0.5290 | 38.3% |
| 10+ yrs | 520 | 7,706.53 | 2,869.66 | 11,688.08 | 0.4564 | 22.9% |
Two things we are not hiding: the 2–3 year cohort's mean sits below the 1-year cohort's (early lapses concentrate there; its P25 and median are both $0.00), and the bands are enormous relative to the means. A single customer's CLV is not a quotable number; a cohort with its band is.
The profit bridge answers "where does the value come from": net of acquisition cost the 1-year cohort keeps only 28% of its gross value and the 2–3 year cohort just 12% ($247K net on $2.12M gross), against 73% for the 10+ cohort. That trough is where retention spend has the highest return.
"The losses might actually differ by how long you have had them renew. … is this a dynamic or are we just saying everything is a static thing?" — Mark Mondello, Jul 16 "…versus having like a consistent sixty-six percent loss ratio across every renewal." — POG chair
This was a real gap, and the repo contradicted itself. retention_adjusted_loss_ratio() already
measured the gradient, but predict_clv() charged a constant loss at every future renewal.
What changed. CLV = DERT × margin cannot express a margin that varies by year, so CLV is now
Σ_t n_t × margin(t) where n_t = DERT(t) − DERT(t−1) — differenced from each model's own
cumulative number, so it adds no new estimation, sums back exactly (error 0.0 on all six
families), and lives in the shared base so all six model families inherit it.
The curve. Measured 0.6252 → 0.4163 against a pooled 0.5246, then smoothed by a premium-weighted log-linear fit: 4.22% loss-ratio credit per renewal year, R² 0.887, floored at 0.70. Raw yearly ratios are unusable for pricing (tenure 6 rebounds to 0.5174 on thin premium). The floor is the analog of a selected development pattern with a tail cut-off.
The indexing point that matters. The multiplier is curve[τ+t] / curve[τ] — relative to each
customer's own current tenure. A customer's observed loss already embeds the tenure they have
lived through, so an absolute-tenure discount would credit it twice. So: tenure value is mostly
already in the observed loss; what the curve adds is the improvement still ahead of the
not-yet-mature.
And then the inversion. Applied revenue-neutrally — which is what makes it a relativity rather than a rate decrease — the book total does not move at all ($17,470,511 either way), but:
| Cohort | Change in mean CLV |
|---|---|
| 1 yr | +$48.77 (+2.6%) |
| 2–3 yrs | +$53.38 (+3.4%) |
| 4–5 yrs | +$97.77 (+3.1%) |
| 6–9 yrs | +$56.95 (+1.1%) |
| 10+ yrs | −$540.94 (−7.0%) |
Long-tenured customers have almost no forward improvement left to credit; rescaling to revenue-neutrality then raises their multiplier. A tenure relativity built naively from a loss-ratio-by-tenure exhibit is likely to be backwards. This is poll Q3.
The two bases, mirroring the existing filing/planning split:
| Basis | Book CLV | Use for |
|---|---|---|
Filing (tenure_loss_normalize=True, default) — revenue-neutral relativity |
$17.47M (unchanged) | Rate relativities. rate_adequacy_check unaffected by construction. |
Planning (=False) — genuine level effect |
$20.09M (+$2.62M) | Acquisition budgets, retention ROI. Must not enter an unfiled indication. |
On the planning basis the entire uplift is exactly the modelled loss saving ($27.60M → $24.99M expected loss; +$2.62M CLV). Asserted in the test suite.
Default remains loss_trend=0.0, an exact no-op verified per model family with
assert_frame_equal on the whole prediction frame. Every previously published figure is unchanged.
"It won't be like a static model which will give you one number and that's it. It's more about you have a few levers to change and basis those changes, you can see how this value will evolve."
Seven named scenarios now ship (cas_clv.scenarios), plus docs/sensitivity_appendix.md — an
eight-dimension grid, generated not hand-written.
| Scenario | Book CLV | vs base |
|---|---|---|
base |
17,470,511 | 1.00 |
soft_market |
17,555,664 | 1.00 |
hard_market |
15,013,753 | 0.86 |
adverse_retention |
12,391,567 | 0.71 |
recession |
8,001,896 | 0.46 |
long_horizon |
28,750,972 | 1.65 |
Two results worth your attention.
The web UI (2026-08-06_scenario_planner.html) — sliders for premium, loss ratio, both expense
ratios, horizon, discount, cross-sell and upsell; a model selector; a tenure-loss toggle. Runs
entirely client-side. It reconciles to predict_clv() to the cent on all six families, and
BG/NBD's $2,805 / $3,499 are the same two numbers as case study 3 from July 16.
Delivered as of this call:
paper/paper.md, plus the new tenure-loss section and the updated
sensitivity-discipline statement.cas_clv with data, models (six families), features,
ratemaking, regulatory, and new cohorts + scenarios. QA gate green: 108 tests, ruff
clean, mypy clean.paper/executive_summary.md, 2–3 pages non-technical.docs/sensitivity_appendix.md, docs/regulatory_mapping.md, notebooks 01–06,
the Call #4 materials on the hub.This starts the agreed one-week feedback clock — feedback by ~Fri Aug 14.
github.com/casact repo provisioning — still outstanding since ~Jun 19, and it gates
the Week-12 public release.Full poll slide: 2026-08-06_poll.html. Summarised:
Reserve (for Call #5): the NAIC five-year cross-carrier reproducibility protocol — which lines, how many carriers, and what dispersion in the fitted credit you would accept before calling it reproducible.
CAS side
- ScholarOne + casact repo provisioning [CONFIRM] — overdue since ~Jun 19.
- RPM date [CONFIRM].
- Hub access: the project hub is a private Hugging Face Space, so only the owner can open it.
POG members need HF accounts added as collaborators, or we send PDF exports instead. This is
Mark's Jul-16 request ("export as a PDF … send this out afterwards") still unresolved — we need a
decision on which route.
Researcher side - NAIC five-year cross-carrier reproducibility test — not yet run. Scheduled inside Phase 5 (window closes Aug 19); results at Call #5 or by email sooner. Biggest outstanding caveat. - Disparate-impact screen extended to age bands (currently region only) before any filing use of a tenure relativity. - Phase 5 validation + case studies continue to Aug 19. - RPM ratemaking call paper remains the priority if the two compete, per the Jul-16 call.
New this call: src/cas_clv/cohorts.py · src/cas_clv/scenarios.py ·
tests/test_cohorts.py · tests/test_scenarios.py · tenure-loss path in src/cas_clv/models.py
(+ tests in tests/test_models.py) · scripts/build_sensitivity_appendix.py ·
docs/sensitivity_appendix.md · docs/calls/phase4_cohort_scenario_data.py
Call materials: 2026-08-06_poll.html ·
2026-08-06_cohort_scenarios.html ·
2026-08-06_scenario_planner.html
Reproduce every figure: python docs/calls/phase4_cohort_scenario_data.py (seeded,
set_seed(42)). QA gate: pytest -q 108 passed · ruff check . clean · mypy src/ clean.