BAM Engine 0.8.0 extends the calibration toolkit with four new composable tools, recalibrates all validation targets from extracted book figure data, and redesigns buffer-stock validation around aggregate improvement over Growth+.

Calibration Tools#

Calibrating BAM Engine parameters across multiple scenarios used to require stitching together ad-hoc scripts. This release adds four composable CLI tools that formalize the workflow we developed over four calibration campaigns (~80K total simulation runs):

  • rescreen: re-run Morris screening after locking optimized parameters, revealing sensitivities that were previously masked by dominant parameters.
  • cost: estimate the computational budget for a calibration run, classifying configurations as FREE/CHEAP/MODERATE/EXPENSIVE.
  • cross-eval: evaluate parameter configurations across multiple scenarios simultaneously, with harmonic, geometric, and min-score ranking strategies.
  • sweep: run structured multi-stage parameter sweeps where winners from each stage carry forward to the next.

A new calibration recipe page distills practical lessons from past campaigns into a recommended workflow.

Validation Targets Recalibrated#

All three validation scenarios (baseline, Growth+, buffer-stock) have been recalibrated against precise values extracted from the book’s figures (Figures 3.2–3.7) using pixel-level data extraction. This replaces the previous hand-tuned targets with reproducible, data-driven bounds. The full methodology is documented in the validation targets page.

Buffer-Stock Validation Redesign#

The buffer-stock scenario previously duplicated all 30 Growth+ metrics plus its own unique metrics, making it hard to distinguish extension-specific failures from inherited baseline noise. Version 0.8.0 replaces this with a focused two-layer approach:

  1. Per-seed validation uses only the 8 metrics unique to the buffer-stock extension (wealth distribution fits, Gini, skewness, MPC, dissaving).
  2. Aggregate improvement over Growth+ is assessed after stability testing, catching systematic degradation while ignoring per-seed noise.

The result is clearer diagnostics and a validation dashboard that reflects the extension’s actual contribution.

Bug Fixes#

  • Division-by-zero in score_outlier_penalty when max_outlier_pct=0.
  • Collapsed buffer-stock result incorrectly reporting passed=True.

Upgrading#

pip install --upgrade bamengine