Does media tone lead stock returns?
90 large companies · GDELT news tone vs sector-relative returns · 2024-09-01 → 2026-08-31 · updated 2026-09-25
The idea came from mrsindex.com, which ranks brands by how their press coverage reads. If good coverage builds reputation, does it also show up in the stock price, and does it show up before the price moves or after?
No tradable lead: tone moves with prices or after them, not before.
- Same-day link: +0.018 average correlation between a tone shock and that day's sector-relative return, well outside the placebo band.
- Price then tone: 1 of the 5 days before a tone shock show returns that already moved in the same direction. The coverage is partly writing up the price.
- Tone then price: none of the tradable lags (+2 to +5 days) clear the placebo band.
- Holdout check at +2 days: +0.001 in the discovery year, +0.011 in the holdout year, so the sign held.
- Toy long/short in the holdout year: 1.9% annualised before costs, Sharpe 0.18, t-stat 0.18.
Which comes first?
Each bar is the average, across companies, of the correlation between a day's tone shock (tone versus its own last 60 days) and the stock's return relative to its sector peers some days earlier or later. The grey band is where 300 time-scrambled placebos land, so a bar outside it is unlikely to be chance.
x-axis: days tone leads the return (negative = the return came first). Shaded right-hand zone = +2 days and later, the first lag you could trade: GDELT's day ends at 20:00 New York, so day +1 already reflects after-hours news.
By sector
Banking n=18 · +2d +0.017
Automotive n=14 · +2d +0.011
Retail n=12 · +2d +0.008
CPG n=14 · +2d +0.003
Tech n=19 · +2d −0.001
Pharma n=13 · +2d −0.004
Key numbers
| companies | price first (−1d) | same day | tone first (+2d) | placebo ± | trailing month → next month | |
|---|---|---|---|---|---|---|
| All | 90 | +0.014 | +0.018 | +0.006 | ±0.009 | +0.025 |
| Banking | 18 | +0.007 | +0.020 | +0.017 | ±0.020 | −0.046 |
| Automotive | 14 | +0.014 | +0.011 | +0.011 | ±0.023 | +0.110 |
| Retail | 12 | +0.020 | +0.034 | +0.008 | ±0.031 | −0.022 |
| CPG | 14 | +0.008 | +0.003 | +0.003 | ±0.024 | −0.021 |
| Tech | 19 | +0.026 | +0.023 | −0.001 | ±0.020 | +0.065 |
| Pharma | 13 | +0.006 | +0.018 | −0.004 | ±0.027 | +0.066 |
| Discovery (before 2025-09-01) | 90 | +0.015 | +0.022 | +0.001 | ±0.013 | +0.022 |
| Holdout (from 2025-09-01) | 90 | +0.015 | +0.016 | +0.011 | ±0.013 | +0.084 |
Blue = outside the placebo band. "Trailing month → next month" is the original question as asked: average tone shock over 21 trading days against the next 21 days' sector-relative return.
Could you trade it?
A deliberately naive test: every day, buy the fifth of companies with the most positive tone shock, short the most negative fifth, and hold for the day that starts two days later. Sector-neutral, before costs; at daily turnover, costs would take a large bite of anything shown here.
| days | annualised | Sharpe | t-stat | |
|---|---|---|---|---|
| Full window | 488 | 8.1% | 0.81 | 1.13 |
| Discovery year | 239 | 14.5% | 1.63 | 1.59 |
| Holdout year | 249 | 1.9% | 0.18 | 0.18 |
Company by company
Sorted by the tradable lag (+2 days). One company's correlation needs to pass roughly ±0.09 to stand out on its own, and among 90 companies a handful will do that by luck.
Show all 90 companies
| company | sector | articles | price first | same day | tone first |
|---|---|---|---|---|---|
| Blackstone BX | Banking | 21,139 | +0.003 | +0.069 | +0.113 |
| Novo Nordisk NVO | Pharma | 47,925 | +0.039 | +0.111 | +0.086 |
| Tyson Foods TSN | CPG | 9,863 | −0.035 | −0.043 | +0.085 |
| Barclays BCS | Banking | 260,879 | +0.012 | +0.007 | +0.083 |
| General Motors GM | Automotive | 71,334 | +0.034 | +0.062 | +0.080 |
| Unilever UL | CPG | 37,409 | −0.011 | +0.008 | +0.078 |
| BlackRock BLK | Banking | 85,346 | +0.003 | +0.001 | +0.069 |
| Capital One COF | Banking | 67,759 | +0.058 | +0.036 | +0.064 |
| Keurig Dr Pepper KDP | CPG | 3,451 | +0.099 | +0.078 | +0.062 |
| Deutsche Bank DB | Banking | 108,341 | −0.011 | +0.059 | +0.059 |
| Dollar Tree DLTR | Retail | 16,465 | 0.000 | +0.087 | +0.058 |
| Adobe ADBE | Tech | 38,276 | +0.092 | +0.078 | +0.057 |
| Truist TFC | Banking | 43,434 | +0.014 | −0.018 | +0.057 |
| TD Bank TD | Banking | 14,609 | +0.058 | +0.024 | +0.053 |
| Mercedes-Benz MBGYY | Automotive | 39,337 | +0.050 | −0.015 | +0.052 |
| Starbucks SBUX | Retail | 114,976 | +0.005 | +0.110 | +0.051 |
| Ford F | Automotive | 34,668 | +0.060 | +0.079 | +0.050 |
| Porsche POAHY | Automotive | 87,791 | +0.007 | +0.013 | +0.049 |
| Tesla TSLA | Automotive | 116,333 | +0.097 | −0.012 | +0.048 |
| Nestlé NSRGY | CPG | 33,884 | +0.014 | −0.029 | +0.047 |
| Home Depot HD | Retail | 65,063 | +0.023 | +0.024 | +0.047 |
| Coca-Cola KO | CPG | 29,785 | −0.008 | −0.050 | +0.042 |
| TSMC TSM | Tech | 39,376 | +0.112 | +0.044 | +0.040 |
| Alphabet (Google) GOOGL | Tech | 1,504,523 | −0.024 | 0.000 | +0.037 |
| Pfizer PFE | Pharma | 51,520 | +0.044 | +0.115 | +0.037 |
| Intel INTC | Tech | 138,691 | −0.032 | −0.020 | +0.036 |
| Netflix NFLX | Tech | 896,029 | +0.048 | −0.044 | +0.035 |
| Citizens Financial CFG | Banking | 3,710 | −0.037 | +0.030 | +0.034 |
| Cisco CSCO | Tech | 21,425 | −0.058 | −0.073 | +0.031 |
| Roche RHHBY | Pharma | 29,056 | −0.006 | −0.029 | +0.030 |
| AstraZeneca AZN | Pharma | 30,624 | +0.019 | +0.061 | +0.025 |
| Nissan NSANY | Automotive | 148,166 | −0.047 | −0.001 | +0.025 |
| Nvidia NVDA | Tech | 395,780 | +0.102 | +0.045 | +0.021 |
| Wells Fargo WFC | Banking | 218,506 | −0.019 | −0.002 | +0.021 |
| Volkswagen VWAGY | Automotive | 134,573 | +0.053 | −0.016 | +0.018 |
| Danone DANOY | CPG | 12,326 | +0.006 | +0.021 | +0.018 |
| Dell DELL | Tech | 56,790 | +0.058 | +0.073 | +0.013 |
| Oracle ORCL | Tech | 124,552 | +0.019 | +0.032 | +0.013 |
| Albertsons ACI | Retail | 21,590 | +0.031 | +0.057 | +0.009 |
| Dollar General DG | Retail | 23,637 | −0.009 | +0.006 | +0.008 |
| Honda HMC | Automotive | 171,964 | −0.024 | +0.008 | +0.007 |
| Abbott ABT | Pharma | 7,964 | +0.031 | +0.051 | +0.003 |
| Yum Brands YUM | Retail | 69,016 | +0.008 | −0.006 | +0.002 |
| JPMorgan Chase JPM | Banking | 193,185 | +0.006 | +0.077 | +0.002 |
| Goldman Sachs GS | Banking | 265,571 | +0.055 | −0.015 | +0.002 |
| Ferrari RACE | Automotive | 99,995 | +0.025 | −0.033 | +0.001 |
| Best Buy BBY | Retail | 54,054 | +0.073 | +0.067 | 0.000 |
| Amazon AMZN | Tech | 68,754 | +0.023 | +0.036 | 0.000 |
| Charles Schwab SCHW | Banking | 45,372 | −0.027 | +0.013 | 0.000 |
| Chipotle CMG | Retail | 14,338 | +0.038 | +0.025 | −0.001 |
| Novartis NVS | Pharma | 17,680 | −0.066 | 0.000 | −0.002 |
| IBM IBM | Tech | 64,461 | +0.062 | +0.098 | −0.005 |
| Costco COST | Retail | 133,626 | +0.024 | −0.007 | −0.006 |
| Molson Coors TAP | CPG | 5,836 | +0.066 | +0.023 | −0.006 |
| Visa V | Banking | 5,646 | +0.064 | +0.093 | −0.010 |
| Micron MU | Tech | 29,187 | +0.011 | +0.047 | −0.013 |
| Kraft Heinz KHC | CPG | 15,597 | +0.006 | +0.047 | −0.014 |
| General Mills GIS | CPG | 11,647 | −0.009 | +0.002 | −0.015 |
| Subaru FUJHY | Automotive | 55,126 | −0.048 | +0.029 | −0.015 |
| Eli Lilly LLY | Pharma | 59,052 | +0.021 | −0.063 | −0.015 |
| Kroger KR | Retail | 57,070 | +0.004 | +0.023 | −0.019 |
| Microsoft MSFT | Tech | 489,804 | −0.048 | −0.041 | −0.020 |
| Walmart WMT | Retail | 345,662 | +0.033 | +0.038 | −0.021 |
| Stellantis STLA | Automotive | 10,197 | +0.027 | +0.064 | −0.022 |
| Broadcom AVGO | Tech | 46,882 | +0.001 | +0.014 | −0.023 |
| Rivian RIVN | Automotive | 6,554 | +0.058 | +0.037 | −0.023 |
| PepsiCo PEP | CPG | 36,011 | +0.026 | +0.036 | −0.025 |
| Qualcomm QCOM | Tech | 54,553 | −0.012 | +0.085 | −0.025 |
| Bristol Myers Squibb BMY | Pharma | 9,817 | −0.014 | +0.035 | −0.025 |
| Salesforce CRM | Tech | 14,245 | −0.040 | −0.040 | −0.026 |
| State Street STT | Banking | 32,227 | +0.026 | −0.002 | −0.030 |
| Morgan Stanley MS | Banking | 246,108 | −0.040 | −0.024 | −0.032 |
| Diageo DEO | CPG | 19,911 | −0.033 | −0.022 | −0.034 |
| Merck & Co. MRK | Pharma | 19,605 | −0.106 | −0.099 | −0.035 |
| Gilead Sciences GILD | Pharma | 10,622 | +0.023 | −0.034 | −0.037 |
| Toyota TM | Automotive | 318,068 | −0.060 | −0.058 | −0.038 |
| Citigroup C | Banking | 185,725 | −0.028 | −0.055 | −0.039 |
| Amgen AMGN | Pharma | 12,380 | +0.068 | +0.022 | −0.048 |
| Hershey HSY | CPG | 16,343 | −0.025 | −0.048 | −0.049 |
| Vertex Pharmaceuticals VRTX | Pharma | 5,030 | +0.024 | +0.049 | −0.062 |
| Mondelez MDLZ | CPG | 6,902 | +0.014 | +0.006 | −0.066 |
| American Express AXP | Banking | 39,174 | +0.048 | +0.043 | −0.072 |
| Renault RNLSY | Automotive | 48,657 | −0.039 | −0.001 | −0.076 |
| Mastercard MA | Banking | 51,627 | −0.052 | +0.024 | −0.076 |
| Heineken HEINY | CPG | 15,031 | +0.003 | +0.019 | −0.087 |
| Johnson & Johnson JNJ | Pharma | — | — | — | — |
| Nike NKE | Retail | 28,478 | +0.014 | −0.018 | −0.031 |
| AMD AMD | Tech | 28,924 | +0.103 | +0.129 | −0.035 |
| Apple AAPL | Tech | 72,067 | +0.047 | −0.004 | −0.042 |
| Meta META | Tech | 153,573 | +0.025 | −0.026 | −0.106 |
How it was built
- Tone: GDELT's daily average tone for English-language articles that name each company as an organization or person, read from the raw 15-minute Global Knowledge Graph files (about 86,000 of them). Weekend and holiday news rolls onto the next trading day, weighted by article count, and each day is scored against the company's own previous 60 trading days so only the surprise counts.
- Returns: Yahoo Finance adjusted closes. Each stock's return minus the average of its sector peers, so a market-wide or sector-wide day doesn't count as news. Foreign companies trade here as US ADRs.
- Significance: every company's tone series is rotated in time by the same random offset 300 times. That keeps each series' shape and the links between companies but breaks the timing, which gives an honest band for "what chance looks like".
- Holdout: the second year (from 2025-09-01) is reported separately so a pattern found in year one has to show up again.
- Known gaps: stock-market stories aren't filtered out, which pushes the "price first" side up. GDELT tone is a dictionary score, not a modern language model. No intraday timing, earnings-day controls or trading costs.
- Left out: BMW (no price history), Bank of America (median 1 articles/day), Nordstrom (no price history), McDonald's (median 0 articles/day), Walgreens (no price history); plus Fidelity (private), Samsung, Hyundai, Kia and Volvo (no clean US listing).
Research note, not investment advice. Code: macro-engine src/sentiment/. Built by Phill with Jasper.