Primeira Liga

· Portugal

Strength. Context. What's next.

League Strength League Strength uses the mean Elo of this league's clubs on a separate fixed 0–100 scale. L90 Strength rates each club from its own Elo with a different calibration. League Strength is not the average L90 Strength, and the two scores are not directly comparable.64 / 100Avg L90 Strength 37 · mean Elo 1561
Competitive Index35 / 100How open the title race is
Matches played72 / 306Season progress 24%

Fixtures & Forecasts

Match results, upcoming fixtures and pre-match predictions.

All fixtures →
MatchDateHomeScoreAway1X2xG (forecast)TOTAL xGBTTSOver 2.5Weather
Guimaraes Maritimo Fri, Oct 2320:45 Guimaraes vs Maritimo 58%|24%|19% 1.87|0.98 2.85 53% 54% 13°C
Alverca Arouca Sat, Oct 2415:30 Alverca vs Arouca 48%|26%|26% 1.61|1.14 2.75 55% 52% 21°C
Estrela Casa Pia Sat, Oct 2415:30 Estrela vs Casa Pia 50%|26%|24% 1.62|1.05 2.67 53% 50% 19°C
GIL Vicente FC Porto Sat, Oct 2420:30 GIL Vicente vs FC Porto 19%|24%|57% 0.98|1.84 2.82 53% 53% 14°C
Estoril Moreirense Sun, Oct 2515:30 Estoril vs Moreirense 46%|27%|27% 1.51|1.10 2.61 53% 48% 20°C
Nacional SC Braga Sun, Oct 2518:00 Nacional vs SC Braga 19%|23%|58% 1.04|1.95 2.99 56% 57% 14°C
Rio Ave Famalicao Sun, Oct 2518:00 Rio Ave vs Famalicao 35%|27%|38% 1.33|1.41 2.74 56% 51% 18°C
Sporting CP Academico Viseu Sun, Oct 2520:30 Sporting CP vs Academico Viseu 78%|14%|8% 2.69|0.75 3.44 50% 67% 17°C
Santa Clara Benfica Mon, Oct 2618:45 Santa Clara vs Benfica 18%|23%|60% 0.96|1.94 2.90 53% 55% 20°C
Forecast fit Good / Close Fair Low / Poor Not evaluated

xG (forecast) shows LOAD90 expected goals as home | away. TOTAL xG is their sum: the expected total goals in the match. 1X2 shows home win (1) | draw (X) | away win (2) probabilities; bold marks the most likely outcome before the match and the actual outcome after it. BTTS and Over 2.5 are LOAD90 probabilities. xG below a final score is the actual match xG, home – away. Missing data is shown as —.

Forecast evaluation · how to read the colours

1X2 fit in the 1X2 column evaluates the saved home / draw / away probabilities against the actual outcome using Brier score: Σ(probability − actual outcome)², with 1 for the actual outcome and 0 for the other two. It does not grade the total goals or demand an exact score: 1–0 and 5–1 receive the same 1X2 fit for the same forecast. xG margin fit on forecast xG compares who was expected to dominate, and by how much, with the actual match xG: |(λ home − λ away) − (xG home − xG away)|, where a margin is home minus away. It is direction-aware: a favourite that really dominated is not marked down just for creating more or less than forecast in total, while the wrong direction gives a large gap. It does not depend on the final score or on total xG (see TOTAL xG fit). A low 1X2 fit and close xG margin fit can occur together; finishing variation may be one explanation.

TOTAL xG fit compares the displayed forecast total with the final goal count: |TOTAL xG − (home goals + away goals)|. This describes distance from the expected mean, not the probability of the exact score. The expected total is not a guaranteed result; a large difference in one match does not establish a model error. Separate frozen reference forecast_total_fit_v1: 250 retrospective forecasts from the same dates. Close: difference ≤ 0.65 goals; Poor: difference ≥ 2.00 goals; Fair: between them. This fit does not require actual match xG.

BTTS and Over 2.5 colours evaluate their own Yes/No outcomes using binary Brier score. Green/teal → amber → red means closer → less close. Good / Close is the lowest-error quarter of the reference; Low / Poor is the highest-error quarter. Fair is between them. Hover over a coloured metric for its values. Without a valid pre-match snapshot or both actual xG values, the corresponding indicator stays neutral.

xG margin fit uses its own frozen reference forecast_xg_margin_fit_v1: 137 retrospective LOAD90 forecasts with actual match xG, 15 Aug–20 Sep 2026. Close: gap ≤ 0.38; Poor: gap ≥ 1.41; Fair: between them. It supersedes the older per-team xG scale of forecast_fit_v1 for the xG (forecast) column.

Fixed reference forecast_fit_v1: 250 retrospective LOAD90 forecasts, 15 Aug–20 Sep 2026; actual xG available for 137 matches. This is a retrospective colour scale, not evidence of live forecast accuracy. One match cannot establish whether a probability model is well calibrated.

League table & season forecast

Current standings, with the season ahead in the same view.

View League Table →

Swipe to explore the season forecast →

#ClubRatingPWDLGFGAGDPtsProj. ptsLikely finish 80% rangeTitleTop 4Rel.FormClub details
1– FC Porto 80 8 800204 +16 24 81 1–3 51% >99% 0%
League record8 W · 0 D · 0 L20 scored · 4 conceded
Attack / Defence74 / 79Fixed 0–100 scales
Next match load10Context index · all competitions
Next 5 · match loadOpen a match for details
2– Benfica 82 8 611247 +17 19 78 1–3 30% >99% 0%
League record6 W · 1 D · 1 L24 scored · 7 conceded
Attack / Defence81 / 81Fixed 0–100 scales
Next match load20Context index · all competitions
Next 5 · match loadOpen a match for details
3– Sporting CP 84 8 530209 +11 18 76 1–3 19% >99% 0%
League record5 W · 3 D · 0 L20 scored · 9 conceded
Attack / Defence75 / 81Fixed 0–100 scales
Next match load10Context index · all competitions
Next 5 · match loadOpen a match for details
4– Santa Clara 34 8 530124 +8 18 53 4–9 0% 23% 0%
League record5 W · 3 D · 0 L12 scored · 4 conceded
Attack / Defence29 / 53Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
5– Arouca 34 8 422117 +4 14 49 5–11 0% 9% <1%
League record4 W · 2 D · 2 L11 scored · 7 conceded
Attack / Defence28 / 37Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
6▲ GIL Vicente 34 8 42286 +2 14 49 4–11 0% 11% <1%
League record4 W · 2 D · 2 L8 scored · 6 conceded
Attack / Defence32 / 50Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
7– Academico Viseu 32 8 4221110 +1 14 48 5–11 0% 7% <1%
League record4 W · 2 D · 2 L11 scored · 10 conceded
Attack / Defence28 / 31Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
8▲ Alverca 30 8 3231312 +1 11 47 5–12 0% 5% <1%
League record3 W · 2 D · 3 L13 scored · 12 conceded
Attack / Defence38 / 42Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
9▼ SC Braga 56 8 323910 -1 11 56 4–8 0% 43% 0%
League record3 W · 2 D · 3 L9 scored · 10 conceded
Attack / Defence41 / 59Fixed 0–100 scales
Next match load12Context index · all competitions
Next 5 · match loadOpen a match for details
10▼ Estrela 20 8 2421415 -1 10 38 8–16 0% <1% 6%
League record2 W · 4 D · 2 L14 scored · 15 conceded
Attack / Defence24 / 27Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
11– Maritimo 16 8 224914 -5 8 33 11–18 0% 0% 25%
League record2 W · 2 D · 4 L9 scored · 14 conceded
Attack / Defence15 / 20Fixed 0–100 scales
Next match load12Context index · all competitions
Next 5 · match loadOpen a match for details
12– Moreirense 25 8 224815 -7 8 38 8–16 0% <1% 6%
League record2 W · 2 D · 4 L8 scored · 15 conceded
Attack / Defence17 / 27Fixed 0–100 scales
Next match load6Context index · all competitions
Next 5 · match loadOpen a match for details
13– Famalicao 38 8 1431011 -1 7 42 7–14 0% 1% 2%
League record1 W · 4 D · 3 L10 scored · 11 conceded
Attack / Defence24 / 36Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
14▲ Rio Ave 21 8 215817 -9 7 35 10–17 0% <1% 17%
League record2 W · 1 D · 5 L8 scored · 17 conceded
Attack / Defence18 / 21Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
15▼ Guimaraes 27 8 125510 -5 5 38 8–16 0% <1% 7%
League record1 W · 2 D · 5 L5 scored · 10 conceded
Attack / Defence28 / 39Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
16▼ Nacional 17 8 116918 -9 4 28 14–18 0% 0% 59%
League record1 W · 1 D · 6 L9 scored · 18 conceded
Attack / Defence15 / 13Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
17– Casa Pia 18 8 116317 -14 4 30 12–18 0% 0% 41%
League record1 W · 1 D · 6 L3 scored · 17 conceded
Attack / Defence13 / 25Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
18– Estoril 22 8 026412 -8 2 30 12–18 0% 0% 37%
League record0 W · 2 D · 6 L4 scored · 12 conceded
Attack / Defence21 / 29Fixed 0–100 scales
Next match load0Context index · all competitions
Next 5 · match loadOpen a match for details
80% finish rangeMedian finishCompare positions →Ordered by current league position▲ Up · ▼ Down · – Unchanged · Since the start of the latest played matchweek
- Champions League (Group Stage)- Champions League (3rd Qualif. round)- Europa League (2nd Qualif. round)- Europa Conference League (2nd Qualif. round)- Relegation play-offs- Relegation to Liga Portugal 2

Projected points and positions from 5,000 season simulations. Relegation means the bottom 2 (play-offs not modelled). Updated 40 minutes ago. Pure football forecast, no betting market input.

League position comparison

Actual standings by matchweek · Primeira Liga

All 18 clubs · MW 8

ClubPosition · MW 8

First place is at the top. All clubs share the same matchweek cutoffs; partial rounds are marked. Postponed results enter later snapshots.

View position data for all clubs
League positions by matchweek
MWFC PortoBenficaSporting CPSanta ClaraAroucaGIL VicenteAcademico ViseuAlvercaSC BragaEstrelaMaritimoMoreirenseFamalicaoRio AveGuimaraesNacionalCasa PiaEstoril
1161211235181074814171691513
2 · Partial246718111310931512171651814
3 · Partial172456121513113161410981817
4152436151698711141312101817
5123457101686913141512111817
6123459812761011131614151817
7123459710681112131614151718
8123456789101112131415161718