New to these reports? Start here
- Dotted-underlined words have a plain-English definition — hover or tap them. Every term is also on the glossary page.
- "Null" means we found nothing, not that something broke. Most reports here are negative results, on purpose — knowing an idea doesn't work is the point.
- Two questions get asked separately. First, is the effect real? Second, is it already priced into the betting odds? An effect can be completely real and still useless to bet on.
- A "calibration" row is a self-check. It runs the same method on something already known to be true. If that fails, the whole report is unreliable — so it's reported alongside the findings.
- If a confidence interval includes zero, the real effect might be nothing at all, so no claim gets made.
Strategy 006: Net-Net (Graham Deep Value)
Source
Benjamin Graham, The Intelligent Investor (1949) and Security Analysis (1934). The original quantitative value strategy. Tweedy Browne, Walter Schloss, and others used variants for decades.
Thesis
A stock trading below its Net Current Asset Value (NCAV = Current Assets − Total Liabilities) is selling for less than what it would be worth in immediate liquidation. The market is paying nothing — or negative — for the operating business.
Graham's original rule: buy stocks at <67% of NCAV per share. Hold a basket of 20-30, rebalance annually. Sell when stock reaches NCAV or after 2 years (whichever comes first).
Why it might still work
- Modern markets occasionally produce dislocations (panics, sector collapses) that create net-nets
- The math is unambiguous: market cap < (cash + receivables + inventory − all debts) is mechanically attractive
- Academic studies (Oppenheimer 1986, more recent updates) confirm the historical premium
Why it might NOT work
- Universe has collapsed in modern markets. Net-nets used to number in the hundreds during recessions; now might be 10-30 on any given day, mostly tiny illiquid microcaps
- Many net-nets are net-net because they're slowly burning through cash — the liquidation value is shrinking
- Microcap slippage destroys returns at retail size
- yfinance balance sheet data for microcaps is often missing or stale
Implementation
- Universe:
sp500_historical(~748 names including delisted; net-nets are usually small/troubled, so the broader the better) - Filter: Market Cap < 0.67 × NCAV (NCAV = Current Assets − Total Liabilities)
- Hold: all qualifying names, equal-weight (cap at 30)
- Rebalance: annual
- Skip if fewer than 5 qualifying names (universe too thin)
Data requirements
- Current Assets, Total Liabilities (balance sheet, latest annual)
- Shares Outstanding, current price (for market cap)
Expected outcome
- In bull markets (most of 2015-2025): very few qualifying names; if any pass, they're often deeply troubled
- In recessions / sector crashes: ~5-15 qualifying names emerge
- Historical academic excess return: ~5-10%/yr when applied consistently, but with high failure rate per individual name
In our test period (2015-2025, mostly bull market), expect: * Most years: empty signal (no qualifiers in S&P universe) * 2020 (COVID), 2022 (rate shock): possibly a few qualifiers * Overall: probably wash or slight negative due to thinness
Pass/fail criteria
- Pass: any 3-year window shows positive alpha with at least 5 positions held
- Fail: empty or single-name portfolio most of the time
- Note: this is more of an "is the universe even alive?" test than a strategy validation. If no net-nets exist in S&P 500, that's the finding.