From +0.78 to -0.38: Why Our GST Trading Strategy Failed

Tested a 'promising' GST trading strategy claiming 78% correlation with stock returns. Rigorous backtest revealed negative correlation (-0.38) and fiscal year-end artifacts. How proper due diligence killed a bad strategy in hours, not weeks.

Tested a strategy claiming 78% correlation between state-level GST spikes and stock returns.

Found negative correlation (-0.38) instead.

All signals were fiscal year-end accounting artifacts.

Killed the strategy after a few hours of proper backtesting.

Due diligence works.

The Hypothesis

State-level GST collections predict sector-specific earnings beats:

  • Maharashtra GST ↑ → Retail stocks (TITAN/TRENT/DMART) outperform
  • Gujarat GST ↑ → Chemical stocks beat
  • Tamil Nadu GST ↑ → Auto sector rallies
  • Karnataka GST ↑ → IT stocks surprise

Claimed performance: 73% hit rate, r=0.78 correlation, entry 12-20 days before earnings.

Sounded promising for swing trading. Time to validate.

The Backtest

Setup: 5 years (2020-2025), 4 states, 13 stocks, z-score momentum (z > 1.4), entry 12-20 days before earnings.

Standard quant approach. If the signal exists, we'd find it.

Red Flag: All Signals in April

Maharashtra had only 3 signals in 5 years. All in April (2023, 2024, 2025). Same magnitude spike (~₹2,500 Cr).

That's not a consumption signal. That's a calendar effect.

The April Artifact

India's fiscal year ends March 31. April = year-end compliance rush, tax reconciliation, deadline-driven payments.

We weren't measuring demand. We were measuring compliance deadlines. No predictive power for earnings.

Results: Negative Correlation

Maharashtra → Retail (z > 1.4)

  • Signals: 3 | Trades: 9 | Win Rate: 67% | Avg Return: +1.57%
  • Correlation: -0.378 (opposite of claimed +0.78!)
  • p-value: 0.32 (not significant)

Stocks went up, but NOT because of GST. Correlation was negative.

Lowering Threshold (z > 0.5)

  • Signals: 10 | Trades: 12 | Win Rate: 50% | Avg Return: +0.95%
  • Correlation: +0.104 (p=0.75, statistically zero)

More signals didn't help. Hypothesis broken.

Timing Tests

Entry WindowCorrelation
5-15 daysr = -0.52
12-20 daysr = -0.38
20-30 daysNo trades
30-40 daysNo trades

No timing window worked.

Other States

StateCorrelationWin RateSignals
Maharashtra-0.3867%3
Gujarat+0.2860%5
Tamil Nadu+0.09100%2
Karnataka+0.5117%4

Best case: weak +0.28 (Gujarat). Tamil Nadu's 100% win rate = luck (only 2 signals).

Why Positive Returns Despite Zero Signal?

Market beta (2020-2025 bull run) + Quality stocks (TITAN/TRENT naturally outperform) + Earnings seasonality (April = Q4 results).

Not alpha. Just beta. GST signal added zero information.

Why the Discrepancy?

Claimed: r=0.78, 73% hit rate
Actual: r=-0.38 to +0.10

Likely fabricated or cherry-picked. Doesn't work now. That's what matters.

What We Learned

✅ Caught accounting artifact before deploying
✅ Killed bad strategy after a few hours (not weeks)
✅ Documented failure for others

Failing fast with data beats failing slowly with capital.

Quant PM Questions (We Should Have Asked Earlier)

  1. Does this measure what I think? → GST = compliance timing, not consumption
  2. Signal frequency enough? → 3 signals / 5 years = too sparse
  3. WHY would this work? → No causal mechanism
  4. Edge cases? → Fiscal deadlines (found it!)

GST failed all four. At least we caught it before deployment.

Value of POCs

Backtesting BEFORE building avoided:

  • ❌ Dashboard for broken strategy
  • ❌ Paper trading infrastructure
  • ❌ Live deployment losses

POC first. Always.

Verdict

❌ ABANDON GST STRATEGY

Why:

  1. Accounting artifact (April fiscal deadline)
  2. No causality (GST ≠ consumption)
  3. Negative/zero correlation across all tests
  4. Too sparse (3 signals / 5 years)

Do not trade this.

Killed a bad idea before it killed capital. That's the win.

Summary Stats

Period: 2020-2025 (5 years)
States: Maharashtra, Gujarat, Tamil Nadu, Karnataka
Stocks: 13 across Retail, Chemicals, Auto, IT

Maharashtra Results (z > 1.4):

  • Correlation: -0.378 (claimed: +0.78)
  • Signals: 3 (too sparse)
  • Win Rate: 67% (market beta, not signal)
  • Verdict: REJECTED

Key Finding: April GST spikes = fiscal year-end artifacts, not consumption.

Technical Details

Signal: Z-score momentum (z > 1.4), 24-month rolling window

Tests:

  • Thresholds: z > 1.4 and z > 0.5 (both failed)
  • Entry windows: 5-15, 12-20, 20-30, 30-40 days (all failed)
  • States: All 4 tested (best: r=+0.28, weak)

Data: GST from Ministry of Finance (India), Stock prices from Zerodha API

Subscribe to RevDog Alpha

Sign up now to get access to the library of members-only issues.
Jamie Larson
Subscribe