Technical Notes#
Status: Draft, 2026-08-03 (all cited sources accessed 2026-08-03).
Scope note. These notes specify a reference liability cash-flow projection model
for the standardized composite product defined in product-spec.md (same directory).
This is not any single insurer’s product. [S#]/[R#] tags refer to the source list in
sources.md, numbering carried from _research/pension-annuity.md; [REG-R#] tags
refer to the cross-product reference library
references/regulatory-and-actuarial-references.md (its own R-numbering; research
provenance in _research/regulatory-actuarial.md). std marks
standardizations introduced for the reference implementation. Parameter values are
identical to those in product-spec.md; the mechanics anchor is one carrier’s
pension annuity [S1] [S2].
Model scope and conventions#
Purpose. Project gross best-estimate liability cash flows (annuity instalments to annuitant and dependant, guarantee-period payments, value-protection lump sums, maintenance expenses) for a single pension annuity in payment. Discounting, the matching adjustment and reserves are not computed (see Valuation and reserve pointers).
Mortality is the model. The contract has no premiums after outset [S2 §1.1], no surrender value [S2 §12] [S5 cl.14.7], no account value and no policyholder options after the cancellation window [S1 p4]. The only decrements are deaths; the only stochastic drivers are longevity and (for indexed options) inflation. This is the design property that makes the liability MA-eligible R1.
Projection frequency. Monthly grid, 0-based: t = 0, 1, …, proj_len − 1 months from the start date std. Month t runs from time t to time t + 1, so the first projected month is t = 0, the policy year containing month t is the 1-based label y = ⌊t/12⌋ + 1, and proj_len is the number of months projected — the exclusive end of the frame. State variables (survival l, the cumulative instalment schedule G and the value-protection balance VPbal) are indexed by a time point k with k = 0 at the start date, so month t opens with the state at k = t and closes with the state at k = t + 1; that index does not move with the frame. Payment dates fall on the grid per the frequency m; exact-day mechanics (one carrier’s first-of-month payments and stub proportioning [S5 §§5.2–5.3], another’s working-day adjustment [S2 §2.4]) are not modeled std.
Timing conventions std. Escalation is applied at the start of the month containing the policy anniversary (first at t = 12) [S2 §3.3]. Advance instalments are paid at the start of a payment period and require survival at the start; arrears instalments at the end, requiring survival at the payment date. Deaths are decremented at end of month; a death in month t means the life does not receive an arrears payment due at the end of month t [std convention].
Age basis. Age last birthday (ALB) std, chosen to index the std ONS life-table proxy by single year of age R13; the ONS convention itself is unverified. Annual rates convert monthly as q_m = 1 − (1 − q_x)^(1/12) std.
Limiting age. ω = 115 std: the std base table is extended beyond its maximum tabulated age by log-linear extrapolation of qx, capped at 1 at ω.
Currency and model points. GBP throughout [S2 §1.3]. Single-policy model points, projected on an expected (probability-weighted) basis: survival probabilities multiply scheduled per-policy cash flows. No aggregation logic is specified here.
Joint-life independence. Annuitant and dependant mortality are independent std (common-shock/”broken-heart” dependence is a documented model risk).
Model point attributes#
Attribute |
Type |
Example (worked configuration) |
|---|---|---|
|
currency |
100,000 [S1 p11] |
|
int (ALB) |
65 [S1 p11] |
|
enum {M, F} |
M std |
|
float ≥ 1 (1 = standard; enhanced overlay) |
1.0 std |
|
bool |
true |
|
int (ALB) |
62 std |
|
enum {M, F} |
F std |
|
float ≤ 1 [S1 p9] |
0.50 std |
|
bool (with/without overlap [S2 §§5.9–5.11]) |
false std |
|
currency p.a. |
5,400 std (see Worked example) |
|
enum {12, 4, 2, 1} [S2 §2.2] |
4 |
|
enum {advance, arrears} [S2 §2.3] |
arrears |
|
bool (arrears only [S2 §4]) |
false |
|
enum {level, fixed, rpi_catchup, lpi5} (spec menu) |
fixed |
|
float ≤ 0.10 [S2 §3.2] |
0.03 std |
|
int, 12–360, 0 if none [S1 p10]; XOR with VP [S2 §§6.7, 7.6] |
0 |
|
float ≤ 1 [S1 p11]; v + δ ≤ 1 on first-death basis [S2 §7.3] |
0.50 std |
|
enum {first_death, last_survivor} [S2 §7.3] |
first_death |
The premium P is the amount applied to the annuity after PCLS and adviser charges [S1 p4]; PCLS itself is pre-purchase and outside the model. A(1) is a pricing input: no insurer publishes a rate card, so A(1) is taken from a quote or calibrated to the anchor (£100,000 at 65 buying £6,657 p.a. with 50% VP, January 2026 [S1 p11]; the illustration’s frequency/timing/escalation basis is not recorded).
State variables#
Variable |
Description |
Updated |
|---|---|---|
|
Annualized income in policy year y (annuitant scale) |
anniversaries |
|
Running peak of the RPI reference index (catch-up state) |
anniversaries (rpi_catchup only) |
|
Cumulative gross instalments scheduled up to time k; G(0) = 0 |
payment dates |
|
Annuitant survival probability to time k; l_a(0) = 1 |
monthly |
|
Dependant survival probability to time k; l_d(0) = 1 |
monthly |
|
Probability annuitant dies in month t = l_a(t) − l_a(t+1) |
monthly |
|
Remaining guarantee months at the start of month t = max(0, n − t) |
monthly |
|
Value-protection balance = max(0, v × P − G(k)) |
payment dates |
Because instalments while the annuitant is alive are deterministic given the escalation path, G(k) and VPbal(k) are deterministic schedules in a deterministic projection — the expected VP outgo needs no path simulation (see recursions).
Assumption inputs#
Three classes are distinguished explicitly.
(a) Contractual / guaranteed elements (cited)#
Input |
Value |
Basis |
|---|---|---|
Instalment amount |
A(y)/m at each payment date |
[S1 p8] [S2 §2.2] |
Escalation rule |
per |
[S2 §3.2, §3.3, defs]; LPI floor harmonization std (spec footnote 5) |
Dependant’s income |
δ × income, same escalation basis; % of the higher of income at death and at guarantee end |
[S2 §§5.12–5.13] |
Overlap rule |
with: dependant stream runs during remaining guarantee; without: starts at guarantee end |
[S2 §§5.9–5.11] |
Guarantee period |
n months of instalments certain, escalation continuing as if alive |
[S2 §§6.5–6.6] [S7 §4.2] |
Value protection |
max(0, v × P − G(death)) on the chosen basis; v + δ ≤ 1 (first-death) |
[S1 p11] [S2 §7, §7.3] |
Surrender value |
none, at any time |
[S1 p4] [S2 §12] [S5 cl.14.7] |
Charges to policyholder |
none (priced into the rate) |
[S1 p6] |
(b) Insurer-discretionary current elements#
None post-purchase. The contract is non-participating [S7 §7.9] with all options fixed at outset [S1 p4]: there are no bonus rates, no reviewable premiums, no market value reductions, and no discretionary charges — class (b) is empty for this product. The only insurer-discretionary quantity is the annuity rate at purchase (pricing, not an in-force element); its snapshot is the January 2026 anchor quote [S1 p11], and day-to-day rate setting is not publicly documented unverified.
(c) Behavioral / experience assumptions (modeler’s view)#
Input |
Recommended basis |
Basis tags |
|---|---|---|
Base annuitant mortality |
Proper bases: SAPS S3/S4 pensioner tables (S4 released February 2024, graduated on 2014–2019 data) R10 R11 or the insured-annuitant PMA16/PFA16 family REG-R27. Both are restricted to CMI Authorised Users R11 REG-R22, so the reference basis is a std proxy: latest ONS UK national life table qx by age/sex R13 × annuitant adjustment α = 0.80 |
|
Mortality improvements |
CMI Mortality Projections Model, cited by name/version: CMI_2024 (WP201, June 2025, calibrated to E&W data to 31 Dec 2024) R12; current version CMI_2025 (WP211, March 2026) REG-R30. Model software restricted; reference fallback is a std deterministic scale: 1.25% p.a. reduction in qx for ages ≤ 90, tapering linearly to 0% at age 110, applied from the base table’s data mid-year |
|
Enhanced/impaired rating |
Overlay on qx: q_rated = min(1, θ_a × q_base), θ_a ≥ 1 (equivalently a rated-age offset); standard life θ = 1.0 |
existence [S1 p5] [S4] [S6] [S9]; overlay std (iii) |
Lapse / surrender |
None — no surrender value exists |
[S1 p4] [S2 §12] [S5 cl.14.7] R1 |
Maintenance expense |
£30 per policy per annum, payable monthly while any payment obligation remains, inflating at the RPI assumption |
std (iv) |
RPI inflation (for indexed options) |
3.0% p.a. deterministic |
std (v) |
(i) The SAPS table naming convention (e.g. S3PMA/S3PFA) is [unverified — not stated on the fetched page] R10. ONS national life tables are period tables of population mortality, freely downloadable and updated annually (latest release dated 10 December 2025 per the fetched dataset page) R13; population mortality is heavier than annuitant experience, hence the α < 1 adjustment. α = 0.80 is a shape-level placeholder, not calibrated to any published annuitant-vs-population comparison — a production basis must license CMI tables R11 REG-R22. (ii) CMI_2025 projects improvements converging to a user-chosen long-term rate with no default recommendation REG-R30 detail marked unverified in the reference library; the std flat-then-taper scale exists only so the reference implementation is runnable without CMI access, and materially understates the age–period–cohort structure of the real model R12. (iii) Insurers’ rating structures (postcode, condition-specific factors [S1 p5] [S9]) are not public; the multiplier form is the simplest overlay that reprices longevity without touching contract mechanics. (iv) No insurer publishes expense assumptions (charges are priced into the rate [S1 p6]); £30 p.a. is a round placeholder for in-payment administration. Acquisition cost is out of scope (single-premium, priced-in). (v) Deterministic RPI cannot value the RPI floor, the catch-up ratchet, or the LPI cap — all inflation options. See Key sensitivities.
Cash flow components and recursions#
Notation (defined once, used throughout)#
Symbol |
Meaning |
|---|---|
t |
month index from the start date, 0-based: t = 0, 1, …, proj_len − 1; month t spans time t to t + 1; policy year y(t) = ⌊t/12⌋ + 1 |
k |
time point from the start date, k = 0 at the start date; the state indices l(k), G(k), VPbal(k) |
a |
anniversary count, a = 0 at outset, one step per policy year — a different scale from k, and the index of I(a), peak(a) |
s(t) |
the payment point of month t: t + 1 (arrears, end of the month) or t (advance, start of it) |
m |
payments per year (12/4/2/1); the j-th instalment (j = 1, 2, …) falls in month 12j/m − 1 on arrears, paid at the end of it, or month 12(j−1)/m on advance, paid at the start; T is the set of those months |
A(y) |
annualized income in policy year y; inst(t) = A(y(t))/m for t ∈ T |
g |
fixed escalation rate (0.03 std, ≤ 0.10 [S2 §3.2]) |
I(a), peak(a) |
RPI reference index at anniversary a and its running maximum (catch-up state) [S2 defs] |
δ |
dependant’s percentage (0.50 std, ≤ 1 [S1 p9]) |
n |
guarantee period in months (0 or 12–360 [S1 p10]) |
v |
value-protection percentage (0.50 std, ≤ 1 [S1 p11]); v + δ ≤ 1 on first-death basis [S2 §7.3] |
P |
purchase price (100,000 [S1 p11]) |
G(k) |
cumulative gross instalments scheduled up to time k; month t’s instalment enters at G(t+1) |
q_a(t), q_d(t) |
monthly mortality of annuitant/dependant in month t (rated, improved) |
l_a(k), l_d(k) |
survival probabilities to time k; d_a(t) = l_a(t) − l_a(t+1) is the death density of month t |
w(t) |
dependant-stream availability: 1 if overlap or t ≥ n, else 0 [S2 §§5.9–5.11] |
c_e, π |
maintenance expense p.a. (30 std) and expense/RPI inflation (0.03 std) |
Dimensional check: A(y) is currency per annum; inst = A/m is currency per payment; G, P, VP lump sums are currency; q, l, δ, v, w are dimensionless. Every cash flow below is currency per month.
Escalation update (start of month 12(y−1), y ≥ 2) [S2 §3.3]#
level: A(y) = A(y−1)
fixed: A(y) = A(y−1) × (1 + g)
lpi5: A(y) = A(y−1) × (1 + min(0.05, max(0, rpi_Sep(y−1)))) [S2 §3.2, defs; floor [S5 §7.1.4][S9 §4.3]]
rpi_catchup: see pseudocode [S2 defs]
RPI catch-up pseudocode (path-dependent ratchet [S2 defs]; a second carrier operates the same rule [S9]):
# I[a] = RPI reference level for anniversary a
# (index for the 12 months ending six months before the anniversary [S2 defs])
peak = I[0] # reference level at outset
for a = 1, 2, ...: # a-th anniversary
if I[a] > peak:
A = A * (I[a] / peak) # increase by the excess over the prior peak
peak = I[a]
# else: A unchanged (income frozen until the index exceeds its peak)
Equivalently A(y) = A(1) × max(I(0..y−1)) / I(0): income is indexed to the running peak of the reference index. Under the deterministic RPI assumption (3.0% std) the index is monotone and the ratchet never binds, so rpi_catchup degenerates to fixed-3%; the ratchet has value only under stochastic inflation (see sensitivities).
Scheduled payment schedule (per policy, before survival weighting)#
At each payment month t ∈ T: scheduled annuitant instalment inst(t) = A(y(t))/m; scheduled dependant instalment δ × inst(t). Update G(t+1) = G(t) + (instalments scheduled in month t). The dependant’s amount uses δ × the income “as if alive” A(y(t)): this implements the contractual “% of the higher of income at death and income at guarantee end” [S2 §5.12] exactly, because under the (non-decreasing std menu) escalation options the as-if-alive income path is monotone, so the higher-of base plus same-basis escalation [S2 §5.13] reproduces δ × A(y(t)) at every later date.
Expected cash flows (month t)#
Annuity outgo (annuitant stream with its guarantee floor, plus dependant stream), for t ∈ T, survival read at the payment point s = s(t) — s = t + 1 on arrears and s = t on advance std:
E[ANN(t)] = inst(t) × max(1{t < n}, l_a(s)) — certain during guarantee [S2 §6]
+ inst(t) × δ × (1 − l_a(s)) × l_d(s) × w(t) — dependant stream [S2 §5]
The first term pays the full instalment regardless of survival while the guarantee runs (annuity-certain floor [S2 §§6.5–6.6] [S7 §4.2]) and l_a(s) × inst(t) thereafter. The second term pays the dependant when the annuitant is dead and the dependant alive, gated by w(t): with overlap both streams run during the remaining guarantee; without overlap the dependant stream starts at guarantee end [S2 §§5.9–5.11]. (Guarantee and VP never coexist in the representative design: n > 0 ⇒ v = 0 [S2 §§6.7, 7.6].)
Proportionate final payment (arrears with proportion only [S2 §4]): for a death in month t, the accrued stub to the next scheduled instalment is approximated as
E[PROP(t)] = d_a(t) × (h(t) + 0.5) / (12/m) × inst(next(t)) **[std half-month accrual]**
where h(t) is the number of complete months from the last payment date to time t, the start of the death month, and next(t) is the first payment month at or after t. Without proportion (representative default) this term is zero and nothing is paid for the final partial period [S2 §4].
Value protection (first-death basis; n = 0):
E[VP(t)] = d_a(t) × VPbal(t), VPbal(k) = max(0, v × P − G(k)) [S1 p11][S2 §7]
G accumulates gross instalments scheduled while the annuitant is alive; measuring the balance at time t — the start of the death month, before the instalment due at its end — implements “instalments already paid” for a mid-month death [std discretization]. On the last-survivor basis, replace d_a(t) with the density of the last death, d_last(t) = d(l_a + l_d − l_a l_d)(t), and let G accumulate the dependant’s instalments too [S2 §7.3] [S5 §8.4]. (One carrier’s variant additionally nets guarantee payments due, excluding future RPI/LPI increases [S7 §4.3] — implementable by extending G with guarantee outflows.)
Maintenance expense:
E[EXP(t)] = (c_e / 12) × (1 + π)^(y−1) × IF(t) **[std]**
IF(t) = min(1, max(1{t < n}, l_a(t+1)) + 1{δ>0} × (1 − l_a(t+1)) × l_d(t+1))
IF(t) is the probability any payment obligation remains (guarantee certain, annuitant alive, or dependant stream in payment) std.
Total gross liability cash flow: CF(t) = E[ANN(t)] + E[PROP(t)] + E[VP(t)] + E[EXP(t)]. There is no premium income (the single premium is paid at outset, before the first projected month, and is a pricing input, not projected [S2 §1.1]) and no surrender outgo [S2 §12].
Mortality construction#
q_base(x, s) = ONS qx by age/sex [R13] × α, α = 0.80 **[std]** (proxy for SAPS S4 [R10][R11] / PMA16-PFA16 [REG-R27])
q_imp(x, c) = q_base(x) × (1 − f(x))^(c − c_0) **[std]** improvement fallback (f = 1.25% p.a. ages ≤ 90, linear taper to 0 at 110; c_0 = base-table data mid-year; production: CMI_2025 with a chosen long-term rate [R12][REG-R30])
q_rated(x, c) = min(1, θ × q_imp(x, c)) **[std]** enhancement overlay
q_m = 1 − (1 − q_rated)^(1/12) **[std]**
l(k) = l(k−1) × (1 − q_m(k−1)), l(0) = 1, separately for annuitant (θ_a) and dependant (θ_d)
(q_m(t) is the rate of month t, which carries survival from time t to time t + 1.)
Monthly processing order#
If t starts a policy year (t = 12(y−1), y ≥ 2): apply the escalation update (including catch-up state) [S2 §3.3].
If t ∈ T: record scheduled instalments; update G(t+1) = G(t) + instalments.
Decrement mortality: update l_a(t+1), l_d(t+1) and the densities d_a(t) = l_a(t) − l_a(t+1), d_d(t).
Compute expected payment flows E[ANN(t)], E[PROP(t)] using survival to the payment point s(t) (arrears: end of month t, i.e. l(t+1); advance: start of month t, i.e. l(t)) std.
Compute E[VP(t)] from d_a(t) and VPbal(t); update VPbal(t+1).
Accrue E[EXP(t)].
Stop when IF(t) < 10^-6, or at the first month in which every in-scope life has reached the limiting age (⌊t/12⌋ + x_a ≥ ω and, if a dependant is present, ⌊t/12⌋ + x_d ≥ ω), ω = 115 std — so proj_len = 12(ω − min x_i) months and the frame is t = 0 … proj_len − 1. Stopping on the annuitant’s age alone would truncate a younger dependant’s tail.
Policyholder behavior modeling#
There is none to model, and this is a cited product feature, not an omission: after the 30-day cancellation window the policyholder holds no options — no surrender or transfer [S1 p4] [S2 §12] [S5 cl.14.7] [S7 §7.5] [S9 §3.9], no alteration of options [S1 p4] [S4] [S6] [S9], and no premium flexibility [S2 §1.1]. Consequently the model has no lapse decrement and no dynamic behavior formulas; the MA eligibility conditions effectively require this shape (no policyholder options beyond a bounded surrender option) R1.
Behavior enters only at outset, outside the projection, as basis-selection effects std to consider when calibrating mortality:
Annuitization anti-selection. Since the 2015 pension freedoms annuitization is optional R6, so voluntary annuitants self-select for longevity — a reason annuitant bases sit below population mortality (the direction of α < 1 std).
Enhanced-annuity selection. Whole-market enhanced quoting is mandated at the point of sale R5; lives remaining on standard terms are healthier on average. The reference model carries this through θ, not through behavior dynamics.
Cancellation window. The 30-day cooling-off [S1 p7] [S2 §13] is ignored (projection starts from a completed purchase) std.
Worked example#
Configuration (the worked model point; parameters as in product-spec.md):
P = £100,000 [S1 p11]; annuitant male 65, dependant female 62 std; quarterly
(m = 4) in arrears, without proportion [S2 §§2.2–2.3, 4]; fixed escalation g = 3%
std; dependant δ = 50% std; value protection v = 50% on the annuitant’s
(first) death std — v + δ = 100%, exactly at the contractual bound [S2 §7.3];
no guarantee period (XOR rule [S2 §§6.7, 7.6]). Starting income A(1) = £5,400 p.a.
std — an illustrative quote level (no public rate card exists; the cited anchor,
£6,657 p.a., is for a 50%-VP basis whose escalation/frequency basis is not recorded
[S1 p11], and an escalating joint-life basis starts lower than a level one for the
same premium [S1 p8] [S4] [S6]). Scenario: the annuitant dies in month 16; the
dependant survives throughout, so l_a(k) = 1 for k ≤ 16 and 0 from k = 17. All amounts
in GBP.
Instalments: year 1: 5,400/4 = 1,350.00 per quarter; year 2 (from t = 12): A(2) = 5,400 × 1.03 = 5,562.00, so 1,390.50 per quarter. Dependant income after death: δ × A(2) = 2,781.00 p.a. = 695.25 per quarter, first paid at the next scheduled payment date after death (t = 17) [std convention].
The month index is 0-based, so the j-th quarterly arrears instalment falls at the end of month 3j − 1: months 2, 5, 8, 11, 14, 17, … The G column is the closing balance of the row, G(t+1) — the cumulative instalments once month t has been paid.
t (month) |
Event |
Annuitant CF |
Dependant CF |
VP lump sum |
G(t+1) |
|---|---|---|---|---|---|
2 |
Q1 instalment (arrears) |
1,350.00 |
— |
— |
1,350.00 |
5 |
Q2 instalment |
1,350.00 |
— |
— |
2,700.00 |
8 |
Q3 instalment |
1,350.00 |
— |
— |
4,050.00 |
11 |
Q4 instalment |
1,350.00 |
— |
— |
5,400.00 |
12 |
Anniversary: A ← 5,400 × 1.03 = 5,562.00 |
— |
— |
— |
5,400.00 |
14 |
Q5 instalment |
1,390.50 |
— |
— |
6,790.50 |
16 |
Annuitant dies. VP = max(0, 0.50 × 100,000 − 6,790.50) |
— |
— |
43,209.50 |
6,790.50 |
17 |
Q6 date: no annuitant payment (arrears, without proportion [S2 §4]); dependant stream starts |
0.00 |
695.25 |
— |
7,485.75 |
20 |
Q7 instalment (dependant) |
— |
695.25 |
— |
8,181.00 |
23 |
Q8 instalment (dependant) |
— |
695.25 |
— |
8,876.25 |
Checks. VP balance at death uses instalments paid before death, which is the balance at the start of the death month: G(16) = 6,790.50, so the lump sum is 50,000 − 6,790.50 = 43,209.50 [S1 p11] [S2 §7]. Had “with proportion” been chosen, a stub of ≈ (1 + 0.5)/3 × 1,390.50 = 695.25 would be paid for the accrued month-and-a-half since the month-14 instalment (std half-month accrual; one carrier would net this stub off the VP fund-value formula [S5 §8.3]). The dependant’s 695.25 continues for her life, escalating 3% at each anniversary on the same basis [S2 §§5.12–5.13].
Guarantee/VP interaction. Had the model point instead carried a 10-year guarantee [std default] and no VP (the XOR rule forbids both [S2 §§6.7, 7.6]), the death in month 16 would change nothing until month 120: instalments of 1,390.50, escalating 3% each anniversary as if the annuitant were alive [S7 §4.2], continue to beneficiaries through t = 119, the last month of the guarantee (annuity-certain floor), and — without overlap — the dependant’s 695.25-style stream would begin only from the first payment date at or after t = 120, at δ × the income at the end of the guarantee period [S2 §§5.9–5.12]. With overlap, the dependant’s stream would run from t = 17 alongside the guarantee payments [S2 §§5.9–5.11]. In expectation these scenario flows are reproduced by the E[ANN(t)] formula with n = 120 and w(t) as defined.
Valuation and reserve pointers#
This library projects gross best-estimate liability cash flows; valuation layers consume them and are NOT reproduced here:
Solvency UK best estimate. Technical provisions = best estimate + risk margin; the best estimate is the probability-weighted average of future cash flows discounted at the relevant risk-free term structure, market-consistently REG-R1. The CF(t) vector above is exactly that input.
Matching adjustment. These cash flows feed MA discounting (risk-free + MA) for eligible portfolios: MA permission required; eligibility conditions include no future premiums, restricted underwriting risks, the ≤ 5% BEL mortality-stress test, and no policyholder options R1 REG-R2. Reform context: CP19/23 → PS10/24, effective 30 June 2024 R2 REG-R5; supervisory expectations and matching tests in SS7/18 (October 2025 version) REG-R8. The MA calculation itself is cited-not-specified.
Risk margin. Cost-of-capital method at 4% with life-business tapering λ = 0.9 (floor 0.25) per SI 2023/1346 REG-R4; requires an SCR runoff — cited-not-specified.
Transitionals. TMTP (simplified regime from 31 December 2024) affects pre-2016 back-books only; it adjusts technical provisions, not projected cash flows REG-R3.
IFRS 17. UK-adopted IFRS 17 (adopted 16 May 2022, effective 1 January 2023) REG-R38 measures the same contracts as fulfilment cash flows plus risk adjustment plus CSM (measurement mechanics summarized from general knowledge — unverified in the reference library, which verifies the adoption facts only); the expected-cash-flow engine is identical, with regime-specific discounting and margins layered on.
Tax. Pension annuities are pension business — non-BLAGAB, trade-profit basis REG-R17 [S5 §14.11]; no policyholder fund tax enters the projection.
Professional standards. Technical actuarial work using this model in the UK falls under FRC TAS 100 v2.0 REG-R33 and TAS 200 v2.0 (effective 1 January 2025) R14. Proxy models fitted on top of heavy annuity cash-flow models — and the outputs the heavy model must expose for them — are treated in the IFoA proxy-model working party paper REG-R36.
Key sensitivities and model risks#
Dominant assumptions, in order:
Longevity level (base table × α × θ). The liability is a life-contingent payment stream with no offsetting decrements; a lower mortality level lengthens every annuity stream. The std α = 0.80 population-proxy adjustment is the weakest link in the reference basis — production work must substitute licensed SAPS S4 / PMA16-era tables R10 R11 REG-R27 REG-R22.
Longevity trend (improvements). The std deterministic scale stands in for CMI_2025 REG-R30; the choice of long-term improvement rate is the single most sensitive judgment in UK annuity valuation, and the CMI model’s user-set long-term rate has no default recommendation REG-R30, detail unverified. The prescribed MA mortality stress (worse of +15% level / +0.15pp additive, ≤ 5% BEL movement) R1 gives a regulatory yardstick for level-risk materiality.
Inflation exposure (RPI/LPI options). RPI-linked instalments make the liability an inflation swap; the 0-floor, catch-up ratchet and LPI 5% cap are inflation option positions [S2 §3.2, defs]. A deterministic 3% path std values them at intrinsic only: the floor and ratchet never bind and the cap never pays off — stochastic inflation (or option-adjusted margins) is required for a market-consistent value. RPI reform risk (index definition) is additional and not modeled.
Dependant assumptions. δ, the age gap, and dependant mortality drive the joint-life tail; the independence assumption std ignores broken-heart dependence and common lifestyle factors, overstating the expected dependant stream modestly.
Expense inflation. Second-order (expenses are small against instalments), but the in-payment term is 30+ years, so the π assumption compounds.
Known modeling pitfalls:
Guarantee double-counting. During the guarantee, the annuitant stream is certain — do not also weight it by l_a (the max(1{t<n}, l_a) form prevents paying 1 + l_a). Symmetrically, VP and guarantee never coexist in the representative design [S2 §§6.7, 7.6]; engines supporting the combinable variant offered by one carrier must net guarantee payments off VPbal [S7 §4.3] or the death benefit is double-paid.
Overlap gating. Without overlap the dependant stream is gated on t ≥ n even when the annuitant died mid-guarantee; applying δ from the death date silently converts every without-overlap policy into the more expensive with-overlap form [S2 §§5.9–5.11].
Higher-of dependant base. The δ × A(y(t)) simplification relies on non-decreasing escalation; if a decreasing option is configured (one carrier’s pure RPI [S5 §7.1.2]), the contractual “higher of income at death and at guarantee end” [S2 §5.12] must be implemented explicitly.
Survival-measurement timing. Arrears payments require survival at the payment date; advance payments at the period start. Using end-of-period survival for advance payments understates the liability by roughly one period’s mortality per payment — material at high ages.
Catch-up state. The RPI ratchet is path-dependent: peak must persist across anniversaries. Resetting it each year turns the catch-up into a plain 0-floor and overstates indexed income after deflation-recovery paths [S2 defs].
Escalation timing. Increases apply on the anniversary [S2 §3.3], not on payment dates; applying the year-2 rate to the t = 11 arrears instalment (accrued in year 1) overstates income. GMP-bearing policies use different escalation dates (1 April / 1 May at one carrier [S5 §7.2]) — out of scope with GMP generally std.
VP balance timing. VPbal must net instalments paid before death; netting the instalment due at the death-month payment date that was never paid (arrears, without proportion) understates the lump sum [S2 §§4, 7]. Symmetrically, on advance timing an instalment paid at the start of the death month has been paid: in advance payment months net it (use VPbal(t+1), after the month-t advance payment, not VPbal(t)) or the lump sum is overstated by one instalment.
Population-proxy basis risk. The std ONS × α basis has the wrong shape as well as level versus annuitant tables (socio-economic mix, amounts weighting R10 R11 detail unverified); treat all reference-basis results as mechanics demonstrations, not valuations — and note the CMI restriction honestly rather than shipping approximated “SAPS-like” rates REG-R22.