Skip to content
Supported

Do more shots mean a better attack?

Shots get dismissed as a vanity stat. Over 5,877 Scottish Premiership matches, the side with more shots won more than twice as often as it lost. But the side with more shots and fewer on target lost more than half the time.

Beginner

Contents

The claim

"More shots means a better attack."

It's the simplest attacking number there is, and it turns up on every match graphic. The side that shoots more is supposed to be the side doing the attacking.

Why people believe it

You can't score without shooting, so more shots should mean more goals. But there's a well-worn counter-argument: shots are a vanity stat. A team can pepper the stand from 30 yards all afternoon and lose 1–0 to a side that had two chances and took one. Everyone has seen that match. So which is it?

The data

Every Scottish Premiership match from 2000/01 to 2025/26 that records shots and shots on target: 5,877 matches, from football-data.co.uk. Blocked shots count as shots but not as on target.

The method

Two tests:

  1. In a single match: when one side has more shots than the other, how often does it win, draw or lose?
  2. Over a season: do the teams that shoot most also score most?

Then the same again with shots on target.

The evidence

In a match, more shots usually wins

Level 692 team-matches35.3%29.5%35.3%
1–4 more 2,37844.5%26.2%29.3%
5–9 more 1,88155.8%23.0%21.3%
10+ more 1,27271.9%18.6%
Won Drew Lost. How a side finished, by how many more shots it had than the opposition. Scottish Premiership, 2000/01 to 2025/26.

Across all 5,531 cases where one side outshot the other, it won 54.6% and lost 22.0%: two and a half wins for every defeat. The bigger the shot advantage, the better it gets. Ten or more extra shots and the side lost fewer than one match in ten.

On target tells you more

Count only shots on target and the picture sharpens. The side with more shots on target won 61.3% and lost 15.2%.

And here is the vanity-stat match everyone remembers. When a side had more shots but fewer on target, it lost 55% of the time and won only 19%. Shooting a lot and hitting the target rarely is a losing combination.

Over a season, the shooters are the scorers

Over a whole season the link gets much stronger, because the luck of individual matches evens out. Across 310 team-seasons, a team's shots per game and its goals per game have a correlation of 0.78. For shots on target it's 0.85.

In plain football

  • A correlation runs from 0 (no link at all) to 1 (a perfect straight line).
  • 0.78 means the teams that shoot most are nearly always among the top scorers, with a few exceptions either way.
  • Shots on target at 0.85 is closer still. Where the shots go matters as well as how many there are.

Finishing still varies. The best-finishing side in these seasons, Celtic in 2005/06, scored with 23% of its shots. The worst, St Mirren in 2025/26, managed under 7%. But finishing varies around the number of shots; it rarely overturns it.

Verdict

Supported. Over a season, the sides that shoot most are almost always the sides that score most, and in a single match the side with more shots wins more than twice as often as it loses. The vanity-stat argument has a point, but it's about the kind of shot, not the number: shots on target are the better measure, and plenty of shots with few on target is a warning sign.

Caveats

  • Game state muddies single matches. A side that goes a goal up often sits back and lets the other side shoot. That makes the losing side's shot count look better than its football, and it weakens the match-level link.
  • Shots aren't chances. A tap-in and a 35-yard hopeful count the same. Expected goals (xG) weighs each shot by its quality, but these files don't include it.
  • Blocked shots count as shots but never as on target, so a side that shoots into a crowded box looks wasteful on target.
  • Scotland's top two clubs take a lot of shots and win a lot of games, which strengthens the season-level correlation.

Reproduce the analysis

The results files are published by football-data.co.uk. Download the Premiership file (SC0) for each season and save each under its own name, such as SC0_2425.csv; they aren't rehosted on this site. Then:

import csv, glob
from collections import Counter

more_shots, more_on_target = Counter(), Counter()
for path in glob.glob("SC0_*.csv"):
    with open(path, encoding="latin-1") as f:
        for r in csv.DictReader(f):
            if not all(r.get(c) for c in ("FTHG", "FTAG", "HS", "AS", "HST", "AST")):
                continue
            hg, ag, hs, as_, hst, ast = (int(r[c]) for c in ("FTHG", "FTAG", "HS", "AS", "HST", "AST"))
            for gf, ga, sf, sa, tf, ta in ((hg, ag, hs, as_, hst, ast), (ag, hg, as_, hs, ast, hst)):
                result = "won" if gf > ga else "drew" if gf == ga else "lost"
                if sf > sa:
                    more_shots[result] += 1
                if tf > ta:
                    more_on_target[result] += 1

for name, c in (("more shots", more_shots), ("more on target", more_on_target)):
    n = sum(c.values())
    print(name, n, {k: f"{v / n:.1%}" for k, v in c.items()})

Spotted a flaw in the method, or have a football claim you'd like tested? Suggest it on LinkedIn, where discussion of these articles happens.

Get new pieces by email

An email when something new is published, and the occasional update. Unsubscribe in one click. How your email is used.