Serie A Matchweek 3 brought a flurry of goals that tore up the early form book and resulted in a punishing weekend for our forecasting model. With usually resolute defences collapsing across the Italian top flight, our projections struggled to keep pace with an unexpectedly high-scoring set of fixtures.
How our forecasts did
It was a difficult round for our projections, particularly when it came to anticipating goals. The model suffered most on the "both teams to score" topic, where just two of the ten calls were correct. The "total goals" and "first team to score" projections also floundered, landing just three times each out of ten. Predicting the "match result" returned four correct calls from ten, matched by the "half-time and full-time" forecasts. The only real bright spot was the cautious "win or draw" topic, which correctly called eight of the ten fixtures, while we landed just one "exact scoreline" across the weekend.
Results
Genoa 1-4 Como A medium-confidence call for a Como win was vindicated emphatically, though the model's expectation of fewer than 2.5 goals in the match was obliterated by the visitors' ruthless finishing.
Fiorentina 1-2 Torino Our model anticipated a tight draw based on recent history between the sides, but Torino secured the victory on the road to break the sequence and hand Fiorentina another defeat.
Inter 3-2 Napoli A firm forecast for an Inter win proved correct as the hosts extended their formidable home run. A cautious projection that both teams would score also landed as Napoli found the net despite the loss.
AS Roma 2-1 Atalanta Roma preserved their perfect record with a victory that validated our medium-confidence match result call, though the expectation that at least one side would keep a clean sheet missed the mark.
Frosinone 3-2 Venezia Frosinone secured the points in a five-goal thriller; our model correctly expected the hosts to strike first and lead at the break, but incorrectly projected an eventual draw.
Parma 1-1 Monza A cautious call for a Parma victory fell short as the hosts were held. However, the projection for fewer than 2.5 match goals landed safely.
Bologna 2-2 Sassuolo The model read Bologna's strong underlying numbers and backed them to finally find the net and secure a win, but the hosts were forced to settle for a draw.
Juventus 1-1 AC Milan A cautious call for the sides to be level at the break and the points shared at full-time proved perfectly accurate in a fixture with a recent history of stalemates. A call for fewer than 2.5 goals also landed as expected.
Cagliari 1-0 Lecce A flawless projection from the model. It correctly called a Cagliari win, Cagliari to score first, at least one side to keep a clean sheet, Cagliari leading at half-time, and hit the exact 1-0 scoreline.
Udinese 1-2 Lazio A firm forecast for a low-scoring affair was undone as Lazio took the points, though the model did correctly anticipate Udinese striking the opening goal.
What we got wrong
The model vastly underestimated the attacking output across the division, heavily driven by its reading of early-season defensive solidity. The most glaring miss came in Udine, where a high-confidence projection for fewer than 2.5 goals was beaten in Udinese's 2-1 defeat to Lazio. The model saw two sides showing plenty of early resilience and a Lazio side that had collected maximum points without conceding, incorrectly projecting a tight, cautious affair.
Similarly, in Genoa, the model missed badly on total goals and clean sheets. It expected a low-scoring game because Genoa had failed to find the net in their opening two defeats, a hangover from the end of last season. Instead, Como ran riot in a 4-1 victory. The systemic failure across the board was trusting early-season defensive records that simply evaporated as the weekend progressed.
Matchweek 3 served as a stark reminder of how quickly early-season trends can break down. As teams adjust to the new campaign, the sheer volume of goals across the weekend changes the complexion of the form data heading into the next round of fixtures.