Skip to content
Liga Portugal

Season review

Liga Portugal 2025-26: the season reviewed

FC Porto won Liga Portugal 2025-26 with 88 points: 28 wins, four draws, two defeats. Behind them sat two teams with strange seasons. Sporting scored 89 goals — 23 more than the champions — and finished with the best goal difference in the league, +65, six points back. Benfica went all 34 matchdays without losing once and finished third, 11 draws costing them more than any defeat could have.

At the bottom, Tondela and AVS went down. This page puts together three things: the final table, what xG says about the quality of each side's chances, and what the previous model was saying through the season — including what it got wrong.

88
points for champions Porto
89
goals for Sporting, the best attack — in second
11
draws for Benfica, who never lost a match
13.5
points below what xG suggested for relegated Tondela (finishing, goalkeeping and chance together)

Final table

All 306 matches, with expected points (xPts) computed from each match's xG. The last column is the gap between real and expected points.

Final Liga Portugal 2025-26 standings, with expected points from xG
#TeamWGDPtsxPtsPts − xPts
1
POR
28+488870.5+17.5
2
SCP
25+658271.7+10.3
3
SLBunbeaten
23+498069.8+10.2
4
BRA
16+285958.3+0.7
5
FAM
15+135654.5+1.5
6
GIL
13+95052.3−2.3
7
MOR
12−124335.3+7.7
8
VSC
12−124244.2−2.2
9
ARO
12−174239.4+2.6
10
EST
10−33939.5−0.5
11
ALV
10−173945.8−6.8
12
STC
9−93645.7−9.7
13
RIO
8−223636.9−0.9
14
NAC
9−83440.5−6.5
15
EAM
6−183038.5−8.5
16
CPA
6−263032.0−2.0
17
TON
6−282841.5−13.5
18
AVS
3−402128.5−7.5

Points above and below xG

For every match, both teams' xG is turned into win, draw and loss probabilities, and from there into expected points. Summed over the season, it shows who took more or fewer points than their chances suggested, a gap that mixes finishing, goalkeeping and chance.

Furthest above xG

Porto took 88 points from an xG worth 70.5 — 17.5 above expectation, the largest gap in the league. By xG, Sporting and Porto were practically level (71.7 and 70.5). What xPts measures

Furthest below xG

Tondela went down on 28 points. xG gave them 41.5 — 10th place. They scored 27 goals from chances worth 40.3: the worst finishing in the league, and the difference between staying up and going down.

The best finishing

Sporting scored 89 goals from 72.4 xG — +16.6 goals above expectation. It was not enough: the title turned on wins, and Porto took three more.

Real and expected points (xPts) by club

Actual points minus expected points (xPts). Furthest above: Porto (+17.5); furthest below: Tondela (−13.5). Every club's values are in the table below.

View as table: Actual points and expected points from xG, by team
Actual points and expected points from xG, by team
TeamPointsExpected (xPts)Difference
Porto8870.5+17.5
Sporting8271.7+10.3
Benfica8069.8+10.2
Moreirense4335.3+7.7
Arouca4239.4+2.6
Famalicão5654.5+1.5
Sp. Braga5958.3+0.7
Estoril3939.5−0.5
Rio Ave3636.9−0.9
Casa Pia3032.0−2.0
Vitória4244.2−2.2
Gil Vicente5052.3−2.3
Nacional3440.5−6.5
Alverca3945.8−6.8
AVS2128.5−7.5
Estrela3038.5−8.5
Santa Clara3645.7−9.7
Tondela2841.5−13.5
Source: FotMob xG, 306 matches; xPts computed by estimador.ptReview generated on 10 August 2026What xPts measures

Pts − xPts is not a clean split between luck and skill: it mixes finishing, goalkeeping and chance. Finishing well is a skill; the open question is how much of it repeats next year.

The title race, matchday by matchday

The championship probability the previous model assigned at each forecast, each one 50,000 simulated seasons.

Chance of the title, forecast by forecast

0%25%50%75%100%Porto >99%Sporting 0.2%Benfica <0.1%15101520253034matchday
Published at the timeReconstructed afterwards

The forecasts stop at matchday 31: the last 3 rounds were never simulated. Porto won the title.

View as table: Title probability by matchday
Title probability by matchday
MatchdayForecastPortoSportingBenfica
4reconstructed66%25%8.7%
6reconstructed64%34%2.3%
8reconstructed66%30%3.6%
10reconstructed68%28%3.8%
12reconstructed74%25%1.5%
14reconstructed80%19%1.2%
16reconstructed83%16%1.2%
18reconstructed85%14%1.0%
20reconstructed71%28%1.1%
22reconstructed73%25%1.5%
23published66%33%1.6%
24published67%32%1.7%
25published73%26%1.0%
26published77%22%0.7%
27published86%14%0.3%
28published72%27%0.4%
29published78%22%<0.1%
30published95%4.6%0.1%
31published>99%0.2%<0.1%
Source: estimador.pt's previous model, 50,000 simulations per forecastLast forecast: matchday 31, 30 April 2026How the model works

The model's report card

The part that matters: what the model got right, and what it got wrong.

There were 19 forecasts, all from the previous model, used until August 2026.

The 9 for matchdays 23–31 were published at the time, after each matchday.

The 10 for matchdays 4, 6, 8, 10, 12, 14, 16, 18, 20 and 22 were never published at the time: they were generated afterwards, in one batch, on 4 March 2026. The files do not record which matches each one was fitted on, so read them as reconstructions, not as forecasts made at the time.

The model publishing the 2026-27 forecasts is a different one, evaluated on model vs market.

19/19
forecasts with the eventual champion as favourite (9 published, 10 reconstructed)
matchday 16
from which the two relegated clubs were always the model's bottom two (starting from a reconstructed forecast)
1.7 pts
average error on predicted final points in the last published forecast
Mean absolute error of predicted final points, by forecast
MatchdayPorto championMean error on final points
4reconstructed66%
3.4
6reconstructed64%
3.5
8reconstructed66%
3.4
10reconstructed68%
3.5
12reconstructed74%
3.1
14reconstructed80%
3.6
16reconstructed83%
3.2
18reconstructed85%
3.4
20reconstructed71%
3.8
22reconstructed73%
3.7
2366%
3.4
2467%
3.3
2573%
3.2
2677%
2.7
2786%
2.5
2872%
2.2
2978%
2.4
3095%
1.9
31>99%
1.7

Where we were wrong

The most persistent error was Arouca. In the reconstructed matchday 16 forecast, the model projected them to finish on 29.6 points and gave them a 33% chance of relegation; they finished on 42, in ninth. Twelve points of error on a single club — the largest of the season — and a relegation alarm that never had grounds.

The model was also steadily too harsh on AVS: even in the final forecast it had them on 15.6 points, and they made 21. Down they went — but the model had treated it as settled since the reconstructed matchday 8 forecast, a confidence one season is not enough to justify.

And there is a tension this page does not resolve: the model reads results, and the results said Porto were the best team. xG says the best team was Sporting. Both can be right — just not at once.

The small print

Final standings from the season's 306 matches. xPts are computed match by match with the aggregate Poisson method over each team's xG (34 matches per team, full coverage), and do not use the Bayesian model's parameters — it is an independent read. The probabilities for matchdays 23–31 come from the files published at the time, exactly as they stood, with no later recalculation. Those for matchdays 4, 6, 8, 10, 12, 14, 16, 18, 20 and 22 were generated afterwards, on 4 March 2026. All come from the previous model. xG from FotMob.