Skip to content

v1.6.0 — exceedance + worst-case expected_shortfall

Choose a tag to compare

@Polichinel Polichinel released this 24 Jun 23:12
· 74 commits to main since this release
bd1b40f

main/PyPI jump 1.3.0 → 1.6.0 in one release. v1.4.0 and v1.5.0 were development-only milestones; v1.6.0 is the complete superset. CONFORMANCE_FLOOR stays 1.0.0 — every addition is additive over the frozen v1 surface.

Highlights (the 1.4.0 → 1.6.0 arc)

expected_shortfall — the worst-case tail mean (v1.6.0, ADR-022)

expected_shortfall(frame, tails) → (N, …, K): the per-row mean of the worst ⌈t·S⌉ draws (tail mean / CVaR) for each upper-tail fraction t. A coherent, subadditive worst-case risk measure and the companion to exceedance. max is never offered (highest-variance, non-reproducible). Tails are required per-call, in (0, 1] — the consumer's policy. Best-case ships no code (a low quantile + exceedance(frame, [0])).

exceedance — survival probability P(Y > c) (v1.5.0, ADR-021)

exceedance(frame, thresholds) → (N, …, K) + exceedance_reducer(c). Distribution-agnostic counting reducer; the flagship is P(Y > 0) = onset. Strict >; thresholds required per-call; geography-blind compose via aggregate_distributions.

Provenance + published envelope checker (v1.4.0, ADR-020)

FrameMetadata.run_id / data_version; assert_frame_envelope as a published conformance check; NaN-tolerant round-trip.

Fail-loud hardening (pre-release falsification audit)

Both new estimators reject non-finite draws (NaN or ±inf) via an np.isfinite guard — an inf draw (always an upstream bug) can no longer silently contaminate a worst-case or bless an exceedance probability.

Notes

  • Single views-frames wheel ships both views_frames (numpy-only data contract) + views_frames_summarize (sample-axis summarization).
  • Published via PyPI Trusted Publishing (publish_package.yml).
  • Full changelog: CHANGELOG.md.