Migrating from 1.x to 2.0
Version 2.0 makes corrective breaking changes where preserving 1.0 behavior would retain statistically unsafe or ambiguous results.
Exposure scale is explicit
High-level calls with exposure must now pass input_scale="rate". Aggregate
counts or losses must omit exposure. This prevents accidental double weighting.
Point prediction functionals are separated
One evaluate() call cannot mix mean-target scores such as RMSE or deviance
with median-target MAE. Evaluate mean and median predictions separately.
Defaults no longer choose portfolio assumptions
Task defaults no longer include a 95th-percentile tail report or a Tweedie
deviance with power 1.5. Request tail levels and Tweedie power explicitly with
metric aliases or MetricSpec.
Bootstrap inference fails closed
Undefined resamples now raise InputValidationError; they are not discarded
and retried. Choose an estimand defined on degenerate samples or a bootstrap
design appropriate to the data.
Result containers and JSON
Result mappings and nested metadata are immutable. Use to_dict() to obtain a
detached mutable copy. Strict JSON export represents non-finite metric values as
the strings "Infinity", "-Infinity", and "NaN".
Optional Tweedie distribution methods
Install acteval-insurance[tweedie] to use numerical CDF, density, or entropy
methods on TweedieDistribution. Tweedie deviance does not require this extra.