Atlético GO have the biggest shortfall in the Campeonato Brasileiro: 30 points from chances worth 44.4 xPts, a gap of 14.4. At the other end, Fortaleza have taken 68 points from an xPts figure of 50.2, 17.8 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.
| # | 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 | 19 | 34 | 35.8 | -1.8 | 16 | 13.8 | +2.2 | +18 | 22.0 | -4.0 | 38 | 39.2 | -1.2 |
| 2 | Internacional | 19 | 30 | 32.7 | -2.7 | 15 | 13.5 | +1.5 | +15 | 19.2 | -4.2 | 38 | 38.3 | -0.3 |
| 3 | Botafogo | 19 | 31 | 32.0 | -1.0 | 13 | 16.0 | -3.0 | +18 | 16.0 | +2.0 | 41 | 35.6 | +5.4 |
| 4 | Bahia | 19 | 25 | 29.3 | -4.3 | 15 | 16.7 | -1.7 | +10 | 12.6 | -2.6 | 36 | 34.2 | +1.8 |
| 5 | Flamengo | 19 | 30 | 29.6 | +0.4 | 21 | 17.2 | +3.8 | +9 | 12.4 | -3.4 | 38 | 34.0 | +4.0 |
| 6 | Athletico PR | 19 | 24 | 29.6 | -5.6 | 21 | 19.3 | +1.7 | +3 | 10.3 | -7.3 | 25 | 32.9 | -7.9 |
| 7 | Corinthians | 19 | 37 | 28.5 | +8.5 | 18 | 18.9 | -0.9 | +19 | 9.5 | +9.5 | 38 | 32.1 | +5.9 |
| 8 | Fortaleza | 19 | 32 | 24.3 | +7.7 | 8 | 15.7 | -7.7 | +24 | 8.6 | +15.4 | 47 | 32.1 | +14.9 |
| 9 | Cruzeiro | 19 | 29 | 28.0 | +1.0 | 16 | 20.5 | -4.5 | +13 | 7.5 | +5.5 | 35 | 31.2 | +3.8 |
| 10 | São Paulo | 19 | 31 | 23.7 | +7.3 | 18 | 17.4 | +0.6 | +13 | 6.3 | +6.7 | 39 | 29.9 | +9.1 |
| 11 | Vasco da Gama | 19 | 29 | 23.9 | +5.1 | 24 | 21.4 | +2.6 | +5 | 2.4 | +2.6 | 35 | 28.7 | +6.3 |
| 12 | Atlético Mineiro | 19 | 27 | 25.3 | +1.7 | 26 | 22.0 | +4.0 | +1 | 3.2 | -2.2 | 28 | 28.4 | -0.4 |
| 13 | Grêmio | 19 | 26 | 26.2 | -0.2 | 26 | 23.4 | +2.6 | +0 | 2.8 | -2.8 | 29 | 28.4 | +0.6 |
| 14 | Juventude | 19 | 27 | 27.4 | -0.4 | 24 | 24.8 | -0.8 | +3 | 2.6 | +0.4 | 30 | 28.3 | +1.7 |
| 15 | Vitória | 18 | 21 | 23.9 | -2.9 | 21 | 21.3 | -0.3 | +0 | 2.6 | -2.6 | 26 | 27.0 | -1.0 |
| 16 | Fluminense | 19 | 20 | 22.5 | -2.5 | 16 | 23.4 | -7.4 | +4 | -0.9 | +4.9 | 29 | 25.3 | +3.7 |
| 17 | Criciúma | 19 | 22 | 22.3 | -0.3 | 27 | 24.7 | +2.3 | -5 | -2.4 | -2.6 | 23 | 24.9 | -1.9 |
| 18 | Bragantino | 19 | 27 | 21.8 | +5.2 | 19 | 23.7 | -4.7 | +8 | -1.8 | +9.8 | 31 | 24.5 | +6.5 |
| 19 | Atlético GO | 19 | 16 | 23.4 | -7.4 | 24 | 25.8 | -1.8 | -8 | -2.4 | -5.6 | 20 | 24.1 | -4.1 |
| 20 | Cuiabá | 19 | 16 | 20.1 | -4.1 | 23 | 22.9 | +0.1 | -7 | -2.8 | -4.2 | 14 | 23.7 | -9.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 | Palmeiras | 19 | 26 | 29.5 | -3.5 | 17 | 21.6 | -4.6 | +9 | 8.0 | +1.0 | 35 | 30.6 | +4.4 |
| 2 | Flamengo | 19 | 31 | 27.0 | +4.0 | 21 | 21.6 | -0.6 | +10 | 5.4 | +4.6 | 32 | 28.9 | +3.1 |
| 3 | Internacional | 19 | 23 | 23.5 | -0.5 | 21 | 20.3 | +0.7 | +2 | 3.2 | -1.2 | 27 | 27.6 | -0.6 |
| 4 | Botafogo | 19 | 28 | 24.3 | +3.7 | 16 | 21.7 | -5.7 | +12 | 2.6 | +9.4 | 38 | 27.1 | +10.9 |
| 5 | Atlético Mineiro | 19 | 20 | 22.5 | -2.5 | 28 | 25.1 | +2.9 | -8 | -2.6 | -5.4 | 19 | 24.0 | -5.0 |
| 6 | Corinthians | 19 | 17 | 22.6 | -5.6 | 27 | 26.1 | +0.9 | -10 | -3.5 | -6.5 | 18 | 23.7 | -5.7 |
| 7 | São Paulo | 19 | 22 | 18.9 | +3.1 | 25 | 22.3 | +2.7 | -3 | -3.4 | +0.4 | 20 | 23.5 | -3.5 |
| 8 | Bahia | 19 | 24 | 22.6 | +1.4 | 34 | 27.5 | +6.5 | -10 | -4.9 | -5.1 | 17 | 23.2 | -6.2 |
| 9 | Fluminense | 19 | 13 | 17.8 | -4.8 | 23 | 22.6 | +0.4 | -10 | -4.8 | -5.2 | 17 | 22.1 | -5.1 |
| 10 | Bragantino | 19 | 17 | 18.8 | -1.8 | 29 | 27.7 | +1.3 | -12 | -8.8 | -3.2 | 13 | 21.1 | -8.1 |
| 11 | Grêmio | 19 | 18 | 19.7 | -1.7 | 24 | 28.2 | -4.2 | -6 | -8.5 | +2.5 | 16 | 20.5 | -4.5 |
| 12 | Atlético GO | 19 | 13 | 19.5 | -6.5 | 34 | 29.4 | +4.6 | -21 | -9.9 | -11.1 | 10 | 20.3 | -10.3 |
| 13 | Vitória | 19 | 22 | 17.5 | +4.5 | 29 | 27.0 | +2.0 | -7 | -9.5 | +2.5 | 20 | 20.2 | -0.2 |
| 14 | Athletico PR | 19 | 16 | 17.8 | -1.8 | 25 | 27.3 | -2.3 | -9 | -9.5 | +0.5 | 17 | 19.7 | -2.7 |
| 15 | Cruzeiro | 18 | 12 | 15.1 | -3.1 | 23 | 22.6 | +0.4 | -11 | -7.5 | -3.5 | 16 | 19.5 | -3.5 |
| 16 | Criciúma | 19 | 20 | 18.8 | +1.2 | 34 | 32.3 | +1.7 | -14 | -13.5 | -0.5 | 15 | 18.5 | -3.5 |
| 17 | Fortaleza | 19 | 21 | 17.8 | +3.2 | 31 | 32.1 | -1.1 | -10 | -14.2 | +4.2 | 21 | 18.1 | +2.9 |
| 18 | Juventude | 19 | 21 | 17.7 | +3.3 | 35 | 34.1 | +0.9 | -14 | -16.4 | +2.4 | 15 | 17.0 | -2.0 |
| 19 | Cuiabá | 19 | 13 | 14.9 | -1.9 | 26 | 29.1 | -3.1 | -13 | -14.2 | +1.2 | 16 | 16.7 | -0.7 |
| 20 | Vasco da Gama | 19 | 14 | 16.0 | -2.0 | 32 | 31.5 | +0.5 | -18 | -15.5 | -2.5 | 15 | 15.9 | -0.9 |
| # | 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 | Corinthians | 5 | 15 | 9.8 | +5.2 | 4 | 3.2 | +0.8 | +11 | 6.6 | +4.4 | 15 | 11.3 | +3.7 |
| 2 | Flamengo | 5 | 10 | 9.3 | +0.7 | 5 | 3.7 | +1.3 | +5 | 5.6 | -0.6 | 11 | 10.7 | +0.3 |
| 3 | Botafogo | 5 | 7 | 8.2 | -1.2 | 3 | 4.0 | -1.0 | +4 | 4.1 | -0.1 | 11 | 9.0 | +2.0 |
| 4 | Internacional | 5 | 7 | 7.4 | -0.4 | 8 | 4.3 | +3.7 | -1 | 3.1 | -4.1 | 6 | 9.0 | -3.0 |
| 5 | Bahia | 5 | 6 | 9.0 | -3.0 | 7 | 6.1 | +0.9 | -1 | 2.9 | -3.9 | 7 | 8.6 | -1.6 |
| 6 | Juventude | 5 | 8 | 6.7 | +1.3 | 7 | 5.3 | +1.7 | +1 | 1.4 | -0.4 | 8 | 8.4 | -0.4 |
| 7 | Palmeiras | 5 | 6 | 6.6 | -0.6 | 6 | 4.6 | +1.4 | +0 | 2.0 | -2.0 | 9 | 7.9 | +1.1 |
| 8 | Fluminense | 5 | 5 | 6.2 | -1.2 | 3 | 4.8 | -1.8 | +2 | 1.4 | +0.6 | 9 | 7.7 | +1.3 |
| 9 | Atlético Mineiro | 5 | 5 | 6.4 | -1.4 | 7 | 6.0 | +1.0 | -2 | 0.3 | -2.3 | 5 | 7.0 | -2.0 |
| 10 | Vitória | 5 | 7 | 6.4 | +0.6 | 4 | 7.4 | -3.4 | +3 | -1.0 | +4.0 | 9 | 6.7 | +2.3 |
| 11 | Bragantino | 5 | 10 | 5.9 | +4.1 | 8 | 7.2 | +0.8 | +2 | -1.3 | +3.3 | 8 | 6.2 | +1.8 |
| 12 | Athletico PR | 5 | 5 | 6.1 | -1.1 | 5 | 7.3 | -2.3 | +0 | -1.1 | +1.1 | 5 | 6.1 | -1.1 |
| 13 | Vasco da Gama | 5 | 7 | 5.1 | +1.9 | 7 | 6.5 | +0.5 | +0 | -1.5 | +1.5 | 7 | 5.9 | +1.1 |
| 14 | Grêmio | 5 | 6 | 5.5 | +0.5 | 8 | 7.5 | +0.5 | -2 | -2.1 | +0.1 | 6 | 5.6 | +0.4 |
| 15 | Cuiabá | 5 | 4 | 4.7 | -0.7 | 8 | 6.7 | +1.3 | -4 | -2.1 | -1.9 | 1 | 5.3 | -4.3 |
| 16 | Cruzeiro | 5 | 5 | 4.7 | +0.3 | 6 | 8.4 | -2.4 | -1 | -3.7 | +2.7 | 5 | 5.0 | +0.0 |
| 17 | Fortaleza | 5 | 6 | 4.5 | +1.5 | 7 | 7.7 | -0.7 | -1 | -3.2 | +2.2 | 5 | 4.8 | +0.2 |
| 18 | Atlético GO | 5 | 5 | 5.2 | -0.2 | 8 | 8.7 | -0.7 | -3 | -3.6 | +0.6 | 4 | 4.8 | -0.8 |
| 19 | Criciúma | 5 | 3 | 4.5 | -1.5 | 13 | 8.4 | +4.6 | -10 | -4.0 | -6.0 | 1 | 4.5 | -3.5 |
| 20 | São Paulo | 5 | 6 | 3.1 | +2.9 | 9 | 7.2 | +1.8 | -3 | -4.2 | +1.2 | 2 | 3.9 | -1.9 |
Fortaleza overperformed their xG by more than any other side in Campeonato Brasileiro in 2024, with 53 goals from chances worth 42.1 xG, a gap of 10.9. São Paulo were next on 10.4.
Atlético GO underperformed their xG by more than any other side in Campeonato Brasileiro in 2024, with 29 goals from chances worth 42.9 xG, a shortfall of 13.9. Athletico PR were next on 7.4.
Fortaleza were the luckiest side in Campeonato Brasileiro in 2024, with 68 points from performances worth 50.2 xPts, 17.8 more than their chances deserved. Botafogo were next on 16.3.
Atlético GO were the unluckiest side in Campeonato Brasileiro in 2024, with 30 points from performances worth 44.4 xPts, 14.4 short of what they deserved. Athletico PR were next on 10.6.
Palmeiras would be top of Campeonato Brasileiro in 2024 on expected points, with 69.7 xPts from 65.3 xG created and 35.4 conceded across 38 matches. Internacional were next on 65.9.
Palmeiras created the most xG in Campeonato Brasileiro in 2024, 65.3 from 38 matches, 1.7 a game against a competition average of 1.2. Flamengo were next on 56.5.
Cuiabá created the least xG in Campeonato Brasileiro in 2024, 35.0 from 38 matches, 0.9 a game against a competition average of 1.2. Vasco da Gama were next on 39.9.
Juventude conceded the most xG in Campeonato Brasileiro in 2024, 58.9 from 38 matches, 1.6 a game against a competition average of 1.2. Criciúma were next on 57.1.
Internacional conceded the least xG in Campeonato Brasileiro in 2024, 33.8 from 38 matches, 0.9 a game against a competition average of 1.2. Palmeiras were next on 35.4.
Campeonato Brasileiro teams averaged 1.23 xG a game in 2024, from the 379 matches played, and scored 1.22 goals a game from it.
Campeonato Brasileiro teams created more xG at home in 2024, 1.40 a game against 1.06 away, a home advantage of +0.34.
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 | Palmeiras | 38 | 60 | 65.3 | -5.3 | 33 | 35.4 | -2.4 | +27 | 30.0 | -3.0 | 73 | 69.7 | +3.3 |
| 2 | Internacional | 38 | 53 | 56.2 | -3.2 | 36 | 33.8 | +2.2 | +17 | 22.5 | -5.5 | 65 | 65.9 | -0.9 |
| 3 | Flamengo | 38 | 61 | 56.5 | +4.5 | 42 | 38.7 | +3.3 | +19 | 17.8 | +1.2 | 70 | 62.9 | +7.1 |
| 4 | Botafogo | 38 | 59 | 56.3 | +2.7 | 29 | 37.7 | -8.7 | +30 | 18.6 | +11.4 | 79 | 62.7 | +16.3 |
| 5 | Bahia | 38 | 49 | 51.9 | -2.9 | 49 | 44.2 | +4.8 | +0 | 7.7 | -7.7 | 53 | 57.4 | -4.4 |
| 6 | Corinthians | 38 | 54 | 51.0 | +3.0 | 45 | 45.0 | +0.0 | +9 | 6.0 | +3.0 | 56 | 55.7 | +0.3 |
| 7 | São Paulo | 38 | 53 | 42.6 | +10.4 | 43 | 39.7 | +3.3 | +10 | 2.9 | +7.1 | 59 | 53.4 | +5.6 |
| 8 | Athletico PR | 38 | 40 | 47.4 | -7.4 | 46 | 46.5 | -0.5 | -6 | 0.8 | -6.8 | 42 | 52.6 | -10.6 |
| 9 | Atlético Mineiro | 38 | 47 | 47.7 | -0.7 | 54 | 47.1 | +6.9 | -7 | 0.6 | -7.6 | 47 | 52.4 | -5.4 |
| 10 | Cruzeiro | 37 | 41 | 43.1 | -2.1 | 39 | 43.1 | -4.1 | +2 | 0.0 | +2.0 | 51 | 50.7 | +0.3 |
| 11 | Fortaleza | 38 | 53 | 42.1 | +10.9 | 39 | 47.7 | -8.7 | +14 | -5.6 | +19.6 | 68 | 50.2 | +17.8 |
| 12 | Grêmio | 38 | 44 | 45.8 | -1.8 | 50 | 51.6 | -1.6 | -6 | -5.7 | -0.3 | 45 | 48.9 | -3.9 |
| 13 | Fluminense | 38 | 33 | 40.3 | -7.3 | 39 | 46.1 | -7.1 | -6 | -5.8 | -0.2 | 46 | 47.4 | -1.4 |
| 14 | Vitória | 37 | 43 | 41.3 | +1.7 | 50 | 48.3 | +1.7 | -7 | -7.0 | +0.0 | 46 | 47.2 | -1.2 |
| 15 | Bragantino | 38 | 44 | 40.6 | +3.4 | 48 | 51.3 | -3.3 | -4 | -10.7 | +6.7 | 44 | 45.6 | -1.6 |
| 16 | Juventude | 38 | 48 | 45.1 | +2.9 | 59 | 58.9 | +0.1 | -11 | -13.8 | +2.8 | 45 | 45.2 | -0.2 |
| 17 | Vasco da Gama | 38 | 43 | 39.9 | +3.1 | 56 | 53.0 | +3.0 | -13 | -13.1 | +0.1 | 50 | 44.5 | +5.5 |
| 18 | Atlético GO | 38 | 29 | 42.9 | -13.9 | 58 | 55.3 | +2.7 | -29 | -12.4 | -16.6 | 30 | 44.4 | -14.4 |
| 19 | Criciúma | 38 | 42 | 41.1 | +0.9 | 61 | 57.1 | +3.9 | -19 | -16.0 | -3.0 | 38 | 43.4 | -5.4 |
| 20 | Cuiabá | 38 | 29 | 35.0 | -6.0 | 49 | 52.0 | -3.0 | -20 | -17.0 | -3.0 | 30 | 40.4 | -10.4 |