How the numbers are used
Never mix models
API-Football, Sportmonks and American Soccer Analysis each produce their own expected-goals figures. They are peers. I never add them, average them, or reconcile them into a single number. The model-spread chart exists to show them side by side, with a band from the lowest complete model to the highest. If a source is missing, that tick is omitted. Pressure Index is not PPDA, and it is labelled as such wherever it appears.
Att, Cre, Pass, Def
Those four columns are house ratings, not a provider score. They bundle counting stats from the same event feed: goals, shots on target, shots and successful dribbles for Att; assists, key passes and dribble attempts for Cre; completion rate and pass volume for Pass; tackles, interceptions and duel win rate for Def. Goalkeepers skip Att and Cre. Their Def is saves against goals conceded. Expected goals never go into any of the four.
The baseline is that player's own league per-90 this season, not the squad and not the position. An average night sits at 6.5. The composite is squashed so a single goal cannot print 12 out of 10. Cells stay empty under 15 minutes in the match or 300 minutes on the season.
Team percentiles
Each bar is a rank among the 20 Brasileirão clubs this season, not a grade out of 100. The formula is the share of teams strictly worse. Rows stay inside one source. API-Football supplies xG created, xG conceded, shot quality and possession. American Soccer Analysis rows are omitted on this instance. I never average the two models into one percentile.
Player percentiles
Player bars use the same rank formula, inside a position group rather than the whole league. The cohort is every Brasileirão player with 900 or more minutes, split goalkeeper, defender, midfielder and forward from the event-feed position. A player under that minutes floor gets no percentile panel. ASA rows are omitted on this instance. Keepers get saves per 90 and goals prevented instead of the outfield set.
Expected points
xPts is a Poisson simulation from API-Football match xG for and against. Each finished match with both xG figures contributes a win, draw and loss probability, summed across the season. A match with no xG is counted at the actual points taken, not guessed. That is why a club can sit above or below the table without us mixing in American Soccer Analysis xPoints. Those two expected-points models are peers. I publish the API-Football one.
Worked example: a club with 34 points from 28.5 xPts has a diff of +5.5, meaning results have run about five and a half wins ahead of the chances the side has created. A club with 22 points from 30 xPts, diff -8, has taken roughly eight wins fewer than its process deserved. The Diff column on the table is exactly this gap, and it is the one worth reading first.
Pressure profiles
Preview pressure curves are Sportmonks Pressure Index, not PPDA and not line height. Each mapped match is bucketed into nine bands, then min-max normalised so the shape of the night is comparable when the raw index is not. The Flamengo curve averages the last six mapped matches, and only publishes with at least four. The sample count sits on the panel. Opponent curves stay off for now: Sportmonks coverage is not league-wide, and a one-sided profile would look more certain than it is.
Map confidence
Some player claims depend on a mapping between data sources. High-confidence maps are stated flatly. Medium-confidence maps get a marked qualifier. Low-confidence maps never surface. That gate lives in the component, not in editorial discipline.
What is not available
I do not have shot coordinates, per-shot records, big chances, field tilt, possession by third, true PPDA, line height, set-piece origin as a fact, salary or roster mechanics, weather, call-ups, or post-shot xG. If a panel would need those to be honest, it is not on the page.
Test your take
You type a claim. I judge it against the published match, player, and squad sheets at that moment. Holds up, sort of, or doesn't hold. Sort of means the numbers go both ways, or the take reaches past those sheets. I do not come back after the match to re-score it.
The verdict is produced by a language model reading the fact sheets, not a human editor. Conviction is a self-reported 0-100 slider you set before judging, not a measured quantity.
xG difference
Chances created minus chances allowed, in expected goals. The season figure averages only the matches with a published recap sheet, not every match played, so it can lag the actual fixture count by a match or two while the analysis catches up.
Match and season ratings
The Rating column on the squad table and the season rating on a player page are the data provider's own 1-10 score for a match or a season, built from their own weighting of counting stats. This is a different number from the Att, Cre, Pass, Def composite described above, which is ours. The two are built from overlapping but not identical inputs, they will sometimes disagree on the same player in the same match, and neither one corrects the other.
Squad table metrics
xG+xA/90 is expected goals plus expected assists, a rate per 90 minutes played. G−xG is goals scored minus expected goals, a season total rather than a rate, so it grows with minutes and should be read next to appearances. Tkl+Int is tackles plus interceptions per 90, and Blocks/90 is blocks per 90, both rates. Duels won is the share of contested balls won, a percentage rather than a count.
Form
The sparkline in the Form column is a player's last ten match ratings, oldest to newest. The line colour marks whether the most recent rating sits above or below the first one in the window, rising or falling, not whether the level is good or bad. The vertical range is scaled to each player's own ten matches, not shared across the column, so compare shape and direction between players rather than reading the height of the line as a value.
Defensive actions
Tackles, interceptions and blocks, added together. The position average it is compared against is drawn from the same cohort as the percentile panels above: every Brasileirãoplayer with 900 or more minutes, split goalkeeper, defender, midfielder and forward. A volume count rises for a player in a team that spends more of the match without the ball, so read it alongside a sense of how much defending that team's season has asked for.
Broad tier
Expected Flamengo is on the broad tier. American Soccer Analysis coverage is not available for Brasileirão, so goals-added and passing-over-expected percentiles are omitted rather than shown empty.