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.