factor · Spillover

Spillover factor — explained

Spillover bets that news affecting a major customer or supplier predicts the linked ticker's next-month return. The market processes upstream/downstream relationships slowly — analysts cover one company in a chain, the other gets re-priced with a delay. The factor reads the lagged information that hasn't crossed the link yet.

Where this comes from

Academic anchor

Cohen-Frazzini 2008 — Economic Links and Predictable Returns
Documents that a portfolio long stocks whose principal customers gained the prior month and short stocks whose customers lost earned ~14% annually over 1980-2004 with no exposure to standard factors. The mechanism: investors track the company they cover but ignore the supplier 1-2 nodes upstream; news at the customer level only flows to the supplier when the supplier reports its own quarter. Menzly-Ozbas 2010 generalised the result to industry-level upstream-downstream networks (energy → chemicals → industrials). The lag is roughly 30 trading days — long enough to harvest, short enough to not need expensive optionality.
Plain English

What it actually measures

Apple reports a great quarter. Foxconn — Apple's primary assembly partner — does not move that day, even though 70% of Foxconn's revenue depends on Apple. Why? The analysts covering Apple write up Apple's report; the analysts covering Foxconn wait for Foxconn's own earnings call three weeks later. Between those three weeks, the new information about Apple demand sits in Foxconn's price as latent re-rating. Spillover formalises this — for every ticker we maintain a graph of revenue-significant suppliers and customers, and whenever a linked node moves, we propagate a shrunken version of the move to the dependent ticker.

No calibration constants

Math sketch

inputs   · customer-supplier link graph from 10-K disclosure
         · revenue-share weights per link
         · idiosyncratic peer return moves (peer return minus market)
         · time-since-news decay
ideas    · sum of weighted, time-decayed peer moves over the link graph
         · standardised across the universe so links are comparable
output   · cross-sectional standardised score

The link-graph extraction (which 10-K paragraphs we mine, how we score concentration), the time-decay function, and the post-news window length are calibrated and proprietary. Public: that we use a customer-supplier graph and that the academic anchor is Cohen-Frazzini 2008.

Pipeline

How Framler implements it

The link graph rebuilds quarterly from 10-K filings via a customer-segment XBRL tag where companies disclose it, plus a fallback heuristic that infers links from peer-comparison disclosures. Node moves are computed nightly from EOD prices. The factor lives in apex_factor_scores and refreshes during the 06:00 UTC universe sweep. For tickers with no disclosed links — common for diversified holding companies and conglomerates — spillover defaults to a neutral 50 (no link information available).

One coherent posterior

How it composes with Framler

Spillover composes with Sector momentum (Moskowitz-Grinblatt 1999) — when a sector is rotating up AND a key supplier is propagating positive flow, the SUPPLY-CHAIN MOMENTUM confluence pattern fires bullish. The opposite — sector rotating down plus negative spillover from a major customer — fires the SUPPLY-CHAIN CRACK pattern. Spillover also amplifies PEAD when the customer of a beat-stock is in our universe — the customer's earnings beat tomorrow is our spillover-positive bet today.

Honest limitations

When it fails

Two structural issues. (1) Graph completeness. We only see links companies disclose, which is a SEC-mandated subset (10% revenue concentration thresholds). Real supplier networks are dense and largely opaque. The mid-cap chemicals supplier with seven 8%-revenue customers is invisible to us — its actual diversification profile is masked because no single customer triggers disclosure. (2) Globalisation drift. The Cohen-Frazzini study was US-equity-only over 1980-2004. Modern supply chains span continents — a US ticker's 'real' customer concentration may be a Korean memory manufacturer that doesn't appear in any US-filed 10-K. Our coverage of cross-border links is patchy and on the post-16-May roadmap to extend.

Pro depth

Engineering integration

How Spillover flows through the production engine
Sign convention
Bullish-when-high. Universal across all 13 factor families — a high Spillover score reads as a bullish lean, low as bearish, 50 as neutral. The composite inherits the convention unchanged.
Standardisation
Cross-sectional z-score per scoring day across the 1,000+-ticker universe, then mapped to 0-100. Tickers without sufficient input data surface as null and the composite skip-and-renormalise path takes over (Asness-Frazzini-Pedersen 2014).
Refresh cadence
Recomputed daily via the universe-scoring cron (production runs 06:00 UTC on weekdays via Vercel + GitHub Actions). Factor-specific upstream data refresh is described in the implementation section above.
Composite entry
Enters the Bayesian composite with a regime-conditional weight calibrated weekly by the calibrate-weights cron against accumulated forward-return data. Per-regime weight vectors are proprietary; the architecture is in the math sketch above.
Diagnostic surface
Live structural invariants on /coherence exercise the math stack on every request (factor correlation matrix, BOCPD posterior, Mondrian bin coverage). Coverage and IC accumulate weekly via the accuracy-check cron; the sector-honesty panel on /track-record publishes per-cohort calibration tiers.
Hidden by design
The exact factor weight, regime-conditional multipliers, and any constant inside the math sketch marked «calibrated and proprietary» stay private — that's the engineering moat. Everything above architecture-level is published; everything below stays in the engine.
Read next

Related factors

SectorPEADMomentum

See Spillover score on a real ticker

Every ticker page shows the per-factor decomposition. The Spillover score is one of thirteen composing the 0–100 the composite score.

Try NVDA →Full methodologyMath coherence live
Spillover factor explained | Framler