Sports Analytics
Predict the Brasileirão Final Table with xG
A reproducible, source-cited forecast of the Série A table, title race, qualification places, and relegation risk using xG, Poisson scoring, and 10,000 season simulations.
The process
Work it in this order.
- Fix the Série A season, cutoff date, timezone, and last completed match included. Capture the current table from the CBF as the authority for points, matches, wins, goals, and deductions; cross-check it against UOL, Goal, Aqui Esportes, or Estadão and resolve every mismatch.
- Collect one consistent xG source for every completed league match. Prefer StatZ and record its timestamp and coverage; if unavailable, use authorized Sportmonks fixture xG or FOX Sports as a public fallback. Never merge providers. Aggregate each club's home and away xG and xGA per match and list missing fixtures.
- Build the remaining fixture list from ESPN's Brasileirão calendar by team, then reconcile every match, home-away assignment, postponement, and venue change against the CBF competition page and current detailed-table PDF. Normalize club names and prove completed plus remaining fixtures match the official schedule.
- Estimate expected goals for each remaining match with venue-specific rates. Divide each club's home or away xG and xGA per match by the corresponding league average to obtain attack strength and defensive weakness. Shrink each rate toward the league mean with five league-average pseudo-matches, then compute the two Poisson means from league scoring rates, those strengths, and observed home advantage. Publish every formula and parameter.
- Run 10,000 simulations of all remaining fixtures with a declared deterministic seed. Draw both scores from their Poisson means, add results to the verified table, and rank clubs with the official CBF tie-break order. Use an explicit scenario for continental places that depend on cup outcomes.
- Report mean and median final points, mean and most likely position, a 5th-to-95th percentile position range, and probabilities for the title, each declared continental band, and relegation. Check mutually exclusive probabilities against rounding tolerance and show sensitivity to xG source and shrinkage.
- Compare actual goals and points with xG, xGA, xGD, and model-implied points. Describe overperformance and underperformance rather than asserting luck, and discuss sample size, schedule strength, injuries, promoted clubs, and missing data.
Bring this
Inputs the cat will ask for.
- Série A season and cutoff date, or permission to use the current season and latest completed round
- Available StatZ or Sportmonks xG access, or permission to use the documented public fallback
- Desired qualification scenarios and output language
- Optional random seed or permission to use a declared deterministic default
Guardrails
The boundaries travel with the prompt.
- Present results as estimates with an as-of timestamp, source coverage, assumptions, and uncertainty; never as certain outcomes.
- Do not present the forecast as betting advice, recommend wagers, or optimize for odds.
- Do not mix xG providers or silently substitute goals, shots, or another competition for missing xG.
- Do not bypass paywalls, authentication, robots restrictions, or API terms, and never request API tokens in chat.
- Use the official CBF regulation for tie-breaks and qualification rules; state any cup-dependent slot scenario.
- Use lucky and unlucky only as accessible labels for measured overperformance and underperformance, not as causal findings.
- Keep postponed, abandoned, awarded, and venue-switched matches explicit instead of guessing their status.
Done means
A checkable finish.
All clubs and remaining fixtures reconcile to one dated official snapshot; one documented xG provider covers the modeled sample or its gaps are explicit; formulas, shrinkage, home advantage, seed, and tie-breaks are reproducible; 10,000 simulations yield a complete forecast with validated probability totals, sensitivity notes, and a qualified overperformance analysis.
Sources
Where this process came from.
- www.cbf.com.br/futebol-brasileiro/tabelas/campeonato-brasileiro/serie-a
- statz.ai/competitions/campeonato-brasileiro/standings
- docs.sportmonks.com/v3/tutorials-and-guides/tutorials/expected/includes
- www.espn.com.br/futebol/calendario/_/liga/bra.1/brasileiro
- www.foxsports.com/soccer/brazil-serie-a/team-stats
- www.uol.com.br/esporte/futebol/campeonatos/brasileirao/
- aquiesportes.com.br/futebol/tabela-do-brasileirao/
- www.goal.com/br/serie-a/tabela-de-classifica%C3%A7%C3%A3o/scf9p4y91yjvqvg5jndxzhxj
- doi.org/10.1111/j.1467-9574.1982.tb00782.x
Sources establish the workflow pattern. Reddit and community posts, where present, are treated as practitioner anecdotes rather than universal facts.