zombie_alert
stress default: long
Definition
Fires on companies with persistent negative free cash flow but still operating — 'walking dead' candidates. Useful as oversold-bounce flag.
Trigger logic
FCF < 0 in each of the last 3 fy AND total debt growing. From facts.parquet.
Source: signals/build_signals.py:258
Calibration — gross stock return vs net of execution costs
Cost model: 5 bps half-spread each side, 10 × √($1M / 30d ADV) impact each side, ADV-tiered borrow (≥$50M ADV → 10 bps annual; ≥$5M → 30; <$5M → 100), scaled by holding_days/252 if short.
| Horizon | n events | Gross stock ret | Net PnL | Hit rate | r/σ net | Avg cost (bps) |
|---|---|---|---|---|---|---|
| 1d | 1,085 | +13881.81% | -0.60% | +45.90% | -0.10 | 28 |
| 5d | 1,079 | +13913.06% | -0.46% | +46.71% | -0.04 | 28 |
| 20d | 1,068 | -0.28% | -0.67% | +46.54% | -0.03 | 28 |
| 60d | 991 | +3.27% | +2.98% | +49.65% | +0.07 | 28 |
| 252d | 970 | +17.15% | +17.86% | +53.51% | +0.22 | 28 |
Sector breakdown (top 8 by |r/σ| at 20d)
| SIC division | n | Mean 20d | Hit rate | r/σ |
|---|---|---|---|---|
| Finance, Insurance, Real Estate | 146 | -3.41% | +48.63% | -0.22 |
| Mining + Construction | 49 | +4.02% | +57.14% | +0.19 |
| Manufacturing (light) | 140 | -2.79% | +41.43% | -0.19 |
| Manufacturing (heavy) | 227 | +2.17% | +49.34% | +0.09 |
| Wholesale + Retail Trade | 91 | +1.31% | +43.96% | +0.07 |
| Services (health + legal + edu) | 45 | -0.84% | +48.89% | -0.05 |
| Services (business + personal) | 160 | -0.53% | +46.25% | -0.03 |
| Transportation, Communications, Utilities | 210 | -0.44% | +43.81% | -0.02 |
Recent triggers
SPWH— SPORTSMAN'S WAREHOUSE HOLDINGS, INC. (FY2026)GTN— GRAY MEDIA, INC (FY2025)HAS— HASBRO, INC. (FY2025)LUMN— Lumen Technologies, Inc. (FY2025)MAGN— Magnera Corp (FY2025)
Caveats
- Small sample (n=1,068).
- 20d: -0.67% net (long). 252d: +17.86% net — patience pays.
Citations
- Banerjee, Hofmann, Mehrotra (2018). 'Corporate zombies' (BIS Working Paper).
- Reverse regression at 20d: β +2.291, t=+2.57 ** (real long predictor).
Live data → /api/methodology/signal/zombie_alert · MCP → pyflo_signal_methodology(signal="zombie_alert")