Validation and numerical evidence¶
Analytical and semi-analytical calculations are the implementation. Independent Monte Carlo and alternative transforms are validators.
Fast source suite¶
pytest -m "not slow" -q
This covers probability bounds/monotonicity, Riccati initial conditions, exact buy-and-hold moments, option-pricer properties, Fourier agreement, metadata, paths, and quickstart behavior.
Full suite¶
pytest -q
The slow tests add seeded Monte Carlo option-price cross-checks. The option test accepts a
four-standard-error envelope rather than forcing a deterministic price match.
Paper validator¶
From a development install at repository root:
python papers/goal_based_allocation_2026/generate_paper_figures.py \
--test --outdir temporary_paper_output/
The current CLI runs nine assertions and then generates the ten figures. Always use a temporary output directory for verification. The assertions cover density normalization, barrier-density and analytical-survival consistency, horizon monotonicity, asset comparisons, Riccati initial conditions, a 100K-path Monte Carlo survival comparison, and Table 1 inputs.
Numerical conventions¶
Do not change Laplace inversion contours, quadrature nodes, or ODE tolerances to satisfy a test.
Do not silently regenerate expected values or paper figures.
When a plausible change can run but be numerically wrong, require an independent method: Monte Carlo for wealth-floor analytics and Fourier/Monte Carlo for option pricing.
Record exact values and environment for migration/release gates.
See the repository’s ignored agents/ reports for dated local migration evidence; they are
operational records, not public package documentation.