Changelog

What's new

Everything that changed for you, newest first — what it does, which competitions it covers, and where to find it. Fixes and plumbing are left out; this page is only the parts you can see.

September 2026

We retired Today's Edge and Value Bets

Both ranked fixtures by the model's edge over the bookmaker's price. We checked that edge against what actually happened and it did not hold up, so no plan shows it any more. The predictions, the market's own view beside them and every result stay.

Today's Edge and the Value Bets list are gone from the app, the landing page and every plan. Both were built on one number: how far the model's probability sat above the bookmaker's price. We went back over the fixtures they had flagged and compared that number with the results. The model promised more winners than it delivered, and the gap grew as the edge grew. A number that behaves like that is not something we are willing to sell, or to show as if it were one.

Find value is now Model vs market. The tab in My Picks used to list only the fixtures where our number sat furthest above the market's, widest gap first. It now lists every upcoming fixture we cover that has a price, soonest first, with the outcome our model rates most likely and both numbers side by side. It does not rank anything by the gap, and the minimum-gap slider is gone.

What stays. Every prediction: home, draw and away probabilities for each modelled match, with the market's own view beside them. The public track record, misses included. My Picks, League trends, Standings and the match pages.

What this does not change. It does not change any prediction. The models are the same; only the claim about beating the price is withdrawn. If you follow a link to either page, you will see a short note saying so rather than an empty board.

The button for logging a bet you already made is back

Add past result - the way to record a bet you placed somewhere else, on a match that has already finished - had no button anywhere on the site since June. It is back, above your bets.

If you placed a bet elsewhere and wanted it in your journal after the match had finished, there was no way in. Add past result is that way: it searches finished fixtures rather than upcoming ones, and if the match was never in our fixture list at all, it lets you type the two teams and the date yourself.

The button disappeared in June when the panel it sat in was redesigned, and nothing put it back. Everything behind it kept working — Settings still carried the choice of what it creates, a prediction or a paper bet, and the empty journal still told you to use it — so the only thing missing was the way to start. It is now beside the Open / Settled / All chips at the top of your bets.

If you have been waiting to enter bets you made before you found us, or bets on matches we do not cover, that is now possible again. Nothing you already recorded has changed.

Your record by league stops flattering you, and a new panel asks whether you were unlucky or wrong

The league breakdown in My Picks Analytics no longer puts the luckiest league at the top — it sorts by how many bets are behind each row, prints every return with the range it actually admits, and folds away the leagues where you have a single bet. A new panel compares the wins you have against the wins that were expected, on two separate yardsticks.

Your record by league, in an order that means something. It used to sort by profit, so the top of the list was whichever league had been kindest lately — usually one where you had four or five bets. It now sorts by how many bets sit behind each row, so the leagues you actually have evidence about come first.

The count those rows are ordered by is the one printed beside them: settled bets that came back with a profit or a loss. Predictions you logged without a stake are not in it, and neither are bets still waiting on a result.

Every return in that table is printed with the range it admits, like +42% ±53pp, and so is every return on the dashboard tile that summarises it. That second number is not decoration: on a handful of bets a return can be almost anything, and a figure without it reads as a finding when it is arithmetic. Where every bet in a group came back the same — a league where you lost all three — there is no spread to put a range around, so the return is not shown at all and the units you won or lost are, because those are a fact and a percentage is an estimate. Leagues where you have exactly one bet fold into a single line you can open.

One competition is now one row even when it reached you under two names — the fixture list and something you typed yourself no longer sit in different places.

Expected against actual. The new panel draws the wins you have beside the wins that were expected, with a band for ordinary luck around it. Being inside that band is the normal state of a journal, not a verdict on you.

There are two yardsticks and you switch between them. The market uses the closing price with the bookmaker's margin removed, and it covers whatever had a price — totals and handicaps included. Our model uses the probability we published before kick-off, and it is much narrower. The sentence under the chart names the markets it covered for you, because that set is not fixed: every week we check our own probabilities against what happened, and a market only appears on this line while it passes that check. Totals and both-teams-to-score do not pass it today. The handicap is not on the line for a different reason — we have not checked it at all yet — and neither is drawn with a number we have no right to draw.

What it does not do. Both yardsticks are counted only over the bets each one can grade, and the panel always prints that count beside the total — they are different sets of bets and mixing them would be a lie in your favour or against it. If you have only a few settled bets, the panel will say so rather than draw a line through them.

The equity curve has gone from this tab. It was the profit-and-loss curve with a different number at the bottom, and both were drawn one above the other. Nothing that was on it is lost, and the bankroll curve on your dashboard — the one that follows your deposits and withdrawals — is a different chart and is untouched.

Your settled bets show the price the market closed at

A settled bet in My Picks now shows the last price we recorded before kick-off beside the price you took, and the difference between them. Where we have no such price — a match you typed in yourself, a market we don't collect, a line that moved — the row says which of those it is instead of leaving a blank.

What it does. Once a bet is settled, the row shows what the price did by kick-off: the closing price, and how yours compared with it as a percentage. Where that number is positive you took a price better than the market's last one; where it is negative you did not. It is the reading that does not need a result, which is why it is worth having beside a won or lost badge.

The figure is measured against the fair closing price — the bookmaker's margin taken out of it — because the raw comparison flatters. Both numbers, and how many minutes before kick-off that price was recorded, are on the row's tooltip. Analytics carries the average of them, always with how many of your settled bets it could be worked out for.

What it does not do. It cannot grade a bet we have no closing price for, and it says so rather than showing a zero: a match you typed in yourself has no feed behind it, some markets we never collect a closing price for, and a total or handicap whose line had moved by kick-off is a different bet, not a worse price. Expect a good share of your journal to say so.

Where the price comes from. The last quote our own feed recorded before the whistle — usually minutes before it, sometimes hours. The row tells you which, because a price that old is a weaker yardstick and you should be able to see it.

New to the idea? Closing line value explains what the number means and why it is the honest one to judge a method by.

Live in Find value shows the match as it stands

The Live filter in Find value now lights up while matches are being played. Each card shows the minute, the score and the bookmaker's current price next to the pick we found before kick-off — and the gap stays what it was at kick-off, because our model does not watch the match.

What it does. While a match we found a disagreement on is being played, the Live filter lists it: the minute, the score, and the bookmaker's current price for the side we picked, beside the price the pick was found at. Freshest first — a match in its 12th minute sits above one in its 83rd, because a pre-match reading means more the less of the match has been played.

What it does not do. It does not recompute the gap. Our number was worked out before kick-off and does not see the score, so a "gap" measured against an in-play price would be a stale opinion dressed as an opportunity. The figure on a live card is dated "at kick-off" and stays there. Live is a way to watch how a pre-match disagreement is going, not a search for value in play.

What changed elsewhere. Matches that have kicked off no longer appear in the Value, Safe and Starting soon lists at all — they used to sit there at their pre-match price, climbing the ranking the longer they ran. They are now under Live and only there.

The limits. The current price is shown for the Match Result market only, and only while our in-play feed has a quote; a card without one says "no live price" rather than repeating the old one. The filter goes quiet outside match hours, and says so.

The Bankroll Lab is free, and shows both plans

The tool that simulated a doubling-after-a-loss plan over real matches was a paid feature called the Martingale Lab. It is now the Bankroll Lab, open to anyone signed in, and every run shows flat staking next to the doubling over the same bets.

What it does. Pick a market, a period and the leagues you follow, set a bankroll, and the lab places the same bets twice: once at a flat stake, once doubling after each loss. You get both bankroll curves on one chart, the largest single bet each plan needed, and — with a bankroll set — the date the doubling ran out of money while the flat line carried on. Same matches, same prices; only the stake after a loss differs.

What changed. It used to run the doubling plan alone, which showed you a number with nothing to compare it against. It also listed upcoming fixtures with a suggested next stake, and that is gone: nothing here tells you what to put on a coming match. The lab looks backwards only.

Who can use it. Anyone with an account, at no cost. It used to sit behind Pro. The two Labs tools that are about building and testing your own rules, Strategy Lab and Backtest, are still Pro.

What it does not do. It does not claim either plan makes money. On most selections both lose — flat slowly, doubling all at once — because a losing bet is a losing bet at any stake. That is the point of looking.

Open Bankroll Lab

Five days in the date list, and it opens on today

Events by date now runs from the day before yesterday to the day after tomorrow, and the match list opens on today instead of on a mix of several days. The All dates button is gone.

Two more days, one either side. The date list in the menu ran Yesterday, Today, Tomorrow. It now runs five days, with the two outer ones named by their weekday so you can see at a glance which is the weekend: Sun (07 Sep) before Yesterday, Fri (11 Sep) after Tomorrow. Each still carries the number of matches on that day.

It stops at two days either way. For anything further out or further back, the date picker above the match list takes any date, and History searches across longer ranges. The five buttons are the days you check without thinking about it, not the whole calendar.

The match list now opens on today. It used to open on All dates, which was not "every match" — it was a rolling window of the next few days, shown as one run-together list. That was easy to read as "no filter applied" and hard to read as anything else, so the button is gone and the list starts on the day you are actually in. Every other day is one click away, and one of the five is always highlighted, so the list never shows you a mixture without saying which day you are looking at.

Value Bets is not one of the five days. It never really was a day at all — where the model disagrees with the price is a question about the days ahead, not about a date — so it no longer follows the date buttons. It now shows the whole window at once, starting with today, with each day named above its own matches. The view says how many days it covers, and the sort control in the header still orders them. Pressing a date takes you to that day's match list instead, which is where a date means something. It is still a Pro feature, and it still covers only the leagues our models are fitted on.

Live moved. It used to sit in the list of views with Home and Standings; it is now the first row of the date box, above the days, still with its count of matches in play. It is a time, so it belongs with the times. And the live scores page now has the same team search the rest of the lists have.

Open All Matches

Your starred matches have a door

The star on a match row has always saved it to a watchlist. There is now a star in the top bar and a Watchlist row in the menu that take you to that list, with a count of what is on it.

The star saved your matches. Nothing told you where they went. Clicking the star on a match row has always added it to a watchlist, and that list has always existed — but it sits inside My Picks as one tab among several, so unless you happened to open that tab you had no way of knowing it was there. Several people starred matches and never saw the list again.

There is now a star in the top bar with a number beside it, and a Watchlist row at the top of the menu on the left. Both go to the same place. The number is how many matches you are currently watching, so if you star three fixtures the bar says three, and you can get back to them from any page in the app.

The number counts matches that have not been played yet. When a match you were watching finishes it drops out of the count — it is not lost, it moves down into a Recently finished section on the list itself, with the result. So the number in the bar is always "how many am I still waiting for", never a running total of everything you have ever starred.

The star on a played match is gone. It did nothing useful: a fixture that has already been decided cannot be waited for, and starring one added a row that removed itself again. Matches in play keep their star, because those are exactly the ones worth having on a list.

Watching matches is part of the free account — you need to be signed in, but not subscribed. The star in the top bar only appears once you are signed in; if you are browsing without an account, clicking a star on a row offers to create one.

Find a team in the predictions list

The predictions list now has a search box for teams, leagues and countries, and a control that folds the leagues without folding the days.

A search box, in the bar above the list. Type a team, a league or a country — Arsenal, La Liga, Spain — and the list narrows to the picks that match. Accents and punctuation do not have to match what you type: Atletico finds Atlético, and kokand1912 finds FC Kokand 1912. The counter beside the controls changes to read 3 of 40 picks, so you can always see how much the box is hiding.

It searches the picks that are already on screen, and nothing else. If you are looking at Today and the match is on Thursday, the box will not find it — widen the window to three or seven days first, and then search. That is deliberate: the box narrows what you are looking at rather than quietly going and fetching something else, so the number beside it is always a number you can check by clearing the box.

And a way to fold the leagues without folding the days. The list groups by day, and inside each day by league. Until now Collapse all was the only fold there was, and it took the whole day away with it. There is now a Collapse leagues button that leaves Today and Tomorrow open and closes the league bands underneath them — which is the view you want when you are counting how many competitions are on rather than reading the individual matches. It appears when the list is grouped by day; grouping by league has only one level to fold, and Collapse all already does that.

One small thing worth knowing: while there is text in the search box the groups open themselves, so a match can never be hidden inside a folded band you cannot see. Clear the box and your grouping comes back the way it was.

Open Predictions

Follow the leagues you care about

Pick the competitions you actually watch, and switch the whole app between just those and all of them.

One hundred and seven leagues had a fixture today. Until now you could look at all of them or at exactly one, and the app forgot even that choice when you reloaded the page. There was nothing in between.

Now you can keep a list. The button in the top bar says Choose leagues. Search by league or by country, star the ones you follow, and the button becomes a switch: your leagues, or all of them, one click apart. It applies everywhere fixtures are listed — All Matches, Live, Predictions, Confidence Picks, Today's Edge and History — so you set it once rather than per page.

Two things it deliberately does not do. It never filters your own saved picks: a bet you tracked stays visible whether or not you follow that league, because a list of your money is not a place for a filter to hide things. And it does not touch the league tables, which show one competition at a time anyway.

What the numbers beside each league mean. That is how many fixtures the competition has in the next seven days — what following it would actually bring you, rather than only that the league exists. The picker offers leagues that are playing; a competition that has not had a match in two years is not something we can honestly ask you to judge.

The Popular section is short on purpose. We have classified twenty-four competitions by tier, out of well over a thousand we collect. Rather than pad that list with a guess at what is popular, it shows the ones we have actually classified and says so. Everything else is a search away, grouped by country.

And a reset. If the list stops matching what you watch, Reset — unfollow all in the picker clears it in one go, with a confirmation that names how many are about to go. Clearing it shows every league again; nothing else you have saved is affected.

You need an account for this, because the list follows you between devices. Whether you are currently looking narrow or wide is remembered per device — the answer on a phone is often not the answer at a desk.

Open All Matches

Strategy Lab: pick a strategy on the left, read it on the right — and filter its record

The Strategy Lab is now a list beside a detail instead of a grid above one: search and sort the fourteen strategies, open one, and — on Pro — see its record recomputed for the leagues, price range, period and side you choose.

The page had a hidden step. Clicking a strategy card used to scroll you to a detail block under the grid, and nothing said so. Now the strategies are a list on the left and the one you picked opens on the right; on a phone the detail is its own screen with a back control, and the address bar names the strategy, so a link opens exactly what you were looking at. The list is searchable and sortable by return, win rate, signal count or name — within each family, so the six odds-movement rules and the eight pre-registered ones never get ranked against each other.

Filters recompute the record, on Pro. Above the equity curve you can now choose leagues, a price range, a period and (where a rule bets both ways) a side. Everything below — win rate, return, curve, signal log — is settled again on just those signals, by the same code that settles the full record. A strip says how many of the strategy's signals you are looking at, and below a hundred the page refuses to headline a return, because one league on thirty matches will show you almost anything.

What it does not do. The list always shows the full record, so sorting compares whole strategies. The filters are a Pro feature, like the threshold tuner and the full signal log. And nothing here has become a recommendation: the verdict badges are unchanged.

Open Strategy Lab

Two different numbers were both called edge

The Kelly calculator and the front page used the same word for two quantities that differ by the size of the price. If you ever compared one to the other, the comparison was wrong — here is what to re-check.

One bet, two honest numbers, one misleading word. Take a price of 2.50 and a 45% chance of winning. The Kelly calculator showed you Edge +12.5%. The front page advertises that we publish a pick when the edge clears a threshold, and quoted that threshold with a percent sign too. Both numbers were correct. They were not the same kind of number, and nothing on either page said so.

The calculator's figure is a return: what one unit staked pays back on average at that price. Our threshold is a difference between two probabilities: how far our estimate sits from what the market thinks once the bookmaker's fee is taken out. At a price of 2.50 the first is about two and a half times the second, for the same bet, and the gap grows with the price.

What to re-check. If you ever took a figure off the Kelly calculator and compared it to the threshold on our front page — or to the edge shown on a pick — that comparison did not mean what it looked like, and it flattered the bet. The two are not on the same scale: at a price of 2.50 a calculator reading is roughly two and a half times the size of the probability gap for the same bet, and at 5.00 it is roughly five times. Nothing you were shown about our own picks has changed, and no number moved: only the labels did.

What changed on the pages. The calculators now say expected value, or EV, for the return per unit staked, which is what it has always been. The word edge is now used for one thing only — the gap from a fair market price — and it is printed in percentage points rather than percent, because that is the honest unit for a difference between two probabilities and it is the thing that tells you at a glance that the two figures do not belong on the same scale.

One thing worth knowing about the Kelly page. It takes a single price you type in, and a single price still has the bookmaker's fee inside it. So that page can show you an expected value honestly, and it genuinely cannot tell you your edge over a fair market — for that the whole book has to be priced, which is what the fair odds calculator is for.

Open Guides

Eight more strategies in the Lab, and what we will not claim for them

Strategy Lab gains a second family of eight rules built on how fifteen bookmakers' prices move against the sharp line. Every threshold was frozen before the test, and the card on each one carries the study's own verdict: on the first test none produced a return we can call positive, and two — the favourite at the best price and the totals steam — later passed a second test on leagues they had never seen.

Strategy Lab now has two families. The six rules you know read the last hour of odds movement before kickoff. The eight new ones read something larger: eleven months of prices from fifteen bookmakers, Pinnacle among them, at four moments before kickoff, plus five seasons of closing prices across nineteen European leagues.

Each new rule is a hypothesis about the market as a system — that retail prices converge on the sharp line and a book that has not yet moved is value; that a sharp move keeps going; that heavy favourites are under-priced at the best available price; that the draw is neglected when nobody is favourite; that goals money in the totals market carries momentum; that a team collecting more points than its chances deserve is over-priced; that a league's home advantage drifts and the price lags it.

What we did before building them is the part worth reading. Every threshold was chosen on the first half of the data and frozen. The second half was then tested once. The badge on each card is that test's verdict, in the study's own words, and the honest headline is that on that first test none of the eight produced a return whose interval sits above zero. One passed on a closing-line-value measure, and the write-up explains why that number is not money. The market, it turns out, does not converge on the sharp line before kickoff; sharp moves tend to partly reverse rather than continue; and prices are calibrated in every regime we could name.

Four rules earned a second look the same day. They were tested again, with the same frozen thresholds, on eleven European leagues' earlier seasons that no rule had ever been fitted to. Two passed there — backing a heavy favourite at the best closing price, and following late money on the goals line — and two failed again. Each card now prints both results side by side. Read the small print before reading anything into it: the price is the best of many bookmakers at closing, the effect at any one bookmaker is a point or two, and the records on the fifteen-bookmaker data we collect ourselves stay where they were. The goals-line rule was then put to that data directly — the totals prices of the same fifteen bookmakers, with the rule sealed before the first price was fetched — and it failed there, both at the close and an hour before kickoff. The favourite-at-the-best-price rule was re-run on the same data with junk quotes excluded and, for the first time, an hour before kickoff, and failed there too. Both cards say so.

What these cards are for, then: the same thing the Lab has always been for. Each one shows its full graded history, split into the half the rule was fitted on and the half it was tested on, with every match, the price it would have taken and the result. You can move the thresholds and watch the record move — and see for yourself how quickly a promising number dissolves on the months it was never fitted to.

What they do not do. They have no live board: their prices are collected after the match, so they cannot fire before kickoff. New settled matches join the record each morning. And nothing here is a recommendation to stake money — that has not changed, and this study is the reason it will not.

Open Strategy Lab

Two simulations got their own pages

The bankroll simulation and the Martingale one were buried halfway down two articles. They are now pages of their own, in the calculators list, where you can find them again.

They were already there. You could not find them twice. One of them runs twenty-four bettors through a season and shows what changes when the only difference between them is how much they stake. The other asks how many losses in a row a doubling system survives on your own bankroll, and how likely that streak is over a normal run of bets. Both had been sitting in the middle of a long article, which is a fine place to meet something and a hopeless place to return to it.

They are now in the calculators list with the other seventeen, so you can reach them from the sidebar, from search, or by bookmarking the page.

What they actually do. Both simulate an imaginary bettor from numbers you type in. The bankroll one hands every simulated bettor a genuine, generous advantage and then shows that having one is not enough on its own — a large share of them still go broke, purely from how the stake was sized. The Martingale one is usually a surprise in the other direction: ten times the money buys you one or two more losses, not ten.

What they do not do. They are not predictions, and they do not touch your account or ours. Nothing you enter is sent anywhere or stored. They will not tell you whether you have an edge — the bankroll one assumes you do, on purpose, so that nothing you see there can be blamed on picking badly. And a simulated season is one sample: run either of them a few times and watch the shape rather than the ending.

Both are free, need no account, and work the same whether you are signed in or not.

Open Guides

The channels are findable from the site

We publish to Telegram and YouTube every day, and until now nothing on the site said so. There is a section on the home page and a link in the footer of every page.

We have been publishing every day and not telling you where. One match a day goes out on Telegram with the model's read on it, a scorecard of how the week's calls landed goes out on Mondays, and short videos go up on YouTube. None of that was linked from anywhere you would look. If you found the channel, you found it by accident.

There is now a section on the home page with both, a link in the footer of every page, and a pair of marks in the app itself: in the header at the top and under the content at the bottom, so you do not have to leave what you are doing to find them. The Telegram one takes you to the channel; there is also a link to our bot, which answers a few commands in a private chat if you would rather have it that way than follow a feed.

What is actually in the channel. One match a day, not every match. The model's read on it, in plain words. A weekly scorecard, wins and losses both. The occasional poll. Everything in it comes from the same numbers on this site, so following it gets you the day's match and how the model reads it without opening anything, not a different or better set of calls.

What this does not do. It is not a private tier and there is nothing in it that is held back from the site. It is not a tips channel: you will not be told what to bet, and nothing there claims an edge. The Friday chance-quality post covers the six leagues our expected-goals data spans, not all of the leagues on the site, and it stays quiet in weeks when the numbers have nothing striking to say rather than manufacturing something.

The channel is new. It has been running in its current form since early August, so there is not much history in it yet. The model's full record, including everything that lost, has always been on Track record and is not going anywhere.

We stopped calling it value

The My Picks dashboard used to head a group of fixtures 'Value — model beats the price'. It now says 'Model vs market'. The fixtures and the numbers are the same; the claim about them was one we cannot support.

On your My Picks dashboard, a green band used to sit above the first few fixtures reading "Value — model beats the price". The counter at the top of the same screen said "Value" with a number beside it. Both told you we had found bets worth more than they cost.

We had not, and we have taken the wording down.

We spent the last few days measuring our own forecasts against closing prices across thousands of finished matches. The finding was uncomfortable and clear: our model is at its worst precisely where it argues loudest with the price. When it agrees with the market's favourite it is nearly as good as the market. When it picks against, it is several times worse. So the bigger the "value" we were flagging, the less it was worth.

What the screen says now. The same fixtures, in the same order, with the same numbers. The band is headed Model vs market, and underneath it, furthest from the price. The counter reads Gaps. Where a fixture's number was shown as a green percentage, it is now in percentage points and in our ordinary accent colour, because it is the distance between two probabilities and not a return. Green in this app means a bet that won, and it had no business sitting on this.

What to re-check. If you saved a pick because the screen told you there was value in it, the number behind that pick has not changed and neither has our view of the match. What changed is what we are willing to promise about it. Your journal, your prices and your settled results are untouched.

Three help articles were wrong, and are now right. They said the Find value tab was empty because no league had passed our quality bar. That stopped being true on 11 August, when the bar became a label shown beside each league instead of a filter that removed it. They also called the Value Bets view "empty" on a free plan when it is in fact a paid view, which is a different thing. If you read those pages and concluded the feature was broken or switched off, it was neither.

What this does not do. It does not change the model, the fixtures we list, the order we list them in, or who can see what. Nothing was added and nothing was removed. Public match pages are unaffected — they have never shown a value figure, and still do not. If you preferred the old wording, the honest answer is that it was telling you something we cannot show to be true.

Scores now update while you watch

The score on All Matches used to be frozen at the moment you opened the page. It now refreshes on its own about twice a minute.

If you left All Matches open during a game, the score you were looking at was the score from when the page loaded. It did not move. A goal went in, the row kept the old score, and the only way to see it was to reload the page or switch days and come back. Opening a match from that list had the same problem: the pop-out showed the score and the minute as they were when you clicked, and then stayed there.

That is fixed. The score, the match minute and the switch to full time now refresh by themselves roughly every half minute, in the list and in the pop-out, for as long as you have them open. You do not have to reload anything.

What to re-check. Any score you read off All Matches while a match was in play, and anything you decided from it. If the page had been open a while, the score could have been several minutes behind. Finished matches were never affected, and neither was the Live page, which has always refreshed itself.

What this does not change. It refreshes the score, the minute and whether the match has ended. The rest of the row is unchanged until you reload or change the day. It also does not make the score arrive any faster than it did before, which was usually within a minute or two of the goal. The delay you were seeing was the page not asking again, not the score being slow to reach us.

One more place got faster. Who scored and when, in the match pop-out, used to wait on a slower schedule than the score itself did, so a goal could show up in the score several minutes before the scorer's name appeared under it. Those two now run much closer together.

Open All Matches

August 2026

A match time that said UTC was already your own time

The panel that opens when you tap a match labelled its kick-off time "UTC". The time was already in your timezone. If you were converting it by hand, stop.

If you have been adding your timezone offset to the kick-off time in the match panel, you were making it wrong. The panel that opens when you tap a match printed the word "UTC" under the kick-off time. The time above it was never UTC. It was already your own local time, the same time shown in the list you tapped from, and the same one the badge at the top of the page describes.

So the number was right and the label was wrong, which is the awkward way round: anyone who trusted the label and converted landed hours out.

There was a second half to it on the same three lines. The date printed above the time was a UTC date while the time below it was local, so a late kick-off could be filed under the previous day — a match at half past one in the morning your time, dated yesterday.

Both are fixed. The panel now shows the date, the time and your actual offset (GMT+2, or whatever yours is) as one consistent set, and it reads that offset from your device instead of assuming one.

What to re-check. Nothing that was saved — only what you worked out in your head. No kick-off time we showed you was ever wrong, and no bet, pick or result was affected. If you noted down a match time from that panel and adjusted it yourself, the adjustment is the part to undo.

Two other places had the same fault and were fixed with it: the timestamp on an AI match brief, and the kick-off column in the Martingale lab.

One place still shows UTC on purpose. History still groups and times past matches by UTC day, because its date filters work in whole UTC days and moving one without the other would put a match under the wrong heading. That is a larger change and it has not been made yet.

Open All Matches

Live scores on the home page were wrong

Matches in play were all shown as 0-0 on the home page, whatever the real score. If you read that panel today, read it again.

If you looked at the live matches on your home page today, the scores were wrong. Every match in play was shown as 0-0, no matter what was actually happening in it. A match that stood at 2-1 was shown as 0-0, and so was one at 1-1. Opening a match from that panel was no better: it showed the kick-off time of a game that had been running for over an hour, and no score at all.

Both are fixed. The panel now shows the real score, the minute, and which half the match is in, and opening a match shows the same thing.

What to re-check. Anything you concluded from that panel today. It was only that panel and the pop-out it opens. The Live page itself was always correct, and so was every match list with a date on it, so if you read the score anywhere else it was right.

The panel is easier to read now, too. The two teams sit one above the other with the goals lined up down the right-hand edge, the way a scoreboard normally works, instead of the score being buried in a line of text between two club names. Where we have a forecast for the ground, it appears next to the league name. Where we have a view on the match, it appears as a small tag on the row itself. Matches we do not model carry no tag, rather than a blank space that could be mistaken for one.

Recent results got the same treatment. Same layout, so the score is where you expect it, and every row now opens the match. It did not before.

One honest correction to a label. That panel used to be headed "Live · covered leagues", which suggested it only ever showed competitions we model. It never did, and it still does not. It shows whatever is being played, putting the matches we have a view on first. The heading now just says what it does, and the tags on individual rows tell you which is which.

Open Home

A track record you can interrogate

The record page now sorts, searches and filters, ranks every competition by return, and shows each one against the market instead of on its own.

The track record used to be a single list you could only read top to bottom, in an order nobody chose. It is now something you can ask questions of.

Sort and search. Every column sorts, and there is a search box for the competition you actually care about. The table opens on the competitions with the most settled picks behind them rather than in an arbitrary order, so the first rows you read are the ones that can carry a conclusion. Filters let you set a minimum sample, or look only at the leagues in profit or in loss. All of it works on a phone.

Against the market, not on its own. Each competition now shows our return next to what the market-implied favourite returned over the same fixtures. A return with nothing to compare it to means very little, and until now that comparison existed only for the site as a whole.

Two new charts. One ranks every competition by return. The other plots each one's return against the number of settled picks behind it, over a shaded band showing how much of that number is noise at that sample size. That second chart will often show most competitions sitting inside the band — that is the honest picture, and it is why we would rather draw it than leave you to assume a big percentage on twelve matches means something.

A twelve-month window, alongside season, 180, 90 and 30 days. More settled picks is the only real way to tighten these figures.

One thing that was wrong is now right. On the profit-over-time chart, the minus signs on the vertical scale were being cut off, so a chart of losses was labelled as though it were gains. If you read that chart before today, read it again.

Opening a competition's row now shows all three sources side by side and links straight to every settled pick in it — that feed carries a full season now rather than the last twenty-five, and you can search it by team.

The per-competition breakdowns, the charts and the pick feed are part of PRO. The headline record for each source — how often it lands and what it returned, with the sample behind both — stays visible to everyone, as it always has.

Open Track record

Bets stop asking you to settle them

A bet whose final score is running late now says who is chasing it and by when it refunds itself, instead of sitting in red under a Resolve button you never needed to press.

Your bets in My Picks already settle on their own. A match finishes, the score lands, and within ten minutes the bet is marked won or lost, the price you took is the price it settles at, and your balance moves. That has been true for a while and it has not changed.

What has changed is what happens on the days it goes slowly.

Occasionally a final score simply does not arrive. Not often — it is a fraction of a percent of matches, usually one obscure fixture while the rest of its league reports normally. When that happened, the bet turned red, a counter appeared saying it needed a result, and a Resolve button asked you to settle it by hand. All of that was misleading. Behind the scenes we keep re-checking for that score every half hour, and if it never turns up we void the bet and give you your stake back. Nobody had to press anything.

Now the bet says exactly that. It stays calm in your open bets with one line: still waiting on the final score, settles itself when it arrives, and if it never does, voided and refunded by a date we name. The date is a real one — five days after kick-off — and it is the same deadline the system works to, not a guess.

Resolve is still there, and for some bets it is still the only way. If you added a fixture we do not carry, we have nothing to look up and it is yours to settle. The same goes for bets on things we do not collect results for, such as cards or corners. Those keep the red button, because for them it is true. And if you already know a result and do not want to wait, you can settle any bet yourself at any time — it has always been an override rather than a chore.

What this does not do: it does not make results arrive any faster, and it does not change how anything is graded or what it pays. It changes only which bets we ask you to do something about — which should now be close to none of them.

Find value now shows something

The Find value tab lists the fixtures where our model's number is furthest from the bookmaker's, across the 25 leagues we both cover and can price, instead of sitting empty.

If you have opened Find value in My Picks, you have most likely found nothing there. That was not a glitch, and it was not an off-season — it was us.

The tab was built to list bets where our model beats the bookmaker's price, and it only showed you a league once that league had proved it beat the price over a year of past results. No league has proved that. So the tab showed nothing, month after month, while sitting under a heading that promised value picks.

It now shows a different thing, and it shows it every day. The tab lists the fixtures where our model's number is furthest from what the odds imply — the disagreements. That is a statement about our own model rather than a claim about your returns, and it is one we can make honestly on any given morning.

Every card tells you how that league has actually done. Under each fixture you will see something like "flat-staking these picks returned −13.7% ±7.9pp over 318 bets over the last year" — the real backtested figure for that league, with the margin of error beside it, whether it flatters us or not. Leagues we have tested and approved are listed first. Leagues we have never tested say so, which is not the same as having failed.

What it does not do. It does not tell you a bet will win, and none of these numbers are a forecast of profit — a disagreement means our model and the market see the game differently, and the market is often the one that is right. It covers roughly 25 leagues out of the 218 we carry: only fixtures we both have a model for and can find a price for can appear. The rest of the calendar is still there under Find a match, where you can plan any fixture yourself.

It is no longer locked away. On the free plan you now see the fixtures and the side our model favours. Pro shows the full list with both probabilities and the gap between them; Max adds the prices.

The World Cup tab is gone from this section. The tournament is over, so it had nothing left to plan and showed an empty pane. Every World Cup match, including the whole archive back to 2014, is still under Tournaments.

While we were there: adding a bet by hand used to fill in the price for you on match-result bets only. Over/under and handicap bets left the price box empty even when we had the number, so you typed it from memory. It now fills in for those too, and offers the goal lines and handicaps we actually hold a price for rather than a blank box. Double-chance prices are worked out from the match-result odds and labelled as such — check them against your bookmaker before you save.

Tofiko on a phone

Team names, tabs and the day's picks now fit a phone screen instead of being squeezed off it, and the app no longer opens with the menu covering the page.

If you have been using Tofiko on a phone, two things have been quietly in your way, and both are fixed.

The app opened with the side menu over the page. Not for long, but long enough to be the first thing you saw every time, and on a slower connection it sat there until the page finished loading. The menu now stays shut until you open it.

Team names were being squeezed out of their own rows. On My Picks, under Today, the day's picks were showing the club badges, the market and the price, but the names themselves had been compressed to a letter or two, or to nothing at all. The same thing was happening to saved matches on the Watchlist. Rows now give the names a line of their own on a narrow screen, so a pick reads as a match rather than as two crests.

While we were there: the My Picks tabs no longer run off the edge of the screen, so Watchlist, Analytics, Print slip, Export, Bookmakers and Settings are all reachable without knowing to swipe for them; and scrolling the Today tab no longer hides the tab bar behind the bankroll summary.

None of this changes a single number, a pick or a price. It was a layout problem, on phones only, and nothing on a desktop screen has moved.

Email sign-in links work again, and signing out now says so

Sign-in links sent to your email were failing when opened, and many were never delivered at all. Both are fixed. Signing out now confirms it instead of leaving you on the same page.

If you have tried to sign in with an emailed link recently and it did not work, it was us, not you. Please try again.

Two separate things were broken, and together they made email sign-in close to unusable.

The link itself failed when you opened it. The link was tied to the exact browser you asked for it from. That is fine in theory and useless in practice, because mail apps open links in whatever browser they prefer, which is often not the one you were just using. Open the link on your phone after requesting it on your laptop, or let iOS Mail hand it to Safari while you were in Chrome, and you got an error telling you the link had expired or been used. It had done neither. Links now work from any browser, on any device. Because they are no longer tied to your browser, they expire faster: you now have 15 minutes to use one.

Many of the emails never arrived. Sign-in mail was going out through a service we had never configured properly, which quietly refused to send more than a couple of messages an hour across the whole site. If two other people signed in before you, your email was simply never sent, with nothing to tell you so. Sign-in mail now goes out through the same provider as the rest of our email.

If you gave up on an account because the link never came or never worked, it should now work on the first try.

Signing out tells you it happened. Before, choosing "Sign out" left you looking at the same page with no confirmation, and if it silently failed you stayed signed in without knowing. Now you land on the homepage with a clear message, and on the rare occasion it fails, it says so and tells you that you are still signed in, which matters if you are on a shared or public computer.

Signing in with Google was never affected by any of this.

What a bet costs

A new page reports the bookmaker margin we measure on each market and each bookmaker, so you can see where the same bet is cheaper before you place it.

Every price has a fee built into it. Add up the implied probabilities of every outcome in a market and the total comes to more than 100 percent, and that excess is charged on every bet you place, whether it wins or loses.

What a bet costs now reports the margin we measure on the odds we collect, per market and per bookmaker, with the number of matches each figure rests on. The gap between the cheapest and the dearest book on the same market is wider than most people expect, and it is paid on every bet rather than only the losing ones.

Two limits, because they change how the page should be read. The measurement covers the bookmakers and competitions our odds feeds reach, which is a fraction of the fixtures on the site, not all of them. And the two price series are shown apart and are not comparable with each other: they are taken on different competitions at different moments before kickoff, so a bookmaker's figure in one series says nothing about its figure in the other. Compare books inside a series, never across two.

This is a measurement of the market's prices, not a forecast, and nothing on the page depends on our models being right.

Track record no longer prints a return it cannot stand behind

The return figures on Track Record are now withheld until enough bets have settled to mean anything, the page opens on the last 90 days instead of the new season, and a 180-day window has been added.

If you looked at Track Record over the past two days, you saw a return figure that should not have been there, and one of them was positive. Please do not treat anything you read on that page before today as a result.

Here is what went wrong. The page opened on the current season, and the season had just rolled over on 1 August, so it held two days of football. A return calculated from that many settled bets is not a small result, it is no result at all: at that sample the figure moves by tens of percentage points either way on luck alone. It happened to land positive, which reads as though something was making money.

Three changes. A return is now hidden entirely until at least 200 settled bets sit behind it, and instead of a number you see how many of those 200 have accumulated so far. The page opens on the last 90 days rather than the new season. And there is a new 180 days window, which is the longest we can score and by some distance the most trustworthy figure on the page.

Hit rate is still shown everywhere, including on the season tab. It survives a small sample far better than a return does, because it does not depend on the price. Only the return is withheld.

Each card now also states what each of its two figures is counted from, because they are not the same set: hit rate covers every settled pick, while the return covers only the ones we hold a recorded price for. Those two counts differ, and side by side without labels they looked like a contradiction.

What this does not do: it does not change any pick, any model, or anything you have tracked. And it does not make the numbers better. The honest 180-day figures are the ones now on the page, and you should read them as history rather than as a forecast.

Open Track record

July 2026

The model's forecasts are on the front page, without an account

Home now opens with a match of the day and six upcoming fixtures carrying the model's full 1X2 forecast — visible whether or not you are signed in.

Home used to lead with the signals list, and on a day when the model finds no disagreement with the market that list is empty — so a visitor who was not signed in could arrive at a page that was mostly a sign-up form. That was never the intent: the 1X2 forecast has always been free, and it is already published on our public match preview pages for anyone to read.

Now it is on the front page too. Home opens with a match of the day — the fixture with the most to say, not simply the next one to kick off — showing the pick, all three probabilities, and whether both families of models agree. Below it are the next six fixtures we have a forecast for, each with the same figures. None of it is blurred and none of it needs an account.

There is also a strip of the things that are true every day: how many matches are on, a clock counting down to the next kick-off anywhere in the world, how many fixtures ahead have a forecast, and how many of the leagues we model are in season. Below the board, eight cards for the rest of the site.

Your betting journal has a place on the page now too. If you track picks, it shows your balance, your profit and what is still open. If you have never tracked one, it offers to follow one of the forecasts above in a single click, which settles itself when the match finishes.

What has not changed: where the model disagrees with the market is still the paid part, and it is still further down the page — two of those a day without an account, five with a free one. Forecasts only exist for the leagues we model, so most of the fixtures in a given day's list will not have one, and a card that says the model sits above the market price is telling you the two numbers differ, not that the bet will win.

Open Home

Back a forecast without leaving the front page

Every fixture on Home now carries a Track button that logs the model's pick in My Picks and settles it when the match finishes.

Home shows the model's pick on seven fixtures — the match of the day and six more — and until now there was nothing to do about any of them without going somewhere else first. Each one now has a Track button. It saves the model's own pick for that match, and the entry settles itself when the match finishes, so your record builds without you writing anything down.

If you are not signed in the button still works: it remembers which fixture you wanted, takes you through sign-up, and saves the pick when you land back on the page.

Two things it deliberately does not do. It does not place a bet anywhere, and it does not choose a stake — it records what the model thinks so that you can see, later, whether following it would have been worth it. And it only offers the model's pick on the 1X2 market; anything else you want to track, you still enter yourself in My Picks.

The three labels beside the match of the day — which side the model backs, whether both of our methods agree, and whether the model rates its pick above the market's price — used to look like buttons and were not. They are now plainly labels, and each explains itself when you hover or tab to it.

Open Home

Tofiko opens on a summary now

A new Home view shows what is on today, what is coming, and where your money stands — instead of dropping you into the World Cup hub.

Opening Tofiko used to drop you into the World Cup hub. That was the right place to land in June; it stopped being the right place on 19 July, when the tournament ended.

There is now a Home view instead. It shows how many matches are on today and how many are in play, the signals coming up over the next six days, which covered leagues are between seasons and when each returns, and how the model has done over the last 90 days. If you track bets in My Picks, your balance, open bets and money at risk sit there too.

Home only shows a section when that section has something in it. On a quiet day in the middle of the off-season you will see a shorter page, not a screen of empty panels — and if we cannot reach something, it says so rather than pretending there was nothing to show.

The World Cup has not gone anywhere: it is still under Tournaments, now with past editions as well.

Open Home

Past World Cups, not just the last one

The World Cup section now opens on an edition picker — 2026, 2022, 2018 and 2014 — with every result and the group tables.

The 2026 World Cup finished on 19 July, and until now the section still opened as though it were being played. It now starts with an edition picker: 2026, 2022, 2018 and 2014.

2026 keeps everything it had — the group tables, the bracket, and the match pages with line-ups, the goal timeline and the statistics.

The three earlier tournaments are an archive. Every match and every score, laid out by the round it was played in, so extra time and penalty shoot-outs read as what they were rather than as a bare scoreline. 2018 and 2022 also have their final group tables; 2014 does not, because that is as far back as our data source publishes them.

What the older editions do not have is line-ups, goal timelines, match statistics or closing odds. Those were never collected at the time and cannot be recovered, so each archived tournament says so on the page rather than showing you an empty tab.

One correction while we were in there: the World Cup's league table page was published under the wrong name — it read "Iraq Cup". If you opened /standings/iraq-cup and wondered why it showed World Cup groups, that is why. It is now at the World Cup table, and the old address forwards there. The Women's World Cup was mislabelled the same way and is also fixed.

Open World Cup

Every league table, on its own page

218 league tables you can read and share without signing in — one page per competition, plus an index of all of them.

Each of the 218 competitions we cover now has its own page — for example the Premier League table — with played, won, drawn, lost, goals, goal difference, points and recent form, and the promotion, European and relegation places the competition itself decides.

These pages are public. You can send one to someone who has no account, and it opens on a phone without the app loading first. The index at all league tables lists every competition by country.

Most of them are finished seasons right now — the northern hemisphere is between seasons — and each page says so, with the date the season ended. Where a season is running, the page says when the table was last collected.

The interactive table is unchanged and still a click away from each page: Home and Away splits, the Form view, expected goals on the six leagues our chance data covers, and the club detail panel.

Open Standings

Expected goals on the league tables

A fifth Standings view comparing what a club created with what it collected — on the six leagues our chance data covers.

Every league table now has an xG view beside Total, Home, Away and Form. It puts each club's real numbers next to the ones its chances were worth: goals beside expected goals, points beside expected points, and the gap between them.

It covers the six competitions our chance-data provider publishes — the Premier League, La Liga, Serie A, the Bundesliga, Ligue 1 and the Russian Premier League. On the other 212 leagues the tab is not shown, rather than shown empty.

The gap is measured in points, not goals, and that is deliberate: read how to read an xG table for why, and expected points for what the number means. A large gap describes a season that has already happened — it is not a tip.

Open Standings

League tables, rebuilt

Home and Away splits, a Form table, the next opponent, and rows grouped by what the competition actually decides.

Standings used to be one table. It is now four views over the same competition:

  • Total, Home and Away — the same clubs ranked by where they played.
  • Form — the last five matches, with an arrow showing how far that run sits from the club's real position.

Rows are grouped by the outcomes the competition decides — promotion, the European places, relegation — and each group says what it is, rather than leaving you to count rows. Where a league publishes the fixture, the row also carries the next opponent and where that opponent currently sits.

Below the table you now get the provenance: which provider the numbers came from and when they were last collected.

Not every league supplies every part. Where a competition sends no split, no form string or no upcoming fixture, the column is absent rather than blank.

Open Standings

Strategy Lab: tune a rule, then watch it fire

Every published strategy is now a set of rules you can adjust, tested on matches it never saw, with a live board of fixtures meeting the rule right now.

Each strategy is now written as rules you can read and change — the market, the minimum odds, the leagues, the confidence band. Move a control and the record below it is recomputed for your version of the rule, not the published one.

Tuning is tested the honest way: the settings are fitted on older matches and scored on later ones the fit never saw. A rule that only looks good on the matches used to build it will look ordinary here, which is the point.

Firing now lists the upcoming fixtures that currently satisfy the rule. It is empty most of the time, and that is how a selective rule behaves — candidates usually only qualify in the last hour before kickoff, once the closing prices settle. An empty board is the rule declining to bet, not a fault.

The status on a strategy card describes how much evidence there is, not whether we endorse it. Read the record underneath before acting on any of them.

Open Strategy Lab

Today's Edge, as a dashboard

One screen for the day: what the models flag, split into the leagues they are calibrated on and the ones they are still exploring.

Today's Edge is now a dashboard rather than a list. It opens on the day's fixtures where a model disagrees with the market, and it separates two things that were previously mixed together:

  • Core — leagues the models are fitted and calibrated on.
  • Exploratory — leagues where a model runs but has not earned a calibration yet. These are labelled, every time they appear.

How many rows you see depends on your plan, and the screen says so instead of going blank. An empty day is stated as an empty day — off-season and quiet midweeks are real, and padding them with weak selections would be worse than showing nothing.

Match previews you can link to

A public index of upcoming fixtures with a page per league and per match — readable without signing in, and shareable.

Match previews is a public section: an index of the leagues we cover, a hub per league, and a page per fixture with the model's read on it, the recent form of both sides and what the market is offering.

Because the pages are public, you can send one to someone who has no account. The deeper numbers — the model's edge over the price, the goal expectancies — stay inside the product for subscribers, and the page says which is which instead of hiding the boundary.

Coverage follows the season: leagues appear as their fixtures are published and drop out when they finish.

Open Match previews