← all signals

fcf_ni_divergence

forensic   default: short

Definition

Fires when free cash flow diverges substantially from net income — either NI >> FCF (low-quality earnings) or FCF >> NI (under-reported earnings).

Trigger logic

ABS(NetIncomeLoss - OperatingCashFlow) / GREATEST(ABS(NetIncomeLoss), 1) > 0.50.

Source: signals/build_signals.py: (search 'fcf_ni_divergence')

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.

Horizonn eventsGross stock retNet PnL Hit rater/σ netAvg cost (bps)
1d 1,361 +0.07% -0.35% +48.05% -0.06 30
5d 1,361 +0.65% -0.22% +47.54% -0.02 31
20d 1,357 +0.02% +0.27% +46.20% +0.02 34
60d 1,270 +2.92% -3.03% +51.18% -0.11 45
252d 1,256 +13.28% -13.55% +52.79% -0.21 92

Sector breakdown (top 8 by |r/σ| at 20d)

SIC divisionnMean 20dHit rater/σ
Manufacturing (light) 173 -2.42% +39.31% -0.17
Services (health + legal + edu) 31 -2.70% +45.16% -0.14
Wholesale + Retail Trade 128 +5.92% +51.56% +0.12
Finance, Insurance, Real Estate 169 -1.53% +43.20% -0.12
Mining + Construction 122 +1.50% +47.54% +0.07
Services (business + personal) 110 -0.62% +47.27% -0.03
Transportation, Communications, Utilities 294 -0.16% +54.08% -0.01
Manufacturing (heavy) 330 -0.10% +41.52% -0.01

Recent triggers

Caveats

Citations


Live data → /api/methodology/signal/fcf_ni_divergence  ·  MCP → pyflo_signal_methodology(signal="fcf_ni_divergence")