No, Botafogo have taken 39 points over 31 Campeonato Brasileiro games in 2026, within 1.83 of the 40.83 expected points (xPts) their chances were worth, so their results match their performances.
Botafogo create 1.26 expected goals (xG) per game over 31 Campeonato Brasileiro games in 2026, 39.20 in all, and have scored 44 goals from those chances, 4.80 more than that xG would expect.
Botafogo allow 1.38 expected goals against (xGA) per game over 31 Campeonato Brasileiro games in 2026, 42.79 in all, and have conceded 48 goals from those chances, 5.21 more than that xGA would expect.
Arthur Cabral has the most expected goals (xG) for Botafogo over 31 Campeonato Brasileiro games in 2026, 5.21 xG in 25 appearances, and has scored 7 goals; Danilo is next with 3.62 xG.
Botafogo's results and their chances agree, within 1.8 points of xPts over 31 games. There is no regression case either way. What the table says is roughly what they have earned.
| Window | Games | xG | Goals | Goals minus xG | xGA | Conceded | xGA minus conceded | xPts | Points | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|---|
| 26/ | 31 | 39.20 | 44 | +4.80 | 42.79 | 48 | -5.21 | 40.83 | 39 | -1.83 |
| Last 10 | 10 | 14.46 | 9 | -5.46 | 12.05 | 15 | -2.95 | 15.26 | 9 | -6.26 |
| Last 5 | 5 | 6.31 | 6 | -0.31 | 5.43 | 7 | -1.57 | 7.55 | 7 | -0.55 |
| Home | 16 | 23.32 | 26 | +2.68 | 17.64 | 22 | -4.36 | 25.61 | 24 | -1.61 |
| Away | 15 | 15.88 | 18 | +2.12 | 25.15 | 26 | -0.85 | 15.22 | 15 | -0.22 |
| Date | Competition | Opponent | Score | xG | xGA | xPts | Points | Deserved result |
|---|---|---|---|---|---|---|---|---|
| 17 Oct | Campeonato Brasileiro | Chapecoense (H) | 1-0 | 1.92 | 0.30 | 2.49 | 3 | W |
| 12 Oct | Campeonato Brasileiro | Coritiba (A) | 1-1 | 1.12 | 1.33 | 1.21 | 1 | L |
| 7 Oct | Campeonato Brasileiro | Vasco (H) | 1-2 | 0.61 | 1.99 | 0.50 | 0 | L |
| 19 Sep | Campeonato Brasileiro | Mirassol (A) | 2-0 | 1.62 | 1.17 | 1.68 | 0 | W |
| 16 Sep | Campeonato Brasileiro | Grêmio (H) | 3-2 | 1.04 | 0.64 | 1.67 | 3 | W |
| 12 Sep | Campeonato Brasileiro | Bragantino (H) | 1-1 | 1.89 | 1.02 | 1.96 | 1 | W |
| 6 Sep | Campeonato Brasileiro | Palmeiras (H) | 0-0 | 1.12 | 1.10 | 1.37 | 1 | W |
| 30 Aug | Campeonato Brasileiro | Flamengo (A) | 3-0 | 1.16 | 1.65 | 1.05 | 0 | L |
| 24 Aug | Campeonato Brasileiro | Athletico PR (H) | 2-3 | 2.91 | 0.49 | 2.67 | 0 | W |
| 16 Aug | Campeonato Brasileiro | Vitória (A) | 1-0 | 1.07 | 2.36 | 0.66 | 0 | L |
| 9 Aug | Campeonato Brasileiro | Fluminense (H) | 1-1 | 1.78 | 1.10 | 1.83 | 1 | W |
| 26 Jul | Campeonato Brasileiro | Cruzeiro (A) | 0-1 | 0.53 | 1.58 | 0.61 | 3 | L |
| 23 Jul | Campeonato Brasileiro | Vitória (H) | 0-0 | 1.33 | 0.37 | 2.12 | 1 | W |
| 16 Jul | Campeonato Brasileiro | Santos (H) | 2-1 | 1.77 | 2.00 | 1.26 | 3 | L |
| 30 May | Campeonato Brasileiro | Bahia (A) | 2-1 | 1.22 | 2.25 | 0.79 | 0 | L |
| 23 May | Campeonato Brasileiro | São Paulo (A) | 1-1 | 1.04 | 1.65 | 0.96 | 1 | L |
| 17 May | Campeonato Brasileiro | Corinthians (H) | 3-1 | 0.95 | 0.90 | 1.38 | 3 | W |
| 10 May | Campeonato Brasileiro | Atlético-MG (A) | 1-1 | 1.31 | 1.15 | 1.48 | 1 | W |
| 2 May | Campeonato Brasileiro | Remo (H) | 1-2 | 0.86 | 1.70 | 0.80 | 0 | L |
| 25 Apr | Campeonato Brasileiro | Internacional (H) | 2-2 | 1.47 | 0.77 | 1.88 | 1 | W |
| 18 Apr | Campeonato Brasileiro | Chapecoense (A) | 1-4 | 0.97 | 0.27 | 1.95 | 3 | W |
| 12 Apr | Campeonato Brasileiro | Coritiba (H) | 2-2 | 1.81 | 0.77 | 2.09 | 1 | W |
| 5 Apr | Campeonato Brasileiro | Vasco (A) | 1-2 | 1.36 | 2.34 | 0.84 | 3 | L |
| 1 Apr | Campeonato Brasileiro | Mirassol (H) | 3-2 | 2.37 | 1.09 | 2.15 | 3 | W |
| 29 Mar | Campeonato Brasileiro | Athletico PR (A) | 4-1 | 0.99 | 1.24 | 1.17 | 0 | L |
| 21 Mar | Campeonato Brasileiro | Bragantino (A) | 1-2 | 1.42 | 1.28 | 1.47 | 3 | W |
| 18 Mar | Campeonato Brasileiro | Palmeiras (A) | 2-1 | 0.57 | 2.03 | 0.47 | 0 | L |
| 14 Mar | Campeonato Brasileiro | Flamengo (H) | 0-3 | 0.65 | 1.61 | 0.69 | 0 | L |
| 12 Feb | Campeonato Brasileiro | Fluminense (A) | 1-0 | 0.36 | 1.53 | 0.49 | 0 | L |
| 5 Feb | Campeonato Brasileiro | Grêmio (A) | 5-3 | 1.14 | 3.32 | 0.39 | 0 | L |
| Player | Position | Apps | Minutes | xG | Goals | Goals minus xG | xG per 90 |
|---|---|---|---|---|---|---|---|
| Danilo | midfielder | 24 | 2034 | 3.62 | 10 | +6.38 | 0.16 |
| Arthur Cabral | attacker | 25 | 2013 | 5.21 | 7 | +1.79 | 0.23 |
| Santiago Rodríguez | midfielder | 15 | 574 | 0.37 | 2 | +1.64 | 0.06 |
| Alex Telles | defender | 28 | 2217 | 2.47 | 4 | +1.53 | 0.10 |
| Edenilson | midfielder | 18 | 821 | 1.73 | 3 | +1.27 | 0.19 |
| Matheus Martins | attacker | 24 | 1366 | 2.89 | 4 | +1.11 | 0.19 |
| Gabriel Justino | defender | 13 | 900 | 0.20 | 1 | +0.80 | 0.02 |
| Artur | attacker | 4 | 191 | 0.46 | 1 | +0.54 | 0.22 |
| Huguinho | defender | 14 | 1066 | 0.49 | 1 | +0.51 | 0.04 |
| Tiquinho Soares | attacker | 5 | 109 | 0.51 | 1 | +0.49 | 0.42 |
| Lucas Villalba | attacker | 17 | 727 | 0.60 | 1 | +0.40 | 0.07 |
| Alexander Barboza | defender | 12 | 1035 | 0.63 | 1 | +0.37 | 0.05 |
| Vitinho | defender | 29 | 2350 | 1.10 | 1 | -0.10 | 0.04 |
| Jordan Barrera | midfielder | 12 | 395 | 1.14 | 1 | -0.14 | 0.26 |
| Nahuel Ferraresi | defender | 24 | 1998 | 1.38 | 1 | -0.38 | 0.06 |
| Júnior Santos | attacker | 19 | 806 | 1.88 | 1 | -0.88 | 0.21 |
| Álvaro Montoro | attacker | 27 | 1779 | 1.90 | 1 | -0.90 | 0.10 |
| Kauan Toledo | midfielder | 11 | 451 | 1.23 | 0 | -1.23 | 0.24 |
| Danilo | attacker | 9 | 454 | 1.30 | 0 | -1.30 | 0.26 |
| Kadir Barría | attacker | 15 | 382 | 2.50 | 1 | -1.50 | 0.59 |
| Cristian Medina | midfielder | 23 | 1636 | 3.19 | 1 | -2.19 | 0.18 |
| # | Team | MP | xG | Goals | xGA | Conceded | xPts | Points | Points minus xPts |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Palmeiras | 31 | 43.1 | 54 | 31.4 | 22 | 49.6 | 66 | +16.4 |
| 2 | Flamengo | 31 | 53.7 | 61 | 31.6 | 25 | 55.9 | 67 | +11.1 |
| 3 | Athletico PR | 31 | 42.3 | 49 | 36.9 | 37 | 45.8 | 53 | +7.2 |
| 4 | Fluminense | 31 | 42.3 | 49 | 40 | 39 | 44 | 51 | +7 |
| 5 | Atlético Mineiro | 31 | 42.1 | 42 | 38.9 | 35 | 44.7 | 50 | +5.3 |
| 6 | Coritiba | 31 | 32.9 | 38 | 48.5 | 49 | 33.7 | 39 | +5.3 |
| 7 | Cruzeiro | 31 | 45.2 | 50 | 41.3 | 46 | 46.1 | 51 | +4.9 |
| 8 | Bahia | 31 | 48.7 | 44 | 42.7 | 39 | 46.9 | 49 | +2.1 |
| 9 | Vitória | 30 | 30.5 | 33 | 43.6 | 44 | 34.3 | 36 | +1.7 |
| 10 | Santos | 31 | 41.1 | 48 | 38.2 | 46 | 44.2 | 45 | +0.8 |
| 11 | Grêmio | 31 | 32.4 | 34 | 51.2 | 44 | 32.1 | 31 | -1.1 |
| 12 | Botafogo | 31 | 39.2 | 44 | 42.8 | 48 | 40.8 | 39 | -1.8 |
| 13 | Mirassol | 31 | 41.2 | 36 | 47.8 | 44 | 38.9 | 36 | -2.9 |
| 14 | São Paulo | 31 | 45.8 | 36 | 37.5 | 35 | 46.4 | 42 | -4.4 |
| 15 | Bragantino | 31 | 46.3 | 39 | 41.1 | 36 | 46 | 41 | -5 |
| 16 | Corinthians | 30 | 28 | 31 | 33.3 | 38 | 37.6 | 32 | -5.6 |
| 17 | Remo | 31 | 35.1 | 34 | 45.9 | 49 | 35 | 26 | -9 |
| 18 | Internacional | 31 | 41.5 | 33 | 38.8 | 40 | 44.1 | 32 | -12.1 |
| 19 | Chapecoense | 30 | 33.7 | 30 | 52.8 | 62 | 31.4 | 18 | -13.4 |
| 20 | Vasco da Gama | 30 | 52 | 36 | 32.9 | 43 | 50.4 | 35 | -15.4 |