Source code for actuarialpy.compare

"""Comparison and variance primitives."""

from __future__ import annotations

from typing import Any

from actuarialpy.metrics import safe_divide


[docs] def absolute_change(current: Any, prior: Any) -> Any: """Calculate current minus prior.""" return current - prior
[docs] def percent_change(current: Any, prior: Any) -> Any: """Calculate percent change: current / prior - 1.""" return safe_divide(current, prior) - 1
[docs] def basis_point_change(current_ratio: Any, prior_ratio: Any) -> Any: """Calculate basis point change between two decimal ratios.""" return (current_ratio - prior_ratio) * 10_000
[docs] def variance(actual: Any, expected: Any) -> Any: """Calculate actual minus expected.""" return actual - expected
[docs] def variance_pct(actual: Any, expected: Any) -> Any: """Calculate variance as percent of expected: actual / expected - 1.""" return safe_divide(actual, expected) - 1