← Project hub

Superseded, 27 September 2026. This page is the record of Call #7 (27 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.9425 on 7.92 against 2.72, and 0.9646 on 8.62 against 5.11 before that); filing / planning basis are now the revenue-neutral / level-effect basis. The current state is on the project hub.

CAS CLV Pricing — Bi-Weekly Call Brief

Call: Thursday, August 27, 2026 · 4:30 PM EST · Call #7 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) State: paper v3.3 (63 pp, was 49 at v3.2 — Appendix F now works every exhibit, plus the §3.5/§6.2.1 rewrites) · exec summary 3 pp · toolkit cas_clv v1.1, 96-file MPL 2.0 release · 135 tests green, ruff + mypy clean, drift gate 0 unmatched ⚠ v3.3 changes reported numbers — one exhibit only, and the conclusion is unchanged. See §4.2 Previous call: #6, Fri Aug 21 — post-call record 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


1. Agenda (proposed, ~30 min)

Call #6 was six days ago, so this call is not a re-run of it. Round 1 is closed and you both said so on the 21st. What is left from that call is one open question and six commitments, and the open question is §3.5.

  1. Round 2 — the seven items from 21 August (12 min) — §4
  2. The one decision that needs the room: §3.5 (8 min) — §6 Q1, decision poll
  3. Round 1 for the record, and the numbers that moved (4 min) — §2, §3
  4. The tenure curve after external validation (3 min) — §5
  5. Submission logistics + the RPM session (3 min) — §7

One thing to flag before the agenda. R2-5 — the request to check that the retention-adjusted loss ratio is consistent across scenarios — found three real defects, and the numbers in Exhibit 11 move. The conclusion does not, and the margin is wider. That is §4.2, and it is the reason this call has a changed-numbers table at all. Everything else on this page is either round-1 material you have already seen or a commitment with a stated answer.


2. Review round 1 — closed

Presented on Call #6 and accepted. Kept here for the record, and because both of you said on the 21st that the round-1 material still has to be read: "it sounds like a lot of both of our comments here you've maybe addressed — we just have to read what you've already written." Nothing in this section or §3 is new since Friday.

2.1 AJ Robinson, 13 August

18 comments on paper v2.0, all addressed. Four found things that were wrong, not unclear. That is the most useful review outcome we could have had, and it is worth being explicit about what it caught:

# What was wrong Consequence
c16 Cross-sell was credited in every renewal term, not once Overstated the growth gap by the whole annuity: \$693.40 → \$376.21 per customer
c39 Credibility applied to customer counts against a claim-count standard The credibility column was identical in all five segments — it carried no information at all
c41 The retention-adjusted loss ratio grouped by tenure only It could not support the decision it exists for; now fixed, and it produced the strongest new result in the paper
c14 The two variants were named backwards relative to how actuaries read the words Renamed to clv_base / clv_with_growth, old names kept as aliases

Plus ten substantive clarifications (the contractual/non-contractual taxonomy, growth-value definition, upsell double-counting, fixed vs variable expense and LAE, why the filing basis is revenue-neutral, whether elasticity is in the survival estimate, the price-optimization question, the flat loss ratio in §8.1, the attained-tenure cohort labels, the zero P25) and four clerical fixes — including three POG names in the acknowledgments, which we had wrong and have corrected with apologies.

Full point-by-point response: 2026-08-17_review_response_AJR.html.

2.2 Mark Mondello, 17 August

6 comments on v2.0, plus a discrete CLV worksheet he built himself. The comments asked for churn, m/r/d and the BTYD/ML/GBM/GLM abbreviations to be defined at first use, for the Markov absorbing lapse state and non-renewal churn to be stated as the same event rather than two deductions, and — MM‑30 — said of §3.5 "I was not able to follow this. Let's discuss at our next call." All six landed at v3.1. His worksheet was reproduced to the cent and corrected on two points, and his red-flagged cell N17 surfaced the real-versus-nominal discounting convention that became v3.2 and limitation L14. → 2026-08-21_review_response_MM.html

One register in one place. Every point any POG member has raised — written, verbal or in a spreadsheet — now lives on one page with its disposition and the file it landed in: review register, 40 points, 8 open.

3. Paper v3.0 — and the numbers that moved

v2.0 was a prose-only revision and said so. v3.0 changes the toolkit, so it changes numbers. Anyone still holding a v2.0 draft should take the changed-numbers table from the response memo first; the deep-dive page leads with it.

Quantity v2.0 v3.0
Growth gap per customer \$693.40 \$376.21
Mean five-year CLV with growth (BG/NBD) \$3,498.71 \$3,181.52
Book CLV, filing basis \$17,470,511 \$16,111,118
Credibility across the five quintiles 0.9614 in all five 1.0000 / 0.7168 / 0.8419 / 0.7213 / 1.0000
Indicated relativities 2.8489 … 0.3581 unchanged

Unchanged in method and result: the six model families and their fits, the tenure curve itself, the disparate-impact screen, and the §9 economic-value comparison including its negative result.

New material: Exhibit 11 — the retention-adjusted loss ratio by rating segment. The result is sharper than the question assumed: the 3+ product segment has the worst first-term loss ratio of the three (0.6652) and still indicates a credit (0.9425), on 7.92 expected years against 2.72 for mono-line households. A single-term exhibit ranks that segment last of three; the lifetime exhibit ranks it second, on persistence alone. That is the multi-policy discount argument, quantified — and it is the clearest filing-relevant output the project has produced. (These are the corrected v3.3 figures. At v3.0–v3.2 the same exhibit read 0.9646 on 8.62 years against 5.11 — see §4.2.)

Package state at v3.3: paper 63 pp (49 at v3.2); executive summary 3 pp (contractual 2–3, measured from the rendered PDF rather than estimated); 149 tests green (135 before the gate got tests of its own); ruff and mypy clean; drift gate 0 unmatched on both documents — now across 1,257 literals including every table cell, against 358 prose-only literals before. Rendered as CAS_CLV_Paper_v3.3.{docx,pdf} and CAS_CLV_Executive_Summary_v3.3.{docx,pdf}.

4. Round 2 — the seven items from Call #6, 21 August

The permanent record of that call, with timestamps into the recording, is tasks/call6-aug21-package-review.md; the dispositions are register §5. Two round-1 items hardened on the call: clv_base / clv_with_growth was ratified verbally by both of you, and AJ restated the one-time cross-sell treatment in his own words — the expected lifetime value of the secondary policy, scaled by a probability below one, with per-term aggregation being "too high". Q2 of the poll exists only to minute the first of those.

# What you raised Where it stands today
R2-1 §3.5. Mark: "why is it revenue neutral?" AJ, after we answered: "I still question the filing basis versus planning basis here, and whether that's necessary or not." On your marked-up v2.0 PDFs this is AR10.1 / MM11.1, on the two-bases paragraph — which then quoted \$17,470,511 / \$20.09M, both pre-v3.0. Rewritten in v3.3, and Q1 on the poll asks you to confirm the naming. The section stays — it carries the paper's main tenure caution — and it now has its motivation with citations, the baseline written down, and both bases renamed to revenue-neutral / level-effect. §4.1.
R2-2 The claim that CLV rises then falls after ~10 years rests on two papers we could not name on the call. Searched, and the claim is withdrawn — §4.3. The motivation for §3.5 is now sourced (McNulty 2013, the CAS Ratemaking Prize paper, and the CAS Price Optimization Working Party 2014). The 10-year reversal is not: the largest P&C study of it finds the opposite.
R2-3 Mark: "I haven't gone through the code … I wonder if it'd be useful to have a simple example appendix, where you can just see all of the calculations in the actual paper." Done, and taking it seriously found four more defects — see §4.4. Appendix F now works every exhibit an actuary or regulator would check, and closes with an honest account of the three things that cannot be. Paper 49 → 63 pp.
R2-4 Mark: cross-sell and upsell probabilities almost certainly fall with tenure; the model takes one value. AJ's steer, taken: no model change. Stated as a numbered limitation (L15) and a §13 future-work item in v3.3.
R2-5 The retention-adjusted loss ratio does not return consistent values across every scenario. Done, and it found three defects — Exhibit 11's numbers move. §4.2. Five new tests lock it; every one of them fails against v3.2.
R2-6 Both of you asked for the package by email rather than through the gated hub. v3.3 + PDFs, the planner link, the reconciled worksheet, and the per-comment action list — which is now just an export of the register.
R2-7 Ron's feedback was expected by email and has not arrived. Incorporated on receipt. He has one point on the register so far, closed end to end.

4.1 What §3.5 needs — the substance behind Q1

Three fixes, and the third is the one that actually answers MM‑30.

  1. Context. The section exists because a ~2013 CAS presentation discussed filing CLV, which is why a filing basis was built at all. That motivation is not in the paper, so the section reads as a theoretical exercise with no stated purpose.
  2. The names — done in v3.3, and Q1 asks you to confirm. Filing and planning both describe an intended use rather than the arithmetic, so a reader has to remember which use implies which normalisation. v3.3 renames them the revenue-neutral basis and the level-effect basis, throughout the paper, the framework doc and the toolkit's own output. The parameter tenure_loss_normalize and its boolean values are unchanged, so nothing written against v3.0–v3.2 breaks. If you prefer a different pair, Q1 option C.
  3. The baseline — the missing sentence. AJ reasoned this out live and it appears nowhere in the manuscript: the flat-loss-ratio comparator is the tenure-average loss ratio, not the first term's. A ten-year customer has already banked the tenure improvement; a first-year one has it all ahead. That is the entire reason the gradient is steepest at low tenure, and it is why the two bases look the way they do:
Basis 1 yr attained 10+ yrs attained Book total
Revenue-neutral (filing, toolkit default) +2.85% −7.43% unchanged, to $0.09 of rounding
Level effect (planning) +17.28% +4.84% +$2,615,287

On the revenue-neutral basis the tenure credit runs backwards, which is the paper's main caution on tenure. Note the figures shown on the 21st (+15.8% / +4.6%) came from the pre-v3.0 deck; the table above is the current v3.3 payload, and both decks have been rebuilt from it.

4.2 R2-5 — you asked whether it was consistent. It was not.

This is the one part of the call that changes a number you have already seen. The check found three defects in retention_adjusted_loss_ratio_by_segment, the exhibit AJ's comment 41 created:

  1. The segment's mean retention was averaged over policy terms, not customers, so a long-tenured household voted once per renewal. On this book that is 0.8808 against a true per-customer 0.6812 — an implied 6.03 expected years where the honest figure is 3.07.
  2. Each tenure year's premium entered as a within-segment share, not at its absolute level, so the 250-customer 3+ product segment carried nearly the same weight in the book denominator as the 3,205-customer mono-line segment.
  3. A horizon longer than the observed tenure span returned a loss ratio of 0.0 for every segment and a NaN book figure — silently, at any horizon above the data's span, with the guard accepting all of them.

There was also no test comparing this exhibit to its aggregate counterpart, and it did not reconcile: 0.5457 against Table 14's 0.5742, a gap of 0.0285 that nothing was watching.

What moved, and what did not.

v3.0–v3.2 v3.3
3+ products — first-term loss ratio 0.6652 0.6652 (unchanged — a raw ratio)
3+ products — indicated relativity 0.9646 0.9425
3+ products — expected life (yrs) 8.62 7.92
1 product — expected life (yrs) 5.11 2.72
Expected-life ratio, 3+ vs mono-line 1.7× 2.9×
Aggregate-vs-segment reconciliation 0.0285 apart 0.0002 apart

The conclusion is unchanged and the margin is wider. The segment with the worst first-term loss ratio still indicates a credit, and the persistence gap driving it is now 2.9× rather than 1.7×. Region relativities barely move (0.9357→0.9338 at the low end), so the honest counterexample also survives. Five tests now lock each defect; all five fail against v3.2.

One property is worth stating rather than hiding: the book row legitimately depends on the segmentation, because each segment is carried forward on its own survival curve. It is 0.5744 on region — identical to the unsegmented figure — and 0.5564 on product count, where retention spans 0.636 to 0.947. A relativity is only meaningful against its own book row, and the toolkit stamps the basis on every exhibit for that reason.

Two stale figures found in passing, neither caught by the drift gate because both matched unrelated payload values by coincidence: §3.5's cohort percentages (published as +2.6/+3.4/+3.1/ +1.1/−7.0, actually +2.85/+3.83/+3.44/+1.17/−7.43) and §10's sensitivity ordering, where cross-sell was still listed as the fourth-largest lever at ±10%. Crediting the cross-sale once rather than every term cut it to ±3% and moved it to last place. Both regenerated.

4.3 R2-2 — the references, and one claim withdrawn

The motivation for §3.5 is now properly sourced. Two CAS documents put CLV-informed factors and rate filing in the same room, which is why a filing basis was built at all:

Worth noting: the 2013 CLV presentation itself (Firestone & Hindawi, RPM 2013) — the obvious thing to find when searching casact.org for CLV — never mentions filing. Its use cases are CRM, retention campaigns and agent compensation. Pricing applications first appear in the 2015 reprise.

And the claim I could not source, now withdrawn. I said on the call that two papers show customer value rising with tenure then falling after roughly ten years, supported by real data. It does not hold up:

One recent large-sample study does report a reversed U peaking at ten to fifteen years, but it is credit cards, not insurance, and not in an indexed journal. Nothing in §3.5 depended on the claim — the ten-plus cohort losing value on a revenue-neutral basis follows from the arithmetic of normalisation and holds for a gradient of any magnitude. §3.5 now records the claim as withdrawn rather than leaving it implicit, and all five citations above are in §16.

4.4 Taking R2-3 seriously found four more things

Mark's request was that the numerical examples be followable on the page rather than in the code. The first pass at it shipped one worked example. Auditing all 24 tables against what he actually asked for showed that answered about a third of the request — and the audit is what found the rest of this.

A1 — the drift gate had never checked a single table. check_paper_numbers.py is the guard that fails the build on any figure the toolkit did not produce, and we have been quoting "drift gate: 0 unmatched" to you as the assurance behind every number in the paper. One | character in its skip pattern excluded every Markdown table row. It was scanning 358 literals of the 1,257 the paper contains — 71% of the paper's numbers were never checked. Four tables had drifted to pre-v3.0 values behind a green gate, and two of them contradicted the paragraphs introducing them: Table 18's cohort means and Table 19's profit bridge were still on the v2.0 book while the prose beside them had been regenerated. This is the root cause of all three stale-figure corrections in §4.2. The gate now scans table cells, every drift-prone table is generated from the payload rather than typed, and the gate has tests of its own for the first time — fourteen, every one of which fails against the previous version.

A2 — and the original defect had recurred where the gate could not see it. All six notebooks were still pinned to n_customers=4000 while the manuscript reports the 5,000-customer reference book. So a reader doing exactly what Mark described — going to the code to parallel a paper figure — would have got a different number from every notebook. §8.6's figures had been hand-copied from one of those notebooks into the gate's external-citation allowlist, where a stale-book number cannot be falsified. That is the precise defect the checker was written to prevent, sitting inside the checker's own escape hatch.

§8.6's conclusion reverses as a result, and I would rather flag it than let you find it. On the reference book the twin's cohort is 9 customers, not 16, and its mean with-growth CLV is \$2,814 against the proposal's \$4,890 — 42.5% below, not 14% above. The subsection had concluded the proposal's illustration was well-calibrated; on the paper's own book it sits above its cohort's mean and below the individual it most resembles (\$7,464–\$9,028). The honest reading is actually a stronger version of the paper's own discipline: the gap between a point estimate and its cohort mean is roughly threefold, which is exactly why §3.1 insists on cohort reporting. §8.6 now says all of that, and is generated from the payload like every other exhibit.

A3 — Appendix B did not render. Its heading, prose and first two tables were fused onto a single line by the v2.0 Word round-trip, so the data dictionary that appendix exists to reproduce "rather than leave to the repository" came out as literal pipe characters in the DOCX and PDF. Rebuilt, and verified in the rendered document rather than the Markdown.

A4 — two small ones. Table 15 and Appendix F.1 discounted on different conventions ($(1+d)^{-(t-1)}$ against $(1+d)^{-t}$) with no note — the exact ambiguity that sends a reader to the code; F.5 now states and reconciles both. And limitation L15 printed before L14.

What Appendix F now covers, one worked chain per exhibit, all generated from the payload: F.1–F.3 two policyholders term by term, the §3.1 sum, and the growth term; F.2 the whole $n(t)$ vector (the first version rested on two DERT numbers a reader could not produce either); F.4 the residual-versus-inception identity; F.5 expense recovery and breakeven; F.6 the tenure normaliser and the sign flip; F.7 relativities and credibility, one segment through all four steps; F.8 both forms of the retention-adjusted loss ratio; F.9 the four-fifths screen; F.10 the rank-agreement result including the in-force restriction that had no table behind it; F.11 §8.6; and F.12 — what cannot be checked by hand, and what to check instead.

Two denominators are now printed for the first time: Table 13's book loss ratio (0.5603) and Table 14a's (0.5564). Both were absent from the paper, so neither relativity column could be checked at all — recovering the divisor by working backwards from the rows was the only route.

5. The tenure curve — external validation, and a negative result

Mark's July 16 question produced the tenure-varying loss term. The open item since then was whether the fitted 4.22%/yr credit reproduces outside our own book. We tested it, and the answer changes what we ship.

First, the designed five-year cross-carrier test cannot be run on public data by anyone. No public source carries carrier identity and policyholder tenure together. Schedule P has 144 private-passenger-auto carriers but is organised by accident year and exposes no policy-level records; the two public panels that do carry tenure are each a single carrier.

Second, neither real panel reproduces the shipped magnitude. Wisconsin LGPIF gives +19.93% per year over tenures 0–3 at R² 0.949 — five times our curve — and then one fund-year of catastrophe experience in the final cell turns that into −7.93%, a debit, at R² 0.058. One year of data flips both the magnitude and the sign. The Spanish household set shows no monotone gradient at all (+1.80%, negligible fit), though its minimum seniority is 5.0 years so it says nothing about early tenures.

Third, Schedule P shows why this is hard. Between-carrier loss-ratio dispersion is a coefficient of variation of 24.4% against a curve whose whole ten-year effect is 35.0%. Carrier heterogeneity is the same order as the effect being sought.

Recommendation: the curve ships as a mechanism, not a parameter — loss_trend stays 0.0, an exact no-op, and the toolkit accepts a user-supplied curve. That was our position on judgement in July; it now rests on evidence. Note what is not in doubt: the finding that a revenue-neutral tenure relativity reduces long-tenured CLV follows from the arithmetic of normalisation and holds for a gradient of any magnitude. The magnitude is unvalidated; the direction is not.

Full working: docs/tenure_gradient_validation.md, regenerable via python scripts/validate_tenure_gradient.py.

6. Questions for POG input

Five decisions on the decision poll. Q1 is the one that needs the group in the room — it is AJ's open question from the 21st, and every other item on this page is either settled or researcher work with a committed answer.

  1. Q1 — §3.5: does the filing/planning split earn its place, and what do we call it? Keep both bases and rename to revenue-neutral relativity / level-effect (★) / keep both and keep the names, adding context only / keep both with a different word pair you name / publish one basis only and move the other to the framework doc. Substance in §4.1.
  2. Q2 — Variant naming, for the minutes. You ratified clv_base / clv_with_growth verbally on 21 August (★). This question exists because the rename amends the binding two-variant decision of 2 July and that needs minuting, not because it is still in doubt.
  3. Q3 — Cross-sell hazard default. p = 1.0, sale at first renewal, giving a ceiling on growth value (★) / p = 0.25 / no default, require it explicitly / drop cross-sell from the shipped illustration.
  4. Q4 — How the tenure curve ships. Mechanism with loss_trend = 0.0 (★) / remove the shipped curve entirely / ask CAS for a data call / ship the LGPIF-fitted curve as an alternative.
  5. Q5 — Segment for the retention-adjusted loss ratio. Product count as primary with region as the honest counterexample (★) / region only / a rating variable the POG names / revert to tenure only.

Also carried over and still unanswered — the Call #4 poll (6 August). Four passages in the paper still read "provisional, pending POG confirmation." Q3 of that poll — whether a tenure relativity may enter a filed exhibit — is the one we most need, because §7 now takes a position on it that a regulator could contest (L13).

7. Open action items

CAS side - ScholarOne + casact repo provisioning — overdue since ~Jun 19. This now blocks the Week-12 toolkit release and the venue template, and there is no local work-around. - Submission venue — Variance vs E-Forum. Drives the reference template and the abstract's target length (currently 281 words). - RPM Seminar. A complete submission package is drafted and validated against the CAS webform limits (docs/publish/rpm_2027/): title, 225-word description, three learning objectives, and a 24-slide accessibility-compliant deck. We need the RPM 2027 deadline and whether this is submitted as a project deliverable or an individual speaker proposal. Open since ~Jun 30. - Hub access — half closed since Friday. The scenario planner is now its own public Space, needing no Hugging Face account: https://pramodmisra-cas-clv-planner.static.hf.space/ It carries every lever predict_clv() has, in two modes — book average across all six fitted families, and a single-customer term-by-term calculation on an explicit retention path, which is what reproduces a reviewer's own worksheet. Mark's July 16 access request (MM‑A3) is answered for the calculator. The residue is a CAS decision: the remaining hub pages are still gated, so either POG members are added as Space collaborators, or we ship PDF exports of the deliverables. Deck PDFs already exist.

Researcher side - Paper v3.3 — the round-2 work of §4: Appendix F, the §3.5 rewrite and rename, the two references, L15, and the retention-adjusted-LR consistency fix. This is what you get by email. - Fold the Call #4 and Call #7 poll answers into the four passages that still read "provisional". - Final QA, dist_release/ gate, and the §IX handover package to CAS (broader than the public release — see docs/publish/casact_repo_publish_checklist.md). - Delivery: internal target Aug 31; contract hard date Sep 30 held for acceptance-stage revisions.

8. Artifacts

New this call: review_responses.html — the consolidated register, 40 points, 8 open · clv_scenario_planner.html — the planner, now on a public Space · post-call record of Call #6 · 2026-08-27_poll.html · 2026-08-27_worked_examples.html · 2026-08-17_review_response_AJR.html · 2026-08-21_review_response_MM.html · docs/tenure_gradient_validation.md · scripts/validate_tenure_gradient.py · docs/calls/phase6_review_response_data.py · docs/publish/rpm_2027/{session_proposal.md,deck.html} · scripts/build_rpm_deck.py · scripts/check_rpm_proposal.py

Updated: paper/paper.md (v3.2) · paper/executive_summary.md (v3.2) · paper/build/CAS_CLV_Paper_v3.2.{docx,pdf} · src/cas_clv/{features,models,ratemaking,cohorts,planner_reference}.py · docs/01_clv_framework.md · notebooks 01–06 (re-executed) · Exhibits 11 and 12 · AI-usage log (contract disclosure).

Every figure in this brief is produced by python docs/calls/phase6_review_response_data.py from the seeded payloads, under set_seed(42).

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