Men's Champions League · regulation-time 1X2
UCL Intelligence
Predict Smarter. Play the Probabilities.
- Refreshing fixtures
- Pulling bookmaker prices
- Fitting team ratings
- Ranking every combination
High confidence is not a guarantee. A 70/100 pick is expected to lose about 3 times in 10. Draws lose every straight-win pick and parlay here.
Match centre
Top 5 straight wins
Build my parlay
Pick how many legs you want and we'll find the most likely combination, or add and remove teams yourself. Every extra leg multiplies in another chance to lose.
How the scores work
What a confidence score means
A score of 72/100 means a 72% chance the team wins the match in regulation time: 90 minutes plus stoppage time. Extra time and penalties don't count, and a draw counts as a loss.
Where the number comes from
- Kalshi. Kalshi runs a real-money market on every Champions League match with three contracts: home win, draw, away win. Each pays $1 if it happens, and all three settle on the 90-minute result, the same thing we predict. We use the midpoint between the best buy and sell offers.
- Markup removed. The three prices add up to a little over $1.00. Dividing each by the total turns them into chances that add to 100%.
- football-data.org. Official Champions League fixtures, kick-off times, crests and this season's results, used for rounds, logos and form.
Adding the free football-data.org key
Register at football-data.org (free) and the key arrives by email. In your Cloudflare Pages project go to Settings → Variables and Secrets, add a secret named FOOTBALL_DATA_API_KEY with the key, then upload the zip again. This adds live scores and the match minute, final results, club crests, official kick-off times and Champions League form. Without it, live status is estimated from kick-off time and the live WIN / LOSE tags follow the market's current favourite, not the score.
Connecting your Kalshi API key
Kalshi limits how often anonymous visitors can read prices, and Cloudflare shares its addresses with many other sites, so Kalshi sometimes refuses. Adding your own read-only Kalshi API key fixes this. In Kalshi, open Account settings → API keys → Create key, and save the key ID and the private key file. In your Cloudflare Pages project, go to Settings → Variables and Secrets and add two secrets: KALSHI_KEY_ID (the key ID) and KALSHI_PRIVATE_KEY (the whole contents of the private key file). Then upload the zip again. The key is only used to read market prices. Until then, the site uses Polymarket's matching markets whenever Kalshi refuses.
Everything updates on its own
Prices refresh every 2 minutes and fixtures every 10. The page reloads its picks every 5 minutes while it's open.
Parlays
Each leg is a different match, so the chances are multiplied. Three legs at 65% each give about 27%. The best overall parlay is the most likely combination that still pays at least 2.00 (even money). Prices shown are Kalshi's current buy price for each contract, before Kalshi's trading fee.
Play responsibly
These are probability estimates, not guarantees. Only stake what you can afford to lose. If gambling stops being fun, call 1-800-GAMBLER (US) or visit BeGambleAware (UK).