quactuary.pricing module¶
Pricing module for actuarial loss models.
This module provides classes to price excess loss and compute risk measures for insurance portfolios, using classical simulation methods (Monte Carlo, FFT) with optional quantum acceleration via Qiskit.
Notes
Classical methods include Monte Carlo and FFT via external libraries. Quantum acceleration uses Qiskit backends managed by BackendManager.
Examples
>>> from quactuary.pricing import ExcessLossModel, RiskMeasureModel
>>> model = ExcessLossModel(inforce, deductible=1000.0, limit=10000.0)
>>> result = model.compute_excess_loss()
- class quactuary.pricing.ActuarialModel(inforce, deductible=None, limit=None, backend=None, **kw)¶
Bases:
QuantumModelMixin
Base class for actuarial pricing models with optional quantum support.
Provides common interface for portfolio-based loss models using classical or quantum backends.
- Parameters:
deductible (Optional[float]) – Layer deductible.
limit (Optional[float]) – Layer limit.
backend (Optional[BackendManager]) – Execution backend override.
**kw – Additional model-specific settings.
- layer_deductible¶
Deductible for the layer.
- Type:
Optional[float]
- layer_limit¶
Limit for the layer.
- Type:
Optional[float]
- backend¶
Backend manager for execution.
- Type:
- __init__(inforce, deductible=None, limit=None, backend=None, **kw)¶
Initialize an ActuarialModel.
- Parameters:
deductible (Optional[float]) – Layer deductible.
limit (Optional[float]) – Layer limit.
backend (Optional[BackendManager]) – Execution backend.
**kw – Additional settings (ignored).
- Raises:
TypeError – If inforce is not an Inforce or Portfolio.
- class quactuary.pricing.ExcessLossModel(inforce, deductible=None, limit=None, **kw)¶
Bases:
ActuarialModel
Pricing model for aggregate excess loss.
Computes the loss exceeding a deductible up to a layer limit for an insurance portfolio.
- Parameters:
Examples
>>> model = ExcessLossModel(inforce, deductible=1000, limit=10000) >>> losses = model.compute_excess_loss()
- compute_excess_loss(backend=None)¶
Compute aggregate excess loss for the portfolio.
- Parameters:
backend (Optional[BackendManager]) – Execution backend override.
- Returns:
Excess loss result (e.g., numeric array or DataFrame).
- Return type:
Any
- Raises:
NotImplementedError – Method not yet implemented.
- class quactuary.pricing.RiskMeasureModel(inforce, deductible=None, limit=None, **kw)¶
Bases:
ActuarialModel
Pricing model for risk measures (VaR, TVaR).
Computes quantile-based risk metrics for insurance portfolios, with optional quantum acceleration.
- Parameters:
Examples
>>> rm = RiskMeasureModel(inforce) >>> var = rm.value_at_risk(alpha=0.99)
- tail_value_at_risk(alpha=0.95, backend=None)¶
Compute the Tail Value at Risk (TVaR) at the given confidence level.
- Parameters:
alpha (float, optional) – Confidence level (0 < alpha < 1). Defaults to 0.95.
backend (Optional[BackendManager]) – Execution backend override.
- Returns:
Estimated TVaR value.
- Return type:
float
- Raises:
NotImplementedError – Method not yet implemented.
- value_at_risk(alpha=0.95, backend=None)¶
Compute the Value at Risk (VaR) at the given confidence level.
- Parameters:
alpha (float, optional) – Confidence level (0 < alpha < 1). Defaults to 0.95.
backend (Optional[BackendManager]) – Execution backend override.
- Returns:
Estimated VaR value.
- Return type:
float
- Raises:
NotImplementedError – Method not yet implemented.