# VAMS validation report

Command: `npm run validate:vams`

Decision: retain the current VAMS formula. RSI remains display-only.

The deterministic multi-regime fixture produced 49 sampled observations. Current VAMS covered 19 Bullish, 9 Neutral, and 21 Bearish observations with 15 state changes and a -25.7% maximum simulated drawdown. The simpler absolute-trend, multi-horizon-momentum, realized-volatility candidate reduced state changes to 8, but worsened maximum drawdown to -33.7% and ending value from 1.080 to 0.860. The drawdown disadvantage also appeared in both predeclared walk-forward windows, so the candidate did not satisfy the activation rule.

Candidate agreement across the three parameter neighborhoods was 95.9%, 100%, and 98.0%. The five current trend votes were materially dependent: pairwise correlations ranged from 0.25 to 0.88, with price-above-200-day and 50-day-above-200-day the most overlapping pair. That dependence is now documented rather than treated as five independent facts.

The selection rule was declared before comparison: activate the simpler candidate only if it lowers turnover by at least 10%, does not worsen drawdown, covers multiple regimes, and remains stable across parameter neighborhoods and both walk-forward windows. Returns and Sortino were not sole selection criteria, and no threshold was optimized against the displayed 2025-present dashboard result.

Current thresholds remain exact and unchanged: weighted 1/3/6/12-month log momentum weights of 20%/35%/30%/15%, 63-day annualized volatility normalization, z-score cutoffs of ±0.25, five documented trend votes, Bullish vote requirements of 3 or 4 depending on rule, Bearish maximum of 2 votes, and two-close state confirmation.
