You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Four functional tools that widen the capability gap vs an advisory agent —
each needs to run the engine and/or hold the per-iteration joint sample matrix:
- fit_copula_to_data (analysis): fit Normal/T/Clayton/Frank/Gumbel copulas
to a data block, rank by AIC/SIC/HQIC via Vose<Family>FitObject on a
scratch sheet, report tail-dependence (lower/upper/both/none). Dependence
fitted FROM data. New bridge method fit_and_rank_copulas mirrors
fit_and_rank (adds the copula FitObject's Data_In_Rows arg).
- reverse_stress_test (analysis): partition iterations breach/no-breach and
profile each input's shift inside the breach set + extract a named stress
scenario. Pure Python over .vmrs samples (reverse_stress_profile is
factored out and unit-tested exactly).
- fit_all_data_and_wire (workflows): fit marginals + copula and wire a
correlated model (Vose<Family>Fit(range,unc,U) linked to the copula U
block), atomic with rollback, dry_run preview.
- build_model_from_brief (workflows): deterministic workbook -> wrapped
outputs + VoseInput distributions -> validating sim -> headline
percentiles, in one atomic reversible pass.
Adds a _ChangeSet staged-write/rollback wrapper over safe_write_cell (repo
had only per-cell restore before). New schemas in schemas/analysis.py.
14 new unit tests (pure logic + mocked-bridge + rollback); real-Excel wiring
via gated integration tests. 620 unit tests green; ruff + mypy clean.
Version 0.3.7 -> 0.3.8; tool count 56.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,19 @@ All notable changes to ModelRisk MCP. Follows [Keep a Changelog](https://keepach
4
4
5
5
## [Unreleased]
6
6
7
+
## [0.3.8] — 2026-07-05
8
+
9
+
### Four functional tools that widen the "does the work" gap vs. advisory agents
10
+
11
+
Capabilities that structurally require *running the engine* and *holding the per-iteration joint sample matrix* — things an advisory copilot cannot do:
12
+
13
+
-**`fit_copula_to_data`** — fit parametric copulas (Normal / T / Clayton / Frank / Gumbel) to a multi-column data range, rank by AIC/SIC/HQIC (`Vose<Family>FitObject` scored via `VoseAIC/SIC/HQIC` on a transient scratch sheet), and report the winner's **tail-dependence** character (lower = crash-together, upper = boom-together, both = T). Dependence fitted *from data*, capturing joint-tail risk a single correlation coefficient discards.
14
+
-**`reverse_stress_test`** — from a bad output outcome back to the joint input state that causes it: partitions iterations into breach / no-breach (threshold or percentile, above/below), reports each input's mean shift (in its own SDs) inside the breach set and its tail concentration (a breach-driver tornado), and extracts the mean input vector as a concrete named stress scenario. The Solvency II / PRA reverse-stress-test, pure Python over the recorded `.vmrs` sample matrix.
15
+
-**`fit_all_data_and_wire`** — fit both the marginals *and* the copula from a data block and wire the whole **correlated** model into the workbook (each marginal `Vose<Family>Fit(range, unc, U)` linked to the fitted copula's correlated-U block). One atomic pass with full rollback; `dry_run=True` previews the exact formulas.
16
+
-**`build_model_from_brief`** — turn a deterministic workbook into a simulation-ready model in one atomic, reversible pass: wrap outputs with `VoseOutput`, replace input cells with `VoseInput`-wrapped distributions you choose, optionally run a validating simulation, and return the headline percentiles. Every write goes through the audit-logged safe-write path inside a **change-set** — any mid-build failure rolls back the entire build so the workbook is never left half-converted.
17
+
18
+
Both orchestrators add a staged change-set/rollback wrapper over `safe_write_cell` (the repo previously had only per-cell restore). 14 new unit tests (pure breach-partition logic + mocked-bridge wrapper/rollback tests); real-Excel wiring is covered by the gated integration suite. 620 unit tests green; ruff + mypy clean. Tool count 56.
19
+
7
20
## [0.3.7] — 2026-06-18
8
21
9
22
### Distribution charts: `create_histogram_chart` + `create_cdf_chart`
0 commit comments