z-of-a.

We can see the cycle now. It's real and it's not Mars.

Bandpass filter, Hilbert transform, 788-day mean period, 8.4% of variance explained, Rayleigh R = 0.067. Two independent oscillators with similar frequencies.

Yesterday we reported that a ~2.1-year spectral peak exists in market volatility, detected through the improbable method of testing astrological features against 40,000 market events. Today we isolated the cycle directly with a bandpass filter and watched it breathe across 76 years of S&P 500 data.

It’s real. It explains 8.4% of detrended volatility variance. Its mean period is 788 days. It’s twice as strong in the post-2000 era as it was before. And it is almost certainly not caused by Mars.

Isolating the cycle

A Lomb-Scargle periodogram tells you a frequency exists. A bandpass filter lets you see it as a time series.

We took 76 years of S&P 500 daily returns (1950–2026), computed 21-day rolling realized volatility, removed trends longer than 3,000 days, and applied a Butterworth bandpass filter centered on the 600–1,000 day band. What comes out is the ~2-year volatility cycle, isolated from everything else — stripped of the annual seasonal, the business cycle, and the day-to-day noise.

Then we ran a Hilbert transform to extract the cycle’s instantaneous amplitude (envelope) and phase. This tells us not just where the cycle is, but how strong it is at every point in time.

The headline numbers

Mean peak-to-peak interval: 788 days (3.13 years in market time, ~2.15 calendar years). Mars’s synodic period is 780 days. The match is close but not exact — the cycle’s period wanders between 504 and 1,094 days across different episodes, with a standard deviation of 164 days. This is a quasi-periodic oscillation, not a metronome.

Variance explained: 8.4% of detrended volatility. That’s substantial for a single frequency band. For context, the annual seasonal cycle typically explains 3–5% of volatility variance in equity markets.

Cycle amplitude by decade:

DecadeMean amplitudeMax amplitudeMean period
1950–600.0160.022849 days
1960–700.0160.020918 days
1970–800.0160.026910 days
1980–900.0260.050736 days
1990–000.0170.046879 days
2000–100.0500.090765 days
2010–200.0350.086938 days
2020–270.0170.032734 days

Two patterns jump out. First, the cycle is roughly twice as strong post-2000 as it was before (mean amplitude 0.036 vs 0.018). This explains why the Mars-in-Capricorn signal failed the temporal out-of-sample split on 1950–1999 data — the cycle was there but too faint to detect through astrological phase bins. Second, the period is not constant. The 1980s and 2000s had periods closer to 740–765 days (almost exactly Mars’s synodic period), while the 1960s–70s ran slower at 900+ days.

The 2008 crisis is the cycle’s all-time peak. The envelope hit 0.090 in November 2008 — nearly double the next-largest value (1987 crash at 0.048). This doesn’t mean the cycle caused the 2008 crisis. It means the ~2-year volatility oscillation amplified dramatically during the crisis, consistent with feedback loops between leveraged positions and margin calls operating on a roughly 2-year capital cycle.

The phase question

If Mars caused this cycle, the cycle’s phase should be locked to Mars’s orbital position. We tested this with circular statistics — the Rayleigh test for uniformity of the phase difference between the bandpass cycle and Mars’s ecliptic longitude.

Result: weak but statistically significant phase-locking (Rayleigh Z = 90.6, p < 0.000001, mean resultant length R = 0.067).

An R of 0.067 is tiny. Perfect phase-locking would give R = 1.0. This says the cycle and Mars’s orbit are not independent — their periods are close enough that they drift in and out of alignment — but Mars is not driving the cycle. If it were, R would be much higher.

The Mars sign distribution at cycle peaks confirms this. We identified 26 peaks of the bandpass-filtered cycle across 76 years and checked where Mars was at each peak. The distribution across the 12 signs is statistically uniform (chi-squared p = 0.78). The cycle peaks don’t consistently align with any particular Mars position.

The cycle peaks at every Mars position. Mars is the clock, not the cause.

So what’s going on? The cycle has a period close to Mars’s orbit (788 vs 780 days). Their phases drift relative to each other. Over any given decade, they may align — making it look like Mars in Capricorn predicts volatility — before drifting apart. The international replication worked because all four markets (S&P, VIX, Nikkei, FTSE) share the same cycle in the same era, and in the 2000–2026 period the cycle happened to be roughly phase-aligned with Mars.

This is the classic problem of two independent oscillators with similar frequencies. They beat in and out of sync. During the in-sync periods, any phase-binned test (like “is Mars in Capricorn enriched among extreme days”) will succeed. During the out-of-sync periods, it will fail. The temporal split showed exactly this pattern.

What the cycle actually is

We don’t know yet. But we can describe its properties:

Quasi-periodic, ~780–850 day mean period. Not a fixed cycle — the period wanders by hundreds of days. This rules out anything with a precise astronomical period and points toward an endogenous economic process with a characteristic but variable timescale.

Strengthened dramatically post-2000. Consistent with a cycle driven by or amplified by features of modern markets: derivatives, leverage, algorithmic trading, global capital flows, or monetary policy transmission.

Amplifies during crises. The cycle envelope is correlated with the overall volatility level (r = 0.28). It doesn’t predict crises, but crises ride on the cycle’s peaks. The 2008 crisis began during the cycle’s rising phase and amplified it to unprecedented levels.

Global. Mars in Capricorn replicates across S&P, VIX, Nikkei, and FTSE with a combined p-value of 0.000042. If the cycle is the real driver, it must be a global phenomenon — consistent with global monetary policy, commodity cycles, or coordinated capital flows.

The candidate mechanisms, in order of plausibility:

Monetary policy transmission lag. Central bank rate changes take 12–24 months to fully affect the real economy. A tightening cycle followed by easing, followed by tightening, could create a ~2-year oscillation in credit conditions and therefore volatility. The cycle strengthening post-2000 would correspond to more aggressive and coordinated central bank intervention.

Capital expenditure / inventory sub-cycle. The Kitchin cycle (~3.3 years) is the shortest of the classical business cycles, driven by inventory buildups and drawdowns. A sub-harmonic at ~1.6–2.2 years could represent the capex planning cycle within firms: commit capital, wait for returns, adjust, repeat.

Options and derivatives expiration cascade. The enormous growth in options market activity post-2000 (S&P 500 options volume has increased roughly 10× since 2000) could create a structural periodicity through gamma exposure, delta hedging, and the interaction between long-dated option expiration cycles and market maker positioning.

Leverage and margin cycle. Leveraged positions build during low-volatility periods, creating fragility. A shock triggers margin calls, forced selling, and volatility. The unwind completes over several months, leverage rebuilds, and the cycle repeats. The natural timescale of this process — from peak leverage to forced unwind to recovery to peak leverage — might be roughly 2 years.

The next step is to correlate the extracted cycle with macro data: Federal Funds rate changes, ISM manufacturing index, corporate credit spreads, and options market positioning data. If the cycle leads or lags one of these by a consistent offset, the mechanism is identified and the cycle becomes a tradeable signal.

Why this matters

We started this project to test astrology. The answer is definitive: astrology does not predict human achievement (Nobel replication failed), does not predict market direction (the earlier GA work showed this), and does not cause market volatility (the Mars phase-locking is an artifact of similar frequencies, not causation).

But the methodology — stratified null distributions, multiple-comparison correction, permutation testing, fast-planet restriction, block-shuffle null models, spectral analysis — was not wasted. It was designed to find patterns and then subject them to every available test. It killed the fake patterns. And underneath the fake patterns, it found a real one: a quasi-periodic ~2-year oscillation in global market volatility that explains 8.4% of detrended variance and has strengthened by 2× in the era of globalized finance.

This cycle sits in a frequency band between the well-studied annual seasonal and the Kitchin inventory cycle. We haven’t seen it reported prominently in the financial econometrics literature, though it may exist under a different name or framing. If it’s genuinely under-studied, the most likely reason is that researchers don’t typically look for quasi-periodic oscillations with wandering periods — fixed-frequency spectral methods would blur it, and most volatility models (GARCH, stochastic vol) treat volatility as a process without characteristic frequencies.

The astrological encoding found it because zodiac signs are phase bins. When you test “is Mars in Capricorn enriched,” you’re testing whether one phase of a ~780-day cycle correlates with your outcome. The zodiac doesn’t know or care that it’s measuring an economic cycle. It’s just the wrong tool that happened to have the right frequency resolution.

The methodology

Bandpass filter. Fourth-order Butterworth bandpass, 600–1,000 day passband, applied via scipy.signal.filtfilt (zero-phase filtering). Input: 21-day rolling realized volatility (annualized), detrended by removing components longer than 3,000 days.

Hilbert transform. scipy.signal.hilbert on the bandpass-filtered signal. Instantaneous amplitude (envelope) = modulus of the analytic signal. Instantaneous phase = angle of the analytic signal, unwrapped. Instantaneous frequency = derivative of unwrapped phase.

Peak detection. scipy.signal.argrelmax with order=150 (minimum 150 trading days between peaks). 26 peaks detected across 76 years.

Rayleigh test. Circular statistics test for non-uniformity of the phase difference between the bandpass cycle phase and Mars’s ecliptic longitude (converted to radians). Mean resultant length R = 0.067, Rayleigh Z = n · R² = 90.6. Significant but weak.

Variance explained. Ratio of bandpass signal variance to detrended volatility variance: 8.4%.

Peak-to-peak intervals. Mean 788 days, std 164, range 504–1,094. Computed from the 26 detected peaks.

← All Lab Notes