France 2–0 Morocco: how the Jarvis supercomputer's prediction held up
Nhipbong Analytics
Jarvis prediction desk

France beat Morocco 2–0 at the World Cup, a result that fell right into the branch the Jarvis supercomputer model had weighted most heavily before kick-off. In this piece I hold each number Jarvis produced ahead of the match up against what actually happened: from the three outcomes of win, draw and loss, to the predicted score and the expected goals total. The interesting part is that the model tagged this forecast with low confidence, and yet the direction it pointed still lined up.
- Actual result: France 2–0 Morocco at the World Cup; Mbappé (60th minute) and Dembélé (66th) scored.
- Jarvis before the match: France 59%, draw 26%, Morocco 14%. The highest-probability branch is the one that happened.
- The model's predicted score was 2–0, an exact match with the real result, even though this is not the single most likely scoreline.
- Expected goals total was 2.4583; the game produced 2 goals, landing in the under-3-goals branch (55%).
- Model confidence: LOW. Matching one game does not mean the model is always right.
| Outcome | France | Draw | Morocco |
|---|---|---|---|
| Jarvis probability | 59% | 26% | 14% |
| Metric | Jarvis forecast |
|---|---|
| Expected total goals | 2.46 |
| Predicted score | 2-0 |
| Chance of 3+ goals | 44.5% |
Head to head: Jarvis prediction vs the actual result
| Category | Prediction (pre-match) | Actual | Correct? |
|---|---|---|---|
| Winner | France (59%) | France (2–0) | ✓ Right |
| Predicted score | 2–0 | 2–0 | ✓ Right |
| Expected total goals | 2.5 goals | 2 goals | ≈ Close |
| Chance of 3+ goals | 44.5% | No | ✓ Right |
How the match finished

France closed out their World Cup match against Morocco with a 2–0 scoreline. Two goals of separation, a clean sheet at the France end, and a Morocco side that could not find a way through.
Both goals came within six minutes midway through the second half: Kylian Mbappé opened the scoring in the 60th minute, then Ousmane Dembélé doubled the lead in the 66th.
The result was a 2–0 win for the side the Jarvis supercomputer model rated higher before kick-off. A tidy scoreline, no goal conceded, and that is the anchor I use in the sections below to check how closely the forecast tracked reality.
The talking points: a clean sheet, few goals and a matching score

Three points stand out. First, Morocco did not score, so the match ends with a clean sheet for France. Second, only 2 goals were scored in total, a low number, and the game tilted towards a low-scoring pattern rather than an end-to-end chase.
Third, that figure of 2 goals lines up exactly with the predicted score the model pointed to before the match, namely 2–0. These three details sound simple, but they are precisely the links I need for the comparison with the forecast.
A two-goal winning margin, no goal conceded, and a low total: that is the frame I carry into the Jarvis comparison just below.
Jarvis compared: pre-match forecast versus the actual result


This is the part I treat as the most important, because it shows how the model read this game against what really happened. Before kick-off, Jarvis split the match into three outcomes: France to win 59%, a draw 26%, Morocco to win 14%. The highest-probability outcome was a France win, and that is exactly what happened. In other words, the model placed its biggest weight on the correct branch of the final result.
On the scoreline, the model produced a predicted score of 2–0. The actual result was also 2–0. I need to be precise here: the predicted score is not the single most likely scoreline, but a score that stands in for the model's overall lean. The fact that it matched reality exactly is a neat fit, but I do not want to inflate it into a story about Jarvis calling the scoreline like it had read the game in advance.
On the number of goals, the pre-match expected total was 2.4583 goals. The game actually produced 2 goals, a touch below expectation but still very close. The model put the 3-or-more-goals scenario at 45%, which leaves the rest, under 3 goals, at 55%. The match landed in that 55% branch with just 2 goals.
The most notable thing: the confidence attached to this forecast was tagged LOW by the model. And yet the direction still matched. I will go into what that means in more detail below, but the point to note here is that matching does not mean the model was certain, and the LOW label reminds me not to over-praise it just because it got the direction right once.
A tactical angle: reading the match through the probability frame


Here I read the match through the probability frame, with France's two goals in the 60th and 66th minutes as the reference points.
Jarvis put France at 59%, well clear of Morocco's 14%. That gap shows the model saw France as the clearly stronger side in expectation terms. A 2–0 result leaning towards the higher-rated side, with a clean sheet on top, is the kind of outcome that fits that picture: the stronger team controls the game and sees it out safely, rather than getting dragged into a high-scoring affair.
The low goals total says something too: this was not a shootout. The game stopping at 2 goals, rather than spilling past the 3-goal mark, points to a controlled contest rather than a chaotic one. The two goals came six minutes apart midway through the second half, and France then held that margin to the final whistle.
What the probability means: 59% is not a promise
This is the point I always want to spell out to avoid a misreading. The 59% figure for France is not a promise. It does not say France were certain to win. It says that, if you imagine a great many matches like this one, the higher-rated side wins in roughly 59% of them, with the rest going to a draw or an upset from the other team.
This time the 59% branch came in, but the combined 40% of draw and Morocco was never a small number. Equally, if France had not won, that would not have made the forecast wrong. A probabilistic forecast can only be judged across many matches, not off a single one.
On top of that, the model tagged this game's confidence as LOW itself, meaning it was flagging that this was not a forecast to lean on heavily. The result matching is a pleasant thing to look back on, but I treat it as one data point, not proof that the model is always right.
Sources and notes
All the probabilities, the predicted score, the expected goals total and the confidence label in this article come from the Jarvis supercomputer model, recorded before the match. The actual result section is the final score of France 2–0 Morocco, and the scorers and goal times (Mbappé in the 60th minute, Dembélé in the 66th) come from the match record.
The aim of this piece is to compare a forecast with reality honestly, holding to what can actually be measured. This is statistical analysis, not betting advice.
Frequently asked questions
Did Jarvis get the France versus Morocco match right?
Right on direction. The model put France to win at 59%, the highest of the three outcomes, and France won 2–0. The predicted score of 2–0 also matched the result. But I would stress this is only one match, not enough to conclude the model is always accurate.
Does the 2–0 predicted score mean Jarvis called the scoreline correctly?
Not quite. The predicted score stands in for the model's overall lean, not the single most likely scoreline. Its matching 2–0 is a neat fit, but it should not be read as the model reading off each goal in advance.
Why did the result still match when confidence was tagged LOW?
The LOW label says the model was not highly certain about this forecast, not that it was wrong. A low-confidence forecast can still come in, just as a high-confidence one can miss. Matching this time is a good data point, not a guarantee.
The expected goals total was 2.4583 but the game had only 2 goals, so was the model wrong?
No. The expected goals total is an average the model imagines, not a promise of a specific number of goals. The game had 2 goals, a touch below 2.4583 but still very close, and it sat in the under-3-goals branch the model put at 55%.
Who scored for France in this match?
Kylian Mbappé opened the scoring in the 60th minute and Ousmane Dembélé added the second in the 66th.















