Step-by-step worked examples with real code. Building a motor pricing model from scratch, implementing credibility weighting, constructing factor tables, fitting GAMs. Designed to run end-to-end without modification. 45 articles.
A complete Python tutorial for Whittaker-Henderson smoothing of insurance rating tables. Replace your Excel moving average or SAS graduation with automatic REML lambda selection...
A practical Python tutorial for telematics pricing: load raw GPS trip data, classify driving regimes with a Hidden Markov Model, and produce GLM-ready risk features using insura...
A hands-on Python tutorial for insurance pricing analysts on survival analysis and lapse modelling. Covers Kaplan-Meier, Weibull AFT, mixture cure models, customer lifetime valu...
How to set up insurance model monitoring in Python from scratch: PSI, Gini drift, and A/E with the insurance-monitoring library. Know when to redeploy, recalibrate, or refit.
End-to-end GLM frequency model in Python using freMTPL2 from OpenML. Data prep, exposure handling, glum fitting, deviance residuals, actual vs expected, and factor relativity ex...
A hands-on tutorial on GAM insurance pricing in Python using the insurance-gam library. Covers EBM tariff construction, shape function extraction, GLM comparison, Shapley values...
A practical Python tutorial on credibility theory for insurance pricing analysts. Covers Buhlmann-Straub model, the insurance-credibility library, UK motor example, GLM integrat...
A hands-on tutorial on causal inference for insurance pricing in Python using the insurance-causal library. Covers double machine learning (DML), CatBoost nuisance models, ATE/C...
How to run actuarial model validation in Python for UK insurance pricing models. Covers Solvency II Article 120 and Consumer Duty requirements, the five-test validation suite, a...
A runnable Python implementation of Goffard, Piette, and Peters (ASTIN Bulletin 2025): infer claim frequency and severity from competitor PCW quotes using ABC-SMC with isotonic ...
Why Tweedie GLM is the standard for aggregate loss modelling in insurance, with a complete Python example covering power parameter selection, exposure offset, and comparison wit...
How to produce a full IBNR distribution in Python using the Mack method and Bootstrap ODP sampling. Covers analytical standard errors, 5,000-simulation bootstrap, percentile tab...
When does it make sense to reach beyond chain ladder and bootstrap ODP for neural reserving methods? We compare DeepTriangle, individual RNN approaches, and the Richman-Wüthrich...
End-to-end motor insurance pricing in Python using the French MTPL dataset. Frequency-severity GLMs, exposure offsets, coefficient interpretation, validation, and calibration to...
The standard rate adequacy workflow — earned premium at current rate level, ultimate losses, trend to future period, expense load, indicated rate change — built in Python with p...
Raw loss ratios by age band are noisy. A 5-year moving average introduces boundary bias and requires a judgment call you cannot defend in an IFRS 17 review. This tutorial shows ...
The GBM sits in a notebook outperforming the production GLM. This tutorial shows how to extract multiplicative rating relativities from a CatBoost Poisson model using shap-relat...
Point estimates from pricing models are incomplete. This tutorial shows how to add distribution-free prediction intervals to a CatBoost Tweedie model using insurance-conformal —...
Single-objective fairness constraints force a binary choice. NSGA-II finds the full tradeoff surface, so governance committees can make an explicit, documented decision about wh...
Build a working Solvency II SCR estimate from scratch using compound distributions and Monte Carlo simulation. Poisson/NegBin frequency, lognormal severity, 50k simulations, VaR...
A practical Python walkthrough of the burning cost method for pricing excess of loss reinsurance treaties — loss trending, development, pure rate calculation, and sensitivity an...
H2O, FLAML, and AutoGluon are genuinely useful tools. None of them handle the log(exposure) offset that makes insurance frequency modelling work. Here is an honest account of wh...
A complete Python tutorial for building a Tweedie GLM for insurance pricing: synthetic motor data, statsmodels, exposure offset, interpreting the p parameter, residual diagnosti...
How UK home insurers should model physical climate risk: UKCP18 projections, Flood Re's 2039 exit, ABI claims data, and practical code using insurance-whittaker, insurance-confo...
Build a double-lift chart to compare GLM vs GBM predictions. Bin by prediction ratio, compute A/E per decile, plot with matplotlib. Standard tool for pricing committee model val...
The first Python implementation of the asymptotic Gini drift test from Brauer et al. (2025). A proper z-test for ranking degradation — not a heuristic, not a threshold, a p-value.
FCA Consumer Duty PRIN 2A requires insurers to tell policyholders what they can change to get a better outcome. Most pricing teams have not built this. insurance-recourse does i...
insurance-fairness v0.6.3 ships DiscriminationInsensitiveReweighter. Here's why dropping the protected column doesn't work, how propensity-based reweighting does, and what the A...
EP25/2 (the FCA's evaluation of GIPP price-walking remedies) flags ongoing fair value supervision in motor and home. No single technical checklist exists for the pricing actuary...
Why GLM coefficients aren't causal effects, and how to fix that using insurance-causal: DML with CatBoost nuisances, causal forests for heterogeneous treatment effects, and DiD/...
Standard Tweedie GLMs handle zeros implicitly. When that implicit handling breaks — specialty lines, niche segments, specific peril models — you need ZIP or hurdle models. Here ...
How the Ogden discount rate and Periodical Payment Orders change the maths of large BI pricing in the UK — with Python code to calculate lump sum equivalents, discount PPO cash ...
UK motor bodily injury severity has outrun CPI since 2022. This post implements a multiplicative severity separation model and Whittaker-Henderson smoothing in Python to separat...
Step-by-step: extract CatBoost factor tables with shap-relativities and write a clean Excel file with openpyxl. Formatted output ready to paste into Radar or Emblem.
A practical statsmodels tutorial for pricing actuaries: Poisson frequency model with exposure offset, Gamma severity model, overdispersion tests, factor table extraction, and A/...
Extract the calendar-year inflation component from a claims development triangle using Taylor's two-factor separation. Python from scratch, then connect to severity trending.
Reproduce an Emblem frequency-severity GLM in Python: factor tables, one-way plots, deviance residuals, and lift charts using statsmodels, CatBoost, and Polars.
Which GLM assumptions actually matter for insurance pricing, which ones you routinely violate without consequence, and the diagnostics worth running before signing off a product...
A practical walkthrough for pricing analysts: use insurance-causal for causal inference, insurance-conformal for prediction intervals, and insurance-monitoring for drift detecti...
Build a burning cost model in Python: frequency-severity split, exposure offsets, large loss capping, IBNR adjustment, and combined pure premium for UK pricing.
Tutorial on monitoring insurance pricing models using actuarial KPIs. Gini tracking, segmented A/E, double-lift for champion/challenger. Why generic drift tools miss what matters.
Build a CatBoost frequency-severity pricing model on freMTPL2 using Polars. Poisson frequency, Gamma severity, combined burning cost, SHAP factor extraction, and distillation to...
Insurance walk-forward cross-validation prevents the look-ahead bias that makes standard k-fold results useless for prospective evaluation. Complete Python example with insuranc...
sklearn's TweedieRegressor tutorial gets you to a fitted model in six lines. It also produces predictions that are wrong for any policy with non-annual exposure. Here is the cor...
Insurance model monitoring in Python that understands exposure weighting, development lags, and Gini drift. Why Evidently and NannyML miss what matters for pricing, and what ins...
The FCA expects pricing teams to demonstrate their models don't proxy-discriminate under Consumer Duty. Most teams do this in Excel. Here is how to do it properly in Python, usi...
How to run covariate shift detection as a recurring monthly check: monitoring cadence, ESS ratio trends, and the thresholds that trigger a retraining...
Logistic regression treats all non-lapsers the same. Mixture cure models split them into two groups: structural non-lapsers who will never leave, and...
GLMTransfer borrows statistical strength from a related source book to price thin target segments. Motor-to-fleet, home-to-landlord, and fleet roll-outs.
Per-risk large loss loadings for UK home insurance using quantile GBMs. Avoids the flat-loading trap by making the loading a function of the risk itself.
How to convert raw telematics trip data into GLM-ready features for UK motor pricing. Covers HMM state segmentation and score calibration to GLM relativities.