Skip to content
6 min read Bitcoin

Spot ETFs and Global M2: Thresholds for Overriding the Bitcoin Halving Cycle

Discover how Global M2 and Spot ETF netflows are overriding the traditional Bitcoin halving cycle. Learn the thresholds, SQL formulas, and how to trade them.

Discover how Global M2 and Spot ETF netflows are overriding the traditional Bitcoin halving cycle. Learn the thresholds, SQL formulas, and how to trade them.

TL;DR

  • What it is: A macro-valuation framework that measures fiat liquidity (Global M2 YoY) and structural demand (Spot ETF Netflows) against Bitcoin's fixed supply schedule.
  • How it’s calculated: We measure the Year-over-Year (YoY) percentage change in Global M2 money supply, combined with the 7-day rolling sum of US Spot ETF net inflows.
  • What "Up/Down" means: Expanding M2 + positive ETF inflows = bullish (cycle acceleration). Contracting M2 + negative ETF outflows = bearish (cycle suppression).
  • Core practical takeaway: Macro liquidity and ETF inflows now dictate cycle timing and drawdowns more than the 210,000-block halving schedule.
  • Context/false signals: ETF inflow reports can lag actual price movements; buying purely on backward-looking ETF prints during extreme greed (for example, MVRV > 5) is a trap.
  • The mini-rule: Signal triggers bullish when Global M2 YoY flips from negative to positive AND weekly US ETF netflows sustain > 5,000 BTC for two consecutive weeks.

The signal rule

Formula:

Cycle Strength = (Global M2 YoY Growth > 0%) + (Weekly ETF Netflow > 0)

Thresholds and window:

  • Bullish: M2 YoY > 2.0% AND Weekly ETF netflows > 10,000 BTC. This indicates strong fiat liquidity expansion combined with direct institutional buying.
  • Bearish: M2 YoY < 0% (contraction) AND Weekly ETF netflows < -2,000 BTC. The halving supply shock will not save the price in this environment.
  • Neutral: M2 is flat (0% to 1%), and ETF flows are mixed. The market reverts to standard days_into_cycle and miner dynamics.

Examples:

  • If M2 YoY turns negative (as it did during the 2022 tightening cycle), then the market can remain in a severe bear phase regardless of where we are in the 4-year cycle.
  • If spot ETF demand absorbs a large share of net new supply for multiple weeks, then cycle timing can shift forward (including pre-halving highs), breaking the historical pattern.

SQL / Code snippet

Calculates weekly Global M2 YoY growth against weekly Bitcoin price (BigQuery-compatible). This version actually aggregates to weekly data so the YoY LAG(52) is consistent.

-- Weekly (Sunday) aggregation + YoY change (52 weeks)
WITH price_daily AS (
  SELECT
    DATE(datetime) AS day,
    c AS price
  FROM `tech-web3-analytics-prod.abstraction_price.btc_usd_index-price_day`
  WHERE DATE(datetime) >= '2012-01-01'
),
m2_daily AS (
  SELECT
    DATE(event_timestamp) AS day,
    AVG(value) AS m2_value
  FROM `poc_stage.tradfi_fred_dataset`
  WHERE type = 'm2' AND DATE(event_timestamp) >= '2012-01-01'
  GROUP BY 1
),
price_weekly AS (
  SELECT
    DATE_TRUNC(day, WEEK(SUNDAY)) AS week,
    AVG(price) AS price
  FROM price_daily
  GROUP BY 1
),
m2_weekly AS (
  SELECT
    DATE_TRUNC(day, WEEK(SUNDAY)) AS week,
    AVG(m2_value) AS m2_value
  FROM m2_daily
  GROUP BY 1
)
SELECT
  w.week,
  p.price,
  100 * SAFE_DIVIDE(p.price - LAG(p.price, 52) OVER (ORDER BY w.week),
                    LAG(p.price, 52) OVER (ORDER BY w.week)) AS price_yoy,
  100 * SAFE_DIVIDE(m.m2_value - LAG(m.m2_value, 52) OVER (ORDER BY w.week),
                    LAG(m.m2_value, 52) OVER (ORDER BY w.week)) AS m2_yoy
FROM (SELECT week FROM m2_weekly UNION DISTINCT SELECT week FROM price_weekly) w
LEFT JOIN price_weekly p USING (week)
LEFT JOIN m2_weekly m USING (week)
ORDER BY 1 DESC;

Key definitions

  • Global M2 YoY: The year-over-year percentage change in the total supply of currency and highly liquid assets circulating in the global economy.
  • Spot ETF netflow: The absolute daily or weekly difference between capital entering and leaving US-listed spot Bitcoin ETFs.
  • Halving block subsidy: The deterministic reduction in new Bitcoin issuance (currently 3.125 BTC per block), which has historically anchored the 4-year cycle.

How to interpret this metric

  • Bullish case: When Global M2 YoY growth is accelerating and spot ETF flows show sustained weekly net-positive inflows. In this regime, fiat liquidity pushes capital into risk assets, and ETFs act as a direct structural vacuum for Bitcoin's fixed supply. Expect cycle highs to stretch higher or occur earlier than the traditional day-500 timeline.
  • Bearish case: M2 YoY turns negative (central bank tightening) accompanied by ETF net-outflows. Liquidity is draining from the system. In this state, the mechanical reduction of miner supply (halving) can be overpowered by macro sell pressure.
  • Neutral case: M2 growth is stagnant and ETF flows chop between positive and negative. The market is waiting for a macro catalyst.
  • What matters most: The macro trend of M2 (months) combined with cumulative ETF flow (weeks), rather than a single day of ETF outflows.

Historical examples (what worked, what didn’t)

  • Q1 2024 (the pre-halving ATH):
    • Indicator: Spot Bitcoin ETFs saw net inflows of roughly $12B in Q1 2024.
    • Result: Bitcoin hit an all-time high before the halving event for the first time in history.
    • Context: Structural demand routed through ETFs compressed cycle timing and overpowered the standard early-cycle accumulation narrative.
  • Late 2022 (macro overload):
    • Indicator: Broad money growth rolled over during the 2022 tightening cycle and liquidity conditions deteriorated sharply.
    • Result: Bitcoin reached the deep bear market low around ~$15,900.
    • Context: Even deep into the historical cycle window, liquidity drawdowns can dominate the halving schedule.

How to use it in practice

  • Setup: You track days_into_cycle (for example, nearing the historical day-500 top zone) but want to know if liquidity will extend or cut the cycle short.
  • Trigger: Global M2 YoY crosses above 4% AND weekly ETF netflows remain positive for 3 consecutive weeks.
  • Confirm: Confirm with the MVRV Z-Score (remaining below 5.0 suggests room without overheating) and STH SOPR (bouncing off 1.0).
  • Invalidates when: Liquidity conditions tighten materially (for example, M2 re-accelerates downward) or consecutive ETF outflow weeks exceed -10,000 BTC total.
  • Action: Scale into positions when M2 flips positive; begin taking profit if M2 growth stalls and ETF flows turn negative for a multi-week period, regardless of what "cycle day" it is.

Common pitfalls

  • Ignoring the ETF settlement/reporting lag: ETF flow data is typically reported end-of-day. Trading purely on yesterday's flow means you are reacting to priced-in data. Filter: use ETF flows for weekly trend strength, not intraday entries.
  • Confusing nominal M2 with YoY M2: The absolute number of M2 always looks large. Filter: the YoY rate of change (acceleration/deceleration) is what matters for macro regimes.
  • Assuming ETFs only buy: In a macro downturn, ETFs can become a source of liquid supply. Filter: watch for consecutive outflow weeks during M2 contraction to identify regime shifts early.

Halving supply shock vs fiat liquidity

  • Halving supply: Reduces issuance mechanically (for example, ~900 BTC/day to ~450 BTC/day). Predictable, but impact diminishes as market cap grows.
  • Fiat liquidity (M2/ETF): Introduces large, variable demand shocks (for example, ETFs absorbing multiples of net new issuance in strong weeks). Less predictable but can carry more marginal price impact than the halving.

FAQ

  • Q: Does the 4-year cycle still work after spot ETFs?
    • A: The cycle phases (accumulation, bull, distribution, bear) remain, but timing and magnitude are now more sensitive to ETF flows and macro liquidity.
  • Q: Where can I find Global M2 data?
    • A: You can source it from aggregated central bank datasets, or construct a proxy index from major regions. (FRED is useful for US series; global requires aggregation.)
  • Q: What is a significant weekly ETF netflow value?
    • A: As a practical rule, consecutive weeks of > 5,000 BTC net inflows imply strong demand, while consecutive outflows below -2,000 BTC can signal distribution.
  • Q: Why did Bitcoin drop in 2022 when the cycle should have bottomed?
    • A: Liquidity conditions tightened aggressively during 2022, overpowering the historical cycle timing.

Minimal conclusion

  • Global M2 YoY is the macro engine; spot ETFs are the transmission mechanism into Bitcoin.
  • The 4-year cycle sets a baseline schedule, but M2 and ETFs can dictate actual highs and lows.
  • Do not trade the halving schedule blindly without checking current liquidity regimes.
  • Next step: Learn how to time macro tops by combining ETF flows with MVRV Z-Score: How to Identify Bitcoin Market Tops and Bottoms.

Adler AM