Skip to main content

Focused actuarial claim, premium, membership, and expense projections.

Project description

projectionmodels

The renewal cycle end to end: premium, claims, and expenses projected over a horizon.

CI PyPI Python

Overview

projectionmodels projects premium, claims, and expenses over a monthly horizon on exposure you supply — by group, by claim type, and at cost levels that make the pipeline order (completion, then trend, then adjustments) explicit rather than implicit.

Assumptions are first-class objects: estimate them from history with actuarialpy through the built-in adapter, or state them directly and keep the projection fully reproducible either way.

Installation

pip install projectionmodels

Requires Python 3.10 or newer.

Quick start

import pandas as pd
import projectionmodels as pm

premium_data = pd.DataFrame({
    "group_id": ["A", "B"],
    "renewal_date": pd.to_datetime(["2027-03-01", "2027-07-01"]),
    "current_premium_rate": [100.0, 100.0],
    "rate_action": [0.10, 0.20],
})

periods = pd.period_range("2027-01", periods=12, freq="M").astype(str)
exposure = pd.DataFrame(
    {"group_id": g, "projection_period": p, "member_months": 1_000.0}
    for g in ("A", "B") for p in periods
)

results = pm.PremiumProjection(
    premium_data=premium_data,
    projection_keys=["group_id"],
    exposure=exposure,
    exposure_col="member_months",
    horizon=pm.ProjectionHorizon("2027-01-01", periods=12),
    recurring_rate_action_col="rate_action",
).project()

print(results.to_frame().head())

What's inside

  • Premium — renewal-date-aware rate projection with recurring rate actions.
  • Claims — projection by claim type with explicit cost levels and pipeline order (complete, trend, adjust).
  • Expenses — fixed and variable expense projection alongside the claim stream.
  • Assumptions — assumption objects estimated from history via the actuarialpy adapter or supplied directly.
  • Book and group — the same machinery at single-group and whole-book level, with results tables by period, group, and component.
  • Advanced — extension points for custom models and integrations.

The full API reference and end-to-end worked examples live at openactuarial.org/projectionmodels.html.

The OpenActuarial ecosystem

projectionmodels is one of seven packages that share conventions — tidy tables, explicit distribution parameterizations, reproducible random-number handling — and compose across package seams:

Package Role
actuarialpy Calculation primitives the workflow packages build on
experiencestudies Experience reporting, actual-vs-expected, claimant and concentration analysis
projectionmodels Claim, premium, and expense projection over a renewal horizon
ratingmodels Manual and experience rating, credibility, indication, GLM relativities
lossmodels Severity and frequency fitting, aggregate loss distributions
extremeloss Extreme-value tails: POT/GPD, GEV, return levels, splicing
risksim Portfolio Monte Carlo, dependence, reinsurance contracts, risk measures

Install everything at once with pip install openactuarial.

Development

git clone https://github.com/OpenActuarial/projectionmodels
cd projectionmodels
python -m pip install -e ".[dev]"
pytest
ruff check src tests

CI runs the same gate on Python 3.10–3.14 across Linux and Windows.

Versioning and stability

All ecosystem packages are pre-1.0: minor releases may change APIs, and every release is documented in CHANGELOG.md. Current per-package API stability is tracked at openactuarial.org/stability.html.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

projectionmodels-0.8.2.tar.gz (78.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

projectionmodels-0.8.2-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

File details

Details for the file projectionmodels-0.8.2.tar.gz.

File metadata

  • Download URL: projectionmodels-0.8.2.tar.gz
  • Upload date:
  • Size: 78.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for projectionmodels-0.8.2.tar.gz
Algorithm Hash digest
SHA256 72642c6954319d66810babdcd934cc2947bd7d86cc395791437b49496ca014bb
MD5 f9f00c2ac5273f4c07fbce54321e089c
BLAKE2b-256 591d6ceb40b8c80d5ec9ad90712afd239388bda51bf7596780d05333a0241620

See more details on using hashes here.

Provenance

The following attestation bundles were made for projectionmodels-0.8.2.tar.gz:

Publisher: release.yml on OpenActuarial/projectionmodels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file projectionmodels-0.8.2-py3-none-any.whl.

File metadata

File hashes

Hashes for projectionmodels-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c10e5d97d5b05cf1885d2f1f9734f811fe5dee6a26cb88aed812dc8b82c53ab8
MD5 c2714c940a5a79ff8fa6553b993ac328
BLAKE2b-256 4c822d18e8759d6d9776e4290037e18ce1608ebdf5c45bd12bad8b396406ee75

See more details on using hashes here.

Provenance

The following attestation bundles were made for projectionmodels-0.8.2-py3-none-any.whl:

Publisher: release.yml on OpenActuarial/projectionmodels

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page