Soccer

Soccer analytics — shots, xG and per-90 splits.

A striker's shots and a substitute's are not the same fact. Every rate here is per 90 minutes and ranked against the player's own position group — shots, shots on target and expected goals, across Europe's major leagues and MLS. Free to browse.

Pick your baller.

Choose a league, choose a club, and see that club's season leaders arranged by their real registered position — free, no account. Every rate is per 90 minutes, ranked against every qualified player in that league.

6 club leagues: Premier League · La Liga · Serie A · Bundesliga · Ligue 1 · Major League Soccer.

How to play?This board is interactive
  1. Select your league.
  2. Select a club.
  3. Select a player card.
Pick your baller

Premier League

Manchester CitySeason leaders, by position — 2026/27

ForwardAS

Antoine Semenyo

450 min this season

GOALS0.4
xG0.1
SHOTS1.4
SOT0.8
KEY PASS2.0
CROSSES2.8

This is a season-leaders board, not a projected or confirmed lineup — a position with no qualifying player shows an empty slot rather than a guess. Rates are per 90 minutes from completed 2026/27 season games, minimum 450 minutes played. Full game logs, splits and projections live inside the dashboard.

Competitions

Leagues covered.

Each league is tracked separately, with its own fixtures, squads and per-90 tables. International competitions are kept apart from club form rather than blended into it.

  • EPLPremier League
  • LALLa Liga
  • SEASerie A
  • BUNBundesliga
  • LI1Ligue 1
  • MLSMajor League Soccer

Clubs include Arsenal, Liverpool, Manchester City, Real Madrid, Barcelona, Atlético Madrid, Juventus, Inter Milan, AC Milan, Bayern München, Borussia Dortmund, Paris Saint-Germain, Olympique de Marseille — alongside every other side in those competitions.

Methodology

Why soccer props need per-90 and position peers.

Soccer breaks the comparisons that work in other sports. Minutes vary enormously — a substitute may play twelve minutes, a starter ninety — so raw per-game totals mostly measure playing time. And a full-back taking one shot a game is doing something completely different from a striker taking one. McAnalytics normalises every volume stat to a per-90 rate and then ranks it against players in the same position group, so the comparison is to genuine peers rather than to the league at large.

  • Per 90Not per gameEvery volume stat — shots, key passes, crosses, dribbles, tackles — expressed per ninety minutes played, so a substitute and a starter can actually be compared.
  • 9 groupsPosition peersPercentiles are ranked inside a player's own position group rather than the whole league. Full-backs against full-backs, strikers against strikers.
  • 450 minQualification floorThe minimum playing time before a player enters the percentile pool. Below that, a rate is an artefact of a small sample rather than a description of a player.

Expected goals sit alongside the raw counts, because a player generating high-quality chances without finishing them and a player finishing everything from poor positions look identical in a goals column and are not remotely the same player. Where a stat is not tracked for a given competition it reads as a dash rather than a zero — an untracked stat and a genuine zero are different facts, and conflating them is how a model quietly goes wrong.

These figures are descriptive league rates and backtested model diagnostics, not a performance claim. Past results do not predict future outcomes. McAnalytics publishes statistical research for informational purposes only; nothing here is advice of any kind, and no model output should be treated as a prediction or a guaranteed result.

What's inside

Built for the European and MLS calendars.

Soccer is the one sport here with several leagues running at once and squads rotating through midweek fixtures. These are the reads the dashboard is organised around.

  1. Per-90 fingerprints

    Six volume stats as per-90 rates with the player's percentile against same-position peers.

  2. Hit rates by market

    Goals, shots, shots on target, assists, tackles and cards, measured against the posted line.

  3. Expected goals

    Per-shot and per-match xG alongside the raw finishing numbers, at both player and team level.

  4. Pre-match lineups

    Projected and confirmed elevens for the next fixture, so a rotation risk is visible before kickoff.

  5. Team offense and defense

    What each side generates and concedes, split by home and away and by recent form.

  6. Club and international

    League fixtures and national-team competitions kept separate, so a tournament sample is not blended into club form.

FAQ

Soccer questions.

Which leagues does McAnalytics cover?

The major European domestic leagues — the Premier League, La Liga, Serie A, the Bundesliga and Ligue 1 — plus MLS. International competitions are covered separately, so a national-team tournament sample is never blended into a player's club form.

Why per 90 minutes instead of per game?

Because minutes vary more in soccer than in any other sport. A substitute might play twelve minutes and a starter the full ninety, so a per-game average is mostly measuring playing time rather than performance. Normalising to a per-90 rate is what makes two players comparable at all.

What is a position group percentile?

Rather than ranking a player against everyone in the league, we rank them against players in the same broad role — full-backs against full-backs, central midfielders against central midfielders, strikers against strikers. A full-back in the 90th percentile for crosses is doing something meaningful; the same figure against all outfield players would tell you almost nothing.

Why do some stats show a dash instead of a number?

Because that stat is not tracked for that competition or that fixture. A dash means unknown, and a zero means it genuinely did not happen — treating those as the same thing would quietly corrupt every rate built on top of them, so they are kept distinct.

Does McAnalytics sell soccer picks?

No. There is no pick service. The product is a research dashboard — per-90 rates, xG, hit rates, lineups and team splits — presented so you can reach your own conclusion.

Do I need to pay to see soccer data?

Team tables, the competition list, league-wide player lists and fixture lists are free to browse without an account. Player-level game logs, hit rates, odds, fingerprints and lineups sit behind a paid plan.