Which sides have got more from their chances than they deserved, and which have got less.
Updated 18 October 2026, after the last game
Vasco da Gama have the biggest shortfall in the Campeonato Brasileiro: 35 points from chances worth 50.4 xPts, a gap of 15.4. At the other end, Palmeiras have taken 66 points from an xPts figure of 49.6, 16.4 more than the underlying numbers justify.
Expected goals measure the quality of the chances a team creates and concedes, with every shot scored between 0 and 1 by how often shots like it are converted. Expected points come from running each finished match through a Poisson model using both sides' xG, giving a win, draw and loss probability, then awarding three points and one point against those probabilities. Underlying data is supplied by Sportmonks. How xG is calculated How xPts is calculated
| # | Team | Played | Goals | xG | Goals minus xG | Goals against | xGA | Goals against minus xGA | Goal difference | xGD | Goal difference minus xGD | Points | xPts | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Flamengo | 15 | 29 | 28.0 | +1.0 | 10 | 12.5 | -2.5 | +19 | 15.6 | +3.4 | 36 | 30.5 | +5.5 |
| 2 | Athletico PR | 16 | 27 | 26.9 | +0.1 | 15 | 13.8 | +1.2 | +12 | 13.1 | -1.1 | 32 | 29.8 | +2.2 |
| 3 | Vasco da Gama | 15 | 21 | 33.9 | -12.9 | 18 | 16.5 | +1.5 | +3 | 17.4 | -14.4 | 24 | 28.9 | -4.9 |
| 4 | Palmeiras | 15 | 28 | 24.7 | +3.3 | 10 | 13.3 | -3.3 | +18 | 11.4 | +6.6 | 36 | 27.7 | +8.3 |
| 5 | São Paulo | 16 | 25 | 27.1 | -2.1 | 13 | 16.4 | -3.4 | +12 | 10.7 | +1.3 | 33 | 27.7 | +5.3 |
| 6 | Cruzeiro | 15 | 26 | 23.9 | +2.1 | 16 | 13.9 | +2.1 | +10 | 9.9 | +0.1 | 28 | 27.3 | +0.7 |
| 7 | Bahia | 16 | 23 | 25.7 | -2.7 | 17 | 19.2 | -2.2 | +6 | 6.5 | -0.5 | 27 | 26.9 | +0.1 |
| 8 | Fluminense | 16 | 29 | 26.2 | +2.8 | 16 | 19.0 | -3.0 | +13 | 7.1 | +5.9 | 36 | 26.8 | +9.2 |
| 9 | Atlético Mineiro | 16 | 27 | 25.2 | +1.8 | 17 | 18.1 | -1.1 | +10 | 7.1 | +2.9 | 35 | 26.5 | +8.5 |
| 10 | Bragantino | 15 | 24 | 24.7 | -0.7 | 17 | 15.3 | +1.7 | +7 | 9.4 | -2.4 | 24 | 26.4 | -2.4 |
| 11 | Internacional | 15 | 18 | 24.1 | -6.1 | 17 | 15.3 | +1.7 | +1 | 8.8 | -7.8 | 17 | 26.4 | -9.4 |
| 12 | Botafogo | 16 | 26 | 23.3 | +2.7 | 22 | 17.7 | +4.3 | +4 | 5.7 | -1.7 | 24 | 25.6 | -1.6 |
| 13 | Santos | 15 | 22 | 21.1 | +0.9 | 20 | 13.7 | +6.3 | +2 | 7.4 | -5.4 | 23 | 25.4 | -2.4 |
| 14 | Mirassol | 16 | 23 | 23.4 | -0.4 | 21 | 20.7 | +0.3 | +2 | 2.7 | -0.7 | 26 | 23.6 | +2.4 |
| 15 | Corinthians | 15 | 15 | 17.0 | -2.0 | 16 | 13.9 | +2.1 | -1 | 3.2 | -4.2 | 18 | 22.7 | -4.7 |
| 16 | Vitória | 15 | 22 | 18.9 | +3.1 | 12 | 17.0 | -5.0 | +10 | 1.8 | +8.2 | 31 | 22.3 | +8.7 |
| 17 | Chapecoense | 14 | 19 | 20.6 | -1.6 | 33 | 20.0 | +13.0 | -14 | 0.5 | -14.5 | 11 | 20.0 | -9.0 |
| 18 | Grêmio | 16 | 25 | 20.9 | +4.1 | 21 | 25.3 | -4.3 | +4 | -4.4 | +8.4 | 26 | 20.0 | +6.0 |
| 19 | Remo | 16 | 20 | 19.8 | +0.2 | 21 | 22.8 | -1.8 | -1 | -3.0 | +2.0 | 16 | 19.6 | -3.6 |
| 20 | Coritiba | 15 | 20 | 17.2 | +2.8 | 20 | 20.1 | -0.1 | +0 | -2.8 | +2.8 | 20 | 19.3 | +0.7 |
| # | Team | Played | Goals | xG | Goals minus xG | Goals against | xGA | Goals against minus xGA | Goal difference | xGD | Goal difference minus xGD | Points | xPts | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Flamengo | 16 | 32 | 25.7 | +6.3 | 15 | 19.1 | -4.1 | +17 | 6.6 | +10.4 | 31 | 25.4 | +5.6 |
| 2 | Palmeiras | 16 | 26 | 18.4 | +7.6 | 12 | 18.2 | -6.2 | +14 | 0.3 | +13.7 | 30 | 21.9 | +8.1 |
| 3 | Vasco da Gama | 15 | 15 | 18.0 | -3.0 | 25 | 16.4 | +8.6 | -10 | 1.7 | -11.7 | 11 | 21.5 | -10.5 |
| 4 | Bahia | 15 | 21 | 22.9 | -1.9 | 22 | 23.6 | -1.6 | -1 | -0.6 | -0.4 | 22 | 20.0 | +2.0 |
| 5 | Bragantino | 16 | 15 | 21.6 | -6.6 | 19 | 25.8 | -6.8 | -4 | -4.2 | +0.2 | 17 | 19.6 | -2.6 |
| 6 | Cruzeiro | 16 | 24 | 21.4 | +2.6 | 30 | 27.4 | +2.6 | -6 | -6.0 | +0.0 | 23 | 18.9 | +4.1 |
| 7 | São Paulo | 15 | 11 | 18.7 | -7.7 | 22 | 21.1 | +0.9 | -11 | -2.4 | -8.6 | 9 | 18.8 | -9.8 |
| 8 | Santos | 16 | 26 | 20.0 | +6.0 | 26 | 24.5 | +1.5 | +0 | -4.5 | +4.5 | 22 | 18.8 | +3.2 |
| 9 | Atlético Mineiro | 15 | 15 | 16.9 | -1.9 | 18 | 20.8 | -2.8 | -3 | -3.9 | +0.9 | 15 | 18.1 | -3.1 |
| 10 | Internacional | 16 | 15 | 17.4 | -2.4 | 23 | 23.4 | -0.4 | -8 | -6.1 | -1.9 | 15 | 17.7 | -2.7 |
| 11 | Fluminense | 15 | 20 | 16.1 | +3.9 | 23 | 20.9 | +2.1 | -3 | -4.8 | +1.8 | 15 | 17.2 | -2.2 |
| 12 | Athletico PR | 15 | 22 | 15.4 | +6.6 | 22 | 23.2 | -1.2 | +0 | -7.8 | +7.8 | 21 | 16.1 | +4.9 |
| 13 | Remo | 15 | 14 | 15.3 | -1.3 | 28 | 23.1 | +4.9 | -14 | -7.7 | -6.3 | 10 | 15.3 | -5.3 |
| 14 | Mirassol | 15 | 13 | 17.8 | -4.8 | 23 | 27.1 | -4.1 | -10 | -9.3 | -0.7 | 10 | 15.3 | -5.3 |
| 15 | Botafogo | 15 | 18 | 15.9 | +2.1 | 26 | 25.2 | +0.8 | -8 | -9.3 | +1.3 | 15 | 15.2 | -0.2 |
| 16 | Corinthians | 15 | 16 | 10.9 | +5.1 | 22 | 19.4 | +2.6 | -6 | -8.4 | +2.4 | 14 | 14.8 | -0.8 |
| 17 | Coritiba | 16 | 18 | 15.6 | +2.4 | 29 | 28.5 | +0.5 | -11 | -12.8 | +1.8 | 19 | 14.3 | +4.7 |
| 18 | Grêmio | 15 | 9 | 11.5 | -2.5 | 23 | 25.9 | -2.9 | -14 | -14.4 | +0.4 | 5 | 12.0 | -7.0 |
| 19 | Vitória | 15 | 11 | 11.7 | -0.7 | 32 | 26.6 | +5.4 | -21 | -14.9 | -6.1 | 5 | 12.0 | -7.0 |
| 20 | Chapecoense | 16 | 11 | 13.2 | -2.2 | 29 | 32.8 | -3.8 | -18 | -19.6 | +1.6 | 7 | 11.3 | -4.3 |
| # | Team | Played | Goals | xG | Goals minus xG | Goals against | xGA | Goals against minus xGA | Goal difference | xGD | Goal difference minus xGD | Points | xPts | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Palmeiras | 5 | 9 | 11.3 | -2.3 | 1 | 4.9 | -3.9 | +8 | 6.4 | +1.6 | 13 | 10.6 | +2.4 |
| 2 | Vasco da Gama | 5 | 9 | 10.5 | -1.5 | 3 | 3.6 | -0.6 | +6 | 6.9 | -0.9 | 10 | 10.3 | -0.3 |
| 3 | Flamengo | 5 | 10 | 10.9 | -0.9 | 4 | 5.0 | -1.0 | +6 | 5.9 | +0.1 | 13 | 10.2 | +2.8 |
| 4 | Bragantino | 5 | 7 | 10.2 | -3.2 | 7 | 8.7 | -1.7 | +0 | 1.5 | -1.5 | 5 | 7.9 | -2.9 |
| 5 | São Paulo | 5 | 5 | 7.3 | -2.3 | 5 | 6.2 | -1.2 | +0 | 1.0 | -1.0 | 9 | 7.9 | +1.1 |
| 6 | Botafogo | 5 | 6 | 6.3 | -0.3 | 7 | 5.4 | +1.6 | -1 | 0.9 | -1.9 | 7 | 7.6 | -0.6 |
| 7 | Atlético Mineiro | 5 | 7 | 7.4 | -0.4 | 4 | 6.6 | -2.6 | +3 | 0.8 | +2.2 | 11 | 7.4 | +3.6 |
| 8 | Mirassol | 5 | 7 | 9.3 | -2.3 | 4 | 8.5 | -4.5 | +3 | 0.8 | +2.2 | 8 | 7.3 | +0.7 |
| 9 | Santos | 5 | 9 | 7.4 | +1.6 | 7 | 6.5 | +0.5 | +2 | 0.9 | +1.1 | 10 | 7.2 | +2.8 |
| 10 | Cruzeiro | 5 | 12 | 9.7 | +2.3 | 9 | 9.4 | -0.4 | +3 | 0.3 | +2.7 | 9 | 7.2 | +1.8 |
| 11 | Athletico PR | 5 | 11 | 7.6 | +3.4 | 9 | 7.1 | +1.9 | +2 | 0.5 | +1.5 | 8 | 7.1 | +0.9 |
| 12 | Vitória | 5 | 9 | 6.3 | +2.7 | 7 | 6.1 | +0.9 | +2 | 0.3 | +1.7 | 7 | 7.1 | -0.1 |
| 13 | Bahia | 5 | 4 | 8.2 | -4.2 | 7 | 9.3 | -2.3 | -3 | -1.1 | -1.9 | 6 | 6.5 | -0.5 |
| 14 | Grêmio | 5 | 6 | 6.9 | -0.9 | 9 | 8.1 | +0.9 | -3 | -1.2 | -1.8 | 3 | 6.2 | -3.2 |
| 15 | Corinthians | 5 | 5 | 7.5 | -2.5 | 13 | 10.5 | +2.5 | -8 | -3.0 | -5.0 | 0 | 5.6 | -5.6 |
| 16 | Remo | 5 | 4 | 6.2 | -2.2 | 6 | 8.7 | -2.7 | -2 | -2.5 | +0.5 | 3 | 5.3 | -2.3 |
| 17 | Fluminense | 5 | 9 | 6.7 | +2.3 | 7 | 9.7 | -2.7 | +2 | -3.0 | +5.0 | 6 | 5.1 | +0.9 |
| 18 | Coritiba | 5 | 4 | 5.8 | -1.8 | 14 | 10.4 | +3.6 | -10 | -4.7 | -5.3 | 2 | 5.1 | -3.1 |
| 19 | Chapecoense | 5 | 3 | 5.1 | -2.1 | 12 | 8.7 | +3.3 | -9 | -3.6 | -5.4 | 1 | 4.9 | -3.9 |
| 20 | Internacional | 5 | 5 | 4.5 | +0.5 | 6 | 9.1 | -3.1 | -1 | -4.6 | +3.6 | 7 | 4.2 | +2.8 |
Palmeiras are overperforming their xG by more than any other side in Campeonato Brasileiro in 2026, with 54 goals from chances worth 42.9 xG, a gap of 11.1. Santos are next on 7.5.
Vasco da Gama are underperforming their xG by more than any other side in Campeonato Brasileiro in 2026, with 36 goals from chances worth 52.0 xG, a shortfall of 16.0. São Paulo are next on 9.8.
Palmeiras are the luckiest side in Campeonato Brasileiro in 2026, with 66 points from performances worth 49.4 xPts, 16.6 more than their chances deserved. Flamengo are next on 10.7.
Vasco da Gama are the unluckiest side in Campeonato Brasileiro in 2026, with 35 points from performances worth 50.4 xPts, 15.4 short of what they deserved. Chapecoense are next on 13.3.
Flamengo would be top of Campeonato Brasileiro in 2026 on expected points, with 53.3 xPts from 50.7 xG created and 31.1 conceded across 30 matches. Vasco da Gama are next on 50.4.
Vasco da Gama have created the most xG in Campeonato Brasileiro in 2026, 52.0 from 30 matches, 1.7 a game against a competition average of 1.3. Flamengo are next on 50.7.
Corinthians have created the least xG in Campeonato Brasileiro in 2026, 28.0 from 30 matches, 0.9 a game against a competition average of 1.3. Grêmio are next on 30.2.
Chapecoense have conceded the most xG in Campeonato Brasileiro in 2026, 52.8 from 30 matches, 1.8 a game against a competition average of 1.3. Grêmio are next on 49.8.
Flamengo have conceded the least xG in Campeonato Brasileiro in 2026, 31.1 from 30 matches, 1.0 a game against a competition average of 1.3. Palmeiras are next on 31.4.
Campeonato Brasileiro teams have averaged 1.32 xG a game in 2026, from the 304 matches played, and have scored 1.33 goals a game from it. That is up from 1.27 xG a game in 2025.
Campeonato Brasileiro teams create more xG at home in 2026, 1.54 a game against 1.10 away, a home advantage of +0.44, against +0.49 in 2025.
The same season by player, with the goals each one scored against the chances they had.
| # | Team | Played | Goals | xG | Goals minus xG | Goals against | xGA | Goals against minus xGA | Goal difference | xGD | Goal difference minus xGD | Points | xPts | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Flamengo | 31 | 61 | 53.7 | +7.3 | 25 | 31.6 | -6.6 | +36 | 22.1 | +13.9 | 67 | 55.9 | +11.1 |
| 2 | Vasco da Gama | 30 | 36 | 52.0 | -16.0 | 43 | 32.9 | +10.1 | -7 | 19.1 | -26.1 | 35 | 50.4 | -15.4 |
| 3 | Palmeiras | 31 | 54 | 43.1 | +10.9 | 22 | 31.4 | -9.4 | +32 | 11.7 | +20.3 | 66 | 49.6 | +16.4 |
| 4 | Bahia | 31 | 44 | 48.7 | -4.7 | 39 | 42.7 | -3.7 | +5 | 5.9 | -0.9 | 49 | 46.9 | +2.1 |
| 5 | São Paulo | 31 | 36 | 45.8 | -9.8 | 35 | 37.5 | -2.5 | +1 | 8.3 | -7.3 | 42 | 46.4 | -4.4 |
| 6 | Cruzeiro | 31 | 50 | 45.2 | +4.8 | 46 | 41.3 | +4.7 | +4 | 3.9 | +0.1 | 51 | 46.1 | +4.9 |
| 7 | Bragantino | 31 | 39 | 46.3 | -7.3 | 36 | 41.1 | -5.1 | +3 | 5.3 | -2.3 | 41 | 46.0 | -5.0 |
| 8 | Athletico PR | 31 | 49 | 42.3 | +6.7 | 37 | 36.9 | +0.1 | +12 | 5.3 | +6.7 | 53 | 45.8 | +7.2 |
| 9 | Atlético Mineiro | 31 | 42 | 42.1 | -0.1 | 35 | 38.9 | -3.9 | +7 | 3.2 | +3.8 | 50 | 44.7 | +5.3 |
| 10 | Santos | 31 | 48 | 41.1 | +6.9 | 46 | 38.2 | +7.8 | +2 | 2.9 | -0.9 | 45 | 44.2 | +0.8 |
| 11 | Internacional | 31 | 33 | 41.5 | -8.5 | 40 | 38.8 | +1.2 | -7 | 2.7 | -9.7 | 32 | 44.1 | -12.1 |
| 12 | Fluminense | 31 | 49 | 42.3 | +6.7 | 39 | 40.0 | -1.0 | +10 | 2.3 | +7.7 | 51 | 44.0 | +7.0 |
| 13 | Botafogo | 31 | 44 | 39.2 | +4.8 | 48 | 42.8 | +5.2 | -4 | -3.6 | -0.4 | 39 | 40.8 | -1.8 |
| 14 | Mirassol | 31 | 36 | 41.2 | -5.2 | 44 | 47.8 | -3.8 | -8 | -6.5 | -1.5 | 36 | 38.9 | -2.9 |
| 15 | Corinthians | 30 | 31 | 28.0 | +3.0 | 38 | 33.3 | +4.7 | -7 | -5.3 | -1.7 | 32 | 37.6 | -5.6 |
| 16 | Remo | 31 | 34 | 35.1 | -1.1 | 49 | 45.9 | +3.1 | -15 | -10.8 | -4.2 | 26 | 35.0 | -9.0 |
| 17 | Vitória | 30 | 33 | 30.5 | +2.5 | 44 | 43.6 | +0.4 | -11 | -13.1 | +2.1 | 36 | 34.3 | +1.7 |
| 18 | Coritiba | 31 | 38 | 32.9 | +5.1 | 49 | 48.5 | +0.5 | -11 | -15.6 | +4.6 | 39 | 33.7 | +5.3 |
| 19 | Grêmio | 31 | 34 | 32.4 | +1.6 | 44 | 51.2 | -7.2 | -10 | -18.8 | +8.8 | 31 | 32.1 | -1.1 |
| 20 | Chapecoense | 30 | 30 | 33.7 | -3.7 | 62 | 52.8 | +9.2 | -32 | -19.1 | -12.9 | 18 | 31.4 | -13.4 |