When markets crash, some corporate insiders start buying their own stock. The logic is simple: they know their business better than anyone, and if they are spending personal money while the stock is down 20%+, they may be seeing value that the market is missing. But does persistent insider buying during drawdowns actually predict higher forward returns? This study tests the hypothesis across every month from 2016 to 2024 where SPY was down 15% or more from its 52-week high.
The question
"For each month from 2016-2024, check if SPY is down 15% or more from its 52-week high. If yes, find stocks where insiders bought persistently - at least 4 months of purchases by 3 or more distinct buyers, excluding 10b5-1 scheduled plans - and the stock itself is down 20% or more. What were the 12-month forward returns?"
The generated SQL
Claude generated the following query automatically from the prompt above. This is the raw, unedited output - 70 lines of SQL with 6 CTEs, lateral joins, and insider transaction filtering.
WITH months AS (
SELECT (DATE '2016-01-31' + (i * INTERVAL '1 month'))::DATE AS month_end
FROM generate_series(0, 107) AS t(i)
WHERE (DATE '2016-01-31' + (i * INTERVAL '1 month'))::DATE <= DATE '2024-12-31'
),
spy_drawdown AS (
SELECT m.month_end,
entry.close AS spy_close,
hi.spy_high,
ROUND((1 - entry.close / NULLIF(hi.spy_high, 0)) * 100, 1) AS spy_dd_pct
FROM months m
INNER JOIN LATERAL (
SELECT close FROM shibui.stock_quotes
WHERE ticker = 'SPY' AND date <= m.month_end
ORDER BY date DESC LIMIT 1
) entry ON true
INNER JOIN LATERAL (
SELECT MAX(high) AS spy_high FROM shibui.stock_quotes
WHERE ticker = 'SPY'
AND date BETWEEN m.month_end - INTERVAL '52 weeks' AND m.month_end
) hi ON true
WHERE (1 - entry.close / NULLIF(hi.spy_high, 0)) >= 0.15
),
buy_signals AS (
SELECT t.issuer_symbol, sd.month_end,
COUNT(DISTINCT DATE_TRUNC('month', t.tx_date)) AS buying_months,
COUNT(DISTINCT t.owner_cik) AS unique_buyers
FROM shibui.insider_transactions t
CROSS JOIN spy_drawdown sd
INNER JOIN shibui.general_info g ON t.issuer_symbol = g.symbol
WHERE NOT t.is_superseded
AND NOT t.is_derivative
AND NOT t.is_10b5_1
AND t.security_title ILIKE '%common%'
AND t.tx_code = 'P'
AND t.price_per_share IS NOT NULL
AND t.tx_date BETWEEN sd.month_end - INTERVAL '12 months' AND sd.month_end
AND g.type = 'Common Stock'
GROUP BY t.issuer_symbol, sd.month_end
HAVING COUNT(DISTINCT DATE_TRUNC('month', t.tx_date)) >= 4
AND COUNT(DISTINCT t.owner_cik) >= 3
),
with_drawdown AS (
SELECT bs.*,
entry.close AS entry_price,
hi52.wk52_high
FROM buy_signals bs
INNER JOIN LATERAL (
SELECT close FROM shibui.stock_quotes
WHERE symbol = bs.issuer_symbol AND date <= bs.month_end
ORDER BY date DESC LIMIT 1
) entry ON true
INNER JOIN LATERAL (
SELECT MAX(high) AS wk52_high FROM shibui.stock_quotes
WHERE symbol = bs.issuer_symbol
AND date BETWEEN bs.month_end - INTERVAL '52 weeks' AND bs.month_end
) hi52 ON true
WHERE (1 - entry.close / NULLIF(hi52.wk52_high, 0)) >= 0.20
),
with_returns AS (
SELECT wd.month_end, wd.issuer_symbol, wd.entry_price, wd.unique_buyers,
sd.spy_dd_pct,
exit_p.close AS exit_price,
(exit_p.close - wd.entry_price) / NULLIF(wd.entry_price, 0) * 100 AS ret_12m,
spy_exit.close AS spy_exit_price,
(spy_exit.close - sd.spy_close) / NULLIF(sd.spy_close, 0) * 100 AS spy_ret_12m
FROM with_drawdown wd
INNER JOIN spy_drawdown sd ON wd.month_end = sd.month_end
INNER JOIN LATERAL (
SELECT close FROM shibui.stock_quotes
WHERE symbol = wd.issuer_symbol
AND date BETWEEN wd.month_end + INTERVAL '11 months'
AND wd.month_end + INTERVAL '13 months'
ORDER BY date DESC LIMIT 1
) exit_p ON true
INNER JOIN LATERAL (
SELECT close FROM shibui.stock_quotes
WHERE ticker = 'SPY'
AND date BETWEEN wd.month_end + INTERVAL '11 months'
AND wd.month_end + INTERVAL '13 months'
ORDER BY date DESC LIMIT 1
) spy_exit ON true
)
SELECT month_end, spy_dd_pct, COUNT(*) AS signals,
ROUND(COUNT(*) FILTER (WHERE ret_12m > 0) * 100.0 / COUNT(*), 0) AS win_pct,
ROUND(AVG(ret_12m), 1) AS avg_ret,
ROUND(MEDIAN(ret_12m), 1) AS med_ret,
ROUND(PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY ret_12m), 1) AS p25,
ROUND(PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY ret_12m), 1) AS p75,
ROUND(AVG(spy_ret_12m), 1) AS spy_12m,
ROUND(MEDIAN(ret_12m) - AVG(spy_ret_12m), 1) AS alpha
FROM with_returns
GROUP BY month_end, spy_dd_pct
ORDER BY month_end
LIMIT 50
The results
Ran in 1.1 seconds. Seven months qualified (SPY down 15%+ from its 52-week high):
| Month | SPY Drawdown | Signals | Win % | Avg Return | Median | P25 | P75 | SPY 12m | Alpha |
|---|---|---|---|---|---|---|---|---|---|
| 2020-03 | -24.0% | 227 | 96% | +220.5% | +89.9% | +46.0% | +185.6% | +61.9% | +28.0 pp |
| 2022-06 | -21.4% | 195 | 54% | +16.6% | +5.6% | -21.2% | +31.3% | +21.1% | -15.5 pp |
| 2022-08 | -17.7% | 171 | 36% | -7.5% | -11.0% | -34.2% | +11.3% | +8.2% | -19.1 pp |
| 2022-09 | -25.6% | 205 | 42% | -4.7% | -7.4% | -32.2% | +12.9% | +16.4% | -23.8 pp |
| 2022-10 | -19.5% | 184 | 44% | +1.2% | -5.8% | -34.1% | +22.4% | +18.2% | -24.0 pp |
| 2022-11 | -15.1% | 167 | 52% | +16.1% | +2.5% | -23.0% | +32.6% | +16.6% | -14.1 pp |
| 2022-12 | -20.3% | 172 | 48% | +12.9% | -2.4% | -27.2% | +27.4% | +26.3% | -28.7 pp |
What the data shows
The March 2020 COVID crash was the standout: 227 stocks met the criteria, 96% were higher a year later, and the median return was +89.9%. That is 28 percentage points of alpha over SPY. Insiders who bought during the fastest market crash in history were overwhelmingly right.
The 2022 bear market tells a different story. Across seven months of drawdown (June through December 2022), results were mixed. Win rates ranged from 36% to 54%, and median returns were mostly negative. The insider buying signal was not enough to overcome the broad market headwind of rising rates and margin compression. Stocks with heavy insider buying actually underperformed SPY in every 2022 month tested.
The takeaway: insider buying during crashes is a meaningful signal, but it is not a mechanical trading rule. It worked spectacularly during a sharp, V-shaped recovery (2020) and poorly during a prolonged, grinding bear market (2022). The signal may be more useful for identifying which stocks to research further rather than as a standalone buy list.
Which sectors gave the strongest insider buying signal
The aggregate results above mask significant sector-level variation. Financials dominate signal counts in both crashes, accounting for roughly 40% of all insider buying signals. Banks and financial companies have the most officers and directors required to file Form 4, so the aggregate results are heavily weighted toward financial sector performance.
In March 2020, every sector produced positive 12-month returns. The V-shaped recovery lifted everything. Health Care had the highest median return (+129.8%) driven by biotech and pharma companies that rallied on pandemic demand. Consumer Discretionary followed at +245.1% median, Industrials at +147.0%, and Energy at +119.8%. Even the weakest sector, Utilities, was positive at +5.7% median.
March 2020 (SPY -24.0%)
| Sector | Signals | Win % | Avg | Median | P25 | P75 |
|---|---|---|---|---|---|---|
| Financials | 92 | 93% | +71.5% | +59.1% | +34.5% | +89.2% |
| Health Care | 35 | 94% | +560.7% | +129.8% | +44.0% | +225.9% |
| Consumer Disc. | 25 | 100% | +344.5% | +245.1% | +130.2% | +459.0% |
| Industrials | 20 | 100% | +238.3% | +147.0% | +75.5% | +237.0% |
| Energy | 16 | 100% | +269.0% | +119.8% | +88.4% | +199.8% |
| Materials | 14 | 100% | +204.3% | +172.7% | +91.8% | +286.6% |
| Info Tech | 11 | 91% | +168.2% | +89.9% | +64.6% | +266.5% |
| Consumer Staples | 6 | 83% | +89.0% | +99.6% | +59.3% | +118.9% |
| Comm Services | 4 | 100% | +153.5% | +175.9% | +119.5% | +209.9% |
| Utilities | 3 | 100% | +6.5% | +5.7% | +3.0% | +9.6% |
| Real Estate | 2 | 100% | +164.8% | +164.8% | +160.8% | +168.8% |
In September 2022, the sector breakdown tells a different story. Only Consumer Discretionary (+17.7% median, 78% win rate) and Industrials (+26.5% median, 80% win rate) generated positive returns from insider buying signals. Health Care, the top performer in 2020, collapsed to -30.1% median with only a 33% win rate. Financials, representing the largest signal group with 72 qualifying companies, had a 33% win rate and -9.8% median return. The aggregate -23.8pp alpha in September 2022 was not uniform: insiders in consumer and industrial companies were right, while insiders in health care and financials were wrong.
September 2022 (SPY -25.6%)
| Sector | Signals | Win % | Avg | Median | P25 | P75 |
|---|---|---|---|---|---|---|
| Financials | 72 | 33% | -5.9% | -9.8% | -23.6% | +9.3% |
| Health Care | 45 | 33% | -26.1% | -30.1% | -59.8% | +3.6% |
| Consumer Disc. | 18 | 78% | +15.9% | +17.7% | +2.5% | +26.3% |
| Info Tech | 17 | 35% | +4.8% | -13.4% | -37.6% | +23.6% |
| Materials | 16 | 56% | +14.5% | +5.3% | -26.8% | +28.4% |
| Industrials | 15 | 80% | +28.7% | +26.5% | +3.9% | +53.2% |
| Comm Services | 10 | 30% | -23.0% | -26.0% | -56.0% | +6.3% |
| Utilities | 5 | 40% | -1.9% | -7.6% | -11.5% | +8.7% |
| Energy | 5 | 20% | -12.7% | -20.2% | -42.9% | -7.6% |
| Real Estate | 2 | 0% | -68.6% | -68.6% | -75.2% | -62.0% |
| Consumer Staples | 2 | 50% | +5.8% | +5.8% | -14.3% | +25.9% |
What happens at a lower threshold
The main study uses a 15% SPY drawdown threshold. Lowering it to 10% surfaces 17 qualifying months instead of 7, but mostly by extending existing crashes rather than finding new independent episodes. The 2022 bear market stretches from 7 months to 10. The 2020 COVID crash extends from 1 month to 4 (including the recovery months of April and May). The 2023 SVB banking crisis, which did not qualify at 15%, appears as three new months at the 10% threshold.
Additional episodes at 10% SPY drawdown threshold
| Month | SPY DD | Signals | Win % | Median | SPY 12m | Alpha |
|---|---|---|---|---|---|---|
| 2018-12 | -15.0% | 139 | 72% | +14.5% | +28.7% | -14.3pp |
| 2020-02 | -12.6% | 129 | 79% | +38.0% | +33.6% | +4.4pp |
| 2020-04 | -14.3% | 220 | 94% | +74.4% | +44.6% | +29.8pp |
| 2020-05 | -10.3% | 220 | 94% | +63.9% | +40.7% | +23.2pp |
| 2022-04 | -14.2% | 129 | 28% | -14.2% | +2.0% | -16.2pp |
| 2022-05 | -14.0% | 145 | 35% | -13.1% | +7.3% | -20.4pp |
| 2022-07 | -14.2% | 167 | 38% | -12.6% | +9.3% | -21.9pp |
| 2023-01 | -12.0% | 151 | 40% | -12.0% | +25.0% | -37.0pp |
| 2023-02 | -14.2% | 137 | 41% | -11.0% | +32.0% | -43.0pp |
| 2023-03 | -10.6% | 176 | 47% | -2.7% | +22.6% | -25.4pp |
The only truly new episode is December 2018, the Christmas crash. Insider buying generated a 72% win rate and +14.5% median return, but SPY itself recovered +28.7% over the following 12 months, so the insider-bought stocks underperformed the market by 14 percentage points. The 2023 SVB months (January through March) produced -25 to -43pp alpha as the insider-heavy regional bank stocks continued to decline while the broader market rallied. The lower threshold confirms the original finding: the signal is not consistent enough to be a mechanical trading rule.
Methodology
- Data source: Shibui Finance, covering NYSE + NASDAQ, 10,000+ securities
- Insider transactions from SEC Forms 3/4/5. Excludes 10b5-1 pre-planned transactions, derivative transactions, and superseded filings.
- Signal criteria: SPY down 15%+ from 52-week high, stock down 20%+ from its own 52-week high, 4+ months of insider purchases by 3+ distinct buyers within the trailing 12 months.
- Forward returns computed over an 11-13 month window to account for trading day availability.
- Survivorship bias: delisted stocks are included in the signal count but may be missing forward price data. This biases returns toward survivors.
- Sector classification uses GICS sectors from the general_info table. Sector assignment is based on the company's classification at the time of the query, not at the time of the trade.
Frequently asked questions
How was this study run?
A single natural-language prompt to Claude with the Shibui Finance MCP connector. Claude generated the SQL automatically and returned the results in under 2 seconds. The full SQL is shown above on this page.
What counts as insider buying in this study?
Open-market purchases (transaction code P) of common stock by officers and directors, filed on SEC Forms 3, 4, and 5. The study excludes pre-planned 10b5-1 transactions, derivative exercises, and superseded filings to isolate genuine conviction buying.
Why exclude 10b5-1 plans?
10b5-1 plans are pre-scheduled transactions that do not reflect a real-time conviction signal. Including them would dilute the signal with non-informative noise. The study focuses on discretionary purchases where insiders actively chose to buy.
Can I reproduce this backtest?
Yes. Connect Shibui to Claude (free), paste the prompt shown above, and Claude will generate and run the query. Results update daily as new insider filings are processed from SEC EDGAR.
Does insider buying work better in some sectors than others?
In March 2020, every sector produced positive 12-month returns from insider buying signals. In September 2022, only Consumer Discretionary and Industrials generated positive median returns. Financials, which account for roughly 40% of all insider buying signals, had a 33% win rate and -9.8% median return in 2022. The sector composition of insider buying matters more than the aggregate signal count.
Is this financial advice?
No. This is a statistical study using historical data. Past performance does not predict future results. The study has known limitations including survivorship bias. Consult a licensed advisor before making investment decisions.
Data note: Results shown on this page were generated on a specific date and will change as new insider filings are processed and prices update. Connect Shibui to Claude and run the study yourself for current results. Data covers US equities (NYSE + NASDAQ), updated daily. This is a research tool, not financial advice.
Related studies:
- Nasdaq-100 Drawdown History - every 10%+ decline since 1999, with recovery times
- Insider Buying Stocks Screener - current insider buying activity
- Insider Trading Tracker - transaction codes, cluster detection, and noise filtering
- How to Read Form 4 - understand each field in the filings this study queries
- All Research Studies
Run your own backtest in 2 minutes
Shibui is free. Connect it to Claude and test any hypothesis against 64 years of US market data, insider transactions, and SEC filings.
Connect to Claude →