How We Determine Notable and Exciting Matches
How we score thrillers and upsets using live prediction market odds and match momentum—and why some matches earn the flame or upset badge.
On the String Tension homepage you'll see two carousels: Thrillers and Upsets. These aren't hand-picked—they're scored automatically from prediction market data.

Upset vs Excitement: 2026 Notable Matches
So how do we decide which matches make the cut?
Two Scores, Two Stories
We compute two separate scores (0–10) for every resolved match that has prediction market coverage:
- Excitement score — How much the odds swung during the match. Big match momentum shifts, lead changes, volatility = high excitement.
- Upset score — How unexpected the result was. Pre-match odds and ranking differential tell us whether the winner was a long shot.
A match can be a thriller without being an upset (close battle between two favorites). It can be an upset without being a thriller (underdog wins in straight sets). Or it can be both.
Excitement Score: What Makes a Thriller?
We use live odds timeseries—the probability of each player winning, updated as the match unfolds. When the market is confident, odds barely move. When the match is tight or momentum shifts, odds swing.
First thing: we only look at data after the match starts. Pre-match drift doesn't count.
For each timestamp we have odds for both players. We track:
- Max swing — The single biggest probability change between any two timestamps. A 30% → 70% flip in one update is a huge swing.
- Total variation — Cumulative volatility, time-normalized by match span so longer matches aren't penalized for having more data points.
- Lead changes — How many times the market favorite (the player with >50% implied probability) switched. We use diminishing returns so many lead changes don't dominate.
The formula combines these with rebalanced weights and a non-linear transform to spread scores across the 0–10 range.
Labels:
| Score | Label |
|---|---|
| 0–3 | Routine |
| 3–5 | Competitive |
| 5–7 | Thriller |
| 7–9 | Epic |
| 9+ | Classic |
Matches with excitement ≥ 4 show up in the Thrillers carousel. We sort by score and take the top from the last 14 days.
Upset Score: What Makes an Upset?
We combine two signals:
1. Market — Pre-match closing implied probability for the winner. We map this to a 0–1 “surprise” index (roughly 1 − p, with bounds), then combine with rank.
2. Rank — When the loser was higher ranked, we use sqrt(rank_diff) scaled to 0–1 so large gaps don’t explode linearly.
3. Shape — The combined index is raised to a power > 1 before scaling to 0–10 so most matches score low and only rare outcomes reach the top of the scale (right-skewed distribution).
If we don't have closing odds, we fall back to rank-only with a neutral market component.
Labels:
| Score | Label |
|---|---|
| 0–3 | Expected |
| 3–5 | Mild Upset |
| 5–7 | Upset |
| 7–9 | Major Upset |
| 9+ | Shocker |
Matches with upset ≥ 4 show up in the Upsets carousel so the list stays selective after the same shape transform.
Where You'll See It
- Homepage — Thrillers and Upsets carousels (last 14 days, top 10 each)
- Match details — Badges on individual match pages when scores are available (flame icon for excitement, arrow for upset)
- Match cards — Notable matches show their score and label so you can spot the best ones at a glance
2026 Highlights So Far
Here are the biggest thrillers and upsets from the 2026 season.
Top Thrillers
Biggest Upsets
Why It Matters
Tennis produces hundreds of matches a week. Most are routine. A few are worth rewatching or discussing. Our scores surface those automatically—no editorial bias, just math on market data. If the odds swung wildly, it was probably a great match. If the underdog won against heavy odds, it was probably an upset worth noting.
Check the homepage for the latest thrillers and upsets, or dive into any match page to see its scores when available.
Spot a match that should've made the list? Let us know.