Skip to main content
2026-05-22 · 3 min read · ← 4 · composition · correlation · research

Perfect correlation explains the interference

what you'll learn · Why composite-interferes outcomes correspond to pairwise correlation of 1.0 between parent and composite, and how the correlation matrix is the cheapest pre-test for composite-stack-or-interfere predictions.

The composite `three_clock_portfolio_vol` underperformed both parents in PR #740. The pairwise correlation analysis (10 seeds) shows why: three_clock_momentum and three_clock_portfolio_vol correlate at exactly +1.00 across seeds. The composite IS the parent — a vol-gate added on top of a momentum signal that's already vol-gated doesn't catch anything new.

PR #740 shipped a composite arm (three_clock_portfolio_vol) combining the top-mean per-symbol score arm (three_clock_momentum) with the best cross-symbol intervention (portfolio_vol_gate). The hypothesis: different signals, different intervention points → should stack.

The composite UNDERPERFORMED both parents on both modes. The research note honestly admitted the result and suggested “verify with pairwise correlation.”

PR #708’s --pairwise flag on the analysis script runs that verification. Here’s the matrix (10 seeds, --fomc-drift-bps 50):

                          three_clock_   three_clock_   portfolio_
                            momentum     portfolio_vol   vol_gate
three_clock_momentum         +1.00         +1.00          (lower)
three_clock_portfolio_vol                  +1.00          (lower)
portfolio_vol_gate                                        +1.00

three_clock_momentum and three_clock_portfolio_vol correlate at +1.00 across all 10 seeds. Not 0.95. Not 0.99. Exactly 1.00.

What this means

The composite IS the parent. On this synthetic, the portfolio_vol_gate overlay on top of three_clock_momentum adds zero new signal — the per-seed sharpe sequence of the composite is identical (up to floating-point precision) to the sequence of the score-only parent.

Mechanically: the universe vol median rarely crosses the 1.2 threshold on the default synthetic, so portfolio_scale = 1.0 most of the time. When the threshold IS crossed, both arms scale proportionally, so their relative ranking on a Sharpe basis doesn’t change. Hence +1.00.

Why the original pairwise rule held

PR #710’s rule:

High correlation (over 0.8) → composing likely interferes. Low correlation (under 0.3) → composing likely stacks.

three_clock_momentum and three_clock_portfolio_vol at +1.00 is in the “almost certainly interferes” zone. The rule is doing its job — operators could have predicted the interfere result BEFORE running PR #740 just by computing the would-be composite’s correlation with one of its parents.

Except they couldn’t — the composite has to exist as code to compute its per-seed sharpe sequence. The cheap pre-test the rule promised doesn’t actually skip the composite-arm code; it just predicts the result before running it.

The deeper observation

The matrix reveals something else useful: most “different” strategies on this synthetic are highly correlated with baseline across seeds.

baseline vs spread_filter        +1.00  (gate dormant)
baseline vs blackout             +1.00  (events tiny fraction)
baseline vs damping              +1.00  (damping mild)
baseline vs spread_filter_tuned  +0.96
baseline vs vol_regime_filter    +0.88
baseline vs vol_weighted         +0.86
baseline vs three_clock_momentum +0.79
baseline vs three_clock_vol_regime +0.75 (most-decorrelated)

three_clock_vol_regime is the most decorrelated from baseline at +0.75. Even at the bottom of the matrix, +0.75 isn’t far from baseline’s behaviour — these strategies look more like baseline-with-noise than baseline-with-different-signal.

The implication: the synthetic doesn’t expose enough heterogeneous alpha sources for the strategies to differentiate. Real markets — with more diverse drivers (sector rotation, factor exposure, regime change, microstructure) — would likely produce more decorrelated arm sets. That’s the next experiment.

What this rules out

  • Not “the pairwise rule is wrong.” The rule predicts “composite interferes” for parent-pairs at +0.8+ correlation. The composite’s correlation with its parent at +1.00 is the highest-correlation case → most-confident interference prediction. The rule held.

  • Not “portfolio_vol_gate doesn’t work.” It outperforms the per-symbol vol variants AND has lower stdev than baseline. Useful for operators with bounded-stdev constraints. Just doesn’t STACK with three_clock_momentum on this synthetic.

  • Not generalisable to real markets. Real-market arm correlations are lower; composites might stack more easily there. The “almost all arms correlate +0.85 with baseline” finding is a feature of this single-signal synthetic.

The discipline rule (refined)

When proposing a new composite arm, compute the would-be composite’s correlation with each parent BEFORE deciding whether to ship. If either correlation is over 0.95, the composite IS the parent — composing doesn’t add value. If both correlations are under 0.5, the composite is a new signal — worth shipping.

A corollary: the correlation matrix lets you SKIP composite arms that the matrix predicts will interfere. The 23-arm harness has 2 composite arms (three_clock_vol_regime, three_clock_portfolio_vol); a future operator can use this matrix to decide which composite to add next without shipping exploratory code.

Next experiment

The most-decorrelated arm pair on this synthetic: three_clock_vol_regime vs vol_weighted at +0.72. Or: three_clock_momentum vs vol_weighted at +0.71.

A composite of those two parents would have the lowest expected correlation — the highest stack probability the matrix can predict. Whether the stack actually materialises is a future experiment.

deskgdfindgfstrategiesgsfeaturesgepromotionsgpapigabotgbwritinggw

Shortcuts are no-ops while typing in an input or textarea.