Source code for ratingmodels.blend
r"""Credibility blending of experience and manual quantities.
.. math::
\text{blended} = Z \cdot \text{experience} + (1 - Z)\cdot \text{manual}.
This is the atomic credibility-weighting operation; it delegates to
:func:`actuarialpy.credibility_weighted_estimate` so the primitive lives in one
place across the ecosystem.
"""
from __future__ import annotations
import actuarialpy as ap
from ._utils import require_unit_interval
[docs]
def blend(experience: float, manual: float, credibility: float) -> float:
r""":math:`Z \cdot \text{experience} + (1-Z)\cdot \text{manual}`."""
z = require_unit_interval(credibility, "credibility")
return ap.credibility_weighted_estimate(experience, manual, z)