Sentiment Analysis
News & social sentiment scoring across prediction markets
Sentiment Analysis turns the noise around a market — breaking headlines, social chatter, the general mood on a topic — into a single number you can act on. Predite scores sentiment on a **-100 to +100** scale, where negative means the crowd leans toward NO, positive means the crowd leans toward YES, and zero means no clear consensus. It is one of the four AI tools in Predite, sitting alongside AI Chat, AI Summaries, and AI Match, and it is wired directly into the **News Reactor** bot strategy.
This doc explains what the score actually measures, where the data comes from, how to read it next to price, the refresh cadence and rate limits, plan gating, and how to put it to work — manually or on autopilot.
## What Sentiment Analysis Does
A prediction market price already encodes a probability. Sentiment is the layer underneath it: **is the narrative moving in the same direction as the price, ahead of it, or against it?** When sentiment and price agree, you have confirmation. When they diverge, you have a question worth investigating — and sometimes an edge.
Predite produces two related but distinct signals:
- **News sentiment** — derived from actual published headlines and article summaries pulled from market-news providers. Each article is classified as **positive**, **negative**, or **neutral** and tagged with the markets it is relevant to (for example, a Fed headline maps to "Fed rate decision").
- •**Social/topic sentiment** — an estimate of what the broader conversation around a market topic looks like *right now*. This is surfaced as a label (**bullish / bearish / neutral / mixed**) plus a numeric score and a one-to-two-sentence rationale.
Both feed the same -100..+100 reading you see on a market. Think of news sentiment as the hard, sourced layer and social sentiment as the soft, contextual layer.
### The score scale, in plain terms
- **+60 to +100** — strongly bullish. Headlines and chatter clearly favor YES. Treat as confirmation of a YES lean, not a reason to chase.
- •**+20 to +60** — mildly bullish. A tilt toward YES, but soft.
- •**-20 to +20** — neutral / mixed. No usable directional signal; price is your better guide.
- •**-60 to -20** — mildly bearish, leaning NO.
- •**-100 to -60** — strongly bearish, clearly favoring NO.
The score is **directional, not a probability**. A +80 sentiment does **not** mean "80% to resolve YES." It means the prevailing narrative is strongly pro-YES. Always pair it with the AI probability and the EV read — see [Reading Signals](/docs/reading-signals).
## Where the Data Comes From
Sentiment is built from a small, deliberately transparent set of sources so you always know what you are looking at.
### News sources
- **Finnhub** is the primary feed for market news. Predite pulls both the **general market news** stream (with category filters: general, forex, crypto, merger) and **company news** for the tickers that most often back prediction markets (e.g. AAPL, TSLA, NVDA, GOOGL, META). Each item carries a headline, summary, source publication, timestamp, and URL.
- •A **general news layer** supplements Finnhub for broader political and macro topics.
- •When no live news is available for a market — or an API key is not configured in your environment — Predite shows a curated **fallback feed** of representative macro/crypto/politics headlines so the panel is never empty. Fallback items are clearly generic and should not be read as breaking news.
Each headline is scored with a transparent keyword model: positive terms (surge, rally, beat, approve, record, bullish, …) versus negative terms (crash, miss, reject, plunge, bearish, decline, …). Net positive → green, net negative → red, tie → neutral. This is intentionally simple and explainable — you can read the headline and see why it scored the way it did.
### Social / topic sentiment source
Live scraping of X (Twitter) and Reddit requires paid API access with hard rate limits, so the social layer uses a **hybrid approach**:
1. By default, Predite **estimates** topic sentiment using its AI model. Given the market question, it reasons about what the typical social conversation on that topic would look like at this moment and returns a label, a score, and a short rationale. 2. When real social API credentials are configured, Predite substitutes **live scraped sentiment** in place of the estimate.
## How Sentiment Maps to Market Direction
The whole point is to relate sentiment back to the YES/NO price. Three patterns matter:
1. **Confirmation (sentiment agrees with price move).** Price is drifting up and sentiment is solidly positive. The narrative supports the move. This is the cleanest setup — but remember the move may already be priced in, so check EV before entering. 2. **Divergence (sentiment leads price).** Strongly positive sentiment while the price has not moved yet can mean the market is slow to react to a developing story. This is where sentiment is most valuable — it can flag a repricing **before** the order book catches up. Confirm with [Whale Tracker](/docs/whale-tracker) (is smart money already moving?) and the order book on the market detail page. 3. **Contradiction (sentiment fights price).** Price says YES is likely but sentiment is bearish, or vice versa. Do not blindly fade the price. Contradictions are usually a signal to **dig in**: the crowd may be wrong, or the price may reflect information the headlines have not. Read the underlying articles before acting.
A practical mental model: **price is the consensus probability; sentiment is the momentum of the story.** Sentiment is most actionable around catalysts — earnings, Fed decisions, elections, regulatory news — when narratives shift fast and prices lag. Pair it with the [News & Calendar](/docs/news-calendar) feature to know *when* a catalyst is coming and *what* the mood is going into it.
## Using Sentiment — Step by Step
1. **Open the News hub.** Go to **Dashboard → News**. You will see live articles, each with a sentiment dot (🟢 positive / 🔴 negative / ⚪ neutral), the source, how long ago it published, and the prediction markets it is relevant to. Use the category buttons (general / forex / crypto / merger) to focus. 2. **Drill into a market.** Click any market (from the scanner, a news item's relevant-market tag, or search) to open the **market detail** page. The news panel there is filtered to that specific market, so every headline is on-topic. 3. **Read the topic sentiment.** On the market detail view, the sentiment label (bullish/bearish/neutral/mixed), the numeric score, and the short rationale tell you the prevailing mood and *why*. If it is an estimate, the disclaimer will be shown — weight it accordingly. 4. **Compare against price and AI probability.** Put three numbers side by side: current YES price, [AI probability](/docs/ai-probability), and the sentiment score. Agreement across all three is a strong, multi-factor signal. Disagreement is your cue to investigate. 5. **Decide and size.** If you act, size the position with the [Kelly Calculator](/docs/kelly-calculator) and the EV read from the [EV Scanner](/docs/ev-scanner). Sentiment refines conviction; it should not be your only input. 6. **Practice first.** Test sentiment-driven entries in [Paper Trading](/docs/paper-trading) before risking real capital, so you learn how the score behaves around catalysts for the categories you trade.
### Tips
- **Use sentiment as a filter, not a trigger.** A great workflow is: let the EV Scanner surface +EV markets, then check sentiment to break ties between similar opportunities. Prefer the candidate where sentiment confirms the edge.
- •**Read the headlines, not just the dot.** The keyword classifier is transparent but blunt — a headline like "Fed not as dovish as feared" can read positive to the model but be bearish in context. The dot points you to the article; your judgment finishes the job.
- •**Watch divergences around scheduled events.** The biggest sentiment-to-price gaps appear in the hours around a known catalyst. Cross-reference the [News & Calendar](/docs/news-calendar).
- •**Mixed is information too.** A "mixed" label on a hot topic tells you the market is genuinely contested — expect choppy pricing and wider spreads, and size down.
### Gotchas
- **Estimated social sentiment is not a live scrape.** When the disclaimer is present, treat the social layer as model context and lean on the sourced news layer.
- •**Sentiment is not probability.** Never convert a +70 score into "70% YES." Use AI probability for that.
- •**Fallback news is generic.** If you see the curated fallback set, there is no live coverage for that market right now — do not trade off it.
- •**The keyword model misses sarcasm and nuance.** Always confirm with the actual headline before acting on a single article's classification.
- •**Sentiment can be late on a fast-breaking story.** A brand-new headline may not be reflected for a refresh cycle (see cadence below). For the freshest read, open the article directly.
## Refresh Cadence and Limits
Sentiment does not move second-to-second, so Predite caches aggressively to stay fast and within provider limits:
- **News feed:** the general market-news stream refreshes about every **5 minutes**; company news for tracked tickers refreshes about every **10 minutes**. Articles are de-duplicated by title and sorted newest-first.
- •**Topic/social sentiment:** cached **per market for 1 hour**. Two traders viewing the same market within the hour get the same cached read, which keeps responses instant. If you need a fresher pull, revisit after the cache window.
- •**Rate limit:** generating a fresh topic-sentiment read is rate-limited to **20 requests per hour per user**. Each fresh request runs the AI model, so this protects both cost and responsiveness. Cached reads do not count against the limit. If you hit it, you will get a clear "rate limit exceeded" response with a retry window — wait and try again, or rely on the cached value.
For most workflows the cache means you rarely touch the limit. It mainly matters if you are rapidly cycling through many distinct markets in a short window.
## Plan Gating
- **Starter ($29/mo):** the **News** feed with per-article sentiment dots is available, so you can read the sourced news layer and relevant-market tags.
- •**Pro ($59/mo):** adds the full **topic/social sentiment** read (bullish/bearish/neutral/mixed score plus rationale) on market detail, alongside Pro intelligence tools like Whale Tracker and the arbitrage scanner.
- •**Bot ($99/mo):** unlocks the **News Reactor** automated strategy and, separately, **live CLOB execution** on Polymarket. Any automated, sentiment-influenced trading lives here.
As always, **live trading requires the Bot plan** and goes through the guarded execution route with the master switch, kill switch, and daily-volume cap. Sentiment never places a live order on its own.
## The News Reactor Bot Tie-In
- It uses a **higher edge threshold** than the default EV strategy — it only fires when the modeled edge is large (roughly **15 percentage points or more**), the kind of gap a genuine news catalyst tends to open.
- •It executes **faster** (a tighter per-run cap) so it can position while the move is fresh, then steps back rather than over-trading.
- •It respects your configured **max position size** and the same risk guards as every other strategy.
A solid pattern: run News Reactor in paper mode for a couple of weeks across the categories you care about, review its entries in your [Trade Journal](/docs/trade-journal), and only then decide whether to act on its live signals manually.
## Related Docs
- [Reading Signals](/docs/reading-signals)
- •[News & Calendar](/docs/news-calendar)
- •[Bot Strategies](/docs/bot-strategies)
- •[Whale Tracker](/docs/whale-tracker)