matchanalyzer
xG · IPO

Match analysis belongs on the touchline

Tap the spot the shot came from: MatchAnalyzer works out the expected goal and awards Offensive Danger Index points to both teams. By the final whistle the report is already there.

Works offline No account Data can be exported between devices
20:47▮▮▮ ▮
Team A vs Team B
Team A
41
xG 1.84 · 2 goals
IPO
Team B
26
xG 0.97 · 1 goal
Age group U15/U14 1st half2nd half
PitchSummary
Attacking team
Team ATeam B
Team A shot map: nine shots in the attacking half, coloured by danger
On the pitch: shots by Team A (9)
High danger Good chance Fair Difficult Goals Assist
Occasion type (after the tap)
Standard Clear scoring chance Cross met with a header
Where it gets used

Built for whoever follows the team from the touchline.

Every extra tap during the match is an action at risk of slipping by. That is why recording an event takes a few taps, the targets are large and the screen stays readable in bright sun.

One tap on the pitch

Where you tap is where the shot came from. From that the app derives distance and goal angle, then asks only what matters: who shot, how it ended, whether there was an assist.

xG tuned for youth football too

A logistic model on distance and angle, with an age-based regression scale: the same shot is not worth the same in a first team and in a U15 side, and the maths accounts for it instead of ignoring it.

IPO for both teams

The official Offensive Danger Index catalogue, with its weights in place. Actions without a shot — corners, crosses, promising moves — are recorded with a quick button that answers with a buzz and a message: you know you pressed it, and you can undo it straight away.

First and second half kept apart

Every event knows which half it belongs to, and the current half stays set even if you close the app at the break. Summary and report show first, second and total: you see at once in which half the match turned.

Team report as an A4 PDF

A single page, ready to print or send to the coach: the match numbers, the split by half, the shot map and the IPO summary. Or export the pitch image alone, to fire off in a chat.

No network, no risk

No signal? MatchAnalyzer does not need one: everything is saved on the device as you record it.

Automatic backup (Android only)

At the end of every match the app saves a copy of all your data by itself, in a folder that stays where it is even if the app gets uninstalled by mistake. The last ten copies are kept there: any one of them restores everything. On iPhone that folder does not exist: there you make a backup whenever you want, from the Import/Export page.

Screens

From live recording to the full-time report.

The screens show a sample match with made-up data.

09:12▮▮▮ ▮
Dashboard
4
Teams
12
Matches
9
Completed
+ New match
Teams
Team A vs Team B
19/04/2026
LIVE
Team A vs Cormorants
12/04/2026
IPO 33–38
Swallows vs Team A
05/04/2026
IPO 21–45
Team A vs Seagulls
29/03/2026
IPO 40–29
DashboardRecent matches, with the live one in the spotlight.
21:34▮▮▮ ▮
Team A vs Team B
PitchSummary
By half (IPO · xG · goals)
HalfTeam ATeam B
1st half23 · 0.94 · 114 · 0.51 · 0
2nd half18 · 0.90 · 112 · 0.46 · 1
Total41 · 1.84 · 226 · 0.97 · 1
Age group Team ATeam B
Clear scoring chance21
Promising attack21
Shots inside the box32
Corner43
IPO TOTAL4126
Event log (23)↩ Undo
1H#23 Clear scoring chance · Team A · 9 · Goal 0.42 +10
2H#22 Corner · Team B +1
2H#21 Shot from outside · Team A · 7 · Saved 0.05 +1
1H#20 Wide free kick · Team A +2
Live summaryThe split by half, the IPO table and the event log: any row deletes on its own, and undo stays within thumb's reach.
22:05▮▮▮ ▮
Report ⇪ ✎
Team A vs Team B
19/04/2026 · home · League
Team A
41
IPO
Team B
26
IPO
xG 1.840.97
2–1
Goals
9–6
Shots
By half (IPO · xG · goals)
HalfTeam ATeam B
1st half23 · 0.94 · 114 · 0.51 · 0
2nd half18 · 0.90 · 112 · 0.46 · 1
Total41 · 1.84 · 226 · 0.97 · 1
Shot map
Shot map in the full-time report
Players — Team A
PlayerIPO xGGoalsAst.
9 · Striker170.712
10 · Playmaker110.382
7 · Winger80.441
Full-time reportTeam comparison, shot map and a team report you can export as an A4 PDF or an image.
The two indicators

xG and IPO measure different things, and the app keeps them apart.

xG says how likely that shot was to end up in the net. IPO counts how much danger a team produced overall, shots included. Together they tell you whether the result was deserved — and xG is tuned to hold up outside the first team too.

Pitch with the expected-goal heatmap and nine numbered shots: the closer to goal, the redder the colour

The danger scale

Every shot takes the colour of its xG band. The pitch background is that same scale applied to every point: it shows where shooting pays off before anyone has shot.

  • High danger
  • Good chance
  • Fair chance
  • Difficult
  • Unlikely
  • Where the pass came from (assist)

Designed for youth football as well

The expected-goal models around are calibrated on the adult game, and applying them as they are to an under-14 match inflates every number: the shot that is a real chance in a first team is far less of one at that age. MatchAnalyzer applies an age-band regression scale tied to the team's age group, so xG stays comparable with what you see on the pitch instead of promising goals that never arrive.

The age band belongs to the match: picking the team from the list proposes the right one, but you can still change it — even after kick-off, and in that case the shots already recorded are re-valued with the new yardstick. The correction is not uniform: it weighs more on difficult shots, where the gap between age groups really shows, and less on open-goal ones, which go in at any age.

  • First team / U19 / U18
  • U17 / U16
  • U15 / U14
  • U14 and below

The IPO catalogue

The categories are those of the Offensive Danger Index by Viscidi and Gagliardi, with the official weights the app applies by itself as you record. The rule of thumb: about 34 points equal one goal, and it is the key to reading the full-time IPO score.

Age groupHow it is recorded
Clear scoring chancetap the pitch
Penaltyquick button
Promising attackquick button
Shot inside the boxtap the pitch
Central free kickquick button
Cross met with a headertap the pitch
Wide free kickquick button
Shot from outside the boxtap the pitch
Cross with no shotquick button
Cornerquick button
Privacy

We collect nothing, because there is nowhere to send it.

MatchAnalyzer has no server, no accounts and no analytics. What you record stays in the phone's memory until you export or delete it yourself.

No account

No sign-up, no login, we never ask for an email address.

No tracking

No analytics, no crash reporting, no ads, no third-party SDKs.

Data stays local

Teams, players, matches and events live in the device's database.

Exports only when you ask

Backups, PDFs and images are produced when you ask for them, and you choose where they end up.

Read the full privacy notice