How to Actually Use the Method of Mesquita for Player Evaluation
Francisco Mesquita is a Brazilian researcher and statistician who developed a method for evaluating football players based on performance data. The method combines various statistical metrics — primarily expected goals (xG), expected assists (xA), and other advanced indicators — to produce a numerical profile of a player's contribution. It's widely discussed in Brazilian football analytics circles, particularly among clubs and media outlets that need a faster way to compare players across leagues.
The core of the francisco mesquita method
At its heart, the method takes raw match data and converts it into comparable values. The main output is usually a player's "expected contribution score," which accounts for both offensive and defensive actions weighted by their context. Here's how it generally works: you pull a dataset of matches, run the player's actions through a model that estimates the probability of each event leading to a goal or preventing one, and then aggregate those probabilities across a season or tournament. The result is a single number per player per position, which can then be used for transfer comparisons, contract negotiations, or scouting reports. Some implementations also factor in minutes played, league strength adjustments, and positional benchmarks so a fullback's score isn't directly compared to a striker's without normalization.
Getting the data and running the model
You don't need a custom-built platform to use this. Most implementations rely on publicly available datasets from sources like FBref, SofaScore, or Wyscout (the latter two require subscriptions). The key steps are: Step 1: Export match-by-match data for the players you're evaluating. Make sure the export includes events like shots, key passes, progressive carries, and defensive actions with timestamps and coordinates if possible. If you're only working with summary stats, the model loses a lot of resolution.
Step 2: Map each event to its expected value using an xG or xA model. There are open-source implementations of these models on GitHub — the most commonly referenced ones are derived from Under Armour's public xG model and the StatsBomb open data release. I've used both and the StatsBomb-derived one tends to align better with Brazilian league patterns because the training data includes more matches from smaller leagues. Step 3: Aggregate by player and normalize against positional averages. This is where most people mess up. If you skip the normalization step, you'll end up with strikers looking artificially valuable because they accumulate more shot events by nature of their position. Apply a z-score or percentile ranking within each position group before aggregating.
Step 4: Output a ranked list. Cross-reference with market value data from sites like Transfermarkt to see if the model's recommendations align with what the market actually pays. You'll find discrepancies that tell you where the market is inefficient — and that's usually where the method proves most useful.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Practical issues I ran into
When I first tried applying the method to the Campeonato Brasileiro, I hit a specific problem: the event data from free sources often mislabels defensive headers as clearances rather than blocks or intercepted crosses. This inflated the defensive contribution scores for center-backs who were actually just losing aerial duels repeatedly. The workaround was to filter out events where the defending team retained possession after the header and manually recode those as failed clearances instead. It took about three extra hours per season across a 380-match dataset, but the corrected numbers made significantly more sense when compared against video review. Another issue is that the method struggles with players who operate in multiple positions. A winger who drops into a half-space midfielder role during a match will have their events scattered across position buckets, diluting their true impact. The fix I used was to assign each player a primary position based on their average heat map and then only apply the positional normalization to events that fall within a reasonable distance of that primary role's typical zone. Events outside that zone get treated as "role-switch" actions and scored separately.
Common mistakes that make the method look bad
The biggest reason people dismiss the Method of Mesquita is that they use it incorrectly. Here are the errors I see most often: Using incomplete data. If you're only pulling goals and assists from a league database, you're not running the method — you're running something else entirely. The method requires event-level data. Without shots on target locations, pass completion under pressure, or defensive action coordinates, the model collapses into a basic counting stats exercise.
Ignoring sample size. A player who has only played 300 minutes in a season will have wildly volatile xG and xA numbers. I always set a minimum threshold of 900 minutes before including a player in the final rankings. Below that, the variance is too high to draw meaningful conclusions, regardless of what the raw numbers say. Comparing across leagues without adjustment. The difficulty coefficient of a league matters. A Brazilian Serie A player with an xG of 0.12 per 90 is not equivalent to a Serie A player with the same xG. The underlying quality of chances, defensive intensity, and pace of play differ enough that you need a league-strength multiplier. Most implementations use a simple scaling factor based on FIFA ranking or UEFA coefficient, but this is a rough approximation. A better approach is to build a separate model for each league and then calibrate them against each other using players who have competed in both.
When the method doesn't work
The Method of Mesquita has real limitations. It cannot account for leadership, tactical intelligence that doesn't show up in event data, or moments of individual brilliance that are outliers by definition. A player like Neymar or Paquetá will often score below their actual impact because the model averages out their chaotic, high-variance contributions. Similarly, defensive players whose value comes from positioning rather than tackles — someone like Marquinhos at PSG — may be undervalued because their best actions are the ones that never happen. If you need a quick overview of a player's statistical profile, this method is fine. If you're making a transfer decision based solely on it, you're not using the method correctly. I've seen clubs waste millions by trusting the output without cross-referencing with scouting reports and video analysis. The model is a starting point, not a conclusion.
For a more robust alternative that addresses some of these gaps, you could look into optical tracking data from providers like Sportvu or Second Spectrum, which capture player positioning and movement patterns beyond discrete events. That data is significantly more expensive and harder to work with, but it reduces the blind spots that the Method of Mesquita leaves open.
Bottom line on the francisco mesquita method
The method is a legitimate statistical tool when applied with the right data and the right caveats. It won't replace a scout who watches forty matches a season, but it will tell you which twenty matches that scout should prioritize watching. The value isn't in the final number — it's in using that number to ask better questions.