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 AI

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe