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 Window | Correlation |
|---|---|
| 5-15 days | r = -0.52 |
| 12-20 days | r = -0.38 |
| 20-30 days | No trades |
| 30-40 days | No trades |
No timing window worked.
Other States
| State | Correlation | Win Rate | Signals |
|---|---|---|---|
| Maharashtra | -0.38 | 67% | 3 |
| Gujarat | +0.28 | 60% | 5 |
| Tamil Nadu | +0.09 | 100% | 2 |
| Karnataka | +0.51 | 17% | 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)
- Does this measure what I think? → GST = compliance timing, not consumption
- Signal frequency enough? → 3 signals / 5 years = too sparse
- WHY would this work? → No causal mechanism
- 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:
- Accounting artifact (April fiscal deadline)
- No causality (GST ≠ consumption)
- Negative/zero correlation across all tests
- 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