Monte Carlo · Methodology
Adaptive Precision and Stopping
mc-precision-v4A fixed path count is a guess about how much compute a claim needs. Adaptive precision replaces the guess with a stopping rule: the engine draws paths in blocks, re-reads the intervals on the metrics that matter, and stops when every binding one is narrow enough or the budget is exhausted.
What convergence here does and does not mean
Everything on this page bounds finite-path Monte Carlo sampling error only. It answers “would another 50,000 paths move this number?” and nothing else.
A run that converges numerically is not validated, calibrated or accurate. Whether the generator describes the market is a completely separate question, addressed by the rolling-origin validation harness, which currently qualifies no generator.
Why ordinary confidence intervals cannot be used
The engine's non-adaptive intervals are fixed-sample: Wilson intervals for probabilities, bootstrap intervals for quantiles and shortfall. They are correct exactly once, at a path count declared before the run starts.
Checking such an interval repeatedly and stopping the first time it looks narrow enough inflates the false-convergence rate without bound, because the stopping time is chosen by looking at the same noise the interval is meant to describe. The fix is a confidence sequence: an interval construction that holds simultaneously at every sample size, so any stopping rule, including one that peeks at every checkpoint, inherits the stated coverage.
The four constructions
Normal-mixture boundary
For independent mean-zero -sub-Gaussian increments, each is a supermartingale. Mixing over integrates in closed form, and Ville's inequality gives a boundary that holds at every at once:
The parameter only tunes where the boundary is tightest. Every choice is valid, so it is set at the sample size the tier expects to stop near.
Exact beta-binomial mixture, for probabilities
A sub-Gaussian proxy of is very loose where goal and depletion probabilities actually live, near 0 or 1. Mixing likelihood ratios over a Jeffreys prior integrates to a Beta function ratio, and the confidence sequence is the set of the martingale has not yet rejected. It adapts to extreme probabilities instead of pricing them at worst-case variance.
Order-statistic inversion, for quantiles
Quantile bounds invert the boundary through order statistics rather than assuming a density. With , the event is exactly , so choosing
places it inside the boundary event. No continuity assumption, no interpolation, no density estimate. That matters because the distributions here are genuinely atomic: depletion piles mass at zero, and underwater duration is an integer count of days.
Paired discordance, for policy differences
A paired probability difference decomposes the pathwise difference into its two discordance indicators and gives each an exact beta-binomial sequence at . Only paths where the two arms disagree carry information about the difference, and those counts exist only because the arms advanced over identical shock coordinates.
This also adapts where a range-based bound cannot. Two arms agreeing on 95% of paths have a tiny difference variance, but a range proxy prices the difference as if it could swing across the whole interval, which never reaches a 1-percentage-point target even at 100,000 paths. That would make the paired tier permanently nonconvergent.
The tiers
Clients pick a named tier, never a confidence level or a tolerance. The scientific target behind a name is identical across plans, so a cheaper tier reaches its ceiling and reports nonconvergence rather than quietly making the same claim from a looser interval. Checkpoints occur every 10,000 paths.
| Tier | Paths | Binding (primary) |
|---|---|---|
pro_standard | 10,000 to 50,000 | Goal and depletion probability, terminal-wealth median, terminal-wealth tail quantile, one-year VaR 95Secondary: ES 95, drawdown median and tail, underwater duration median and tail |
enterprise_standard | 10,000 to 100,000 | The same primary set, with a higher ceilingSecondary: ES 95, drawdown median and tail, underwater duration median and tail |
enterprise_tail | 50,000 to 100,000 | The standard set plus VaR 99, drawdown median and tail, and underwater duration median and tailSecondary: ES 95 and ES 99, which stay non-binding because their intervals are asymptotic |
paired | 10,000 to 100,000 | Pathwise goal-probability, terminal-wealth quantile, maximum-drawdown and underwater-duration differencesSecondary: The whole single-arm primary and downside set |
The authorized ceiling is , floored to a whole logical block. A client value can only reduce the ceiling: naming a tier selects a policy, it does not entitle the caller to that tier's compute.
{
"path_count": 10000,
"precision": { "tier": "enterprise_tail", "max_paths": 80000 }
}With precision set, path_count is no longer the number of paths simulated. The artifact reports both the budget and the actual count, along with the stop reason.
Error budget and the asymptotic guard
The joint error budget across the primary family is , split by Bonferroni over stable metric identifiers. Each member is itself time-uniform, so the split covers every checkpoint of every primary metric simultaneously. There is no additional penalty for how often the coordinator looks.
A run may never stop on an asymptotic claim
Every registered metric declares whether its interval is finite-sample valid or asymptotic, and that classification is part of the published policy digest. Expected shortfall is the one asymptotic member: its interval uses the influence function of the Acerbi-Tasche estimator with an estimated scale plugged in, which is exactly where heavy tails and depletion atoms make the approximation weakest.
An import-time guard refuses any tier that would make an asymptotic family binding. Expected shortfall stays secondary everywhere by enforcement rather than by convention. ES 99 additionally retains a 1,000 effective tail-observation floor, measured as integrated tail mass rather than a raw tie count, so a narrow estimate that has not accrued that mass is explicitly inadmissible.
Paired differences are pathwise, not marginal
The paired tier estimates the quantile of the pathwise difference, not the difference of two marginal quantiles. Because both arms advance over identical shock coordinates, path in one is path in the other, and the difference is a genuine per-path contrast:
The two estimands are not equal even at the median, which is why the metric identifiers say pathwise. Reporting one under the other's name would be a different quantity, not a rounding difference.
The paired tier binds on four families rather than one. A tier whose only binding metric is a probability stops as soon as that probability is precise, which can leave the wealth difference the comparison was really about far too wide to act on.
The v4 targets, and where they came from
The v3 policy carried provisional widths chosen by judgment. The v3 sweep exhausted every tier ceiling without converging, and the measured worst widths falsified seven of them. mc-precision-v4replaces those with values measured through the production engine on an orthogonal grid: four tiers, four representative generator families, 5/15/20/40-year horizons, and 5 and 10-asset diversified and concentrated portfolios, with static solver weights, annual HRP and HERC refits, monthly trading, SIP and SWP, FIFO tax, fees and deterministic stress arms.
| Metric family | Target half-width | Basis |
|---|---|---|
probability | 1.0 percentage point | absolute |
wealth_median | 3.0% of declared scale | relative |
wealth_tail_quantile | 18.0% of declared scale | relative |
var_95 | 2.0 percentage points | absolute |
var_99 | 7.0 percentage points | absolute |
es_95 | 1.5 percentage points, 500 effective tail observations | absolute |
es_99 | 2.0 percentage points, 1,000 effective tail observations | absolute |
drawdown_median | 1.0 percentage point | absolute |
drawdown_tail | 2.0 percentage points | absolute |
duration_median | 15 trading days | absolute |
duration_tail | 100 trading days | absolute |
paired_probability_difference | 1.0 percentage point | absolute |
paired_wealth_quantile_difference | 10% of starting wealth | relative |
paired_drawdown_difference | 2.0 percentage points | absolute |
paired_duration_difference | 20 trading days | absolute |
Under v4 all eight grid cells met every joint primary target, at 50,000, 50,000, 40,000, 60,000, 100,000, 90,000, 80,000 and 50,000 paths respectively. Comparative local wall time fell from 2,717.4 to 1,944.7 seconds, a 28.4% reduction, while the two hardest tail cells still needed 100,000 and 90,000 paths.
The study also caught two defects worth naming. Pathwise quantile differences use the ordinary finite-sample order-statistic mixture, but their specifications named a method that did not exist, so the stopping gate correctly refused them at every width. Separately, a model-risk comparison interval divides error across metrics and generators, so it can remain inadmissible after the selected generator has met its own tier. Comparison arms now continue independently to the next checkpoint until those stricter simultaneous intervals meet their per-metric targets or hit the ceiling.
Changing any target bumps the policy version, because the policy digest is published in every adaptive run's convergence block and consumers key their claims off it.
References
- Howard, S. R., Ramdas, A., McAuliffe, J., & Sekhon, J. (2021). Time-uniform, nonparametric, nonasymptotic confidence sequences. Annals of Statistics, 49(2), 1055–1080.
- Ville, J. (1939). Étude critique de la notion de collectif. Gauthier-Villars. The maximal inequality the boundary rests on.
- Acerbi, C., & Tasche, D. (2002). On the Coherence of Expected Shortfall. Journal of Banking & Finance, 26(7), 1487–1503.
- Wilson, E. B. (1927). Probable Inference, the Law of Succession, and Statistical Inference. JASA, 22(158), 209–212. The fixed-sample interval the adaptive path replaces.