Research · Customer concentration · rule cc-v1.1

When a company's biggest customers matter more, does the stock follow?

Our company pages track every 10% customer in SEC annual reports. A quant's first question is whether a change in that dependence predicts returns. We fixed the test on 2026-10-18, before running it, and publish the result either way.

Filings tested
6,401
Period
2014–2026
Verdict
No signal
Updated
2 days ago
Spread, 3 months−1.14 ptsrising minus falling concentration
p-value0.436labels shuffled within filing month
Before 2021+0.92 pts524 filings · p 0.771
From 2021−1.69 pts1,620 filings · p 0.322
01

The test, fixed before the first run

One primary question, one decision rule, and secondary rows that are reported but never used to pick a winner. The code is versioned as cc-v1.1; a change creates a new version.

  1. Events. Every 10-K and 20-F of a US-listed company that discloses at least one customer worth 10% of revenue. Concentration is the sum of those shares (named and anonymous customers; sales channels and group companies excluded).
  2. Change. Both years come from the same filing (current year and prior-year comparative), so nothing is used before it was public. Rising: +5 points or more. Falling: −5 points or more.
  3. Returns. Stock minus S&P 500 (SPY), buy-and-hold, from trading day +2 after the EDGAR filing date to day +61. Prices under $1 excluded; extremes winsorised at 1% and 99%.
  4. Chance. Labels are shuffled only among companies that filed in the same month (5,000 times), so a market move that hit everyone filing in March cannot create a result. 95% intervals resample whole months.
  5. Rule. A signal only if p < 0.01, the sign is the same before and from 2021, and the spread is at least 1 point, enough to survive about 1% round-trip costs.
02

Results

Primary row first. A positive spread means companies whose customer concentration rose did better than those whose concentration fell.
TestWindow (trading days)EventsGroup AGroup BSpread95% intervalp
Change in concentrationPrimary+2 to +61Rising 960 · Falling 1,184−8.64%−7.50%−1.14 pts−4.4 pts to +1.6 pts0.436
Same, before 2021Stability+2 to +61Rising 229 · Falling 295−1.34%−2.26%+0.92 pts−2.7 pts to +4.5 pts0.771
Same, from 2021Stability+2 to +61Rising 731 · Falling 889−10.93%−9.24%−1.69 pts−5.9 pts to +1.7 pts0.322
Filing-day reactionSecondary0 to +1Rising 979 · Falling 1,198−0.91%−0.83%−0.08 pts−1.0 pts to +0.8 pts0.853
One monthSecondary+2 to +21Rising 975 · Falling 1,195−3.70%−3.44%−0.26 pts−1.8 pts to +1.2 pts0.750
One yearSecondary+2 to +250Rising 783 · Falling 976−26.70%−25.76%−0.94 pts−6.8 pts to +5.2 pts0.808
Against small caps (IWM)Secondary+2 to +61Rising 960 · Falling 1,184−6.83%−5.53%−1.31 pts−4.6 pts to +1.4 pts0.361
Level: most vs least concentrated thirdSecondary+2 to +250Top 1,458 · Bottom 1,458−27.25%−18.88%−8.37 pts−15.4 pts to −2.1 pts0.003

Group A is rising concentration (or the most concentrated third in the level row), group B falling (or least concentrated). Returns are log returns relative to the benchmark. Rows with fewer than 20 events per group get no spread.

03

Year by year

Average three-month return against the S&P 500 by filing year. If a signal were real and stable, the rising bar would sit on the same side of the falling bar most years.
YearRising concentrationFalling concentration
2014−16.7%n 17−17.0%n 26
2015−7.3%n 29−0.8%n 26
2016+5.4%n 28−1.5%n 26
2017−0.8%n 34+3.3%n 43
2018−2.4%n 30−4.6%n 53
2019−3.7%n 37−7.3%n 58
2020+5.0%n 54+5.7%n 63
2021−12.6%n 78−8.6%n 77
2022−6.8%n 99−12.0%n 156
2023−13.4%n 101−9.1%n 151
2024−10.4%n 133−3.2%n 141
2025−7.9%n 161−7.5%n 168
2026−14.6%n 159−13.2%n 196
04

Largest changes since 2024

The filings with the biggest swings in customer concentration, with what the stock did against the S&P 500 in the following three months. Examples, not evidence: single stocks move for many reasons.
CompanyFiledConcentrationChangeNext 3 months vs S&P 500
RZLV2026-03-30100% → 0%−100 pts−17.7%
LPCN2024-03-07100% → 10%−90 pts+64.0%
AMZE2026-04-0180% → 0%−80 pts−17.1%
CAL2024-04-0277% → 0%−77 pts−17.2%
EBON2024-04-2676% → 0%−76 pts−26.1%
DRCT2024-10-1573% → 0%−73 pts−61.7%
JRSH2024-06-2828% → 100%+72 pts−3.7%
QSJC2025-03-2632% → 100%+68 pts−126.1%
ELAB2024-03-2999% → 34%−65 pts−21.0%
INLX2025-03-2435% → 100%+65 pts+3.6%
STEM2025-03-0560% → 0%−60 pts+4.8%
OFAL2026-07-1437% → 95%+58 pts−119.2%
05

Limitations

What this test cannot rule out.
  • Survivorship: prices come from current tickers, so companies that were delisted or acquired since are missing; this flatters average returns but affects both groups.
  • Only companies that disclose at least one 10% customer are in the sample, so the level test compares concentrated companies with less concentrated ones, not with unconcentrated ones.
  • Market-adjusted returns do not remove size, industry or momentum effects; the IWM row shows the result against small caps.
  • Gross of trading costs; many filers are small and illiquid.
  • Returns are log returns, which sit below simple returns for volatile stocks (a 70% annual volatility costs about 25 points a year). Both groups carry this, so the spread compares like with like, but the absolute averages look worse than an investor's experience.

Changelog

  • cc-v12026-10-18

    First run. Implementation error: groups of customers in the filings ("top ten customers", "two customers") were added to single-customer shares, which pushed 854 of 6,575 filings to 100%. Result: spread −0.19 points, p 0.88, no signal.

  • cc-v1.12026-10-18

    Same design and rule. Customer groups excluded, and a year that a filing reports only as groups counts as unknown instead of zero (an intermediate run without that second fix gave −1.13 points, p 0.42). This is the published result.

Sample: 6,575 annual filings, 6,401 with prices (1,290 of 1,321 tickers found), 338 excluded under $1; 2,795 steady and 1,401 without a prior-year column. Prices: Yahoo Finance adjusted closes. Filings: SEC EDGAR XBRL. Run 2026-10-18.

06

Follow-up: do the most dependent companies underperform? No effect

The change test above showed one striking secondary row: the most concentrated third of companies trailed the least concentrated third over the following year. That row used log returns, which run lower for volatile stocks, and concentrated companies are more volatile. We fixed a new test (cc-v2, registered 2026-10-18) before running it: simple returns, and each company compared only with companies of similar volatility that filed in the same year.

Supported only if p < 0.01 (labels shuffled within filing month and volatility quintile), the same sign before and from 2021, |spread| >= 3 points, and a calendar-time alpha of the same sign with |t| >= 2.

Spread, 1 year+1.8 ptsmost minus least concentrated, volatility-matched
p-value0.463labels shuffled within month and volatility band
Calendar-time alpha+0.29%/mot 1.30 · 148 months, SPY and size factors
Without matching, log returns−6.7 ptsp 0.004: the original lead, reproduced
TestReturnsHigh · lowHighLowSpread95% intervalp
Volatility-matchedPrimarysimple, vs SPY1,426 · 1,426−2.5%−4.3%+1.8 pts−4.4 pts to +7.3 pts0.463
Same, before 2021Stabilitysimple, vs SPY448 · 448+8.8%+10.1%−1.3 pts−8.1 pts to +5.8 pts0.756
Same, from 2021Stabilitysimple, vs SPY978 · 978−7.7%−10.9%+3.3 pts−5.5 pts to +10.6 pts0.256
No matchingSecondarysimple, vs SPY1,426 · 1,426−3.9%−3.2%−0.7 pts−7.4 pts to +5.5 pts0.772
No matchingSecondary · replicates the leadlog, vs SPY1,426 · 1,426−25.5%−18.9%−6.7 pts−13.3 pts to −0.6 pts0.004
Matched on dollar volumeSecondary · size proxysimple, vs SPY1,426 · 1,426−5.2%−4.6%−0.6 pts−7.5 pts to +5.5 pts0.808
Volatility-matchedSecondarysimple, vs IWM1,426 · 1,426+1.4%−0.0%+1.5 pts−4.6 pts to +6.9 pts0.529

Window: trading days +2 to +250 after the filing. Volatility check: the high group averaged 64% annualised volatility and the low group 69% after matching (73% vs 65% before). Concentration: 74% vs 13% of revenue from 10% customers.

Inside each volatility band

Volatility bandAnnualised volatilityPairsSpreadp
1 (calmest)27%284+1.2 pts0.599
240%286+6.7 pts0.216
352%284+0.3 pts0.949
470%286−6.5 pts0.249
5 (most volatile)144%286+7.4 pts0.372

In calendar time

201620182020202220242026+11.0%
Long the most concentrated third, short the least concentrated third (volatility-matched), equal weight, rebalanced daily. Before costs and borrow fees.

Monthly long-short mean +0.12% (Newey-West t 0.52); alpha after SPY and IWM-minus-SPY +0.29% per month (t 1.30), betas -0.12 and 0.13. On an average day 114 stocks long and 114 short, 2014-04 to 2026-07.

  • Survivorship: companies delisted or acquired since are missing. If highly concentrated companies fail more often, the missing failures make the high group look better than it was.
  • The short side is small, often illiquid stocks; borrow fees can be several percent a year and some names cannot be borrowed at all.
  • Volatility and dollar volume are controlled; industry is not. Single-customer biotech and defence contractors cluster in the high group.
  • Market cap is not in our data; dollar trading volume stands in for size.

Sample: 4,325 filings with a full year of prices after the filing and a year of history before it, 2,852 in the high or low third. Left out: 136 without prices, 282 under $1, 77 with less than 120 days of history, 954 without a price 250 days later (mostly filed in the last year). Run 2026-10-18.

07

Check it yourself