Skip to content
KStart free
AI InfrastructureDefenseQuantumAll studies →

Methodology — Correlation Attribution

Transparency is a feature. This page explains what the correlation-attribution panel shows and why — in plain terms. The precise formulas and numeric conventions are documented in our internal methodology; the summary here is deliberate, not an omission.

Two of your names can move together for a boring reason — they are both stocks, both large caps, both value — or for a reason the market factors don't capture: a shared supplier, a shared end market, shared owners. This panel splits every pair's measured price correlation into exactly those two parts:

correlation  =  what the factor set explains  +  what is left over (residual)

The two parts sum to the measured correlation exactly — this is an accounting identity of the regression, not an approximation, and our tests hold it to twelve decimal places.

How the split is computed

Each name's daily returns are regressed on our transparent ETF-proxy factor set — the same one the Factor tab uses (market = SPY; size = IWM minus SPY; value = VTV minus VUG), named verbatim in the panel. What the factors explain of a pair's co-movement is computed with the factors' full covariance — the proxies themselves are correlated (the size spread contains SPY), and ignoring that would misattribute co-movement. The leftover ("residual") part is measured from the actual regression leftovers of both names on one shared calendar of trading days.

Everything is computed on the panel's own aligned window, disclosed on the tile. The numbers deliberately differ from the correlation heatmap above it, which uses a shrinkage estimator that pulls values toward zero by design.

When a pair gets flagged

A pair is flagged when its residual co-movement is statistically distinguishable from zero after controlling the false-discovery rate (Benjamini–Hochberg at 5%). With hundreds of pairs, ordinary 5% tests would flag dozens by chance alone; the FDR procedure is what keeps the flag list honest. "Zero flagged" means not detected at this sample size — never "your names are independent".

Reading the flags

With only three market factors, two software companies will almost always show residual co-movement — their industry is simply not in the factor set. So each flagged pair carries shared-linkage chips: facts we can verify about the pair, like "same GICS sector". Chips are shared linkages present — they are never a causal claim about why the pair co-moves, and never a return forecast. Each pair also discloses which channels we could actually check: a name outside our covered universe shows "sector channel unchecked" rather than a falsely clean bill. Shared institutional ownership is measured separately, in the common-ownership panel.

Honest limits

  • Names without price history across the whole window are excluded and named — one aligned calendar for everyone, or the arithmetic silently changes per pair.
  • A name whose factor loadings can't be estimated reliably on the window (no loading clears two standard errors) doesn't get a split — its pairs say so, because a noisy split is worse than no split.
  • Every number is a model estimate from one window and one factor set.