Where the data comes from
Odds come from The Odds API. The reference is Pinnacle, the bookmaker whose prices the market treats as sharpest. They are compared with fourteen Swedish-licensed bookmakers: Unibet, NordicBet, LeoVegas, Mr Green, Hajper, Svenska Spel, Campobet, Coolbet, ATG, Betsson, Expekt, Betinia, 888sport and BetMGM. Some of them share a pricing platform (Expekt and Unibet both use Kambi's prices, for example), so the same pick often shows at several of them at the same odds.
From odds to fair odds
Every bookmaker builds a margin into its odds, so the implied chances of all outcomes add up to more than 100%. We remove Pinnacle's margin with Shin's method, which also corrects the way margins tend to hide in the long shots (the favourite-longshot bias). What's left is an estimate of each outcome's fair probability; fair odds are 1 divided by that probability.
What counts as a pick
A price at one of the fourteen bookmakers becomes a pick when all of these hold: its edge, EV = odds × fair probability − 1, is at least 2%; its odds are between 1.00 and 10.00; the match starts within 72 hours; and the market can be priced from Pinnacle. Those markets are match winner, over/under and handicap, plus double chance and draw no bet for football (in the biggest leagues from a day before kickoff, in the rest from 12 hours before), match winner including overtime for the SHL, HockeyAllsvenskan, Liiga and the NHL, and the regulation-time 1X2 for the NHL. Both teams to score, corners and cards aren't scanned: Pinnacle prices them, but none of the fourteen bookmakers supplies them to the odds feed Sharp Bets uses. One exception to the edge threshold: a price found only at Betsson or NordicBet (which show the same prices in Sweden) needs an edge of at least 4%. Betsson often moves before Pinnacle does, and in October 2026 such lone prices closed below zero on average; with any other bookmaker on the same bet, the usual 2% applies.
How often it looks
Sharp Bets scans around the clock. A full scan of every sport with a game in the next 72 hours runs every 15 minutes; in between, the sports with a game in the next 6 hours are scanned every 2 minutes, day and night, because that's where prices move most. Picks already found are updated by every scan as well, so a pick with a game in the next 6 hours is rechecked every 2 minutes, and the rest about every 15 minutes, until kickoff; once every bookmaker's price for a pick has fallen below the threshold, it comes off the board. A bet already logged from it stays in My Bets regardless.
For football match result and total goals at the six Kambi bookmakers (Unibet, Svenska Spel, ATG, Expekt, LeoVegas and BetMGM), in games starting within 6 hours, the prices come straight from Kambi, read every minute, so they are at most about a minute old when a scan compares them; everything else comes from the odds feed. New picks are only found at the scheduled scans, so a price can already have moved when you see it. That is what the price check is for: when you log a bet, type the odds you got and it shows whether the edge is still there.
Stake sizes
Suggested stakes use the Kelly criterion at 0.5 of full Kelly, expressed in units. One unit is 1% of your bankroll, so the suggestion works whatever your bankroll is. Set what a unit is worth in Settings to see it in money.
Signals
Odds Down means Pinnacle's price on that outcome has fallen since the pick was first found, which is often a sign of sharp money on that side. Golden means the edge has grown on every recheck since the pick was found.
Wide line means Pinnacle's own margin on that market is above 5%. Pinnacle usually prices with a small margin, so a bigger one tends to mean it is less sure of the price. The fair odds, and the edge worked out from them, are then less certain than usual. It is a warning label only: the pick stays on the board and its stake is not changed.
How we measure our own results
Every pick is written to a log when it is sent. About 5 minutes before kickoff the system fetches Pinnacle's closing price, removes the margin, and compares it with the price originally found: that is the closing-line value (CLV). Finished matches are graded automatically from official scores where a score decides the bet; corners, cards and quarter-lines are left ungraded rather than guessed.
The Odds API's score feed doesn't cover every sport. For Liiga and Japanese and Korean baseball the final scores come from a second provider, API-Sports, matched to each game by both team names and kickoff time; a game that can't be matched with certainty, or a baseball game that ends level, stays ungraded. NHL “1X2 (regulation time)” picks are graded from the score after the three periods, also from API-Sports, since a final score can't show whether a one-goal game was decided in regulation, overtime or a shootout. Boxing has no automatic score feed, and the MMA feed only looks back three days, so boxing results, and MMA results the feed misses, are looked up by hand from public sources, each with its source recorded. A cancelled fight counts as a push (stake returned), as it does at the bookmakers. Ice hockey totals and handicaps are graded on the official final score, where the team that wins a shootout is credited one goal, as most bookmakers do (Bet365, for example). Coolbet doesn't count shootout goals, so after a shootout its result can differ; in My Bets you can set a bet to what your bookmaker actually paid.
Automatic grading started in mid-September 2026. Football results from before then come from football-data.co.uk's public results files, matched to each game by date and both team names; checked against 210 games already graded from the official score feed, every score was identical. Picks in leagues without such a file stay ungraded.
Other older results, from leagues and sports with no score feed or results file, were looked up by hand from public sources such as league websites, Wikipedia season pages and match reports; each one is stored with its source, and only results that could be confirmed were added. Games that were cancelled or postponed, or whose reports conflict, stay ungraded.
A pick found after its game had already started is not counted in the record. On 8 October 2026 the start time in the odds feed was moved later once a game was under way, and the system compared bookmakers' live odds with Pinnacle's pre-game price and logged picks that were never real pre-game value. The rule applies to every pick in the history, winners and losers alike, and was added on 10 October 2026 together with a fix in the system, which now logs no picks within 10 minutes of the start. The log itself is unchanged. So far 35 picks are left out this way: 14 won, 18 lost, −17.39u in total.
A pick is also not counted when the bookmaker's market and Pinnacle's weren't the same bet. From 29 August to 18 September 2026 the Swedish bookmakers quoted German handball's match winner with a draw (1X2) while Pinnacle quoted it two-way, and the system compared the two, so those edges weren't real. Since mid-September Sharp Bets only compares markets with the same outcomes. The rule was applied on 17 October 2026 to every such pick, winners and losers alike, and the log itself is unchanged: 23 picks, 9 won, 14 lost, −46.79u in total.
A pick is also not counted when it was never posted. The system looks up to 72 hours ahead, but the board only shows today, tomorrow and the day after, so late in the day a game three calendar days away could be found and logged without ever appearing on the board or in Telegram. Since 21 October 2026 the system only logs what the board shows. The rule was applied that day to every pick that was never posted, winners and losers alike, and the log itself is unchanged: 108 picks, 59 won, 49 lost, +17.42u in total.
Each selection counts once, at the first price found. Until 17 October 2026 the record counted the same selection again whenever its odds differed, at another bookmaker or after the price moved, sometimes up to eight times with a suggested stake each, which nobody would bet. On that day the old way gave 3,711 entries and +55.2u; counted once, the same history is 2,509 picks and +145.5u, with almost the same value at the closing line (+152u against +164u). The change applies to the whole history and the log itself is unchanged. Since 21 October 2026 a hockey match-winner pick and a match-winner pick including overtime on the same team in the same game also count as one, the one found first: in the leagues that have both, the match winner already includes overtime. That merged 10 pairs and took 9.5u off the total; in all 10 both picks had the same result.
From 2 to 15 September 2026, before the system moved to a server, it often missed the closing check. Those closing lines were filled in afterwards from Pinnacle's own price archive (through The Odds API), using the last price before the real kickoff, and every one that could be matched was added, whatever it showed. They count in the CLV figures and are shown as recovered, the closing-line capture rate still counts them as missed, and they never give a logged bet the Verified badge.
If Pinnacle has already taken a market down when the closing check runs, which often happens in boxing because the listed start time is the start of the whole card, the closing line is the last Pinnacle price the system saw, as long as it was seen within four hours of kickoff. Since 3 October 2026 these count in the CLV figures like any other closing line, but not in the closing-line capture rate, and they never give a logged bet the Verified badge.
For a total or handicap, Pinnacle sometimes moves its main line before the start, for example from 3.0 to 2.75 goals. Since 24 October 2026 the closing line is then Pinnacle's closing price for the same line from its alternate lines. A pick is only ever compared with the identical line, and Pinnacle's margin on alternate lines can be slightly higher than on its main line. Until 1 November 2026 the margin on alternate handicap lines was removed over four prices instead of the matching pair, which made three handicap picks look far worse at the close than they were (as low as -70%). Their closing lines were recalculated from Pinnacle's closing prices in its own archive (through The Odds API): -0.8%, -8.9% and +6.0%.
In Liiga, HockeyAllsvenskan and the SHL the odds feed's plain match winner already includes overtime, so until 3 October 2026 the system sometimes logged the same bet twice, once as match winner and once as match winner including overtime, at the same bookmaker and odds. Such a pair counts as one bet in every figure on the site; the pick log itself is unchanged.
Limits, plainly
Fair probabilities are estimates, not facts. Pinnacle can be wrong, especially in thin markets and at long odds, where small errors matter more. Bookmakers limit or close accounts that win, so an edge may not stay usable. Prices move, and a +EV price can vanish within minutes. Even a real edge produces long losing runs, and nothing on this site guarantees a profit.