Major League Soccer’s Matchweek 21 delivered a stark reminder that no lead is safe and no model is infallible, headlined by a stunning upset at Chase Stadium where a depleted Toronto FC overturned a high-confidence forecast to beat Inter Miami. Across the round, our model found the going tough on several fronts, particularly struggling to nail down outright match results as it landed only seven of its fifteen calls on the winner.
How our forecasts did
The trickiest topic this week was the exact scoreline, where just three of the fifteen calls landed correctly, a stark illustration of the fine margins in this league. The model fared better on half-time and full-time outcomes, which split exactly down the middle with seven correct from fifteen. The most reliable signal proved to be the both teams to score market, where thirteen of the fifteen forecasts were on the money, and the win or draw predictions were not far behind with twelve correct. First team to score also proved a strong suit, matching that tally of twelve. On total goals, the model was middling, finding the right side of the 2.5-goal line on eight occasions.
The most painful miss of the round, however, came on the headline match result calls. A deeply disappointing seven from fifteen is a number we have to own, and it was driven by a series of high-confidence forecasts that simply did not materialise.
Results
Inter Miami 1-2 Toronto FC
The shock of the round. Our model issued a firm call for a home win against a Toronto side that had little to recommend it, but the absence of top scorer Berterame and centre-back Bright left Miami’s defence looking ragged and their attack blunt. The prediction for both teams to score came in, but everything else tied to a Miami victory missed the mark badly.
FC Cincinnati 1-1 Seattle Sounders
Cincinnati were strong favourites at home, and our call for them to win was made with high confidence. They took the lead as forecast, yet the floodgates never opened against a Seattle side on a five-match losing streak. The win or draw call was saved by the draw, and both teams to score landed, but the expected goal rush never arrived.
CF Montreal 2-2 Los Angeles Galaxy
A cautious call for a low-scoring Montreal win was undone by an unexpectedly open game. Our forecast had pointed to the hosts’ defensive resilience and a depleted Galaxy attack, but the match produced four goals and a share of the points. The call for fewer than 2.5 goals was wrong, though the model correctly flagged Montreal to score first.
New York Red Bulls 1-1 Chicago Fire
The model leaned toward a Chicago victory, anticipating their attacking thrust would expose a generous Red Bulls defence. The Fire did score first, as predicted, but could not hold on. The call for a winner either way fell flat with a draw, and the forecast of more than 2.5 goals also missed, though both teams to score was correct.
Orlando City SC 2-1 Real Salt Lake
A near-perfect call. Our model not only forecast a home win and both teams to score, it also highlighted Real Salt Lake’s knack for scoring on the road and called the exact 2-1 scoreline as a low-confidence scenario. The only blemish was the half-time and full-time call, with Orlando’s winner coming after the break.
Charlotte 3-1 DC United
Charlotte’s home fortress held, and the model’s medium-confidence call for a win was sound. The forecast correctly anticipated both teams scoring and a high-scoring affair, and even caught the half-time and full-time trend of a level first half followed by a Charlotte surge, though DC United grabbed the opener.
Nashville SC 3-2 Columbus Crew
Our model was extremely confident in Nashville’s home form and it delivered, albeit not in the comfortable manner suggested by the 2-0 scoreline forecast. The calls for a Nashville win, more than 2.5 goals, and the hosts scoring first were all correct. A patched-up Crew defence conceded three but made a game of it late on.
St. Louis City 2-1 Houston Dynamo
A flawless performance from the model. The forecast correctly called the upset, pegging down the league-leading Dynamo by a 2-1 margin. Every call landed, from the match result and total goals to the exact scoreline and half-time and full-time outcome, despite the absence of Chris Durkin.
Austin 1-1 Philadelphia Union
Our model expected Philadelphia’s red-hot attack to overpower a solid Austin defence, but the Union were held. The forecast for both teams to score was correct, and Philadelphia did open the scoring as predicted, but the call for an away win and more than 2.5 goals failed to land in a cagey draw.
Vancouver Whitecaps 5-0 FC Dallas
The model’s primary call of a home win was spot on, but the underlying logic was completely blown apart. The analysis pointed to a tight game with a blunted Vancouver attack missing Brian White, yet they ran in five without reply. The forecast for fewer than 2.5 goals was a big miss, as was the expectation that both teams would score; Dallas offered nothing going forward.
Los Angeles FC 1-1 Portland Timbers
A match result call made with medium confidence missed here. Our analysis highlighted LAFC’s low expected goals and Portland’s habit of finishing strongly, but while Portland did fight back, the home side could not force a winner. Both teams to score was correct, but the call for a home win and a high-scoring contest was off.
San Diego 3-0 Colorado Rapids
The result was right, but the nature of it was off. Our model had a firm call for a San Diego win and saw them scoring first, which they did emphatically. However, the expectation was for a tight game where Colorado nicked a goal, a theory undone by the Rapids’ travel sickness and the absence of Zack Steffen.
San Jose Earthquakes 1-5 Minnesota United FC
The model was hesitant but leaned toward the home side, a low-confidence hunch that Minnesota demolished inside ninety minutes. The call for a winner either way was technically correct, and the forecast of goals was more than vindicated, with both teams to score also landing. The game simply got away from San Jose in a way the data did not capture.
New England Revolution 1-1 New York City FC
The model saw this as a home banker given New England’s fortress-like form against a depleted NYCFC. The Revs scored first as predicted, but a depleted City side dug in for a draw. The win or draw call was saved, but the anticipated goal flow dried up in the second half.
Atlanta United FC 2-1 Sporting Kansas City
The weekend closed with a clean sweep for the model. Every single call landed in Atlanta, from the high-confidence match result and first team to score, right down to the exact 2-1 scoreline. Sporting Kansas City’s woeful away form played out exactly as forecast.
What we got wrong
The biggest black eye of the round came on match result predictions, particularly those made with high confidence. The model fell for the home comforts of Inter Miami and FC Cincinnati, failing to account for just how destabilising a few key absences could be. In Miami, the loss of their spine turned a straightforward home win into a defeat, while Cincinnati’s prolific attack could not put away a Seattle side missing two key midfielders. These are the margins that analytics can sometimes glide over—a team’s raw numbers might look strong, but the specific chemistry lost in a few positions can derail everything.
Elsewhere, the model badly underestimated Vancouver’s firepower without Brian White and overestimated Philadelphia’s ability to break down a stubborn Austin defence. The lesson from this week is clear: when the data flags an elite attack or a rock-solid defence that is missing its cornerstone, the gap between the statistical profile and the reality on the pitch can be a chasm.
The round changed little at the very top but highlighted the volatility bubbling beneath. Nashville and Atlanta look ominous on home soil, while the chasing pack in the East remain tightly bunched after a weekend where draws reigned supreme. For our model, it is a humbling week but one that provides the exact kind of pressure test that sharpens the algorithm for the weeks ahead.