Research note

Does sentiment lead prices?

We turned news tone and prediction-market odds into price-like series and tested whether they tell you what tech stocks do next, using only what was known at the time.

News sentimentDescribes price, does not lead itStrong same-day match; nothing the next day or next hour.EventsThree patterns, small samplesUpgrades keep drifting; earnings beats and positive news bursts fade.Prediction marketsNo general leadSharp good-news repricings preceded up days; too few cases to call.TweetsRecording has just startedNeeds a few months of history.

The idea

Traders talk about sentiment as if it were a price: it rises, falls, trends and spikes. We built it that way. Every story about a stock gets a tone from −1 to +1. Those tones feed a running line that decays over hours, with bad news fading more slowly than good news, and more weight on widely reported stories. From that line we take the same things a chart reader takes from price: the level, its change over an hour and a day, a fast-minus-slow trend, how spread out the opinions are, how busy the news is against the usual for that time of day, and where today sits against the stock's own last 60 days.

Prediction markets get the same treatment. A Kalshi question such as next month's CPI is a ladder of contracts ("above 0.2%", "above 0.3%"…). Their prices are a probability distribution, so each day gives one expected value, and its daily change can be scored against its own history.

Then the only question that matters: does any of it tell you what price does next?

News sentiment

News tone tracks the price move it describes. It does not tell us where price goes next.

Each trading day at 3:30 PM ET we rank the nine stocks by their sentiment reading and compare that ranking with each stock's return against QQQ. The same-day match is strong and steady in both halves of the period (best: Level vs own 60 days, t +6.9). The next-day and next-week match is flat: the largest lead anywhere, daily or intraday, is t -1.6, which is noise. Put simply, stories are written about moves that already happened.

Same day (moves with price)Next day (leads price)Next 5 days
-0.14+0.00+0.14Sentiment levelt +6.2t -0.5t -0.4Level vs own 60 dayst +6.9t -0.4t -0.41-day changet +6.2t +0.1t -0.5Trend (fast minus slow)t +6.1t +0.2t -0.8Disagreementt -5.0t +0.5t -1.6News volume vs usualt +1.6t -1.1t -0.8

Bars show the average rank correlation per day across nine stocks (−1 to +1). Labels give the t-statistic; we call a result clear at |t| ≥ 3 with both halves agreeing, weak at |t| ≥ 2.

Sorted into fifths by "level vs own 60 days"

Same-day return vs QQQNext-day return vs QQQ
-86+0+86Most negativeQ2MiddleQ4Most positivebp

The most negative fifth fell -47 bp against QQQ that day and the most positive rose +86 bp. The next day shows no ordering: +16 bp, +6 bp, +19 bp, -3 bp, +25 bp from most negative to most positive.

Inside the day (15-minute readings, next hour)

ReadingTestAvg corrtTimesResult
Sentiment levelleads next hour-0.004-0.77,566none
Sentiment levelfollows past hour-0.005-0.87,569none
Level vs own 60 daysleads next hour-0.010-1.57,535none
Level vs own 60 daysfollows past hour-0.008-1.37,535none
1-hour changeleads next hour+0.001+0.17,561none
1-hour changefollows past hour-0.003-0.47,563none
New-story tone this barleads next hour+0.002+0.32,229none
New-story tone this barfollows past hour+0.002+0.32,127none
News volume vs usualleads next hour+0.002+0.47,447none
News volume vs usualfollows past hour+0.005+1.17,447none

Nothing leads the next hour. The readings also fail to follow the past hour, because historical stories are only counted an hour after publication, so a story about the last hour's move usually lands in the next hour.

Events

Analyst upgrades keep working after the open. Earnings beats and positive news bursts fade.

Each dot is the average move against QQQ in the event's own direction, from the first 15-minute bar after the event was public; for after-hours news that means the next open, so the overnight gap is excluded. Lines are 95% intervals. A dot above zero means price kept going the way the event pointed; below zero means it reversed.

Positive news burst595 eventsinside noise
-71+711 hrto close+1 day+3 days

Next day -18 bp in the event's direction, right 46% of the time.

Negative news burst102 eventsinside noise
-133+1331 hrto close+1 day+3 days

Next day -27 bp in the event's direction, right 51% of the time.

Analyst upgrade45 eventsinterval clear of zero
-291+2911 hrto close+1 day+3 days

Next day +104 bp in the event's direction, right 60% of the time.

Earnings beat39 eventsinterval clear of zero
-245+2451 hrto close+1 day+3 days

Next day -125 bp in the event's direction, right 33% of the time.

Analyst downgrade24 eventsinside noise
-483+4831 hrto close+1 day+3 days

Next day -130 bp in the event's direction, right 46% of the time.

Earnings miss4 eventstoo few events
-138+1381 hrto close+1 day+3 days

Next day +105 bp in the event's direction, right 50% of the time.

Scheduled macro days (CPI, jobs, Fed): QQQ moved 0.92% on average across 57 macro days and 0.85% on 289 other days (t +0.6). They were not noticeably bigger days.

Prediction markets

The odds form clean expected-value lines. Day to day they do not lead the market. Sharp moves in some lines are worth testing on new data.

Each Kalshi question is a ladder of contracts ("CPI above 0.3%", "above 0.4%"…). Their prices form a probability distribution, so each day gives one expected value. The line follows the next unresolved event and its daily change is scored against its own last 60 changes (z). Snapshots are taken before 3 PM ET; returns start at the 4 PM close. On days when expected inflation, unemployment or recession odds fell sharply, QQQ tended to rise the next day. Each of these groups holds 13 to 24 days and we looked at 24 groups, so one or two would clear the bar by chance alone. Treat this as a hypothesis for out-of-sample testing, not a result.

Expected Fed rate after next meeting515 daily changes
2024-012026-10now 3.94
Moves with QQQ same day
t +0.3
Leads QQQ next day
t -1.4
  • QQQ next day, bpdaysavg95% range
  • after sharp rise18-60-111 to -8
  • after sharp fall21+45-5 to +95
  • any day+16
Expected size of next Fed move657 daily changes
2024-012026-10now 6.82
Moves with QQQ same day
t -1.4
Leads QQQ next day
t -0.8
  • QQQ next day, bpdaysavg95% range
  • after sharp rise23-19-64 to +21
  • after sharp fall20+12-39 to +68
  • any day+9
Expected next monthly CPI change604 daily changes
2024-012026-10now 0.24
Moves with QQQ same day
t -1.1
Leads QQQ next day
t -1.6
  • QQQ next day, bpdaysavg95% range
  • after sharp rise17-10-63 to +39
  • after sharp fall19+61+20 to +106
  • any day+10
Expected next payrolls print632 daily changes
2024-012026-10now 61,075
Moves with QQQ same day
t +2.0
Leads QQQ next day
t -0.4
  • QQQ next day, bpdaysavg95% range
  • after sharp rise19+3-68 to +81
  • after sharp fall17+20-35 to +74
  • any day+9
Expected next unemployment rate599 daily changes
2024-012026-10now 4.15
Moves with QQQ same day
t -0.8
Leads QQQ next day
t -0.9
  • QQQ next day, bpdaysavg95% range
  • after sharp rise15-23-68 to +19
  • after sharp fall13+102+27 to +177
  • any day+7
Recession odds641 daily changes
2024-012026-10now 0.04
Moves with QQQ same day
t -2.4
Leads QQQ next day
t +1.3
  • QQQ next day, bpdaysavg95% range
  • after sharp rise24-23-100 to +43
  • after sharp fall19+65+21 to +110
  • any day+10

Tweets

Not testable yet.

Tweet tone is scored with a locally run language model, and recording has only just started. Unlike news, tweets cannot be reliably backfilled, so the same tests need a few months of live history. A sizeable share of stock-tagged posts are templated promotion (group invitations, "follow this trader"), so filtering them out comes before any measurement.

Takeaways

Data and method

Universe. Nine large technology stocks (AAPL, AMD, AMZN, GOOGL, META, MSFT, MU, NVDA, TSLA) and QQQ. Stock results are measured against QQQ so that market-wide moves cancel out.

News. 346 trading days (2025-06-02 to 2026-10-15), with tone tags from Polygon.io. Each story counts only from the moment it was public; for historical stories that is one hour after publication. Daily readings are taken at 3:30 PM ET and compared with returns that start at the 4 PM close. Intraday readings (8,949 fifteen-minute points) are compared with the following hour within the same session.

Events. 809 signed events: analyst upgrades and downgrades, earnings results against estimates, and news bursts (at least three times the usual coverage from several publishers, with one-sided tone). Returns start at the first fifteen-minute bar after the event was public, so after-hours news is measured from the next open and the overnight gap is excluded.

Prediction markets. Kalshi hourly prices since 2024 for the Fed rate and decision, CPI, payrolls, unemployment and recession questions, sampled before 3 PM ET on trading days. The line follows the next unresolved event, and changes are never taken across a switch from one event to the next.

Statistics. Spearman rank correlations, Newey-West standard errors where return windows overlap, and 2,000-draw bootstrap intervals for events. A result counts as clear at |t| ≥ 3 with both halves of the sample agreeing. No trading costs are included. Many tests were run, so isolated results near the threshold should be expected by chance.