pyliferisk geometric valuations discard supplied mortality assumptions
Authors/Creators
Description
Independent numerical audit of pyliferisk 1.12.0. Geometric annuity and insurance helpers reconstruct the original mortality table and silently reset the supplied mortality scale to 100%. Custom survivor/probability tables may instead fail. For GKM95, mortality 75%, interest 3% and age 60, a zero-growth annual annuity returns 13.616328838004055 instead of 14.93597449181164, approximately 8.8353% lower.
The proposed correction preserves copies of the effective survivor and mortality-probability tables while changing interest. Seven helpers were checked against 630 independent direct cash-flow sums at 60-digit Decimal precision: 498 failures before, including 198 exceptions, and zero after. Four regression tests pass. Substituting the released code causes 82 failing and 42 errored subcases. Existing growth timing and fractional-payment formulas are preserved; the entire library is not claimed correct.
Official PyPI wheel source is byte-identical to upstream master 5c28ca34a30f4e350f604f4b35bf738c816e59bc. Public duplicate screening found no matching report among 14 available issues/PRs and 8 comments, and three scoped keyword searches; this does not establish worldwide priority. Correction: https://github.com/franciscogarate/pyliferisk/pull/17 (proposed, not merged).
Report, source snapshots, patch, Decimal oracle and test evidence: https://github.com/kadyrbekovhamit-cyber/gero-pyliferisk-geometric-mortality-audit
All calculations ran sequentially on CPU using the Python standard library, without GPU. Performance was not benchmarked. Synthetic library-level cases only; no deployed insurer exposure or customer loss is claimed. Research prepared with AI assistance. Original code and tables retain GPL-3.0-or-later licensing.
Archive SHA-256: 643e2016557cb418422277de77d0e20962272b62addbcdf3011c1771154a5d35
Files
pyliferisk-geometric-mortality-v1.0.0.zip
Files
(134.3 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:e0d0486e6e8b973a9a7e026568897f31
|
134.3 kB | Preview Download |