How the product works

Known Limits

What our signal system does not know, and where it does not beat the price.

Last updated September 2026 · 7 sections · ~6 min


Why this page exists

We base our reads on data we can actually measure: historical matches, bookmaker prices, player ratings, head-to-head records and recent form. But there is a lot of information we cannot observe — and pretending we can would be dishonest. This page tells you what falls outside the signal system, and where it does not beat the price, so you can apply your own judgment.

What we do not model

Player condition
Illness, injury, jet lag, personal issues. A player who is unwell will lose to opponents we expect them to beat. We do count how many matches a player has already played today, but that count does not move the read.
Equipment changes
New rubber, new blade, new shoes — these can flip a player's performance overnight and we have no visibility into them.
Match-fixing risk
We run no integrity or match-fixing detection. Every match is treated as honest.
Roster rotations
In closed-pool daily leagues (Setka, Czech Liga Pro, TT Cup) the same physical players may participate under different IDs over time. Our alias system catches some, not all.

Where the read does not beat the price

Measured

On the picks we actually sent to the Pro group over 90 days to 5 September 2026 (n = 2,849), our read picked the winner 1.0 percentage point less often than simply backing the bookmaker favourite, and it was below the favourite in all four daily leagues: Setka −0.3, TT Cup −1.2, Czech Liga Pro −1.7, TT Elite −2.5. We agree with the market on 92–97% of matches; when we disagree, we have lost more often than we have won.

Measured

Over 3,921 settled picks (30 April to 3 September 2026) the sent pick hit 55.6% at an average price of 1.747. At that price you need 57.2% to break even, so the record is 1.6 points short. This is why every hit rate we publish carries its sample and its price: a hit rate on its own reads as winning.

We do not publish our own return on investment. What you make depends on which matches you take and how you stake them, and we control neither.

Things in table tennis we explicitly know are NOT real

Home-court advantage
The “Home” and “Away” labels in the data come from the upstream feed and do not reflect any physical home advantage. Both players play on the same table under identical conditions. We tag matches with home/away purely for data linking — never as a probability boost.
Match count as fatigue
We count how many matches a player has already played today and show it as context. Neither that count nor same-day form — how each player has done in today's earlier matches — enters the read or the tier.
Measured

Same-day rematches. On our own data — the second leg of every same-day pairing, finished matches, 90 days to 5 September 2026, n = 17,595 — “back the previous winner” hit 50.9%. Following the bookmaker favourite hit 60.6% on the 15,562 legs that had a price. The market already prices the rematch. We show a same-day rematch as context on the match page; the earlier result does not enter the read.

How we surface uncertainty

Small samples
A head-to-head rate needs at least 3 meetings before we print it; a player's role split needs 10 matches and a situation split 5; a calibration bucket needs 200 matches in the last 90 days before its rate is drawn; the performance tables group leagues with fewer than 30 settled picks as low-sample rows. Below those floors the block says so, stays blank or groups the rows — we would rather show nothing than a 70% built on four matches. Every rate we print carries its n.
No pick, with the reason
Most upcoming matches carry no verdict. When there is none, the match page says “No pick published” and names why — the signals did not settle on a side, the read fell short of that league's bar, the favourite's price is too short, or the read goes against the market without an edge.
Every signal, side by side
On the match page (Plus and Pro) each signal the page can read — the price, Glicko-2 when both players are rated, form over the last 5 and the last 10, streak, head-to-head — shows which player it leans to or that it stayed silent, and the footer counts how many sit for, against and silent relative to the sealed read. The table is the interface catalogue; the engine weighs its own subset of it, and the page says so.
Sealed before the first serve
Our probability is frozen before the first serve and never rewritten. A finished match shows that sealed read next to what happened, for every plan — the record is only checkable because of that. The live page may also show a later re-read; the sealed one is the receipt.
Freshness
Player profiles refresh when a match finishes. A player with no match in 90 days shows “No matches · 90d” on the players list and player page; the match page does not show profile age, and an old form window is not discounted by the read. Live scores carry their own freshness badge.

What the data covers

Source
Match, result and price data come from BetsAPI. Prices are not available for every match: the first set is never priced by the book, and a total-points line is missing or unusable on roughly a third of matches.
Window
Continuous daily coverage started on 1 January 2025. Records before that date are sparse and are not used in our backtests.
Leagues
Six leagues run daily: Setka Cup, TT Elite Series, Czech Liga Pro, TT Cup, Setka Cup Women and Challenger Series TT. Other leagues appear when they play.
League figures
The league numbers on the over/under card describe the matches that finished today, with their n. They are a portrait of one day, not a season.
Live scores
Scores refresh every few seconds from the feed. A score can lag the table, and the freshness badge says when the last update is stale.

What you should not expect

We do not promise picks will hit, and we do not publish our own return — what you make depends on your prices and your staking. The Monte Carlo simulator in Premium can size stakes from inputs you can change; it is a tool, not a recommendation.

We provide one input for your own decision: a probability we record before the first serve, the signals behind it, and — where the league has 200 or more matches in that probability range over the last 90 days — what that number has historically been worth. What you see depends on your plan: Free shows the facts (form, head-to-head, schedule, prices); Plus adds the sealed probability for the match winner; Pro adds the verdict and the first-set and over/under reads. Once a match finishes, the sealed read and its outcome are public for everyone.

NextTerms of Service
Known Limits | TT Lossbeater