fcf_turn_negative
stress default: short
Definition
Fires when previously-positive operating cash flow turns negative — the cash equivalent of profit_to_loss, usually more leading.
Trigger logic
Prior fy OperatingCashFlow > 0 AND current fy OperatingCashFlow < 0.
Source: signals/build_signals.py:216
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 | 2,337 | -0.05% | -0.14% | +42.62% | -0.02 | 35 |
| 5d | 2,337 | +0.06% | +0.31% | +41.98% | +0.02 | 36 |
| 20d | 2,312 | -0.77% | +1.36% | +42.08% | +0.08 | 40 |
| 60d | 2,192 | +1.98% | -1.61% | +47.45% | -0.05 | 51 |
| 252d | 2,148 | +15.62% | -16.85% | +50.33% | -0.17 | 103 |
Sector breakdown (top 8 by |r/σ| at 20d)
| SIC division | n | Mean 20d | Hit rate | r/σ |
|---|---|---|---|---|
| Manufacturing (light) | 375 | -3.64% | +37.07% | -0.20 |
| Finance, Insurance, Real Estate | 304 | -1.79% | +40.79% | -0.13 |
| Wholesale + Retail Trade | 221 | +6.83% | +48.87% | +0.13 |
| Services (business + personal) | 300 | -1.93% | +42.67% | -0.09 |
| Transportation, Communications, Utilities | 207 | -1.45% | +45.41% | -0.09 |
| Manufacturing (heavy) | 635 | -1.15% | +42.20% | -0.06 |
| Mining + Construction | 187 | +1.04% | +44.39% | +0.04 |
| Services (health + legal + edu) | 83 | +0.30% | +34.94% | +0.00 |
Recent triggers
DXLG— DESTINATION XL GROUP, INC. (FY2026)CURV— Torrid Holdings Inc. (FY2026)CIK 15357— CHASE GENERAL CORP (FY2025)CECO— CECO ENVIRONMENTAL CORP (FY2025)ARW— ARROW ELECTRONICS, INC. (FY2025)
Caveats
- Short at 20d (+1.36% net) and 60d (-1.61%); long bounce at 252d (+15.62% gross).
- Combined with capex_spike + dso_drift_severe: deep-value LONG +70% net at 252d.
Citations
- Mulford & Comiskey (2002). 'The Financial Numbers Game.' Wiley.
Live data → /api/methodology/signal/fcf_turn_negative · MCP → pyflo_signal_methodology(signal="fcf_turn_negative")