Tool Tutorials

Correlations Tutorial

Chapter 1

What This Tool Measures

Correlations answers one question about two tickers: when one of them moves, what does the other one usually do?

Two tickers, one relationship

You pick a Primary Ticker and a ticker to Compare Against. Everything on the page describes the relationship between that pair. Swap either one and every number changes.

ticker A ticker B
Two tickers can sit far apart in price and still move together. What correlation measures is how they move.

It compares moves, not prices

This is the part people get wrong. The tool never compares the two price charts. A $700 ETF and a $12 ETF have nothing to say to each other in dollars.

Every number on the page is calculated from paired daily returns. Absolute price levels play no role at all. That is why a $700 index ETF and a $12 volatility ETF can be compared directly. Simple daily returns, nothing compounded. This keeps every day an independent observation.

Key Idea

Every number on the page comes from a list of paired daily returns. Nothing comes from the price levels themselves. That is why a $700 index ETF and a $12 volatility ETF can be compared at all.

Open SPY against QQQ
Chapter 2

Move Together, Move Opposite

The first block of results is a plain count. Out of every shared day, how often did the two close on the same side?

The headline pair of numbers

  • Move together counts the days both closed green or both closed red.
  • Move opposite counts the days one closed green while the other closed red.

The two always add to 100%. Each percentage is shown with its raw day count so the sample size is always available for context.

A day where either ticker closed exactly flat is dropped from all of it. A flat print carries no direction, so counting it in either direction would be a guess.

The two ways of diverging

Opposite days are split into two groups: the days the compared ticker fell while the primary rose, and the days it rose while the primary fell. These almost never come out even.

On SPY versus QQQ, 6.7% of days were QQQ down with SPY up, and 7.7% were QQQ up with SPY down. That gap shows the divergences have a lean, something a single "14.5% opposite" number would hide.

Reading Tip

Same-direction moves is a count of days, not a measure of size. Two tickers can close green together on 85% of days while one of them still moves three times as far each time. Size is covered in Chapter 3.

Compare SPY against TLT
Chapter 3

Beta, Both Ways

Direction tells you whether they agree. Beta tells you by how much.

The question beta answers

Beta is the average move in one ticker for every 1% move in the other. The tool shows it in both directions as two separate rows, because each direction is a different question with a different answer.

beta = correlation × (volatility of A ÷ volatility of B) Reversing the pair flips the volatility ratio, which is why the two rows rarely match.

Why the two rows are not reciprocals

This trips people up constantly. On SPY against QQQ the tool reports:

  • Per 1% QQQ move, SPY moves +0.81%
  • Per 1% SPY move, QQQ moves +1.05%

If these were reciprocals, the second would be 1 ÷ 0.81 = 1.23. It is 1.05. The gap is not an error. Each row is a separate regression, and each one is dragged toward zero by the part of the move the other ticker does not explain.

Multiply the two rows together and that missing piece becomes visible: 0.81 × 1.05 = 0.85. That product is the share of each ticker's daily movement the other one accounts for. About 85% of what SPY and QQQ do on a given day is common to both; the remaining 15% is their own.

When the two rows look nothing alike

SPY against UVXY is the extreme case:

  • Per 1% UVXY move, SPY moves −0.11%
  • Per 1% SPY move, UVXY moves −5.36%

Both negative, so they lean opposite, which the 21.1% same-direction rate already said. The size gap is about volatility: UVXY swings many times harder than SPY, so a 1% wobble in it barely registers in SPY, while a 1% move in SPY corresponds to a violent move in UVXY.

The same multiplication still applies: 0.11 × 5.36 = 0.59. Roughly 59% of the daily movement is shared, and it is shared in opposite directions. A strong relationship, even though one of the two beta rows is nearly zero.

Common Mistake

Treating a near-zero beta as no relationship. A beta near zero can mean the other ticker is simply far more volatile, not that the two are unrelated. Read both rows and the same-direction rate before deciding.

See the SPY against UVXY betas
Chapter 4

The Two Charts

Year by year

The first chart breaks the correlation down into calendar years. Each year has two columns: the share of days the pair moved together and the share they moved opposite.

Rolling correlation

The second chart tracks the correlation over a trailing 30-day window, redrawn every day. Above the zero line the pair is moving together, below it they are moving opposite, and the caption calls out the highest and lowest readings with the dates they happened.

Case Study

SPY and TLT move in the same direction on only 41.6% of days. At first glance that looks like a mild tendency to move opposite each other.

PairRolling lowRolling high
SPY vs TLT−0.89 (Nov 2011)+0.79 (May 2026)
SPY vs QQQ+0.49 (Dec 2020)+0.99 (May 2025)
SPY vs UVXY−0.97 (Aug 2019)−0.16 (Jul 2023)
Measured on 21 July 2026. SPY against TLT has been strongly negative and strongly positive at different times. The mild average describes neither period.

SPY and TLT have been strongly opposite at times and strongly aligned at other times. The mild average sits right in the middle of two completely different regimes. It describes neither of them.

In 2011 stocks and long bonds moved hard against each other. In 2026 they moved hard together. A hedge built on the long-term average would have been wrong in both periods.

Now look at SPY versus QQQ. That pair stayed between +0.49 and +0.99 the entire time. Same style of overall number, but far more reliable underneath.

A correlation is only as useful as its stability. The overall number gives the average. The rolling chart shows whether that average ever actually held.

Both charts are clearer on the live tool. Open it with the guided walkthrough and it steps through the pair inputs, the VIX filter, the results breakdown, and both charts on real data.

Walk through the live tool
Chapter 5

The VIX Regime Filter

This tool provides an optional volatility filter. It filters for any day that began in a chosen volatility environment.

How the filter works

Each return day is grouped by where the VIX opened that morning: under 20, between 20 and 30, or above 30. That bucket is the market environment when the move happened. Only the days that match the regime you choose are kept in the count. Everything else is dropped.

What it exposes

In calm markets, stocks often move for their own reasons. One company reports strong earnings while another struggles, so their prices can go in opposite directions.

When volatility spikes and fear rises, that changes. Investors stop looking at individual companies and start reacting to the overall risk. Many people sell (or buy) at the same time, and money flows in broad waves. As a result, even stocks that normally have little in common tend to move together.

High-volatility periods therefore show higher same-direction rates across the market, including pairs that usually look unrelated.

Click the buttons below to open the tool with different VIX filters and compare the results.

SPY and QQQ, no filter With VIX under 20 With VIX 20 to 30 With VIX above 30