cas_clv v1.1One page for the whole review record. Every point any POG member has raised — in writing, on a call, or in a spreadsheet — with the response, the place the change actually landed, and its status. Nothing here is summarised away: if a point produced no change, the row says so and says why.
| Reviewer | What was raised | Points | Result |
|---|---|---|---|
| AJ Robinson · Allstate | Written review of manuscript v2.0, 13 Aug 2026 — 18 Word comments (14 substantive, 4 clerical) | 18 | Drove paper v3.0 — the only revision so far that changed the toolkit and therefore moved reported numbers. Four comments found things that were wrong rather than unclear. |
| Mark Mondello · QBE | Three verbal asks on Call #3 (16 Jul); 6 written comments on v2.0 (17 Aug); 5 red-flagged cells in a discrete CLV worksheet he built himself | 14 | The verbal asks drove the tenure-varying loss ratio and the seven-policyholder micro-cohort. The written comments drove v3.1; his cell N17 drove v3.2 and limitation L14. The ask for access without a Hugging Face account closed on 8 Sep, when the hub became public. His later points are in §5c (R4‑13, R4‑14) and §5d (R5‑1…R5‑7). |
| Ronald Kozlowski · RTK Services | Expense timing over the policy lifetime, 2 Jul 2026, relayed through CAS staff; marked-up review of manuscript v2.0, 24–30 Aug 2026 — 93 Word comments, Abstract–§5.3 (§6–§15 not reviewed) | 94 | The July question was implemented the same day (RK‑1, closed end to end). The August review drives paper v4.0: a whole-paper pass on sentence length, jargon, concept-first cross-references and definitions at first use, and three framing changes — the abstract states the finding positively, the paper names both use cases (rating decisions; valuing a book of business), and fixed expense gets a named fully-allocated view beside the marginal default. Two await ratification: the fixed-expense amendment and the §3.5 basis names were put to the POG on 10 September; no ratification is minuted yet. The 22% margin is stated in the manuscript (§4.3, L1) with a v4.1 calibration note. |
| Call #6 — round 2 · Mondello + Robinson | Raised live on the call of 21 Aug 2026, after v3.2 — seven items, none of them a repeat of a written comment | 7 | Five closed in paper v3.3; the last two since (R2‑7 by Kozlowski’s review of 7 Sep, R2‑6 by the package of 9 Sep). The consistency check on the retention-adjusted loss ratio found three defects and moved Exhibit 11 (conclusion unchanged, margin wider); §3.5 was rewritten and both bases renamed; Appendix F added; limitation L15 added; and the recalled 10-year-reversal claim withdrawn as unsourceable. Remaining: POG ratification of the names (RK‑46). See §5. |
| Call #7 — round 3 · Werner, Kozlowski, Mondello, Robinson | Raised live on the call of 27 Aug 2026 — nine items, the first with all four reviewers speaking | 9 | Set the shape of v4.0: two reading paths, an early two-customer illustration, abbreviations at first use, both use cases named, “price optimization” removed, the §4.4 synthetic-data paragraph rewritten, limitation L16. Eight land in the manuscript; one (the Mondello reconciliation) is an email. See §5b. |
| Call #8 — round 4 · Robinson + Mondello | AJ Robinson’s written review of v5.0 (R4‑1…R4‑12) and Mark Mondello’s first-term expense question (R4‑13…R4‑15), 10 Sep 2026 | 15 | All closed in paper v5.1 (15 Sep): the first term carries the acquisition ratio, R4‑4 and R4‑10 adopted on the call, R4‑15 confirmed on Call #9. See §5c. |
| Call #9 — round 5 · Mondello | What building Appendix F as a live workbook surfaced, 23 Sep 2026 — seven points | 7 | All confirmed on Call #9 (24 Sep) and closed in paper v5.2: one toolkit rounding corrected (3+ products 0.9684 → 0.9683), the worked chains printed at the precision the toolkit divides at, the companion workbook shipped. See §5d. |
| Geoff Werner · Werner Advisory Aran Paik |
No written review comments received to date — see §4; Werner’s verbal asks on Call #7 are R3‑1 to R3‑5 | 0 | Both are recorded POG members. Nothing written has been attributed to either, and nothing has been invented on their behalf. Input is invited. |
CAS_CLV_Paper_v2.0_AJR.docx.| # | Comment | Response | Where it landed | Status |
|---|---|---|---|---|
| c9 | “I’m confused as to why insurance isn’t contractual.” | Accepted — the “neither contractual nor non-contractual” claim was doing no work. Replaced with a three-feature conjunction: a discrete and infrequent renewal decision, causally heterogeneous exit, and a stochastic cost of service. | Paper §2.1 rewritten; ties to limitation L10 | manuscript |
| c12 | “Define what you mean by growth value.” | Accepted. Defined at first use, and defined by exclusion as well: growth value excludes
rate and trend movement in Pi(t) and excludes persistence
Si(t). |
Paper §3.1 | manuscript |
| c14 | “Should the naming convention be flipped?” | Accepted with a modification — not flipped. The words were the problem:
actuaries read “constrained” as the regulatorily constrained variant,
the opposite of the sense intended. Renamed neutrally:
clv_unconstrained → clv_base,
clv_constrained → clv_with_growth, with the old names
emitted as deprecated aliases for one release so nothing already running breaks. |
models.LEGACY_VARIANT_ALIASES; paper §3.2; framework doc §2.1 |
code ratify |
| c15 | “Would upsell already be incorporated in future premium/loss expectations?” | Accepted. The answer is no — premium and loss are carried at current level,
so an upsell uplift is not already inside them. But the converse trap is real and is now
recorded: a user who does project trend into premium must set
upsell_value=0, and the toolkit cannot detect that they have not. |
Paper §3.2; new limitation L12 | manuscript |
| c16 | “How would one calculate cross-sell value? Is $150 per term? That seems very high.” | Accepted — this was a defect. cross_sell_value had been folded
into the per-term margin and multiplied by DERT, which valued a $150 cross-sale as an
annuity of cross-sales worth $416.04. Cross-sell is now a one-time event with
first-occurrence weights that sum to at most one; upsell is a permanent step-up in annual
margin from the upgrade year onward. cross_sell_value is redefined as the CLV
of the secondary product, and cross_sell_adjusted_premium() is separated from
it with double-count warnings at both call sites. |
Growth-weight code; paper §3.2, §6.3. Growth gap $693.40 → $376.21; 12 downstream figures regenerated | code |
| c19 | “Discuss fixed vs variable expenses; fixed should be ignored; comment on LAE.” | Both accepted. The ratio loads are declared variable expense; fixed expense is
excluded from a marginal CLV by design. Added
Economics.fixed_expense_per_term and fixed_acquisition_expense
as dollar fields defaulting to zero, for avoidable per-policy costs only. LAE
convention stated: ALAE in the loss projection, ULAE in the expense
ratio. |
Economics; paper §3.4 |
code |
| c21 | “Why does the filing basis use a revenue-neutral assumption? Should both be?” | Accepted and expanded. The second question is answered no, and deliberately not: a relativity allocates, it cannot set level. Normalising to a loss-weighted mean of exactly 1.000000 is what stops the rate-level indication appearing twice. This is test-asserted, not merely asserted in prose. | Paper §3.5 expanded; regulatory.rate_adequacy_check test |
answered |
| c23 | “Are you using elasticity metrics in the survival probabilities?” | No — and that is now stated rather than left to be inferred. The survival
covariates are attained age, household size, product-line count and log average premium;
log_avg_premium is a size-of-risk control, not a price-response term. A test
now asserts that no rate-change, price-change or conversion covariate can be added to
features.SURVIVAL_COVARIATES. The cost of that invariant — the
framework cannot answer rate-response questions — is named as a limitation. |
Paper §7, §11, §13; test-enforced invariant | code |
| c39 | “Classical credibility is usually claim counts, not customer counts.” | Accepted — this was wrong. 1,082 is a claim-count standard. Applied to
equal-size CLV quintiles it returned 0.9614 in all five rows: a column with no information
in it. clv_rate_relativities() now takes
exposure_base, defaulting to "claims", and the feature
frame emits n_claims. The lowest-CLV quintile — 2,433 claims on 1,000
customers — correctly reaches full credibility. |
Paper §6.1, Table 13. Credibility → 1.0000 / 0.7168 / 0.8419 / 0.7213 / 1.0000; the indicated relativities are unchanged | code |
| c41 | “Would it make sense to show the retention-adjusted loss ratio by some segment?” | Accepted — and it produced the strongest new result in the paper. New
retention_adjusted_loss_ratio_by_segment(). Weighting each segment’s
loss ratio by its own expected lifetime, the three-plus-product segment has the
worst first-term loss ratio of the three (0.6652) and still indicates a
credit of 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 with no willingness-to-pay
content. A region view ships alongside it as an honest counterexample.
(Figures as corrected at v3.3 — this exhibit read 0.9646 on 8.62 against 5.11 years
through v3.2, before the consistency check in R2‑5 found
three defects in it. Current at v5.2: 0.9683 on 9.44 against 6.53 years, with expected lifetime now read from the book’s persistency table.) |
Paper §6.2.1, Table 14a, Exhibit 11; tenure view retained as Table 14 | code |
| c46 | “States that outlaw elasticities may not allow retention-adjusted loss ratios.” | Accepted in part — argued, then conceded. The argument: the exhibit contains no willingness-to-pay content, only cost, and that is test-enforced via c23. The concession: the residual regulatory risk is real, and on this book’s product-count segmentation the credit does not survive on first-term experience alone. Three filing practicalities are given rather than a reassurance. | Paper §7, new subsection; new limitation L13 | answered ratify |
| c51 | “Should be a, not an.” | Accepted. Fixed. | Paper §8.1 | manuscript |
| c52 | “Why not have the improving loss ratio here? Just for simplicity?” | Accepted — yes, for hand-checkability, and that is now stated rather than left implicit. The cost of the simplification is quantified rather than asserted: with the tenure gradient the ten-year renewer goes from +$782.14 to +$1,959.92, while the short renewer barely moves. The flat version stays in the body as the conservative one. (Corrected at v5.1, first term on the acquisition ratio: +$1,093.62 flat, +$2,271.40 with the gradient.) | Paper §8.1; new Exhibit 12 | manuscript |
| c54 | “Surprised that customers who retain only 1 term have positive CLV.” | Accepted — a labelling failure on our side. Table 18’s “1 yr” was an attained-tenure band on the residual basis, not a one-term renewer. The one-term renewer is −$392.04. Labels now read “1 yr attained” and “2–3 yrs attained” in both the code and the paper, and a test asserts the labels. | Cohort code; paper §8.2 | code |
| c55 | “Did we confirm the 25th percentile is actually 0?” | Confirmed — and the mechanism is now reported rather than the fact asserted.
cohort_clv_summary() emits share_zero: 34.59% of the
2–3-year cohort sits at exactly $0, with roughly 15% further below zero, so both
P25 and the median land on the zero mass. Nothing is floored — negatives coexist
with the zero mass — and tests assert both facts. |
Cohort code; paper §8.2, §9.4 | code |
| c73 | “Kelly Robinson.” | Fixed → AJ Robinson. With apologies. | Paper §15 acknowledgments | manuscript |
| c74 | “Paik.” | Fixed → Aran Paik. | Paper §15 acknowledgments | manuscript |
| c75 | “Robert Kozlowski.” | Fixed → Ronald Kozlowski. | Paper §15 acknowledgments | manuscript |
docs/calls/2026-08-21_CLV_Discrete_Example_reconciled.xlsx,
regenerated by docs/calls/phase6_mondello_example_reconciliation.py.| # | What was asked | Response | Where it landed | Status |
|---|---|---|---|---|
| MM‑A1 | “The losses might actually differ by how long you have had them renew” — should the loss ratio vary with tenure rather than sitting flat at 66% every renewal? | Accepted and built, across all six model families. CLV is valued as
Σt nt·margin(t) in the shared
_BTYDCLV base, so every family inherits it. The measured gradient
(0.6252 → 0.4163, pooled 0.5246) ships as a premium-weighted fitted curve at
4.22%/yr, R² 0.887, floored at 0.70, indexed relative to each customer’s own
attained tenure. Two bases: the revenue-neutral basis (a pure relativity) and the
level-effect basis — renamed from filing/planning at v3.3, see
R2‑1. The key finding is published as a caution, not a feature: on the
revenue-neutral basis the effect inverts — the 10+ year cohort loses
7.43% of mean CLV ($7,284.31 → $6,743.37) while younger cohorts gain
1.17–3.83% — so “loss improves with tenure” does
not mean “loyal customers get a credit”. The 10+ cohort still has the highest
mean CLV on the book: the movement is a reallocation, not a negative value.
(Figures refreshed 2026-08-27; this row previously carried the pre-v3.0
7.0% / 1–3%.)
loss_trend defaults to 0.0 and is an exact no-op. |
Framework doc §2.3; paper §3.5; cohort deep dive | code ratify |
| MM‑A2 | “A very small cohort of policyholders. Two people renew, five people renew for ten years… how would this model account for that” — and show it in terms of profit. | Accepted and built as a named module rather than an illustration:
cas_clv.cohorts.mark_cohort() and
micro_cohort_walkthrough(). Seven named policyholders, term-by-term
arithmetic checkable by hand. The short renewer is −$392.04; the ten-year renewer
+$782.14, breaking even in year 4; the cohort +$3,126.62 at an identical 0.66
loss ratio throughout. Scaled up to tenure cohorts (mean CLV 4.1× across tenure)
with a per-cohort profit bridge. (Corrected at v5.1 (R4‑14): short renewer −$80.56, ten-year renewer +$1,093.62 breaking even in year 2, cohort +$5,306.98; mean CLV 4.3× across tenure at v5.2.) |
New module cas_clv.cohorts; paper §8.1 |
code |
| MM‑A3 | PDF exports of the model summary, with every acronym explained inline — because this hub is a private Hugging Face Space that POG members cannot open without being added as collaborators. | The access half is now answered. The interactive scenario planner runs on its own public Space — one link, no Hugging Face account, nothing else on the Space. What is still open is the rest: the remaining hub pages are access-gated, and the PDF-of-the-model-summary-with-acronyms request is not met by a calculator. Either CAS adds POG members as collaborators, or we ship PDF exports of the deliverables; deck PDFs are already generated and shipping in the RPM submission folder, so that route is one decision away. Closed 8–9 September: the hub became a public Space on 8 Sep, so every page opens without an account, and the v5.0 package went to the POG by email on 9 Sep. | Open action items on the hub; raised again on the Call #6 agenda | answered |
These drove v3.1, and comment N17 below drove v3.2. No toolkit code and no reported figure changed at either version.
| # | Anchor | Comment | Response | Status |
|---|---|---|---|---|
| 4 | “churn” | Should this be defined? | Done. §3.1 defines churn as termination of an existing relationship —
non-renewal at anniversary or mid-term cancellation — and states it is the
complement of Si(t), explicitly not lapse in the life
sense. |
manuscript |
| 13 | CLV = m·r/(1+d−r) |
Define m, r, d. | Done. Defined inline at the Gupta closed form in §2. | manuscript |
| 14 | BTYD/ML paragraph | Define BG/NBD, GBM, ML, GLM at first mention. | Done. All six abbreviations expanded at the head of the §2 paragraph where they first appear together. | manuscript |
| 22 | “Unconstrained” | “I have the same comment” (as AJ’s c14). | Done, and it found a real error. The v3.0 global rename had overwritten the
old names inside the very paragraph explaining the rename, leaving §3.2
self-contradictory — it claimed the columns were called
clv_base/clv_with_growth “through v2.0”, which is
the new naming. §3.2 now reads correctly. |
manuscript |
| 30 | “The filing basis inverts the intuition…” | “I was not able to follow this. Let’s discuss at our next call.” | Rewritten, and it is on today’s agenda. §3.5 now gives a three-step mechanism: the fitted curve produces a falling loss multiplier; CLV responds to the improvement still ahead of a customer, not the improvement already banked; and revenue-neutral division then reallocates, so the 10+ cohort gives up what it has already earned. This remains the single item most worth discussing live. | manuscript |
| 44 | — | Is there overlap between lapse and non-renewal churn in
Si(t)? |
Answered in §3.1: one event seen two ways, not two deductions. The absorbing lapsed
state is the generator of Si(t), not a further charge
against it. What the framework does not do is separate the ways a relationship ends
— that is limitation L10. |
answered |
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. Answers are
also on the Answers_to_red_cells sheet of the corrected workbook.
| Cell | Question | Response | Status |
|---|---|---|---|
| P10 | “I assume the $150 would be estimated by its own CLV.” | Correct, and that is now the documented definition. cross_sell_value
is the CLV of the secondary product — the second policy valued on the same
P−L−E basis over its own expected life. His reading and AJ’s coincide,
and the code was changed to match. The only thing that changed is when it is
credited. |
answered |
| P11 | “How would the $100 be estimated?” | As the incremental annual margin from the upgrade, not a one-time $100: the added premium for the higher limit, less the expected loss and variable expense it brings. It then applies in every term from the upgrade year onward. | answered |
| N17 | “Are premium and cross-sell in day-0 terms, with inflation in the discount factor?” | Day-0 terms, yes — and this found a genuine loose end. The toolkit applies no premium or loss inflation index while the discount rate is anchored to the cost of equity, which is a nominal rate. Discounting real cash flows at a nominal rate is a mismatch. It is conservative, so it threatens no filing-side conclusion, but it should be stated rather than left implicit. Adopted at v3.2: §3.1 states the convention and gives the two clean resolutions, and limitation L14 records that the bias is one-sided and immaterial to every relativity result — though it does affect level figures. Flagged to the POG before being made, not changed silently. | manuscript |
| N18 | “This is the premium for the base product, not the cross-sell product.” | Correct and intended. Pi(t) is base-product premium only; the
second product’s economics live entirely inside cross_sell_value.
Adding its premium to Pi(t) as well would double-count it. |
answered |
| N19 | “This will be estimated using the multi-state Markov and HMM models (§5.4).” | Partly, and the distinction is worth drawing. MarkovCLV does estimate
transitions among product-portfolio states from policy history. But in the CLV calculation
the growth hazards are explicit assumptions on Economics
(cross_sell_prob, upsell_prob), not quantities the BTYD or
survival families estimate. That is deliberate: growth value is business-planning content,
architecturally barred from the filing-defensible base, so it must be a stated assumption
a reviewer can see and change — not an estimate buried inside a fit. |
answered |
His totals reproduce in our code to the cent before any correction —
CLV with growth $1,759.73, without $1,610.15, gap $149.58 — which is what makes the two
corrections below attributable rather than arguable. Growth weights were checked against the
toolkit’s own _growth_weights: maximum absolute difference 0.00.
| Item | Finding | Effect on his total |
|---|---|---|
| Acquisition vs renewal expense split, 0.40 / 0.20 | Correct as written. This is the paper’s inception view. | — |
| Correction 1 — growth shape | Cross-sell is one-time, upsell a permanent step-up. His cross-sell probabilities summed to 1.15, which is the same defect AJ’s c16 found — independently reproduced from the v2.0 wording, which we take as evidence the old wording invited the misreading. | +$101.23 |
| Correction 2 — tenure credit | The credit is multiplicative,
LR(1)×(1−0.0422)t−1, not 0.0422 loss-ratio
points subtracted each term. Over five terms his additive path reaches 0.4562 where the
paper’s reaches 0.5260. |
−$199.76 |
| v3.2-consistent total | clv_base $1,410.39; corrected growth gap $250.81 |
$1,661.20 (net −$98.53) |
docs/calls/2026-07-02_response_expense_question.md; binding
decision recorded in the framework doc §2.2 and in paper §3.4. The August review is
CAS_CLV_Paper_v2.0_AJR+MM+RTK.docx (received 7 September; comments extracted
verbatim to tasks/rtk-comments-v2.0-extracted.md); the response memo is
2026-09-09_review_response_RTK.html. Rows
RK‑2 to RK‑91 follow his Word comment ids in order, one row per comment, with the
Word id and the anchored phrase at the head of each; three pairs that mark the same phrase
(Word #66/67, #81/82, #164/165) share a row, so 93 comments make 90 rows. His last remark, on §5: “This
section is beyond my abilities to review” — which is itself one of the reasons v4.0
carries two reading paths. All 93 land in paper v4.0 unless the row says otherwise.| # | What was asked | Response | Where it landed | Status |
|---|---|---|---|---|
| RK‑1 | Acquisition costs at new business are far larger than renewal expenses — will the framework reflect expense timing over the policy lifetime? | Accepted, and it matched an item already flagged for POG steer (framework question 6a in
the June 18 brief). Three parts: (1) split structure — every model accepts
acquisition_expense_ratio (0.40 of first-term premium) and
renewal_expense_ratio (0.20), blending to ≈0.23 over a ~7-year life,
both explicit sensitivity dimensions so no conclusion hinges on the point estimates.
(2) Sunk-cost discipline, which is the part that matters — for an in-force
customer the acquisition cost is sunk, so residual CLV charges future terms the renewal
ratio only; a flat blended ratio systematically understates the value of retention.
Inception CLV is reported separately, net of acquisition, as
clv_net_of_acquisition — the acquisition-decision view, and the
quantitative form of the classic argument that new business is written at a loss and
recouped over renewals. (3) Ratemaking payoff — the split feeds the lifetime
expense-recovery exhibit, which is where it becomes filing-relevant. |
Framework doc §2.2; paper §3.4;
features.py/models.py; expense-recovery exhibit in
cas_clv.ratemaking |
code |
| RK‑2 | Word #12 · Abstract — “which” not sure if you are talking about the toolkit or the paper or both? |
Rewritten so every sentence names its subject: the paper presents the framework and the toolkit implements it. No pronoun in the abstract now points at both. | Abstract | manuscript |
| RK‑3 | Word #16 · Abstract — “Three design choices address regulatory constraint structurally rather than procedurally” not sure what you are saying here? |
Replaced. The abstract now says the three design choices “keep the framework usable in a regulated market” and names them (two reported values; expense split by timing; a year-by-year sum with tenure-varying losses). §1.2 says why they work: the demand-based content is kept out of the filing-side exhibits by how the toolkit is built, “by construction rather than by policy”, not by a review step after the fact. | Abstract; §1.2 What this paper is, and is not | manuscript |
| RK‑4 | Word #18 · Abstract — “unconstrained” what do you mean by constrained and unconstrained? |
Closed at v3.0, where the pair was renamed clv_base / clv_with_growth (AJ c14, MM 22). v4.0 adds a plain gloss — “the customer as they are today” versus “plus expected future purchases”. AJ’s single-line / multi-line was not adopted because a base-variant customer may already hold three products; the gloss goes to the 10 September poll. |
Abstract; §3.2 Two CLV variants; Call #7 poll Q2 | manuscript |
| RK‑5 | Word #21 · Abstract — “list of ratemaking/regulatory outputs” I am not sure how to react to this list as some seem to be assumptions while others are exhibits. |
Agreed — the list mixed inputs and outputs. The abstract list now names only what the toolkit produces (rate relativities, retention-adjusted lifetime loss ratios, expense-recovery exhibits, a disparate-impact screen, filing exhibits for five jurisdictions). The assumptions a practitioner sets — expense ratios, growth values, discount rate, horizon — are introduced in §3 where each is set, and the three named bases of Table 4 fix which set every exhibit uses. | Abstract; §3.3 Three reporting bases | manuscript |
| RK‑6 | Word #22 · Abstract — “run against expectation” what does this mean? |
The phrase is gone. The abstract states the result directly: applied so that total premium is unchanged, a measured loss-ratio improvement with tenure lowers the reported value of long-tenured customers rather than crediting it; §3.5 says why that runs against the intuition. | Abstract; §3.5 Loss timing | manuscript |
| RK‑7 | Word #23 · Abstract — “applied revenue-neutrally” applied revenue neutrality and a measured tenure loss improvement that reduces long tenured CLV rather than crediting it sound like two different things. Is this age dependent - say a 20 year old versus a 50 year old? |
They are two things. The abstract now says the first in plain words (“applied so that total premium is unchanged”) and §3.5 explains the second: because a long-tenured customer has already banked the improvement, the redistribution runs against them. On age: §3.5 has a paragraph “Does the curve depend on the age of the insured?” — no; the curve is fitted on tenure alone and age enters only the retention models — and the point is recorded among the limitations. | Abstract; §3.5 Loss timing; §11 Limitations | manuscript |
| RK‑8 | Word #24 · Abstract — “five-year CLV adds little to the current-term margin…” This part makes in sound like CLV isn't worthwhile but making decisions on how to allocate expenses is. Then why write this paper? |
The abstract was reporting the finding as a deficiency. It is rewritten to state it positively: CLV’s economic content is in acquisition, in retention allocation and in valuing a book — not in re-ranking in-force customers, where the current-term margin already carries the order. Full answer in the response memo. | Abstract; §1.3 Contributions; response memo | manuscript |
| RK‑9 | Word #25 · Abstract — “All results are deterministic under seed 42.” why is this important? |
A fixed random seed makes every re-run of the toolkit reproduce the identical tables; that is what the sentence was for. A different seed gives statistically equivalent, not identical, numbers, and Appendix C shows the spread. Nobody needs to reproduce it constantly; the mention is cut from the abstract and reduced to one sentence in the reproducibility section. | §12 Reproducibility | answered manuscript |
| RK‑10 | Word #31 · §1 Introduction — “Pricing” I think we should say property & casualty actuaries or does this apply to all actuaries? |
Property-casualty. The first sentence now says so, and “actuaries” is qualified as P&C pricing actuaries at first use. | §1 Introduction | manuscript |
| RK‑11 | Word #38 · §1 Introduction — “Firestone/Hindawi five CLV measures” assuming we will define all these terms somewhere. |
Each of the five measures is defined in one line where first cited, in §1, and again in the glossary. | §1 Introduction; Appendix G Glossary | manuscript |
| RK‑12 | Word #51 · §1 Introduction — “long “best read as the implementation…” sentence” difficult to read … Keep sentences simple. I'd review all sentences over a certain length and work to make them simpler to read and understand. |
Adopted, and applied as a global rule: his tracked splits are taken as written, long sentences are split throughout, and run-on lists use 1) 2) 3) enumerators. | Whole paper | manuscript |
| RK‑13 | Word #52 · §1 Introduction — “filing-aware column” I am not sure what a "filing-aware column" is? |
Replaced with “a CLV column built only from cost-based inputs, so it can be shown in a rate filing” — which is what clv_base is. |
§1 Introduction | manuscript |
| RK‑14 | Word #53 · §1 Introduction — “§9.4” what is this? Does this refer to section number? |
Yes, a section number. Adopted as a v4.0 convention across the paper: the concept is named first and the section number follows in parentheses, so a reader who has not reached that section still knows what is being pointed to. | Whole paper | manuscript |
| RK‑15 | Word #54 · §1 Introduction — “literature-gap sentence” Make this separate sentences |
Split into three sentences. | §1 Introduction | manuscript |
| RK‑16 | Word #55 · §1 Introduction — “treatment” be more specific |
The lead sentence keeps the word (“What has been missing is an implementation-ready treatment”); the four sentences that follow now say specifically what each literature supplies and lacks — valuation machinery with no link to losses (marketing), churn dynamics with no filing pipeline (actuarial retention), deployable models without regulatory defensibility (applied machine learning), and a taxonomy with no code (the 2013 CAS talk). | §1 Introduction | manuscript |
| RK‑17 | Word #56 · §1 Introduction — “paper, no” should the "," be replaced with "has"? |
Yes; corrected. | §1 Introduction | manuscript |
| RK‑18 | Word #57 · §1 Introduction — “Meanwhile the regulatory environment has hardened: California's prior-approval regime” What do you mean by "Meanwhile"? … Prop 103 … happened ages ago not "meanwhile"? |
Corrected. Proposition 103 is 1988 and is now cited as the long-standing regime; the recent items are Colorado SB21-169 (2021) and the NAIC model bulletin on AI systems (2023). “Meanwhile” is gone. | §1 Introduction | manuscript |
| RK‑19 | Word #59 · §1.3 Contributions — “an actuarial annuity reading” what is an "actuarial annuity reading" mean, what does "cohort-level reporting" mean? Did the CAS Project Oversight Group assist in the develop the three binding design decisions? I'd leave this credit to the author not the POG. |
Three fixes. “Annuity reading” is gone from the contributions (see RK‑36 on Word #101 for where the analogy survives). Cohort-level reporting is spelled out where it appears: “results are reported at the cohort and segment level with sensitivity ranges, never as per-customer point estimates to be acted on alone”. Attribution: §1.3 says the three design decisions were “developed by the author and adopted on review by the CAS Project Oversight Group”. | §1.3 Contributions; §3.1 Formal definition; §15 Acknowledgments | manuscript |
| RK‑20 | Word #60 · §1.3 Contributions — “causal structure” is this phrase needed? |
No. The phrase is gone from the contributions; §1.3 says the generator mirrors an agency data model and that its realism is checked automatically, and §4.2 says in plain terms what the structure is: renewal, product growth and risk depend on each household’s own characteristics, rather than only matching averages. | §1.3 Contributions; §4.2 Causal structure | manuscript |
| RK‑21 | Word #61 · §1.3 Contributions — “continuous-integration realism gate … parameter-recovery validation … only synthetic ground truth permits” Can we use simpler terms? |
Yes. “An automated check that fails the build if the synthetic book leaves its calibration bands”; and “because the true retention is known, the fitted retention can be scored against it”. | §1.3 Contributions; §4.4 Parameter-recovery validation | manuscript |
| RK‑22 | Word #62 · §1.3 Contributions — “Six … under one contract” Aren't these just six different assumptions? Why is "under one contract" necessary? |
“Under one contract” becomes “share one interface: same inputs, same output columns”. The six are model families for retention, each with its own assumptions about how a customer leaves — that distinction is now said in the sentence. | §1.3 Contributions; §5 Models | manuscript |
| RK‑23 | Word #63 · §1.3 Contributions — “native, auditable” what is meant by "native"? |
“Built in.” | §1.3 Contributions | manuscript |
| RK‑24 | Word #64 · §1.3 Contributions — “GDPR” What is GDPR? |
Spelled out at first use — the EU General Data Protection Regulation — and added to the glossary. | §1.3 Contributions; Appendix G Glossary | manuscript |
| RK‑25 | Word #65 · §1.3 Contributions — “honest negative” what does "honest negative" mean? |
Replaced with “a negative result we report rather than omit”. | §1.3 Contributions; §9 Economic value | manuscript |
| RK‑26 | Word #66 / #67 · §1.3 Contributions — “scipy” Is this a word? Are you referring to "SciPy"? Is this a commonly known term? |
It is the SciPy scientific-computing library, and it is now called that at first use. Lower-case package names appear only inside code listings. | §1.3 Contributions; §12 Reproducibility | manuscript |
| RK‑27 | Word #68 · §1.3 Contributions — “deterministic seed-42” Is the seed number important? what if we used a different seed - would results be the same? Do we constantly need this reproduced? |
A fixed random seed makes every re-run of the toolkit reproduce the identical tables; that is what the sentence was for. A different seed gives statistically equivalent, not identical, numbers, and Appendix C shows the spread. Nobody needs to reproduce it constantly; the mention is cut from the abstract and reduced to one sentence in the reproducibility section. | §12 Reproducibility; Appendix C | answered manuscript |
| RK‑28 | Word #72 · §2 Literature review — “direct CAS practitioner lineage” what do you mean? |
Softened, using his tracked change: “a number of CAS and other articles have touched this concept before”, followed by the specific CAS items cited by name (Boucek and Conway 2003; Firestone and Hindawi 2013). | §1 Introduction | manuscript |
| RK‑29 | Word #73 · §2 Literature review — “treatment” maybe use "document" or "publication" |
“Publication.” | §2 Literature review | manuscript |
| RK‑30 | Word #74 · §2 Literature review — “Firestone/Hindawi long sentence” consider breaking up … I tried to change "," to ";" |
Split into separate sentences, which supersedes the semicolon experiment. | §2 Literature review | manuscript |
| RK‑31 | Word #81 / #82 · §2 Literature review — “§3.5” ??? / If I haven't read sections 3.5 and 3.1, then how do I know what this is referring to? |
The forward reference now names the concept — “the tenure-varying loss ratio, developed later (§3.5)” — so it reads without the section. Adopted as a v4.0 convention across the paper: the concept is named first and the section number follows in parentheses, so a reader who has not reached that section still knows what is being pointed to. | §2 Literature review | manuscript |
| RK‑32 | Word #83 · §2 Literature review — “§3.1's” ??? |
Adopted as a v4.0 convention across the paper: the concept is named first and the section number follows in parentheses, so a reader who has not reached that section still knows what is being pointed to. | §2 Literature review | manuscript |
| RK‑33 | Word #92 · §2 Literature review — “BTYD / Pareto-NBD / BG-NBD paragraph” Yes, please define (reply endorsing MM #91) |
Closed at v3.1, which defined BG/NBD, Pareto/NBD, BTYD, GBM, GLM, ML and the m/r/d notation at first use. v4.0 adds a glossary so the definitions are also in one place. | §2 Literature review; Appendix G Glossary | manuscript |
| RK‑34 | Word #95 · §2.1 Taxonomy for P&C — “wired into ratemaking exhibits and state-specific regulatory tests” I understand the concept of using this into ratemaking. However I was thinking that this is more of a valuation exercise - that there is a value to the book of business for acquisition purposes (e.g., one company buying another's book of business). |
Adopted. v4.0 names both use cases early: rating decisions (the primary one, per the RFP) and valuing a book of business — the present or economic value of the in-force customers. A new subsection shows the book-value reading from the existing results, and the scenario planner’s book-average mode already computes it. Full answer in the response memo. | §1.2 What this paper is, and is not; §9.6 Valuing a book of business; response memo | manuscript |
| RK‑35 | Word #100 · §3.1 Formal definition — “formula” I am having a hard time understanding what this is? Is this survival probabilities, discounted? |
Yes, exactly that: a sum over future years of the year’s margin, each weighted by the probability the customer is still here and discounted. v4.0 puts a term-by-term reading under the formula and a two-customer numerical example in front of it. | §3.1 Formal definition; §1.1 Two customers, two horizons | manuscript |
| RK‑36 | Word #101 · §3.1 Formal definition — “annuity” When I think of an annuity I think of a payment of a given amount … for this the annuity payments may change over time … I never thought of this as an annuity. |
He is right that the payments vary. The formula is now introduced as “a stream of yearly margins”, each weighted by the chance the customer is still there and discounted. The annuity survives only in a paragraph headed “A loose analogy to an annuity”, which says what he said: an annuity pays a fixed amount on a schedule, these margins vary by year and by customer, and the weights are an estimated retention rather than a validated mortality table. The word is gone from the contributions. | §3.1 Formal definition; §1.3 Contributions | manuscript |
| RK‑37 | Word #102 · §3.1 Formal definition — “bounded at 500 combinations” why bounded at 500 combinations? Is this something we decide or was it a function of the parameter options? |
Something we decided. The 500 is the cap on the sensitivity grid (sensitivity_analysis(), eight dimensions), not the fitting routine and not a property of the data. §3.1 now says: “That bound is a design choice, not a property of the parameters. It caps the number of parameter combinations a single search will evaluate.” |
§3.1 Formal definition | manuscript |
| RK‑38 | Word #103 · §3.1 Formal definition — “discount rate 8%” As a reserving actuary I think higher rates are bad and lower rates are good … for pricing/valuation a larger discount rate means less credit given. Why use 8% over a 12% in this case? |
A plain paragraph is added: for a value estimate a higher rate is the conservative choice, because it gives less credit to distant renewals, so a reserving actuary’s instinct runs the other way here. Three anchors bracket the 8% (Damodaran’s P&C cost of equity ≈6.1%; embedded-value practice; the CLV-literature convention of 12%), results are recommended at 6% / 8% / 12%, and the sensitivity grid produces all three (Appendix C carries the discount-rate row), so a reader who prefers 12% has that result. | §3.1 Formal definition; §10 Sensitivity; Appendix C | manuscript |
| RK‑39 | Word #112 · §3.4 Expense timing — “renewal (reply to AJ Robinson, Word #111)” Not sure I agree with AJ as someone needs to pay for fixed expenses. Leaving it out would overstate values. In reality renewal customers pay for acquisition costs for newer customers. Loss Adjustment Expenses should be considered inside the "Losses", often referred to as L&ALAE. Should we be making… |
Two views rather than a winner. The marginal CLV (variable expense only) stays the default, per the binding 2026-08-16 decision, because a CLV supports a decision about one customer and fixed overhead does not change with that decision. v4.0 adds a named fully-allocated view on the existing Economics.fixed_expense_per_term parameter, with a worked example in §3.4 valuing the same ten-year renewer both ways ($782.14 marginal against $278.88 fully allocated, net of acquisition, at an illustrative $75.00 of fixed expense per term) (v5.1: $1,093.62 against $590.36), and guidance: marginal for a decision about one customer or segment, fully-allocated for valuing a book (§9.6). The two views differ by the fixed charge times expected discounted renewals — a level effect that grows with expected tenure, so customers of equal expected tenure keep their order and customers of similar value can swap places where their expected tenures differ; the relativity and segment exhibits (§6) are computed on the marginal view and are unaffected. The choice of default is before the POG on 10 September. LAE: ALAE sits in the loss projection (Economics.lae_ratio) and ULAE in the expense ratio — the toolkit convention since 2026-08-16; §3.4 defines LAE, ALAE and ULAE inline and says the fixed share of ULAE belongs in the fully-allocated view. |
§3.4 Expense timing; §9.6 Valuing a book of business; framework doc §2.1a; Call #8 poll, 10 September | manuscript ratify |
| RK‑40 | Word #114 · §3.5 Loss timing — “premium-weighted log-linear” Why "log-linear"? What would you extrapolate here? a further improvement? |
Explained in words: the loss-ratio multiplier is fitted as a straight line in log terms, so each tenure year applies the same percentage change (4.22%/yr in the reference book). Nothing is extrapolated beyond the observed tenure window, and the multiplier is floored at 0.70. | §3.5 Loss timing | manuscript |
| RK‑41 | Word #115 · §3.5 Loss timing — “toolkit ships” Can we use "uses"? |
Yes — “uses”, here and everywhere “ships” appeared in prose. | Whole paper | manuscript |
| RK‑42 | Word #116 · §3.5 Loss timing — “per-year-sum paragraph” Can you say this in simpler terms - maybe make this more intuitive to the simple reader. |
Rewritten as one plain statement — CLV is the sum, year by year, of (chance of still being here) × (that year’s margin), discounted — with one hand-worked line in the appendix. | §3.5 Loss timing; Appendix F Every exhibit, worked by hand | manuscript |
| RK‑43 | Word #117 · §3.5 Loss timing — “…its observed 0.42” Does the .42 depend on age of the insured? |
No. The synthetic book carries no age covariate in the loss curve (age enters only as a survival covariate); this is now stated where the figure appears and listed as a limitation. | §3.5 Loss timing; §11 Limitations | manuscript |
| RK‑44 | Word #118 · §3.5 Loss timing — “§3.2” Best to refer to a term not a section number |
Adopted as a v4.0 convention across the paper: the concept is named first and the section number follows in parentheses, so a reader who has not reached that section still knows what is being pointed to. | Whole paper | manuscript |
| RK‑45 | Word #121 · §3.5 Loss timing — “bases paragraph” How would I convert the filing basis to the planning basis? Not sure I am following this. |
Both bases use the same fitted curve with a different normalisation: the revenue-neutral basis divides every multiplier by the book’s loss-weighted mean so the book total is unchanged; the level-effect basis applies the curve as fitted. Converting is one switch (tenure_loss_normalize), and §3.5 now has a paragraph “Converting one basis to the other”: divide by the mean to go from level-effect to revenue-neutral, multiply to go back, with the two book totals ($16,111,118 and $18.73M) as the check. Both bases by cohort are Figure 3 and Appendix F.6. The bases were renamed at v3.3 (R2‑1). |
§3.5 Loss timing; Figure 3; Appendix F.6 | manuscript |
| RK‑46 | Word #122 · §3.5 Loss timing — “put to the Project Oversight Group and not yet ratified.” Do Mark and AJ follow this? |
Open. The basis names (revenue-neutral / level-effect) are Call #7 poll Q1, carried to the 10 September call for ratification; §3.5 states that the names “were put to the Project Oversight Group and are on the poll for the next call”. | §3.5 Loss timing; Call #7 poll Q1; Call #8, 10 September | ratify |
| RK‑47 | Word #125 · §3.6 Bright line — “price optimization” Is this really "price-optimization"? |
No, and Werner and Kozlowski said the same on Call #7. v4.0 removes the term everywhere except the §2 literature citations (CAS Price Optimization Working Party 2014; NAIC 2015); §3.6 is retitled “The bright line: cost-based factors versus demand-based factors”, and a boxed “What this paper is, and is not” is added early in §1. | §3.6 The bright line; §1.2 What this paper is, and is not | manuscript |
| RK‑48 | Word #128 · §4.1 Design goal and schema — “for all published results” can we drop this? |
Dropped. | §4.1 Design goal and schema | manuscript |
| RK‑49 | Word #129 · §4.1 Design goal and schema — “sync” Is there another word besides "sync"? Maybe "uses"? |
“Uses.” | §4.1 Design goal and schema | manuscript |
| RK‑50 | Word #132 · §4.1 Design goal and schema — “Reference-book grain” Is "grain" another word for "detail"? |
Yes — replaced with “level of detail”. | §4.1 Design goal and schema | manuscript |
| RK‑51 | Word #133 · §4.1 Design goal and schema — “behavioral segment” what is meant by "behavioral segment"? |
Defined in §4.1: a label for the kind of customer a household stands for (price-sensitive, loyal multi-product, or growing business), grouping customers meant to behave alike. In the reference generator the label is descriptive — the household’s outcomes are driven by the three latent fields (retention propensity, cross-sell propensity, risk factor), not by the label — and it is never a rating variable. | §4.1 Design goal and schema; Appendix G Glossary | manuscript |
| RK‑52 | Word #134 · §4.1 Design goal and schema — “latent retention/cross-sell propensity, latent risk factor” Can you give more details on what this is? |
Explained: each synthetic customer carries hidden values for how likely they are to renew, to buy another product, and how risky they are. Those values drive the simulated outcomes but never appear in the output tables — exactly as in a real book. | §4.1 Design goal and schema; §4.2 Causal structure | manuscript |
| RK‑53 | Word #135 · §4.1 Design goal and schema — “coverage tier 1–3” I was thinking years 1-3 but these are three different grouping. Can we give example like we do for product line? |
Example added in §4.1: a coverage tier is a level of coverage richness, not a year — tier 1 is the basic coverage a household starts with, tiers 2 and 3 are progressively richer coverage, each step up carrying a higher premium; the three product lines are named as the analogous example. | §4.1 Design goal and schema | manuscript |
| RK‑54 | Word #136 · §4.1 Design goal and schema — “one per claim” We have "one per household" and "one per claim". Should then we have "one per policy"? … a record for each customer, LOB and year? |
Yes. There are three tables and the text now names all three: one row per customer, one row per policy term (customer × product × year), and one row per claim. | §4.1 Design goal and schema | manuscript |
| RK‑55 | Word #137 · §4.1 Design goal and schema — “maturity” Maturity means age since reporting? Why are some fields in a different font? |
Defined: maturity is the number of years since the claim occurred, measured at the observation date — not since reporting. The monospace font marks a field name in the data schema; §4.1 states that convention once, up front. | §4.1 Design goal and schema | manuscript |
| RK‑56 | Word #138 · §4.1 Design goal and schema — “incurred vs reported” Isn't the reported losses the given and then incurred losses the calculated? Is "ultimate" a better term as incurred can be mistaken as "reported"? |
His terminology is adopted: “ultimate” for the calculated, fully developed amount and “reported” for the as-of case amount. “Incurred” is no longer used as a basis name; the column keeps its schema name incurred_loss for compatibility, and the text says so. |
§4.1 Design goal and schema; Appendix G Glossary | manuscript |
| RK‑57 | Word #139 · §4.1 Design goal and schema — “loss_basis="ultimate"|"reported"” Isn't this an LDF factor? |
Yes. The divisor that links the two is a loss development factor and is now called that. | §4.1 Design goal and schema | manuscript |
| RK‑58 | Word #140 · §4.1 Design goal and schema — “parameter choice, not a rework” The ultimate is a calculation, not a given - unless we are tracking as of dates and showing the development over time. |
Agreed. §4.1 now says the reported amount is the observed quantity and the ultimate is the calculation; the synthetic book runs it in reverse (draws the ultimate, divides by the factor at the claim’s maturity), holds one observation date and no history of development — recorded with the book’s other calibration limits (L1). | §4.1 Design goal and schema; §11 Limitations (L1) | manuscript |
| RK‑59 | Word #141 · §4.1 Design goal and schema — “personal and commercial lines” "what"? data? records? … written more clearly. |
Rewritten: “the book contains policy records for three product lines”. | §4.1 Design goal and schema | manuscript |
| RK‑60 | Word #142 · §4.1 Design goal and schema — “cover” Is the POG and RFP two separate groups? Can we just say that the personal lines are composed of personal auto and homeowners and the commercial account is the business-owners line. |
His sentence is adopted as written. The RFP is the CAS request for proposals and the POG is the oversight group; neither needed to be in that sentence. | §4.1 Design goal and schema | manuscript |
| RK‑61 | Word #144 · §4.2 Causal structure — “A generator that merely matches marginal distributions produces CLV variation that is pure claim noise.” How about "The synthetic data is generated to match the mean with some variation from account to account." |
His sentence opens the paragraph; the next sentence then says why matching the mean alone is not enough (the customers would differ only by claim luck). | §4.2 Causal structure | manuscript |
| RK‑62 | Word #145 · §4.2 Causal structure — “Risk-based rating with partial rating efficiency” ??? |
Replaced with “premium tracks the customer’s true risk, but not perfectly — as in a real rating plan”. | §4.2 Causal structure | manuscript |
| RK‑63 | Word #146 · §4.2 Causal structure — “∝ risk^0.8” ??? |
Explained in words: premium is proportional to the risk factor raised to the power 0.8, so it rises with risk but less than proportionally — a household ten percent riskier than average pays about eight percent more — and the exponent is named in the same sentence as the rating efficiency (no footnote). | §4.2 Causal structure | manuscript |
| RK‑64 | Word #147 · §4.2 Causal structure — “Premium–risk correlation 0.869–0.878” ??? |
Explained: how closely premium tracks true risk within each line, where 1.0 would be perfect rating. The three values are labelled by line: 0.8728 personal auto, 0.8776 homeowners, 0.8685 commercial. | §4.2 Causal structure | manuscript |
| RK‑65 | Word #148 · §4.2 Causal structure — “Renewal 0.9569 at tenure 4–8 vs 0.8923 at tenure ≤1” What is it from tenure of <1 and </=4 |
The two figures were the generator’s two asserted checks, not a full table, and §4.2 now says what each band is: tenure 0–1 is the first two policy years (renewal 0.8923); tenure 4–8 is the fifth through ninth policy years (0.9569). Tenures 2–3 and 9+ are not separately reported; because the mechanism is a straight line (+1.2 points per year of tenure, level after ten years), their renewal rates lie between the two figures. | §4.2 Causal structure | manuscript |
| RK‑66 | Word #149 · §4.2 Causal structure — “annual product-addition hazard 0.12 × propensity; tier-upgrade hazard 0.07” Explain more clearly |
Rewritten: each year a customer has a 12% chance, scaled by their own propensity, of adding a product, and a 7% chance of moving up a coverage tier. | §4.2 Causal structure | manuscript |
| RK‑67 | Word #150 · §4.2 Causal structure — “raise coverage” you mean "increases the coverage amount"? or … raise coverage amounts and purchase new products? |
“Increase the coverage amount (a tier upgrade)”. Buying a new product is the separate cross-sell event, and the two are now named separately every time. | §4.2 Causal structure | manuscript |
| RK‑68 | Word #151 · §4.2 Causal structure — “mid-relationship additions present” ??? |
Replaced with “customers add products part-way through the relationship, not only at inception”. | §4.2 Causal structure | manuscript |
| RK‑69 | Word #152 · §4.2 Causal structure — “renewal probability rises 3.5 pts per product beyond the first” Does this mean that the multi-product is 3.5% higher than the monoline |
Yes, in percentage points and per additional product: a two-product customer renews 3.5 points more often than a mono-line one, before other effects. The observed book figures (0.9097 mono-line vs 0.9443 multi-product) are given alongside. | §4.2 Causal structure | manuscript |
| RK‑70 | Word #153 · §4.2 Causal structure — “underwriting margin ≈22% of premium” can you explain this? Does this mean profit? |
Stated in the manuscript. The underwriting margin is premium minus ultimate losses minus expenses, as a share of premium, before investment income and income tax — an underwriting result, not a profit after all costs. §4.3 says what it includes (loss is loss plus ALAE; ULAE sits inside the 0.25 load; no fixed overhead beyond the load) and whether it is realistic: the value sits near the top of its 0.02–0.30 band because the line loss ratios (0.5024–0.5589) run below the NAIC pure loss ratios that anchor them, so the reference book is more profitable than the industry, whose underwriting margin has been a few points of premium and negative in some years. The consequence is level, not order: CLV dollar amounts on this book are high; rankings, relativities and model comparisons are unaffected. L1 carries it as a v4.1 calibration candidate, with POG notice if it moves. | §4.2 Causal structure; §4.3 Calibration bands; §11 Limitations (L1) | manuscript |
| RK‑71 | Word #154 · §4.2 Causal structure — “portfolio margin 0.2254 at flat 0.25” What does this mean? |
Rewritten in words in §4.2: on the flat expense convention of basis A, expenses are 0.25 of premium; the book loss ratio is 0.5246, so the margin is one minus 0.5246 minus 0.25, which is 0.2254, about 22% of premium. Composition and realism as RK‑70 (Word #153); the v4.1 calibration note stands. | §4.2 Causal structure | manuscript |
| RK‑72 | Word #156 · §4.3 Calibration bands — “Realism is not a documentation claim; it is a test suite.” Not sure what this means? |
Replaced: “Realism is checked automatically, not asserted” — a test generates the book, compares every statistic against its band, and the build fails if any leaves it. | §4.3 Calibration bands | manuscript |
| RK‑73 | Word #157 · §4.3 Calibration bands — “CALIBRATION_TARGETS sentence” This is an example of a hard to read sentence. |
Split into three sentences. | §4.3 Calibration bands | manuscript |
| RK‑74 | Word #158 · §4.3 Calibration bands — “liability-mixed” what is "liability-mixed?" |
Defined where it appears: the NAIC 2022 personal-auto expenditure ($1,127) is liability-mixed — it averages liability-only policies with full-coverage ones, which is why it sits below a full-coverage band. | §4.3 Calibration bands | manuscript |
| RK‑75 | Word #159 · §4.3 Calibration bands — “ISO all-coverage ≈0.114/vehicle-year × household vehicle counts. Implies 1.768 cars per household.” what if household has fewer or more cars? Does analysis still work? |
The generator does not model vehicles, and the paper no longer implies it does. Claims are drawn per household policy-year at a rate scaled by the household’s risk factor, so frequency is household-level; the ISO anchor is per vehicle, and a household frequency above it reflects households that insure more than one car on average. The tracked “1.768 cars” insert is not adopted, because no vehicle count exists to average. A one-car or three-car household is handled the same way — its value is computed from its own claim history — so the analysis holds for any count. | §4.3 Calibration bands | manuscript |
| RK‑76 | Word #161 · §4.3 Calibration bands — “current market $2,490” why so much higher? implications? |
The $2,490 is the current-market homeowners figure. The band is anchored to the NAIC 2022 average ($1,569) and the book’s homeowners premium ($1,598.49) sits at that level; the current-market figure reflects recent rate increases the book does not model. Implication stated: CLV dollar levels move with premium; the rankings and relativities the ratemaking exhibits use do not. | §4.3 Calibration bands | manuscript |
| RK‑77 | Word #162 · §4.3 Calibration bands — “0.2435” is this so much higher than personal because there are multiple vehicles or higher frequency/miles? |
Because commercial frequency is per policy-year at the account level, and a business-owners account covers several exposures at once — premises, vehicles and liability — where homeowners covers one dwelling. The commercial rate (0.2435) is therefore close to the household auto rate (0.2016), not to homeowners (0.0777). Stated next to the figure. | §4.3 Calibration bands | manuscript |
| RK‑78 | Word #163 · §4.3 Calibration bands — “multi-product share” what is multi-product share? |
Defined: the share of households that held more than one product line at any time in the window (0.3590 in the reference book). | §4.3 Calibration bands; Appendix G Glossary | manuscript |
| RK‑79 | Word #164 / #165 · §4.3 Calibration bands — “underwriting margin / premium” Why does personal auto, homeowners and commercial have avg premium and claim frequency while "portfolio" has annual retention, multi-product share and u/w margin? Why does this exist for "Portfolio" but not other lines? |
Table 7 is redesigned so every line row shows the same three metrics (average premium, claim frequency, loss ratio) and the whole-book column carries the loss ratio plus the three statistics that exist only at book level (retention, multi-product share, underwriting margin), labelled as such; a paragraph “On the dashes” says why retention is not per line and why no whole-book premium or frequency is computed. | §4.3 Calibration bands, Table 7 | manuscript |
| RK‑80 | Word #167 · §4.4 Parameter-recovery validation — “ground truth is latent-but-known” what does this mean? |
Replaced: “the true retention rate is hidden from the model but known to us, because we generated it”. | §4.4 Parameter-recovery validation | manuscript |
| RK‑81 | Word #168 · §4.4 Parameter-recovery validation — “synthetic data permits a validation real data cannot…” I have issues with the sentence structure and meaning. |
The paragraph is rewritten to lead with the reader’s prior (synthetic data is usually the weaker evidence), then the one thing it permits (true retention is known, so recovered retention can be scored), then the result. | §4.4 Parameter-recovery validation | manuscript |
| RK‑82 | Word #169 · §4.4 Parameter-recovery validation — “same sentence” synthetic data is better than real data? How can it be when synthetic data is normally generated from real data? |
It is not better, and the sentence implied it was. Synthetic data permits one specific check that real data cannot: the true retention behind each customer is known, so the model’s recovered retention can be scored against it. Everything else about it is weaker. Rewritten as above; full answer in the response memo. | §4.4 Parameter-recovery validation; response memo | manuscript |
| RK‑83 | Word #170 · §4.4 Parameter-recovery validation — “CI-gate BG/NBD sentence” Can you write this more clearly? |
Rewritten in two short sentences (see RK‑84). | §4.4 Parameter-recovery validation | manuscript |
| RK‑84 | Word #171 · §4.4 Parameter-recovery validation — “CI gate” What is "CI gate"? |
Defined at first use — “continuous integration, the automated test run on every code change”; if any statistic leaves its band, the build fails — and the abbreviation is dropped from prose. | §4.4 Parameter-recovery validation; Appendix G Glossary | manuscript |
| RK‑85 | Word #172 · §4.4 Parameter-recovery validation — “0.9246” Why are the renewals so different between these families? |
Answered in the section: the families assume different things about how a customer leaves. BG/NBD is a non-contractual model — it assumes a customer can only drop out right after a purchase — so on an annual-renewal book it under-reads retention; the survival and Markov families read the contract structure directly. | §4.4 Parameter-recovery validation | manuscript |
| RK‑86 | Word #173 · §4.4 Parameter-recovery validation — “BG/NBD under-predicts by about 12 points” Doesn't this imply that this would not be a good family to use? |
Yes for retention level, and the paper now says so plainly: BG/NBD is not the recommended family for estimating the level of retention (L5). It stays in the comparison because it is the reference model of the CLV literature, its customer ranking still agrees closely with the others (0.9491 rank correlation with Pareto/NBD), the 12-point miss is the evidence that the family choice matters, and it is the base the headline hybrid corrects. | §4.4 Parameter-recovery validation; §5 Models; §11 Limitations (L5) | manuscript |
| RK‑87 | Word #175 · §4.5 Public datasets — “(~13 MB committed)” what does MB relate to? Is records a better term? |
Yes. File sizes are replaced with record counts. | §4.5 Public datasets | manuscript |
| RK‑88 | Word #177 · §5 Models — “heading” This section is beyond my abilities to review. |
Noted, and it shaped v4.0’s structure: §5 is on Path B (the implementation) in the reader’s guide, opens by telling the concept reader to skip to the model comparison (§5.6) without loss, and every family subsection opens with an “In plain terms” paragraph and an “Actuarial analogue”. | §1.5 Reader’s guide; §5 Models | answered manuscript |
| RK‑89 | Word #178 · §5 Models — “All six families implement one contract” Maybe "All six families (of assumption?) are run through the model." |
Rewritten: “All six families share one interface: the same inputs and the same output columns” (see RK‑22 on Word #62 for why they are families, not assumptions). | §5 Models | manuscript |
| RK‑90 | Word #180 · §5 Models — “numpy/scipy” ???? |
“The NumPy and SciPy scientific-computing libraries” at first use. | §5 Models | manuscript |
| RK‑91 | Word #184 · §5.3 Survival models — “coefficient list” should these terms be shown consistently for all families or do the different families require different assumptions? |
The families genuinely differ — the buy-till-you-die models have four shape parameters, the survival models a coefficient per covariate, Markov a transition matrix, the hybrid a validation score — so the lists cannot be identical. §5 says so in a paragraph “How the fitted values are reported”, and each subsection reports its values in the same order: the parameters, their meaning, then the value on the reference book. Table 10 explains the two survival scales (Cox on the log-hazard, AFT on log survival time). | §5 Models; §5.3 Survival models, Table 10 | manuscript |
Four rows are highlighted because they changed the paper’s framing rather than a sentence: RK‑8 (Word #24 — the abstract undercut the thesis), RK‑34 (Word #95 — valuing a book of business is a second use case), RK‑39 (Word #112 — fixed expense, where he and Robinson disagree and the paper now carries both views) and RK‑82 (Word #169 — the synthetic-data sentence). Each has a full-paragraph answer in the response memo. The remaining rows are the global rules v4.0 adopts — sentence length, jargon out, concept-first cross-references, definitions at first use — applied comment by comment so nothing is answered only in the aggregate.
One adjacent item is often read as his and is not: framework question 6(b) — losses on an ultimate versus an incurred basis — was raised in the same reply as still open, and it is still open. The synthetic book carries no loss development, and that is flagged in paper §10.
No written review comments have been received from either member to date. Geoff Werner’s asks on Call #7 (27 August) are recorded in §5b as R3‑1 to R3‑5, attributed from the recording with timestamps; nothing else on this page is attributed to either of them. We would rather say that plainly than attribute someone else’s point to the wrong reviewer — the acknowledgments in paper §15 credit design decisions only where they are traceable to a named input, which is why Kozlowski, Mondello and Robinson appear there with attributed contributions and the other two members are thanked as members.
Two consequences worth stating on the record. First, the paper’s ratemaking chapters lean on the standard ratemaking framework that Geoff Werner co-authored, so a review pass from him on §§6–7 — the relativity construction, the credibility basis, and the admissibility argument in §7 — would land on exactly the material with the least independent review so far. Second, the manuscript is at v3.2 with four passages still reading “provisional” pending POG answers; comments from either member arriving now still make it into the delivered paper rather than into an errata note.
tasks/call6-aug21-package-review.md — the recording itself is not in this
repository.Robinson and Mondello both closed the call the same way: “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.” Round 1 is therefore effectively accepted. Of the seven items raised on the call, five are closed in paper v3.3; one (R2‑7, Kozlowski’s feedback) arrived on 7 September and is dispositioned in §3; one (R2‑6, the email package) remains, and it is not researcher work. R2‑5 is the one worth reading first — the consistency check the group asked for found three real defects, and it is the only round-2 item that moves a number already published. The conclusion did not move, and the margin is wider.
| # | Raised | Commitment | Status |
|---|---|---|---|
| R2‑1 | §3.5, the filing versus planning basis. Mondello: “why is it revenue neutral?” Robinson supplied the right reading — hold the overall rate level neutral and redistribute on CLV — then said “I still question the filing basis versus planning basis here, and whether that’s necessary or not.” If you are reading your own marked-up v2.0 PDF, this is the comment you labelled AR10.1 / MM11.1 on the two-bases paragraph of §3.5 — the paragraph then quoted $17,470,511 and $20.09M, which are pre-v3.0; the current figures are $16,111,118 and $18.73M. This is the live residue of c21 and MM‑30, which the register had recorded as answered. | Three things, and the section is kept, not cut — it carries the paper’s main tenure caution. (1) Open with why the section exists: a ~2013 CAS presentation discussed filing CLV, which is why a filing basis was built at all. (2) Rename both bases — the researcher’s own view on the call was that “filing” and “planning” are confusing terms. (3) Write down the baseline: the flat-loss-ratio comparator is the tenure-average loss ratio, not the first-term one, which is exactly why the 1 yr cohort gains most and the 10+ cohort least (the deck on screen showed +15.8% and +4.6%, carried from before v3.0; at v3.2 the payload gives +17.28% and +4.84%) — a ten-year customer has already banked the improvement. Robinson reasoned to that live and it appears nowhere in the manuscript. | manuscript — rewritten at v3.3: motivation and citations added, baseline stated, both bases renamed revenue-neutral / level-effect throughout the paper, framework doc and toolkit output (the parameter and its values are unchanged). The naming is Call #7 poll Q1; the section stays. |
| R2‑2 | The claim that CLV rises with tenure and then falls after roughly ten years is attributed to two papers the researcher could not name on the call. | Done, and the answer is partly negative. The motivation is now sourced: McNulty (2013), the CAS Ratemaking Prize paper, whose §7.3 asks exactly whether two risks with identical loss costs but different renewal behaviour may be charged differently; and the CAS Price Optimization Working Party (2014), which states that the goal “may” be maximizing lifetime customer value and the result is “filed and implemented, subject to applicable filing laws.” (The 2013 CLV presentation itself — Firestone and Hindawi — never mentions filing.) The 10-year reversal is withdrawn: Wu and Lin (2009), 25 books and ~$29bn of premium, find loss ratios improving monotonically and converging at 3–5 years, no reversal; Reinartz and Kumar's inverted U is in interpurchase time, not tenure. Nothing in §3.5 depended on the claim, and it is now recorded as withdrawn. | manuscript — v3.3 |
| R2‑3 | Mondello: “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.” Deliberately “overly simplistic”, so a reader can follow the arithmetic without opening the repository. | Done — Appendix F, and it turned into the most consequential item of the round. The first version worked one example and stopped; an audit of all 24 tables against the reviewer's actual standard found that answered about a third of the ask. Appendix F now works every exhibit an actuary or regulator would check — the §3.5 normalisation, §6.1's credibility, both forms of the retention-adjusted loss ratio, expense recovery, the four-fifths screen, the rank-agreement result and the §8.6 reconciliation — and closes with F.12, an honest account of the three things that cannot be checked by hand (the MLE fits) and what to verify instead. Two denominators that were printed nowhere in the paper are now table rows (Table 13's 0.5603, Table 14a's 0.5564): a relativity whose divisor is absent cannot be checked at all. The paper grew 49 → 63 pp, and the audit found four further defects — see the row below. | manuscript — v3.3 |
| R2‑4 | Mondello: the cross-sell and upsell probabilities almost certainly fall as tenure grows; the toolkit and the planner take one point-in-time value. | Done — limitation L15 and §13 item 7 at v3.3. No model change, per the steer. L15 also records what bounds the exposure: the direction of the bias is not signable a priori, the growth term reaches no filing exhibit, and cross-sell is the smallest non-zero lever in the sensitivity grid at ±3% of book CLV. | manuscript — v3.3 |
| R2‑5 | The retention-adjusted loss ratio does not yet return consistent values across every scenario. | Done, and it found three defects — this is the one round-2 item that moves a published number. (i) The segment's mean retention was averaged over policy terms rather than customers, so a long-tenured household voted once per renewal (0.8808 against a true 0.6812; 6.03 implied expected years against 3.07). (ii) Each tenure year's premium entered as a within-segment share rather than at its absolute level, so a 250-customer segment carried nearly the weight of a 3,205-customer one. (iii) A horizon beyond the observed tenure span returned 0.0 for every segment and NaN for the book, silently. Collapsed to one segment the exhibit now reconciles to its aggregate counterpart — 0.5744 against 0.5742, previously 0.0285 apart. The conclusion is unchanged and the margin is wider: the 3+ product credit moves 0.9646 → 0.9425 and the expected-life ratio 1.7× → 2.9×; first-term loss ratios do not move at all. Five tests lock it, and all five fail against v3.2. (Current at v5.2, on the book’s persistency table: 0.9683 on 9.44 against 6.53 expected years.) | code — v3.3 |
| R2‑6 | Both reviewers asked for the package by email rather than through the gated hub. | Send v3.3 plus PDFs of the relevant pages, the planner link, the reconciled worksheet, and the per-comment action list — which is now an export of this page. Closed 9 September: the package went by email as v5.0 (paper and technical supplement, both memos, the reconciled worksheet, planner and hub links), which also carried v3.3’s changes. | answered |
| R2‑7 | Kozlowski’s feedback on v3.x was expected by email and had not arrived. | Received 7 September as CAS_CLV_Paper_v2.0_AJR+MM+RTK.docx — 93
comments on v2.0, Abstract–§5.3. Every one is dispositioned in §3 as
RK‑2 to RK‑91 and answered in the memo of 9 September. |
answered — superseded by §3 |
| # | What the audit of R2-3 found | Status |
|---|---|---|
| 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 one | in its skip pattern excluded every
Markdown table row. It was scanning 358 literals of the 1,257 the paper contains.
Four tables had drifted to pre-v3.0 values behind a green gate, two of them
contradicting the paragraphs that introduced them (Table 18's cohort means, Table 19's
profit bridge). This is the root cause of the three separate stale-figure corrections made
earlier the same day. |
code — gate now scans table cells; every drift-prone table is generated from the payload; the gate has tests of its own for the first time (14 of them, all failing against the previous version) |
| A2 | All six notebooks ran a 4,000-customer book while the manuscript reports 5,000 — so a reader reproducing a paper figure from a notebook got a different number. §8.6's figures had been hand-copied from one of them into the gate's external citation allowlist, where a stale-book number is unfalsifiable by construction. This is exactly the defect the gate was written to prevent, in the one place it could not see. | code — notebooks repointed and re-executed; §8.6 generated from the payload; the allowlist entries removed. §8.6's conclusion reversed and the subsection says so |
| A3 | Appendix B was structurally broken. Its heading, prose and first two tables were fused onto one line by the v2.0 Word round-trip, so the data dictionary the appendix exists to reproduce “rather than leave to the repository” rendered as literal pipe characters in the delivered DOCX and PDF. | manuscript — rebuilt and verified in the rendered DOCX, not the Markdown |
| A4 | Two adjacent worked examples used different discount conventions — Table 15 at $(1+d)^{-(t-1)}$, Appendix F.1 at $(1+d)^{-t}$ — with no note; and limitation L15 printed before L14. | manuscript — convention stated and reconciled in F.5; limitations reordered |
clv_base / clv_with_growth was ratified verbally by both
reviewers — c14 and MM‑22 need only
the Call #7 poll to minute it. And Robinson restated the one-time cross-sell treatment in
his own words — the value is the expected lifetime value of the secondary policy, scaled
by a probability below one, and per-term aggregation was “too high” — so
c16 is settled rather than merely accepted. The claim-count credibility
basis (c39) and the segment-level retention-adjusted loss ratio
(c41) were presented and not contested.docs/calls/transcripts/2026-08-27_call7_pointers.md; the recording itself is not
in this repository. Nothing below repeats a written comment; where an item coincides with one
of Kozlowski’s marked-up comments, the row says which.The call changed what kind of document v4.0 is. Werner (24:09): “the code’s all lost on me. But I could be the person who might read this and have a team of people that understand the code underneath me. You need to capture my attention, so I hand it to them.” Mondello (24:16): “first I want to understand it very simplistically, then you do the complicated coding part.” v4.0 is therefore written for two readers at once — a conceptual path and a reproducer’s path — and R3‑1, the early illustration, is the row that carries the most weight. Eight of the nine items land in the manuscript; one is an email.
| # | Raised | Commitment | Where it lands | Status |
|---|---|---|---|---|
| R3‑1 | Werner, Robinson, Mondello (16:39–27:45): an early “so what” illustration — two customers who look the same on a one-year view and differ on a five-year view; a static chart or table, not a widget; flat 90% retention is fine for the opener if caveated. | Built as the first thing after the introduction: two customers, one-year versus five-year margin, with a companion table at a flat 90% annual retention labelled as a simplification. The full retention estimation stays in the body. | §1.1 Two customers, two horizons (Figure 1) | manuscript |
| R3‑2 | Werner (05:46, 08:57, 21:34, 24:09), Mondello (24:16): two audiences — the conceptual reader who hands the paper to a team, and the reproducer; write in a business register; “capture people’s imagination quickly”. | v4.0 carries two reading paths. A reader’s guide names them; every technical section opens with an In plain terms callout and closes with a Reproduce this callout, so each audience knows what to read and what to skip. | §1.5 Reader’s guide; callouts throughout | manuscript |
| R3‑3 | Werner (31:16, 31:59): spell out abbreviations at first use; explain the four-fifths rule as if the reader has never heard of it. | Adopted. Abbreviations are expanded at first use throughout, the four-fifths rule is explained from scratch where the disparate-impact test is introduced, and a glossary is added. | §7.2 The disparate-impact screen; Appendix G Glossary | manuscript |
| R3‑4 | Kozlowski (03:44, 04:18), Werner (14:52): could this value a book of business — present value, economic value? If it serves both uses, say so regardless of the primary focus. | Both use cases are named early — rating decisions (primary, per the RFP) and valuing a book of business — and a new subsection gives the book-value reading of the existing results. Same disposition as RK‑34 (Word #95). | §1.2 What this paper is, and is not; §9.6 Valuing a book of business | manuscript |
| R3‑5 | Werner (08:57, 11:18, 11:44), Kozlowski (09:08): avoid “price optimization”; if the term must appear, say early and plainly that this is not airline-style optimization. | The term is removed everywhere except the §2 literature citations; §3.6 is retitled “The bright line: cost-based factors versus demand-based factors”; a boxed “What this paper is, and is not” goes early in §1. | §3.6 The bright line; §1.2; whole-paper sweep | manuscript |
| R3‑6 | Kozlowski (34:53), Werner (35:30): rewrite the §4.4 sentence “because the ground truth is latent but known, synthetic data permits a validation real data cannot” — readers assume synthetic data is inferior. | Rewritten to lead with that prior, then the one thing synthetic data permits, then the result. Same disposition as RK‑80 to RK‑84 (Word #167–#171). | §4.4 Parameter-recovery validation | manuscript |
| R3‑7 | Kozlowski (10:08, 10:48): retention changes after a claim; can the high-value risk be identified ex ante? “Ron Kozlowski was a great risk — but do we know that ahead of time?” | Recorded as a new limitation: the paper scores retention recovery against known truth, but the ex-ante identifiability of a high-value customer at inception is not tested and the public evidence on claim-frequency predictiveness is not assessed here. The exam paper he referenced is still to be identified. | §11 Limitations, L16 | manuscript |
| R3‑8 | Mondello (29:12), Robinson (42:24), Werner (42:31): share the second draft and the spreadsheet-gap reconciliation before the next call; send by email, one message, draft plus links — Teams chat links get lost. | The reconciled workbook already exists (docs/calls/2026-08-21_CLV_Discrete_Example_reconciled.xlsx); it is re-sent by email with the v4.0 draft and the portal links in one message. |
Email package | answered |
| R3‑9 | Pramod (16:39, 22:00), unanswered by the group: how should the scenario planner be described in the paper, and do the extra scenarios stay? | Decided by the researcher in the absence of a steer: the planner is described once, in the book-valuation subsection, as the tool that computes the book-average reading, and once in the reproducibility section as a deliverable; the extra scenarios stay in the planner and are not added to the paper. | §9.6 Valuing a book of business; §12 Reproducibility | manuscript |
clv_base / clv_with_growth pair; v4.0 keeps the pair, adds a plain gloss,
and puts the wording to the 10 September poll (RK‑3). Nobody answered how the planner should
be described in the paper; R3‑9 records the researcher’s decision so it can be
overturned rather than guessed at.docs/calls/2026-09-10_review_response_AJR_v5.md; Mondello’s reply and the two
tabs added to his workbook are docs/calls/2026-09-10_response_mondello_expense_timing.md.Fifteen rows: eleven manuscript, two code, three answered without a change (the two POG decision rows, R4‑4 and R4‑10, were adopted on the call and are counted with the manuscript rows). The only reported numbers that move are those of the hand-checkable worked example (R4‑14); no calibrated toolkit result changes, and the change memo’s superseded-values table carries every retired figure with its replacement.
| # | Raised | Response and what v5.1 does | Where it lands | Status |
|---|---|---|---|---|
| R4‑1 | Robinson (written, Abstract): You note that three design choices keep the framework usable in a regulatory market, but it's not quite clear to me from the subsequent sentences which three design choices you are talking about. You may want to make that a bit clearer! | Agreed. The three are the three sentences that follow: (1) two reported values, a base value for the customer as they are today and a with-growth value that adds expected future purchases; (2) expenses split by timing, so an in-force customer is charged renewal expense only and acquisition cost is treated as sunk; (3) losses allowed to vary with tenure, with value computed as a year-by-year sum rather than a single margin factor. The sentences carry no enumerators, which is the defect. Section 1.3, contribution 1, already lists the same three explicitly, so the abstract will be brought into line with it. v5.1 outcome: Abstract rewritten as an explicit (1)/(2)/(3) span, aligned to §1.3. |
paper.md:13 (abstract); model text at paper.md:63 | manuscript |
| R4‑2 | Robinson (written, §1.1): Love the addition of this section and the clear illustration of the benefits of the multi-year view. Should help to get the reader interested from the start. I also like the tabular example that showcases the calculations in an easy-to-trace manner. | Thank you. The section stays as written: the two-customer figure and the hand-checkable calculator table both remain, and the numbers are the v5.0 payload values. v5.1 outcome: No change; §1.1 stays as written (numbers now on the v5.1 convention, R4-14). |
paper.md:31-51 | answered |
| R4‑3 | Robinson (written, §1.2 (also §2.1, §6 opener)): Under the rating decisions use case, you note two sub-use cases - whether a retention-related credit or acquisition spend is justified. To me, the acquisition spend justification seems separate from a rating decision. It is not necessarily a rating decision to determine how much to spend on acquisition for a customer. Maybe the related rating decision is "how much of a new business credit can the insurer afford to provide given the CLV." Determining how much to spend on acquisition for a customer, however, is a key benefit of CLV, but I think it would need to incorporate expected bind rate, which I don't think is part of your scope? This same language is later used a couple other times in the paper. | Agreed on both points. Sizing acquisition spend needs an expected bind or conversion rate, and that is deliberately outside the framework: the no-elasticity invariant (a test on the survival covariate list) excludes conversion covariates, so the toolkit cannot supply one. A new-business credit, by contrast, is a rating decision and is cost-based: it is acquisition-expense recovery over the expected lifetime, which is exactly what the Section 6.4 expense-recovery exhibit measures. You are also right that the clause recurs: it appears in near-identical form three times in the paper (Sections 1.2, 2.1 and the Section 6 opener). The executive summary and leadership brief mention acquisition spend only in the recovery-period sense, not as a rating decision, so they likely stand. QUESTION FOR AJ: replace "acquisition spend" with "new-business credit" inside the rating-decision use, and move acquisition-spend sizing to the operational uses (Section 9.4) with an explicit note that it requires an expected bind rate and is out of scope? Or would you rather it be dropped from Section 1.2 entirely? Our recommendation is replace and relocate. v5.1 outcome: “Acquisition spend” → “new-business credit” at §1.2, §2.1 and the §6 opener; one sentence in §9.4 places acquisition-spend sizing (needs a bind rate) on the operational side of the §3.6 line. Executive summary and leadership brief needed no change. |
paper.md:57, :119, :448; check executive_summary.md:21, leadership_brief.md:10 | manuscript |
| R4‑4 | Robinson (written, §1.4): This is probably a question for others on the review group as this is my first time reviewing an RFP. Is it typical to include this type of section in the final paper or should this be removed before publication? | Fair question, and it is the group's call. Section 1.4 is one introductory sentence plus Table 1, an eight-row crosswalk from the RFP requirements to the sections that answer them. It is already fenced by a horizontal rule and every target section is cross-referenced elsewhere, so it lifts out with no loss to the narrative. It was included so the POG could verify scope against the research agreement. Journal convention (Variance, E-Forum) is not to carry RFP traceability in the body. QUESTION FOR THE POG: keep the crosswalk in the report delivered to CAS and move it to an appendix for the ScholarOne version, or move it to an appendix in both? Our recommendation is to move Table 1 to the technical supplement as an appendix and keep a one-sentence pointer in Section 1.5. v5.1 outcome: Adopted on the call. Table 1 moved to Supplement Appendix H, keeping its number so nothing else renumbers; §1.4 is one sentence pointing there. |
paper.md:72-87 | manuscript |
| R4‑5 | Robinson (written, §3.2 (names)): A note on the names - you may have inadvertently left this section in since the naming convention is no longer constrained/unconstrained. I see in the technical supplement you explain that the old naming convention is still used in the code; I think that is fine to keep but you may want to consider removing or changing in the main paper as I think it is confusing there. | Agreed. The paragraph was kept through v3.0 to v5.0 for readers who had seen the v2.0 draft; a fresh reader meets a term the paper never otherwise uses. The rename history is already in the supplement (Section 3.2 there) and the deprecated aliases are documented in both glossaries. The code still emits clv_unconstrained and clv_constrained as deprecated aliases for one release, as the supplement states. QUESTION FOR AJ: keep those aliases in the public v1.0 release on the casact GitHub and retire them in 1.1, or drop them before publication? Our recommendation is to keep them for one release so existing code continues to run. v5.1 outcome: “A note on the names” deleted from §3.2; paper Appendix C keeps only the code aliases. Supplement §3.2 history and Appendix G unchanged; the deprecated code aliases stay through toolkit 1.0 (retire in 1.1). |
paper.md:185 (delete); paper.md:1098, :1116 (trim); technical_supplement.md:84 (keep) | manuscript |
| R4‑6 | Robinson (written, §3.2 (upsell)): For the upsell section, you may want to clarify that the implicit assumption is that once a household moves to a higher coverage tier it stays there (right now you state that as if it is a fact of the world, but obviously in the real world people can also reduce coverage). | Agreed. It is a modelling assumption and should read as one. Coverage reductions are not modelled in v5.0; a user whose book shows material downgrades should net the upsell probability down or set the upsell value to zero. The same sentence appears in the supplement and will be changed in both places. v5.1 outcome: Upsell stated as a modelling assumption in paper and supplement; downgrade case added to L12; downgrade hazard named in §13 future work. |
paper.md:191; technical_supplement.md:94; paper.md Section 11 (L12) | manuscript |
| R4‑7 | Robinson (written, §3.4 (expense)): In the "Two presentations of the same convention" paragraph, you reference the NAIC expense ratio averages to get your 25% average. However, you note in the following paragraph that your expense views are all variable expense. My guess is that the NAIC expense ratios you are using would include fixed expenses as well, so the 25% might be high. I don't think you necessarily need to change anything, but you may just want to note that. | Agreed, and worth stating precisely. The 0.25 is the toolkit's legacy flat convention rather than an NAIC figure; the paper says the split is "consistent with" the NAIC 2024 industry range of 24.9 to 27.8 percent. That NAIC ratio is total underwriting expense and does include fixed general expense, so a strictly variable-only load would sit below it. The defaults are therefore conservative (they understate CLV) rather than aggressive. One sentence elsewhere in the paper (Section 5.3 area) says the 0.25 load "matches" the industry expense ratio, which overstates it and will be softened. No reported number moves. v5.1 outcome: §3.4 now says the NAIC ratio is total expense including fixed, that a variable-only user sets ratios below it, and that defaults stay at the legacy level; §4.3 “matches” → “is consistent with the total”; §10’s existing renewal-ratio sensitivity row is cross-referenced. |
paper.md:229, :349; Section 10 sensitivity table | manuscript |
| R4‑8 | Robinson (written, Supplement §3.4): In the technical supplement, I believe that your first formula didn't print correctly. | Confirmed and located. The piecewise expense formula in supplement Section 3.4 has every LaTeX command double-backslashed, so the Markdown-to-Word conversion emits literal text instead of a cases block. It is the only such instance in the supplement; every other display formula is escaped correctly. There is also no blank line after the closing delimiter, which folds the next paragraph into the formula. Both are build defects, not content defects. v5.1 outcome: Supplement §3.4 cases formula de-escaped with a blank line after it; new test module tests/test_paper_formulas.py fails on a double-backslashed command or a missing blank line in any rendered document. |
technical_supplement.md:108; scripts/render_paper.py | code |
| R4‑9 | Robinson (written, §3.6 (tendency to shop)): I understand that your framework does not contain any price sensitivity/elasticity. However, you note that it does contain any "tendency to shop." Wouldn't tendency to shop be implicitly included in any retention estimate? I.e., the very reason that someone defects is likely because they shopped elsewhere (whether it be for price or some other reason). | Agreed. The wording is wrong even though the design is right. Realized lapses, whatever prompted them, are inside the survival estimate, and Section 7 already says so: retention is "realized renewal behaviour as observed", a cost-side statistic in the same sense as a lapse rate in a reserve study. What the framework lacks is any variable that measures propensity to shop or that would let the model say how retention responds to a price change. The "In plain terms" box in Section 3.6 collapses that distinction and will be rewritten. v5.1 outcome: §3.6 plain-terms box and the demand-based bullet rewritten: observed retention is a cost, realized lapses are inside it, what is excluded is any willingness-to-pay variable. |
paper.md:291, :296; consistent with paper.md:559 | manuscript |
| R4‑10 | Robinson (written, §3.6 (filing language)): In general, I agree that demand-based factors probably shouldn't enter a filing, but I also don't know if your paper should adamantly state that these should never be in a filing. I would hate for a regulator to use this against a carrier trying to support demand-based pricing in some way. Maybe you could rephrase to note that your toolkit focuses on the cost-based measures, but not necessarily that an actuary should never try to file demand based measures. Curious for the thoughts of the other reviewers. | Agreed, and it is the right correction for a CAS-published paper. The intended claim is about this toolkit, which produces only cost-based exhibits and enforces that in code, not a normative rule for the profession. The strongest bright-line sentences sit in Sections 1.2 and 3.2 ("never enters a rate filing") and in the Section 3.6 demand-based bullet ("None of them may enter a rate indication in a strict jurisdiction"); Section 7 is already conditional on jurisdiction. Filing eligibility of demand-based factors is jurisdiction-specific (roughly twenty states issued price-optimization bulletins after the NAIC 2015 white paper, others are silent), and the paper should describe that rather than decide it. QUESTION FOR THE POG (AJ asked for other views): adopt "the toolkit confines itself to cost-based measures; whether a demand-based measure may be filed is a jurisdictional question this paper does not decide" as the standard formulation throughout? Our recommendation is yes, and to carry it as the reserve poll question for Call #8. v5.1 outcome: Adopted on the call. Bright-line sentences at §3.2, Figure 3, §3.6 and the executive summary now read “the toolkit confines itself to cost-based measures”; §11 says the paper takes no position on filability; §7 unchanged. |
paper.md:59, :170, :174, :296; Section 7; Section 11 | manuscript |
| R4‑11 | Robinson (written, §6.2.1): Love this additional example - this is a key benefit of the framework you are laying out. | Thank you. The figures are on the persistency-table basis adopted at Call #6: 3+ product relativity 0.9684 on 9.44 expected years, book row 0.5334 (Table 14, Exhibit 11). v5.1 outcome: No change. (Corrected at v5.2, C‑30 / R5‑3: 0.9683 on 9.44 years; the book row is unchanged.) |
paper.md:499-505 | answered |
| R4‑12 | Robinson (written, Appendices): Note that I did not closely review the appendices. | Noted. Two of the items above touch the appendices: R4-5 trims the Appendix C glossary aliases and R4-4 may add a supplement appendix. Both will be flagged in the v5.1 change memo so a targeted appendix pass is cheap. QUESTION FOR AJ: would you be willing to read Appendix C only (about two pages) once R4-5 lands? v5.1 outcome: Appendix deltas flagged in the change memo §4c: Appendix C (R4-5) and Supplement Appendix H (R4-4). |
paper.md Appendix C; paper/changes_since_v2.md | answered |
| R4‑13 | Mondello (spreadsheet, 10 Sep; Robinson on the call): does the 0.20 renewal expense ratio also apply in the first policy term, on top of the 0.40? | No. The 0.40 is the first term’s total variable expense ratio and replaces the 0.20 there (§3.4, glossary, Supplement §3.4, framework doc §2.2, Table 15 / F.5, the planner). His ALT tab ($363.07) is the framework’s reading. Answered in his own workbook (two tabs added, 11 Sep). | §3.4; 2026-09-11_My_Simple_CLV_Discrete_Example_002_paper_tabs.xlsx |
answered |
| R4‑14 | What the question exposed: the printed worked example (§1.1 page-4 table, §8.1, Appendix A, Supplement F.1, Figures 2 and 5) charged $580 in a year-0 row and $290 in year 1 — 0.60 of first-year premium — contradicting §3.4. | Corrected at v5.1 in cohorts.micro_cohort_walkthrough and the §1.1 teaching table: the first term carries 0.40 in place of 0.20 and is discounted with every other term. Printed figures move: $94.55 → $406.03 (five-year, 90%), −$392.04 → −$80.56 (short renewer), $782.14 → $1,093.62 (ten-year), $3,126.62 → $5,306.98 (cohort), breakeven year 4 → 2. The §3.4 “same dollars, same order” paragraph is replaced. No calibrated toolkit result moves: predict_clv, Table 15 / F.5 and the planner already used replacement. |
§1.1, §3.4, §8.1, §8.2, Appendix A; Supplement §3.4, F.1, F.5; Figures 2, 5, 16; Exhibits 8, 12; src/cas_clv/cohorts.py, tests/test_cohorts.py |
code |
| R4‑15 | Follow-on (Robinson): when is the first term discounted? Table 15 / F.5 leave year 1 undiscounted; the worked example could go either way ($406.03 or $438.52). | Decided 15 Sep (researcher); confirmed by the POG on Call #9, 24 Sep: the worked example discounts every term, the first included, at year end ($406.03); Table 15 / F.5 keep their inception placement. Each exhibit now states its placement and §3.4 quantifies the gap ($32.49 on the five-year example). The planner already used the worked example’s placement. | §3.4; Supplement F.5 convention note; so_what.teaching_table.paths[].placement_gap |
manuscript |
docs/calls/2026-09-23_review_response_MM_v5_appendix_f.md; the
workbook is now the paper's companion supplementary file.Seven rows: three manuscript, two code, one build, one answered. One correction moves published figures, by 0.0001 (R5‑3); every other row changes presentation only, and the change memo’s superseded-values table carries the retired figures.
| # | Raised | Response and what v5.2 does | Where it lands | Status |
|---|---|---|---|---|
| R5‑1 | Mondello (Appendix F, all): he was reading v5.0, whose F.1 charged 0.60 of first-year premium against §3.4. | Already corrected at v5.1 on his Call #8 finding. Answered by sending the current version with the companion workbook, whose what-changed tabs list every figure that moved. | change memo §1c | answered |
| R5‑2 | Mondello (F.7 step 2): the worked sentence and the table disagree in the last digit on all five segments. | Confirmed on Call #9. F.7 prints segment premium and loss to cents and carries the worked loss ratio and the book row (0.560328) to six places, the precision the toolkit divides at. No result moves. | Supplement F.7; ratemaking.book_loss_ratio_6dp |
manuscript |
| R5‑3 | Mondello (F.8): the relativity cannot be closed from anything published. | Confirmed on Call #9, with a corrected diagnosis. The book row is total lifetime loss over total lifetime premium across the segment rows; the chain failed because the toolkit rounded each segment's lifetime loss ratio to four places before dividing. Fixed in the toolkit, with a regression test. Two published relativities move by 0.0001: 3+ products 0.9684 → 0.9683, mono-line 1.0955 → 1.0954 (and one region row 0.9356 → 0.9355). F.8 now prints the book row's lifetime premium and loss, and closes at four places. | §6.2.1, Table 14a; Supplement §6.2.1, F.8; Exhibit 11; executive summary; src/cas_clv/ratemaking.py, tests/test_paper_gate.py |
code |
| R5‑4 | Mondello (F.6 step 1): the TOTAL row is not a column total. | Confirmed on Call #9. Each TOTAL cell is labelled for what it is (sum of weights, divisor, total weight × divisor) and the text says the row is not a column total. | Supplement F.6 | manuscript |
| R5‑5 | Mondello (F.6 step 1): the relative-multiplier column reads as a geometric series and is not one; the curve's anchor is never printed. | Confirmed on Call #9. One paragraph says each row is a loss-weighted average over customers with different starting tenures, why the column starts at tenure 2, and prints the anchor 1.1511. F.12 now lists the column among the things that cannot be checked by hand. | Supplement F.6, F.12 | manuscript |
| R5‑6 | Mondello (F.9): the two ratio columns disagree on half the rows, and the book median is never printed. | Confirmed on Call #9. Both columns kept and captioned (printed-rate quotient vs the toolkit's unrounded ratio); the median ($1,755.78) printed. The minimum is now taken over both proxies, with a gate test that fails if a region row goes lowest. | Supplement F.9; regulatory.favorable_threshold_median_clv; tests/test_paper_gate.py |
code |
| R5‑7 | Mondello (F.4, F.5, F.12, F.13): generator hygiene found while building the workbook. | Confirmed on Call #9. The expense ratios and the DERT-identity error are read from the payload; F.13 lists the normaliser keys; F.5's year-1 line prints the inputs to four places and closes at $159.22. | Supplement F.4, F.5, F.12, F.13 | build |
As of 27 September one register row is open (RK‑46, the basis names); four closed rows amend an earlier binding decision and wait on POG ratification, which was put to the 10 September poll and is not yet minuted; three POG questions from August are still unanswered; and three items are blocked on CAS provisioning or a venue decision. Closed since the last revision of this table: hub access (MM‑A3, public since 8 Sep), the email package (R3‑8, R2‑6, sent 9 Sep) and the 22% underwriting margin (stated in §4.3).
| Item | Whose | State | What closes it |
|---|---|---|---|
Variant naming — clv_base / clv_with_growth |
c14, MM‑22 | Shipped; amends the binding two-variant decision of 2 July, so it needs minuting. v4.0 adds a plain gloss (“the customer as they are today” / “plus expected future purchases”); Robinson’s single-line / multi-line was not adopted (RK‑3) | Call #6 poll Q4, carried to Call #7 Q2; gloss wording to the 10 September poll; ratification not yet minuted |
| Fixed expense — marginal default plus a named fully-allocated view | RK‑39 (Word #112) vs c19 (Word #111) | Kozlowski and Robinson disagree. v4.0 keeps marginal CLV (variable expense only) as the
default and adds a fully-allocated view on the existing
Economics.fixed_expense_per_term parameter, with a worked example in
§3.4 valuing the same customer both ways and guidance on which to use (marginal for a
decision about one customer or segment; fully-allocated for valuing a book, §9.6).
The views differ by a level effect that grows with expected tenure; the §6 exhibits
are computed on the marginal view and are unaffected. Amends the binding 2026-08-16
expense decision, so it needs ratifying |
10 September poll — amendment on review; ratification not yet minuted |
| §3.5 basis names — revenue-neutral / level-effect | RK‑46 (Word #122), R2‑1 | Renamed at v3.3; Kozlowski asks whether Mondello and Robinson follow the paragraph. §3.5 states that the names were put to the POG and are on the poll for the next call | Call #7 poll Q1, carried to 10 September; ratification not yet minuted |
| Ex-ante identifiability of the high-value customer | R3‑7 (Kozlowski, Call #7) | Recorded as limitation L16 in v4.0; the exam paper on claim-frequency predictiveness he referenced is not yet identified | A citation from Kozlowski, or a future validation study — out of scope for v4.0 |
| Regulator view of the retention-adjusted exhibit | c46, limitation L13 | Argued, conceded, and documented — but no regulator has reviewed either version | Call #4 poll Q3: may a tenure relativity enter a filed exhibit? This is the one that matters most. |
| How the tenure loss curve ships | MM‑A1, MM‑30, limitation L4 | L4 is answered, and answered negatively: the designed five-year cross-carrier
test cannot be run on public data by anyone, neither public panel reproduces our 4.22%
magnitude, and one fund-year of catastrophe experience flips the Wisconsin gradient from
+19.93%/yr to −7.93%. The curve therefore ships as an illustrated mechanism,
not an industry parameter, and loss_trend stays an exact no-op. Restated, not
ratified. |
Call #7 poll Q3 |
| Four passages still reading “provisional” | Call #4 poll Q1–Q4 | Unanswered since 6 August | Any answer — the passages resolve as soon as the POG picks |
| Ultimate vs incurred loss basis | Framework Q6(b) | Open since 18 June; the synthetic book carries no loss development (paper §10) | POG steer |
ScholarOne credentials and the github.com/casact repository |
CAS | Overdue since roughly 19 June. Gates the toolkit release; there is no local work-around. | CAS provisioning |
| Submission venue — Variance or E-Forum | CAS | The largest remaining schedule risk. Drives the reference template and the abstract’s target length. The abstract is now 250 words. | Call #6 poll Q1 |
| RPM 2027 deadline and submission route | CAS | Package drafted and validated against every webform and accessibility limit; open since roughly 30 June | Call #6 poll Q2 |
c9 … c75MM‑A1 … MM‑A34, 13, 22, 30, 44CAS_CLV_Paper_v2.0_AJR+MM.docx — 24
comments across both reviewers.P10, N17, …RK‑1 … RK‑91CAS_CLV_Paper_v2.0_AJR+MM+RTK.docx, Word ids 12–184), in Word-id order
(90 rows: three pairs of comments on one phrase share a row);
each row names its Word id, so RK‑39 and Word #112 are the
same comment. Numbering gaps in the Word ids are his document’s.R2‑1 … R2‑7; R3‑1 …
R3‑9nt = DERT(t) − DERT(t−1).Provenance. Every row on this page is transcribed from a source
in the project repository, and every figure is from a seeded run
(set_seed(42)) recorded in paper/paper_numbers.json. Sources:
2026-08-17_review_response_AJR.html (Robinson,
point by point) ·
2026-08-21_review_response_MM.html (Mondello,
including the worksheet reconciliation) ·
docs/calls/2026-07-02_response_expense_question.md (Kozlowski, July) ·
CAS_CLV_Paper_v2.0_AJR+MM+RTK.docx and
tasks/rtk-comments-v2.0-extracted.md (Kozlowski, 93 comments, August) ·
2026-09-09_review_response_RTK.html (Kozlowski,
point by point) · docs/calls/transcripts/2026-08-27_call7_pointers.md
(Call #7) · the running
POG-inputs log in docs/calls/README.md · paper §15 acknowledgments
· docs/01_clv_framework.md §§2.1–2.3 for the binding
decisions.
Reproduce. python docs/calls/phase6_package_review_data.py derives the
changed-number tables; python docs/calls/phase6_mondello_example_reconciliation.py
rebuilds the corrected workbook and its reconciliation.
Gate at the time of writing. 122 tests passing ·
ruff clean · mypy clean · number-drift check
0 unmatched literals across the paper and the executive summary · manuscript
v3.3; v4.0 in preparation for 10 September · executive summary 3 pp.