xgEdge

Player

Thierno Ballo

Forward Millwall → Championship · 2025/2026

Goals

1

from 4.45 xG

Assists

5

from 2.69 xA

xGI

7.14

0.35 per 90

Minutes

1,847

31 appearances

A per-90 figure needs 270 minutes — three full matches — so below that it is left off.

What Thierno Ballo's numbers say

Thierno Ballo has 1 goal from 4.45 expected goals, −3.45 below expected. He has 2.69 expected assists against 5 assists, +2.31 above expected. Across 1,847 minutes, his 7.14 expected goal involvement comes to 0.35 per 90.

Actual vs expected

Championship · 2025/2026

Finishing

Goals 1
xG 4.45
Goals − xG
−3.45
Shots
35
xG/shot
0.13
Conversion
2.9%

Creativity

Assists 5
xA 2.69
Assists − xA
+2.31
Key passes
21
Big chances created
6

A gap inside 1.50 either way is left uncoloured: over one player's season that is the width of the sample rather than a distance from the chances.

Where he ranks in Championship · 2025/2026

Metric Value Rank
Season totals
Goals 1 #253 of 749
xG 4.45 #95 of 617
xA 2.69 #118 of 749
xGI 7.14 #106 of 617
Shots 35 #132 of 749
Per 90
xG/90 0.22 #111 of 520
xA/90 0.13 #112 of 568
xGI/90 0.35 #108 of 520
Shots/90 1.71 #162 of 568

Per-90 ranks include players with at least 450 minutes. Season totals rank everyone who has appeared.

At Millwall · 2025/2026

Ranked among the 32 players who have appeared for Millwall.

  1. #4 xG 4.55
  2. #7 xA 2.69
  3. #7 xGI 7.24
  4. #11 Goals 1

Summed from the per-match feed, as the squad table is. The band's expected goals are this site's own shot-by-shot figure, so the two can differ.

View Millwall squad stats →

Recent form

Counted over his appearances, not his club's matches · Championship 2025/2026

Goals
0
xG
1.02
Assists
1
xA
0.61
xGI
1.63
xGI/90
0.41
Shots/90
2.27

Over his last 5 appearances · 5 started · 357 minutes

Chances, match by match

Every match he played · Championship 2025/2026 · xG from this site's shot-by-shot model, as in the band

Over these 31 matches · xG 4.45 · xA 2.69 · xGI 7.14 · Goals 1 · Assists 5

Sat 13/09 · vs Charlton Athletic, Away, D 1–1 · 10 min · xG 0.00 · xA 0.00 · xGI 0.00 · Goals 0 · Assists 0 Mon 22/09 · vs Watford, Home, W 1–0 · 78 min · xG 0.11 · xA 0.03 · xGI 0.14 · Goals 0 · Assists 0 Sat 27/09 · vs Swansea City, Away, D 1–1 · 68 min · xG 0.04 · xA 0.02 · xGI 0.06 · Goals 0 · Assists 0 Sat 04/10 · vs West Bromwich Albion, Home, W 3–0 · 85 min · xG 0.04 · xA 0.10 · xGI 0.14 · Goals 0 · Assists 1 Sat 18/10 · vs Queens Park Rangers, Away, W 2–1 · 74 min · xG 0.00 · xA 0.01 · xGI 0.01 · Goals 0 · Assists 0 Tue 21/10 · vs Stoke City, Home, W 2–0 · 90 min · xG 0.41 · xA 0.94 · xGI 1.35 · Goals 0 · Assists 2 Sat 25/10 · vs Leicester City, Home, W 1–0 · 89 min · xG 0.00 · xA 0.04 · xGI 0.04 · Goals 0 · Assists 0 Sat 01/11 · vs Oxford United, Away, D 2–2 · 90 min · xG 0.79 · xA 0.01 · xGI 0.80 · Goals 1 · Assists 0 Tue 04/11 · vs Birmingham City, Away, L 0–4 · 72 min · xG 0.00 · xA 0.01 · xGI 0.01 · Goals 0 · Assists 0 Sat 08/11 · vs Preston North End, Home, D 1–1 · 89 min · xG 0.10 · xA 0.02 · xGI 0.12 · Goals 0 · Assists 0 Sat 22/11 · vs Portsmouth, Away, L 1–3 · 81 min · xG 0.00 · xA 0.05 · xGI 0.05 · Goals 0 · Assists 0 Wed 26/11 · vs Sheffield Wednesday, Home, W 1–0 · 61 min · xG 0.68 · xA 0.00 · xGI 0.68 · Goals 0 · Assists 0 Sat 29/11 · vs Southampton, Home, W 3–2 · 12 min · xG 0.00 · xA 0.09 · xGI 0.09 · Goals 0 · Assists 1 Sat 06/12 · vs Bristol City, Away, W 1–0 · 17 min · xG 0.03 · xA 0.05 · xGI 0.08 · Goals 0 · Assists 0 Wed 10/12 · vs Derby County, Away, D 1–1 · 89 min · xG 0.18 · xA 0.24 · xGI 0.42 · Goals 0 · Assists 0 Sat 13/12 · vs Hull City, Home, L 1–3 · 62 min · xG 0.00 · xA 0.05 · xGI 0.05 · Goals 0 · Assists 0 Sat 20/12 · vs Blackburn Rovers, Away, L 0–2 · 45 min · xG 0.00 · xA 0.00 · xGI 0.00 · Goals 0 · Assists 0 Fri 26/12 · vs Ipswich Town, Home, D 0–0 · 18 min · xG 0.00 · xA 0.00 · xGI 0.00 · Goals 0 · Assists 0 Mon 29/12 · vs Bristol City, Home, W 2–1 · 17 min · xG 0.05 · xA 0.04 · xGI 0.09 · Goals 0 · Assists 0 Thu 01/01 · vs Southampton, Away, D 0–0 · 90 min · xG 0.88 · xA 0.02 · xGI 0.90 · Goals 0 · Assists 0 Sun 04/01 · vs Swansea City, Home, W 2–1 · 77 min · xG 0.00 · xA 0.01 · xGI 0.01 · Goals 0 · Assists 0 Sat 17/01 · vs Watford, Away, W 2–0 · 66 min · xG 0.00 · xA 0.01 · xGI 0.01 · Goals 0 · Assists 0 Tue 20/01 · vs Coventry City, Away, L 1–2 · 74 min · xG 0.06 · xA 0.00 · xGI 0.06 · Goals 0 · Assists 0 Sat 31/01 · vs Sheffield United, Home, D 1–1 · 13 min · xG 0.07 · xA 0.00 · xGI 0.07 · Goals 0 · Assists 0 Sat 21/02 · vs Portsmouth, Home, L 1–3 · 9 min · xG 0.00 · xA 0.34 · xGI 0.34 · Goals 0 · Assists 0 Sat 07/03 · vs Hull City, Away, W 3–1 · 14 min · xG 0.00 · xA 0.00 · xGI 0.00 · Goals 0 · Assists 0 Fri 10/04 · vs West Bromwich Albion, Away, D 0–0 · 73 min · xG 0.11 · xA 0.38 · xGI 0.49 · Goals 0 · Assists 0 Sat 18/04 · vs Queens Park Rangers, Home, W 2–0 · 70 min · xG 0.06 · xA 0.03 · xGI 0.09 · Goals 0 · Assists 0 Tue 21/04 · vs Stoke City, Away, W 3–1 · 80 min · xG 0.40 · xA 0.10 · xGI 0.50 · Goals 0 · Assists 1 Fri 24/04 · vs Leicester City, Away, D 1–1 · 72 min · xG 0.13 · xA 0.08 · xGI 0.21 · Goals 0 · Assists 0 Sat 02/05 · vs Oxford United, Home, W 2–0 · 62 min · xG 0.33 · xA 0.02 · xGI 0.35 · Goals 0 · Assists 0

Every match

Every match he played · Championship 2025/2026 · 31 matches
W vs Oxford United 2–0 02/05/2026 · 62′ 0 G 0 A 0.33 xG 0.02 xA 0.35 xGI 4 sh D vs Leicester City 1–1 24/04/2026 · 72′ 0 G 0 A 0.13 xG 0.08 xA 0.21 xGI 1 sh W vs Stoke City 3–1 21/04/2026 · 80′ 0 G 1 A 0.40 xG 0.10 xA 0.50 xGI 2 sh W vs Queens Park Rangers 2–0 18/04/2026 · 70′ 0 G 0 A 0.06 xG 0.03 xA 0.09 xGI 1 sh D vs West Bromwich Albion 0–0 10/04/2026 · 73′ 0 G 0 A 0.11 xG 0.38 xA 0.49 xGI 1 sh W vs Hull City 3–1 07/03/2026 · 14′ 0 G 0 A 0.00 xG 0.00 xA 0.00 xGI 0 sh L vs Portsmouth 1–3 21/02/2026 · 9′ 0 G 0 A 0.00 xG 0.34 xA 0.34 xGI 0 sh D vs Sheffield United 1–1 31/01/2026 · 13′ 0 G 0 A 0.07 xG 0.00 xA 0.07 xGI 1 sh L vs Coventry City 1–2 20/01/2026 · 74′ 0 G 0 A 0.06 xG 0.00 xA 0.06 xGI 2 sh W vs Watford 2–0 17/01/2026 · 66′ 0 G 0 A 0.00 xG 0.01 xA 0.01 xGI 0 sh W vs Swansea City 2–1 04/01/2026 · 77′ 0 G 0 A 0.00 xG 0.01 xA 0.01 xGI 0 sh D vs Southampton 0–0 01/01/2026 · 90′ 0 G 0 A 0.88 xG 0.02 xA 0.90 xGI 4 sh W vs Bristol City 2–1 29/12/2025 · 17′ 0 G 0 A 0.05 xG 0.04 xA 0.09 xGI 1 sh D vs Ipswich Town 0–0 26/12/2025 · 18′ 0 G 0 A 0.00 xG 0.00 xA 0.00 xGI 0 sh L vs Blackburn Rovers 0–2 20/12/2025 · 45′ 0 G 0 A 0.00 xG 0.00 xA 0.00 xGI 0 sh L vs Hull City 1–3 13/12/2025 · 62′ 0 G 0 A 0.00 xG 0.05 xA 0.05 xGI 0 sh D vs Derby County 1–1 10/12/2025 · 89′ 0 G 0 A 0.18 xG 0.24 xA 0.42 xGI 2 sh W vs Bristol City 1–0 06/12/2025 · 17′ 0 G 0 A 0.03 xG 0.05 xA 0.08 xGI 1 sh W vs Southampton 3–2 29/11/2025 · 12′ 0 G 1 A 0.00 xG 0.09 xA 0.09 xGI 0 sh W vs Sheffield Wednesday 1–0 26/11/2025 · 61′ 0 G 0 A 0.68 xG 0.00 xA 0.68 xGI 2 sh L vs Portsmouth 1–3 22/11/2025 · 81′ 0 G 0 A 0.00 xG 0.05 xA 0.05 xGI 0 sh D vs Preston North End 1–1 08/11/2025 · 89′ 0 G 0 A 0.10 xG 0.02 xA 0.12 xGI 2 sh L vs Birmingham City 0–4 04/11/2025 · 72′ 0 G 0 A 0.00 xG 0.01 xA 0.01 xGI 0 sh D vs Oxford United 2–2 01/11/2025 · 90′ 1 G 0 A 0.79 xG 0.01 xA 0.80 xGI 3 sh W vs Leicester City 1–0 25/10/2025 · 89′ 0 G 0 A 0.00 xG 0.04 xA 0.04 xGI 0 sh W vs Stoke City 2–0 21/10/2025 · 90′ 0 G 2 A 0.41 xG 0.94 xA 1.35 xGI 4 sh W vs Queens Park Rangers 2–1 18/10/2025 · 74′ 0 G 0 A 0.00 xG 0.01 xA 0.01 xGI 0 sh W vs West Bromwich Albion 3–0 04/10/2025 · 85′ 0 G 1 A 0.04 xG 0.10 xA 0.14 xGI 2 sh D vs Swansea City 1–1 27/09/2025 · 68′ 0 G 0 A 0.04 xG 0.02 xA 0.06 xGI 1 sh W vs Watford 1–0 22/09/2025 · 78′ 0 G 0 A 0.11 xG 0.03 xA 0.14 xGI 1 sh D vs Charlton Athletic 1–1 13/09/2025 · 10′ 0 G 0 A 0.00 xG 0.00 xA 0.00 xGI 0 sh
Over these 31 matches 1,847′ 1 G 5 A 4.45 xG 2.69 xA 7.14 xGI 35 sh

Shot map

Shots placed in Championship, 2025/2026

Shots
35
Goals
1
xG
4.45
xG/shot
0.13
4' attempt · 3 m · 0.24 xG 5' attempt · 27 m · 0.01 xG 6' attempt · 3 m · 0.11 xG 6' attempt · 9 m · 0.10 xG 8' attempt · 9 m · 0.08 xG 11' goal · 5 m · 0.32 xG 13' attempt · 9 m · 0.08 xG 17' attempt · 12 m · 0.18 xG 23' attempt · 7 m · 0.37 xG 23' attempt · 9 m · 0.31 xG 27' attempt · 9 m · 0.03 xG 28' attempt · 19 m · 0.09 xG 31' attempt · 18 m · 0.04 xG 33' attempt · 12 m · 0.07 xG 33' attempt · 14 m · 0.05 xG 48' attempt · 16 m · 0.03 xG 49' attempt · 25 m · 0.02 xG 53' attempt · 3 m · 0.08 xG 55' attempt · 22 m · 0.02 xG 57' attempt · 7 m · 0.13 xG 57' attempt · 10 m · 0.31 xG 57' attempt · 9 m · 0.10 xG 61' attempt · 8 m · 0.12 xG 62' attempt · 13 m · 0.07 xG 62' attempt · 10 m · 0.06 xG 64' attempt · 10 m · 0.03 xG 66' attempt · 11 m · 0.06 xG 69' attempt · 8 m · 0.38 xG 74' attempt · 9 m · 0.05 xG 76' attempt · 20 m · 0.03 xG 76' attempt · 21 m · 0.11 xG 78' attempt · 5 m · 0.58 xG 84' attempt · 13 m · 0.09 xG 90' attempt · 9 m · 0.07 xG 90' attempt · 22 m · 0.05 xG

One dot per shot, placed where it was taken, sized by what the chance was worth. Filled dots are goals. Per-shot data exists for 19 competitions.

Career

Every season

Every season and competition on record — not only the season above.

2025/2026 This page Millwall Apps31 Goals1 Assists5 xGI7.14

League Championship

Minutes
1,847
xG
4.45
xA
2.69

Expected goals and assists are published for Championship. A dash is a competition that publishes neither, not a season without chances.

Full stats

2025/2026 · Championship

A dash is a figure the provider did not send; a nought is one it measured at nought.

Attacking

Goals
1
xG
4.45
npxG
—
Shots
35
Shots on target
12
Shot accuracy
34.3%
Conversion
2.9%
xG/shot
0.13

Goals, Shots, and Shots on target: summed from the per-match feed, this competition only, current to his last match. xG: summed from this site's shot-by-shot model. Shot accuracy, Conversion, and xG/shot: calculated here from the figures beside them.

Creativity

Assists
5
xA
2.69
Assists − xA
+2.31
Key passes
21
Big chances created
6

Assists, xA, Key passes, and Big chances created: summed from the per-match feed, this competition only, current to his last match. Assists − xA: calculated here from the figures beside them.

Possession

Touches
783

Touches: summed from the per-match feed, this competition only, current to his last match.

Other measured

5 figures
Appearances
31
Starts
23
Minutes
1,847
Goals + assists
6
Shots off target
16

Appearances, Starts, Minutes, and Shots off target: summed from the per-match feed, this competition only, current to his last match. Goals + assists: calculated here from the figures beside them.

About the data

Where every figure on this page came from, and how every figure calculated here was calculated.

In the competitions the per-match feed covers, every count — appearances, starts, minutes, goals, assists, shots and the rest — is summed from the matches each night, and the provider's season line supplies only what the matches do not carry, its percentages and its pass, duel, dribble and discipline figures, bought in full every 21 days, with every squad checked every 7 days for players the competition has not seen before; in every other competition the season line is the only source, and it is bought in full every 7 days.

Three sources

The provider's season line
One record per player per competition-season, refreshed only when it is bought again, so it can stand a few rounds behind the matches. The source of the rating, duel, dribble and pass figures in Full stats, which nothing else carries, and of the counts in a competition-season the per-match feed holds no match of his in. Full stats prints the day it was fetched.
The provider's per-match feed
One record per player per match, kept current for 19 competitions, each from the season its coverage began. The source of xA, npxG and touches, of xG where there is no shot feed, and of appearances, starts, minutes, goals, assists, shots, shots on target, key passes and big chances created wherever it holds a match he played. Summed over one competition-season at a time.
This site's shot-by-shot model
An xG value for every shot, for the same competitions. The source of xG wherever it exists, and of the shot map.

Which xG

Where a competition has the shot feed, xG is this site's sum over his shots; otherwise it is the provider's per-match figure. The two are slightly different definitions of expected goals, so they are never mixed inside one competition-season.

On this page, xG is this site's shot-by-shot figure — Championship has the shot feed.

Which counts

Appearances, starts, minutes, goals, assists, shots, shots on target, key passes and big chances created are summed from the per-match feed over that competition's fixtures wherever it holds a match he played in that competition-season, and are the provider's season line only where it holds none. One source for all nine together, chosen once per competition-season rather than figure by figure, so a count is never set against an expected figure summed on a different day.

On this page, the counts are summed from the per-match feed — it holds his Championship matches this season. No season line has been bought for him in this competition-season yet, so Full stats carries only the figures the per-match feed does.

Rules

A per-90 figure about him needs 270 minutes — three full matches. A per-90 league rank needs 450 minutes, because a rank sets him against everybody else in the competition and a short run at the top of a table displaces a player with a whole season behind him.

A dash is a figure nobody measured; a nought is a figure measured at nought. A sum over no rows is a dash, and a division by nothing is a dash rather than zero.

Every section above Every season counts one competition in one season — Championship 2025/2026 — and only the matches he played. Every season counts his whole career, every competition. No figure is summed across competitions.

Formulas

xG
The sum of this site's per-shot xG over his shots in this competition-season where it has the shot feed; otherwise the sum of the provider's per-match xG.
xA
The sum of the provider's per-match xA over his matches in this competition-season.
xGI
xG + xA. A dash unless both exist.
Goals − xG
Goals − xG, signed.
Assists − xA
Assists − xA, signed.
Per 90
Figure × 90 ÷ minutes. A dash below the per-90 floor.
xG/shot
xG ÷ shots. A dash with no shots.
Conversion
Goals × 100 ÷ shots. A dash with no shots.
Shot accuracy
Shots on target × 100 ÷ shots. A dash with no shots.
npxG
The sum of the provider's per-match non-penalty xG. A dash for the season if any match in it lacks the figure.
Non-penalty goals
Goals − penalty goals.
NP goals − npxG
(Goals − penalty goals) − npxG, signed.
Touches
The sum of the provider's per-match touches. A dash for the season if any match in it lacks the figure.
Map xG/shot
The xG of the shots drawn on the map ÷ the number drawn. Shots without coordinates are left out of both.
Ranks
Highest first; tied players share the higher place and the next is skipped — 1, 2, 2, 4. A player with no figure for a metric is left out of its ranking rather than placed last.

How the site's expected-goals model works