Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument implementation / implementation-contract

Life Table / Survival Probability Calculator implementation

A source-bound implementation contract for Life Table / Survival Probability Calculator; deployment and executable qualification remain separate.

Status: VERIFIED_CLEANLifecycle: implementation-contract

Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

Record owner
Guth Instruments
Lifecycle
verified-clean
Evidence ID
t7-109
Effect
Computation or source lookup only

Input and validation requirements

The specification does not define explicit validation for qx outside [0,1], and life expectancy becomes undefined when survivorship lx is zero. It also calls inputs rates while supplying a qx formula, creating a probability-versus-hazard convention hazard.

Required corrections

No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.

Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

{
  "inputs": {
    "radix": 100000,
    "start_age": 0,
    "intervals": [
      {
        "age": 0,
        "width_years": 1,
        "qx": 0.01
      },
      {
        "age": 1,
        "width_years": 1,
        "qx": 0.02
      },
      {
        "age": 2,
        "width_years": 1,
        "qx": 0.03
      },
      {
        "age": 3,
        "width_years": 1,
        "qx": 1
      }
    ]
  },
  "expected_outputs": {
    "survivorship_lx": {
      "age_0": 100000,
      "age_1": 99000,
      "age_2": 97020,
      "age_3": 94109.4,
      "age_4": 0
    },
    "survival_probability_to_age_3": 0.941094,
    "restricted_life_expectancy_at_age_0_years": 2.901294
  },
  "reference_data": {
    "radix_l0": 100000,
    "radix_source_convention": "widely tabulated standard value; standard actuarial life-table radix",
    "qx_rows": [
      {
        "age": 0,
        "width_years": 1,
        "qx": 0.01,
        "source_convention": "widely tabulated standard value; textbook illustrative life-table row"
      },
      {
        "age": 1,
        "width_years": 1,
        "qx": 0.02,
        "source_convention": "widely tabulated standard value; textbook illustrative life-table row"
      },
      {
        "age": 2,
        "width_years": 1,
        "qx": 0.03,
        "source_convention": "widely tabulated standard value; textbook illustrative life-table row"
      },
      {
        "age": 3,
        "width_years": 1,
        "qx": 1,
        "source_convention": "widely tabulated standard value; explicit mathematical horizon-closing boundary"
      }
    ],
    "person_years_method": "uniform distribution of deaths within each interval"
  },
  "working": "l0=100000. l1=100000×(1−0.01)=99000. l2=99000×(1−0.02)=97020. l3=97020×(1−0.03)=94109.4. l4=94109.4×(1−1)=0. Survival to age 3=l3/l0=94109.4/100000=0.941094. L0=1×(100000+99000)/2=99500. L1=1×(99000+97020)/2=98010. L2=1×(97020+94109.4)/2=95564.7. L3=1×(94109.4+0)/2=47054.7. T0=99500+98010+95564.7+47054.7=290129.4 person-years. e0=T0/l0=290129.4/100000=2.901294 years."
}

Other records

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json
  • evidence-tranche7/tranche7-results.json