← Project hub

Superseded, 27 September 2026. This page is the record of Call #6 (21 Aug) as presented, and keeps the figures and vocabulary of that date. In paper v5.2 (27 September 2026): the 3+ product relativity is 0.9683 on 9.44 expected years against 6.53 for mono-line (was 0.9646 on 8.62 against 5.11); unconstrained / constrained CLV are now base / with-growth. The current state is on the project hub.

CAS CLV Pricing — Bi-Weekly Call Brief

Call: Friday, August 21, 2026 · 4:30 PM ET · Call #6 of the bi-weekly series Project: Customer Lifetime Value Pricing (CAS Ratemaking Working Group) Phase: 5 closed (Jul 29–Aug 19) · 6 — Paper, Toolkit, Executive Summary (Aug 20–Sep 15) — all three deliverables assembled Researcher: Pramod Misra (Georgia Institute of Technology; 5G Vector partner: Neha Tiwari) CAS staff / coordinators: Elizabeth Smith, Heather Davis POG: Mondello · Robinson · Paik · Werner · Kozlowski Master log: docs/calls/README.md

This is the full-package review. All three contractual deliverables are complete and internally consistent: the paper, the executive summary, and the toolkit. The CAS RPM session submission is also built and validated. The presentation for this call is the RPM session deck — 26 slides, every number generated from the manuscript's own seeded payload, so what you see on screen cannot drift from what you read in the paper.

Call #5 (Aug 13) was cancelled; its agenda is carried here. Round-1 feedback still arrived on that date, in writing — AJ Robinson's 18-comment review — and is fully incorporated.


1. Agenda (~30 min)

Min Item Section
0–4 The package: what is being handed over, and how it verifies §2
4–12 Walk the deliverables from the RPM deck — paper, exec summary, toolkit §3
12–18 What review round 1 changed, and the four defects it caught §4
18–22 The one negative result: external validation of the tenure gradient §5
22–29 Decisions — venue, RPM route, release, plus the four still open from Aug 6 §6, poll
29–30 Close: what CAS owes, what I owe, and the Sep path §7

2. The package

Three contractual deliverables, all assembled:

Deliverable Artifact State
Peer-reviewed paper paper/build/CAS_CLV_Paper_v3.2.{docx,pdf} v3.2 — 49 pp rendered, 8 figures, 23 tables, 6 appendices
Executive summary paper/build/CAS_CLV_Executive_Summary_v3.2.{docx,pdf} 3 pp rendered — inside the contractual 2–3 pp
Open-source toolkit cas_clv, curated release in dist_release/ 96 files, MPL 2.0, gate green
(additional) RPM 2027 session submission Proposal + 24-slide deck, validated against every CAS webform limit

How it verifies. Every quoted figure in both documents is produced by one seeded run (seed 42) and checked by a drift gate: scripts/check_paper_numbers.py reports 0 unmatched across 289 tracked figures (274 reproduced from the toolkit, 15 cited to primary sources). The gate as left: 122 tests pass, ruff clean, mypy clean, six notebooks execute clean. The release subset was re-gated inside dist_release/ itself — 122 tests pass there too, so the published artifact is not merely a copy but an independently verified one.

The synthetic book underneath all of it: 5,000 customers · 32,728 policy terms · 5,617 claims · $103.3M written premium · portfolio loss ratio 0.5246 · underwriting margin 22.5%, over 2015–2025. No proprietary data enters the repository at any point.


3. The result worth the POG's attention

Six model families, one predict_clv() contract, and they agree. That is the paper's central credibility claim, and it is what makes the method reviewable rather than a black box:

Model Mean CLV Median DERT (5y) 1-yr in-force renewal % CLV positive
BG/NBD $2,236.27 $3,004.27 2.77 0.8052 75.7%
Pareto/NBD $2,232.75 $2,558.86 2.54 0.8546 75.7%
Cox PH $2,340.37 $1,098.80 2.48 0.9555 52.4%
Weibull AFT $2,185.20 $970.97 2.27 0.9322 52.4%
Markov $2,092.40 $938.12 2.22 0.9219 52.4%
Hybrid (POG headline) $2,361.43 $1,755.78 2.43 0.9246 67.0%

Mean CLV spans $2,092–$2,361 — a 12.9% spread across six structurally different families, against empirical annual renewal of 0.9221. The medians diverge much more than the means, and the paper says why: the survival and Markov families assign zero to lapsed customers, so their medians sit lower while their means do not.


4. Review round 1 — what it changed

Round 1 produced two written reviews, and all 24 comments are incorporated. AJ Robinson's (13 August, 18 comments) drove the v3.0 code changes. Mark Mondello's (17 August, 6 comments, plus a discrete worked example in Excel) drove v3.1 and v3.2 — exposition only, no figure moved. Robinson's review first: four comments identified defects, not ambiguities, and they are worth naming explicitly because the correction moved published numbers:

# What was wrong Consequence of the fix
c16 Cross-sell was credited in every renewal term and multiplied by DERT — an annuity of cross-sales Growth gap $693.40 → $376.21 per customer. Cross-sell is now a one-time event with an annual hazard; upsell is separated as what it is, a permanent margin step-up
c39 Credibility was applied to customer counts against the 1,082-claim classical standard On equal-size quintiles it returned 0.9614 in all five rows — a column carrying no information. Now on claim counts. Indicated relativities unchanged; the exhibit's honesty was not
c41 The retention-adjusted loss ratio grouped by tenure only, so it could not support the decision it exists for New retention_adjusted_loss_ratio_by_segment() — and this produced the strongest new result in the paper (below)
c14 The two CLV variants were named backwards relative to how actuaries read the words Renamed clv_base / clv_with_growth; old names ship as deprecated aliases for one release so nothing already running breaks

The c41 result, because it is the one to take away from this call. Grouping the retention-adjusted loss ratio by rating segment rather than tenure:

Segment Customers Retention Expected years First-term LR Lifetime LR Indicated relativity
1 product 3,205 0.8375 5.11 0.6515 0.5928 1.0992
2 products 1,545 0.8929 6.33 0.5939 0.5132 0.9516
3+ products 250 0.9665 8.62 0.6652 0.5202 0.9646

Read the bottom row. The 3+ product segment has the worst first-term loss ratio of the three — and it still indicates a credit. On a single-term view it ranks last of three; on a lifetime view it ranks second. The inversion is invisible until retention enters the exhibit, and it is the clearest demonstration in the paper of what lifetime value adds to a rate indication.

c14 is an amendment to a decision this group made. The 2026-07-02 call settled on clv_unconstrained / clv_constrained. AJ's review established that actuaries read "constrained" as the regulatorily constrained variant — the opposite of the intended sense. It is presented here as an amendment adopted on review, and poll Q4 confirms it.

Ten further substantive clarifications (fixed vs variable expense and the ALAE/ULAE convention, the growth-value definition, attained-tenure cohort labels) and four clerical items are in the point-by-point response memo, keyed to comment numbers and led by a changed-numbers table.


Mondello's review, and what his spreadsheet caught

Mark built a discrete CLV worksheet in Excel reconstructing how he read the calculation, and asked for it to be corrected where his reading missed the intent. It reproduces in our code to the cent — CLV with growth \$1,759.73, without \$1,610.15, gap \$149.58 — before any correction is applied.

It also independently reproduced the c16 defect. He built it from the v2.0 text, and that text led him to credit cross-sell in every renewal term, with per-term cross-sell probabilities summing to 1.15 — a household buying its first homeowners policy more than once in expectation. That is AJ's comment 16 arrived at from the opposite direction, and it is good evidence the old wording invited the misreading rather than merely permitting it.

Item Effect on his total
✅ Acquisition vs renewal expense split (0.40 then 0.20) correct as written
⚠ Correction 1 — cross-sell one-time, upsell a permanent step-up +\$101.23
⚠ Correction 2 — tenure credit is multiplicative, not 0.0422 points/yr −\$199.76
v3.2-consistent total \$1,661.20 (net −\$98.53)

His five red-flagged cells are answered in the response memo and on the Answers_to_red_cells sheet of the corrected workbook. One of them found a genuine loose end: we quote cash flows in day-0 real terms but discount at a nominal cost of equity. The mismatch is conservative — it understates CLV — but it should be stated rather than left implicit. Now done at v3.2: §3.1 states the convention and limitation L14 records it. His comment 22 also surfaced a real error: the v3.0 global rename had overwritten the old variant names inside the paragraph explaining the rename, leaving it self-contradictory.

5. Follow-through on Call #4 (Aug 6) — including the answer you asked for

The reserve question from the Aug 6 poll asked the POG to help design the NAIC five-year cross-carrier reproducibility test. That test has now been attempted, and the answer is negative. Reporting it plainly, because it constrains what the toolkit may claim.

  1. The designed test is not executable on public data by anyone. No public source carries carrier identity and policyholder tenure in the same record. This is not a data-access problem that a different researcher would solve.
  2. Neither real panel reproduces the shipped 4.22%/year magnitude. The Wisconsin LGPIF panel gives +19.93% over tenures 0–3 (R² 0.949) — until one fund-year of catastrophe losses turns the whole-window fit into −7.93% (R² 0.058). The Spanish multi-product set is not monotone (+1.80%).
  3. Schedule P between-carrier dispersion is 24.4% CV against a 35.0% ten-year curve effect — the same order of magnitude as the effect being measured.

Consequence, already implemented: the tenure curve ships as a mechanism, not a parameter. loss_trend remains 0.0 by default and an exact no-op, asserted per model family by tests. The paper's §3.5 "provisional" note is replaced: the POG has not ratified the treatment, but the evidence is no longer provisional. Working: docs/tenure_gradient_validation.md.

Also closed since Aug 6: the disparate-impact screen was extended from geography to age bands — five groups, minimum adverse-impact ratio 0.9729, no group flagged against the four-fifths threshold of 0.80.


6. Decisions needed from the POG

Full cards with options and recommendations: Aug 21 poll.

New this call — these three gate delivery, and only CAS can answer them: - Q1 — Submission venue: Variance or E-Forum? This is now the single largest schedule risk. It drives the Pandoc reference template (paper/pandoc/reference.docx, still missing) and the abstract's target length (currently 281 words). Every other paper task is done. - Q2 — RPM 2027 route. Is the session submitted as a project deliverable under the research agreement, or as an individual speaker proposal? Open since ~Jun 30. The package is built and validated; only this answer and the call-for-presentations deadline are missing. - Q3 — Toolkit release. github.com/casact provisioning and ScholarOne credentials have been outstanding since ~Jun 19 and now block the release and the submission respectively. Does the POG want to review dist_release/ before it is published?

Confirmations: - Q4 — Variant naming. Ratify clv_base / clv_with_growth as the amendment to the 2026-07-02 decision.

Still open from Aug 6 — restated rather than re-asked. Four decisions from that poll are unanswered, and four passages in the paper still read "provisional" as a result. They are carried onto this poll in a single panel with the recommendations unchanged: - Q1 (Aug 6) tenure-loss default basis · Q2 where the curve comes from · Q3 may a tenure relativity enter a filed exhibit · Q4 case-study grain. - Aug-6 Q3 matters most. §7 currently takes a position a regulator could contest, and it is doing so without POG ratification. If the group answers nothing else, answer that one.


7. Open action items

CAS — the first three are blocking - ScholarOne credentials + github.com/casact repo — overdue since ~Jun 19. No local work-around exists. - Submission venue — drives the reference template and abstract length. - RPM 2027 deadline + submission route — open since ~Jun 30. - Hub access — the project hub is a private HF Space, so POG members cannot open it without being added as collaborators. Mark asked on Jul 16 for a PDF export instead. Either works; a decision has been outstanding across four calls.

Researcher - Fold both polls' answers into the provisional passages as soon as they arrive. - §IX handover package to CAS — broader than the public release and distinct from it; scoping now. - Fresh-venv verification of the pinned dependency set (the release gate has run on the project environment only).


8. Artifacts

Item Path
Paper (source of truth) paper/paper.md — v3.2
Rendered paper paper/build/CAS_CLV_Paper_v3.2.{docx,pdf}
Executive summary paper/build/CAS_CLV_Executive_Summary_v3.2.{docx,pdf}
Toolkit release subset dist_release/ (96 files, MPL 2.0)
Presentation for this call 2026-08-21_deck_pog.html — 26 slides (the 24-slide RPM deck plus two POG opening slides)
RPM session proposal docs/publish/rpm_2027/session_proposal.md
Consolidated review register review_responses.html — every point from every reviewer, its disposition, and the file it landed in
Review response — Robinson 2026-08-17_review_response_AJR.html
Review response — Mondello 2026-08-21_review_response_MM.html
Corrected discrete example 2026-08-21_CLV_Discrete_Example_reconciled.xlsx
Package-review deep dive 2026-08-21_package_review.html
Decision poll 2026-08-21_poll.html
L4 validation working docs/tenure_gradient_validation.md

Reproducibility. Every figure in this brief: python docs/calls/phase6_package_review_data.py (book and model figures) and python docs/calls/phase6_mondello_example_reconciliation.py (the discrete-example reconciliation) — it reads the same seeded payloads the drift gate validates the manuscript against, so a figure absent from that output is absent from the paper too. Gate: 122 passed · ruff clean · mypy clean · drift check 0 unmatched.

This research project has been funded by the Casualty Actuarial Society.