EPL Premier League
Your matchups

Pick a fixture, run the simulator, and explore the pitch in detail.

156
Sims today
1
Live fixture
+12%
Edge vs world
68%
Win rate
engine.py · physics.py · tactics.py · sim/state

SoccerSimulator

90′ match · 5767 sim frames @ 24 FPS · 14 styles in STYLE_PROFILES · 63 TEAM_STYLE_MAP entries

ARS · Arteta positional CHE · Vertical runners snapshot_state
Live EPL world 6,859 total EPL sims 1,737 today 6,848 server background 15 in flight 22 matchups tracked
Your most simulated
CHE at ARS 9 runs
Top score 0-1 (33.3%) · last run 2026-07-02 02:13
Where you differ most from the world
CHE at ARS Very different
You: 0-1 · world: 2-2 (11.1%)
Most popular globally
CHE at ARS 1,745 runs
Top world score 2-2 (11.1%)

Your matchups

You your simulations World everyone’s simulations
World result
Home Away Src Sims W D L Win% Notes Action
ARS Ars vs Che CHE You 9 0 4 5 0
Training stack points toward Arsenal.Useful edge, but still close enough to respect the runner-up (31%). ▼11%
Run Details
Wld 1.7k 635 698 412 36
Home Away Src Sims W D L Win% Notes Action
No matchups.
Showing 1 matchups · world data refreshes live Pep Guardiola · EPL UI judge
Scoutics
1 sims tracked
EPL Live · updating
Your
matchups
1 fixture queued. Your model is tracking a -36% edge vs the world consensus across 6,859 simulations.
Start simulating
World consensus
Live · updating
6,859
Sims completed
1
Fixture
-36%
Edge vs world
0%
Win rate
Top picks
Ars vs Che
9 sims · W 0 · D 4 · L 5
0%
Trending sims
Edge 0%
Ars vs Che
W 0 · D 4 · L 5
Standings
1
Chelsea
P 1 Pts 31
D W W D W
2
Arsenal
P 1 Pts 30
D L L D L
Picks two different EPL clubs and resets formations to their defaults.

Arsenal vs Chelsea

Score
0 - 2
Probabilities
0.309 / 0.489 / 0.202
xG
1.36 - 1.13
Manual simulation Edit teams, shapes, then run

Loaded player data overview

Source: repo.fpl(latest season snapshot)
Latest season in CSV: 2025
Snapshot rule: latest available row per player for each selected team
ARS
Players shown11
Avg price6.9
Avg xG2.78
Avg xA1.92
Avg points102.3
Matchup totals
Players shown22
Avg price6.5
Avg xG3.29
Avg xA2.04
Avg points95.05
CHE
Players shown11
Avg price6.1
Avg xG3.81
Avg xA2.16
Avg points87.8
LINEUPS
ARS
4-3-3
Arteta positional
CHE
4-2-3-1
Vertical runners
1 David Raya Martín
2 Jurriën Timber
3 Gabriel dos Santos Magalhães
4 William Saliba
5 Piero Hincapié
6 Martín Zubimendi Ibáñez
7 Declan Rice
8 Bukayo Saka
9 Viktor Gyökeres
10 Gabriel Fernando de Jesus
11 Kai Havertz
1 Robert Lynch Sánchez
2 Marc Cucurella Saseta
3 Wesley Fofana
4 Jorrel Hato
5 Reece James
6 Moises Caicedo
7 Andrey Nascimento dos Santos
8 Pedro Lomba Neto
9 Enzo Fernández
10 Cole Palmer
11 Joao Pedro
MATCH STATS
0% 0%
POSSESSION %
0 SHOTS 0
0 ON TARGET 0
1.36 xG 1.13
0 PASSES 0
2.78 AVG xG 3.81
1.92 AVG xA 2.16
102.3 AVG PTS 87.8
£6.9m AVG PRICE £6.1m

Live simulation stats

Updates live as the match evolves.
Attack / penetration
Home AttackStyle
Away AttackStyle
Home Penetration
Away Penetration
Home Defense Style
Defense / build / transition
Away Defense Style
Home Build Style
Away Build Style
Home Transition
Away Transition

Loaded player data overview

Source: repo.fpl(latest season snapshot)
Latest season in CSV: 2025
Snapshot rule: latest available row per player for each selected team
ARS
Players shown11
Avg price6.9
Avg xG2.78
Avg xA1.92
Avg points102.3
Live match stats
Stat ARS CHE
Possession0%0%
Shots0 (0)0 (0)
Passes0 (0%)0 (0%)
Fouls00
Goals00
CHE
Players shown11
Avg price6.1
Avg xG3.81
Avg xA2.16
Avg points87.8

Home player phases

Color-coded live phase tracking.

Away player phases

Color-coded live phase tracking.
PLAYER STATS

ARS player stats

Click any column header to sort.
# Name Pos $ Min St Pts G A CS xG xA Inf IQ Thr
1 David Raya Martín GK 6.0 2700 30 122 0 0 14 0.00 0.06 14.2 1.1 0.0
2 Jurriën Timber DEF 6.3 2415 27 148 3 6 13 4.71 1.52 18.3 14.9 13.0
3 Gabriel dos Santos… DEF 7.1 2075 23 164 3 4 13 1.87 1.59 28.9 4.6 8.5
4 William Saliba DEF 6.1 1984 23 96 1 0 10 0.88 0.61 18.1 5.7 3.3
5 Piero Hincapié DEF 5.1 1483 17 70 1 1 4 0.33 1.35 21.8 9.6 3.2
6 Martín Zubimendi I… MID 5.2 2524 29 114 5 1 14 2.67 2.07 19.0 11.4 8.7
7 Declan Rice MID 7.5 2490 28 160 4 9 13 2.99 6.29 26.0 31.4 9.6
8 Bukayo Saka MID 9.8 1905 21 130 6 8 9 6.84 5.66 25.0 32.9 34.3
9 Viktor Gyökeres FWD 8.8 1859 23 94 10 0 10 8.23 1.76 18.1 10.2 28.5
10 Gabriel Fernando d… FWD 6.4 304 2 17 2 0 0 1.75 0.19 29.8 7.4 61.3
11 Kai Havertz FWD 7.3 201 2 10 0 1 2 0.31 0.06 15.9 14.9 20.1

CHE player stats

Click any column header to sort.
# Name Pos $ Min St Pts G A CS xG xA Inf IQ Thr
1 Robert Lynch Sánch… GK 4.9 2344 27 97 0 1 9 0.00 0.04 23.7 1.9 0.0
2 Marc Cucurella Sas… DEF 6.0 1896 22 91 1 3 9 1.64 2.88 20.6 18.8 9.2
3 Wesley Fofana DEF 4.4 1101 12 50 0 1 4 0.50 0.55 26.6 3.8 2.8
4 Jorrel Hato DEF 4.6 540 5 10 0 0 0 0.30 0.41 15.9 11.2 4.0
5 Reece James DEF 5.6 1802 19 111 2 6 8 0.90 2.69 21.4 20.7 4.9
6 Moises Caicedo MID 5.7 2044 23 93 3 1 6 1.21 1.88 21.0 12.2 4.6
7 Andrey Nascimento … MID 4.5 964 10 31 0 0 1 1.70 0.79 14.0 11.8 5.7
8 Pedro Lomba Neto MID 7.0 2138 24 106 5 5 11 4.27 5.64 18.6 28.8 18.0
9 Enzo Fernández MID 6.7 2397 27 125 8 4 8 9.93 5.64 24.3 27.9 23.1
10 Cole Palmer MID 10.6 1236 16 92 9 2 3 8.25 1.48 31.5 17.4 29.5
11 Joao Pedro FWD 7.6 2140 25 160 14 9 10 13.18 1.72 29.9 17.2 32.7
After The Stadium

How the Match Simulator turns data into a 90-minute control problem

The stadium shell is the visual layer. Under it, Scoutics builds a state vector from squad strength, formations, tactical style priors, venue context, and live player data, then advances the match frame by frame with a learned decision layer and a deterministic physics engine.

State Vector

Data enters as a structured football state

Every frame carries the ball, carrier, lane occupation, stamina, tactical role locks, and restart context. That means the engine reasons over football information, not only over visuals.

s_t = [ball_xy, carrier, formation, style, fatigue, restart, stadium, player_traits]
The venue choice shapes rendering and match context, while squad and FPL-derived traits shape the decision space.
Reinforcement Learning

The policy layer optimizes future reward, not only the next touch

The RL component learns that a good action is one that helps now and improves the future state. Pressing, buildup, and transition choices are scored by their long-run value, not by a single-frame heuristic.

Q(s, a) ← r + γ max_a' Q(s', a')
In plain terms: value an action by immediate reward r plus the discounted quality of the next state.
Engine Dynamics

Frame updates follow a data-driven transition function

Once an action is chosen, the simulator updates the world through player motion, ball physics, fouls, collisions, role intent, and tactical constraints. That creates the next state the policy will observe.

s_{t+1} = f(s_t, a_t, ε_t)
The noise term ε captures uncertainty: deflections, loose touches, interception windows, and other football chaos.
Outcome Model

Probabilities emerge from repeated state evolution

Match outcome estimates are not static odds pasted onto the page. They are generated from the same engine that drives the animation, then summarized into result and xG-style forecasts.

P(result) ≈ (1 / N) Σ 1{outcome_i = result}
Repeated simulations let the app compare model belief to market belief, which is where EV and pricing analysis begin.