Are left-footed penalty takers worse?
Left-footers are supposed to be the weaker penalty takers. Across 1,557 penalties in StatsBomb's open data, left-footed and right-footed kicks went in exactly as often: 74.2% each, and the same in shootouts.
Beginner
Contents
The claim
Cameron, one of the site's followers, sent this one in: are left-footed penalty takers worse than right-footed ones?
"Never give a penalty to a left-footer." Left-footed takers, the argument goes, are less reliable from the spot: keepers face fewer of them and know their habits, or they just don't strike it as cleanly.
Why people believe it
Left-footers are rarer, so their penalties stand out. In this data about one penalty in four is taken with the left foot, by about one taker in five. A miss from a left-footer gets noticed and remembered as a left-footer's miss; a right-footer's miss is just a miss. That's a likely reason for the belief, not something the data below can prove.
The data
StatsBomb's free open data records every event in each match it covers, including every penalty: the foot used, what happened, and where the ball ended up. It covers 4,235 matches, men's and women's, from leagues, cups and international tournaments, and holds 1,557 penalties: 376 taken left-footed and 1,181 right-footed, including shootouts.
Data: StatsBomb open data. The analysis is ours, not StatsBomb's.
The Scottish results files used elsewhere on this site can't answer the question: they don't say which foot took a penalty, or that there was one.
The method
Four checks, each with a luck margin: how far a scoring rate could move by chance alone, given how many kicks it rests on (two standard errors). A gap smaller than the margin could be luck.
- Every penalty, left foot against right.
- In play and in shootouts separately, since a shootout is where the pressure is highest.
- Without Lionel Messi. The open data includes his whole Barcelona career, so one left-footer takes a big share of the left-footed kicks.
- Where the kick went. A taker's natural side is across his body: to his left for a right-footer, to his right for a left-footer. Do left-footers do worse when they go the other way?
The evidence
The two feet score exactly as often: 74.2% each. That's the whole myth answered in one line, but it's worth checking it isn't one player propping up the left foot.
Without Messi
Messi takes 83 of the 376 left-footed penalties, 22% of them, and scored 79.5%. Take him out and left-footers score 72.7% against 74.2% for right-footers. That gap, 1.5 points, is well inside the luck margin of ±5.8 points. So the left foot isn't being carried by Messi, though he does show how a single player can lift a whole group's figure in a small sample.
Shootouts and open play
| Left foot | Right foot | |
|---|---|---|
| In a match (1,194) | 76.3% | 76.5% |
| Shootouts (363) | 65.8% | 66.9% |
Penalties in shootouts go in less often for both feet, about ten points less, which fits the pressure. But the feet stay level: the shootout gap of 1.1 points is far inside its luck margin of ±12.2.
How the misses happen
Left-footers' penalties were saved 19.1% of the time, hit the post 3.7% and missed the target 2.9%. Right-footers' were saved 18.7%, hit the post 3.0% and missed 4.1%. No sign that keepers read left-footers better, or that left-footers miss the target more.
Where they aim
Left- and right-footers are mirror images of each other. Each puts just over half of his penalties to his natural side (52% for left-footers, 53% for right-footers) and the rest to the other side or down the middle.
For right-footers it makes no difference: 73.8% scored on the natural side, 74.1% on the other. Left-footers scored 77.8% on their natural side and 67.9% when they went the other way. That 9.9-point gap is right on the edge of its luck margin (±10.1), from only 131 kicks to the other side, so it's a hint, not a finding. It's one of several splits checked here, and one of them could look like that by chance. A bigger sample would settle it.
Verdict
Not supported. Left-footed and right-footed penalties go in equally often, 74.2% each, in matches and in shootouts. Leaving out Messi, the left foot's best-known taker, doesn't open a gap beyond luck, and keepers save left-footers' kicks no more often. If left-footers have a weakness, the most this data shows is a hint that they suffer more when they go against their natural side.
How good one particular taker is, from his own record, is a different question: see eight from ten, is he an 80% taker? And where any taker should aim, against a keeper who has studied him, is game theory.
Caveats
- Not a random sample. StatsBomb's open data is what StatsBomb has chosen to release: whole seasons of some leagues, every match of some tournaments, and a lot of Barcelona. A different set of matches could give slightly different rates.
- Not Scottish data. The open data doesn't cover the Scottish leagues, and the Scottish results files don't record penalties.
- Takers aren't chosen at random. A club gives the job to its best taker, whichever foot he uses, so this compares the left- and right-footers who were trusted with penalties, not all players.
- Men's and women's together. The women's game has fewer left-footed penalties in this data (87), too few to split reliably on their own.
- Where the ball ended up, not where it was aimed. A saved kick's end point is where the keeper stopped it, which can be a little off the line the taker chose.
Reproduce the analysis
You'll need StatsBomb's open data on your computer, about 15 GB unpacked (the download is compressed). This fetches only the events and the match lists:
Show the Bash3 lines, ready to copy and run.
mkdir -p ~/statsbomb-open-data && curl -sL https://codeload.github.com/statsbomb/open-data/tar.gz/refs/heads/master \
| tar xz -C ~/statsbomb-open-data --strip-components=1 --wildcards 'open-data-master/data/competitions.json' \
'open-data-master/data/matches/*' 'open-data-master/data/events/*'
Then this reads every match once and prints every number in the piece. It takes two or three minutes:
Show the Python67 lines, ready to copy and run.
# From Football Data Science by Bryan McGuire. Free to use with credit.
# https://www.footballdatascience.co.uk/myth-or-maths/left-footed-penalties
import glob
import json
import os
from collections import Counter
DATA = os.path.expanduser("~/statsbomb-open-data/data")
with open(f"{DATA}/competitions.json", encoding="utf-8") as f: # men's or women's, for each competition and season
gender = {(c["competition_id"], c["season_id"]): c["competition_gender"] for c in json.load(f)}
women = set()
for path in glob.glob(f"{DATA}/matches/*/*.json"):
with open(path, encoding="utf-8") as f:
women |= {m["match_id"] for m in json.load(f)
if gender.get((m["competition"]["competition_id"], m["season"]["season_id"])) == "female"}
penalties = [] # every penalty: foot, outcome, taker, shootout or not, where it ended up
files = glob.glob(f"{DATA}/events/*.json")
for path in files:
with open(path, encoding="utf-8") as f:
for e in json.load(f):
if e["type"]["name"] == "Shot" and e["shot"]["type"]["name"] == "Penalty":
shot = e["shot"]
penalties.append({"foot": shot["body_part"]["name"], "goal": shot["outcome"]["name"] == "Goal",
"outcome": shot["outcome"]["name"], "taker": e["player"]["name"],
"shootout": e["period"] == 5, "y": shot["end_location"][1],
"women": int(os.path.basename(path)[:-5]) in women})
def rate(kicks):
return sum(k["goal"] for k in kicks) / len(kicks)
def compare(label, first, second, names=("left", "right")): # the gap, with a luck margin of two standard errors
a, b = rate(first), rate(second)
margin = 2 * (a * (1 - a) / len(first) + b * (1 - b) / len(second)) ** 0.5
print(f"{label}: {names[0]} {a:.1%} of {len(first)}, {names[1]} {b:.1%} of {len(second)}, "
f"gap {a - b:+.1%} (luck margin ±{margin:.1%})")
left = [k for k in penalties if k["foot"] == "Left Foot"]
right = [k for k in penalties if k["foot"] == "Right Foot"]
print(f"{len(files):,} matches, {len(penalties):,} penalties; {len(left) / len(penalties):.0%} taken left-footed")
takers_left, takers_right = len({k["taker"] for k in left}), len({k["taker"] for k in right})
print(f"takers: {takers_left} left-footed, {takers_right} right-footed ({takers_left / (takers_left + takers_right):.0%} left)")
print(f"left-footed penalties in the women's game: {sum(k['women'] for k in left)}")
compare("all penalties", left, right)
print(f"in a match {sum(not k['shootout'] for k in penalties):,}, in shootouts {sum(k['shootout'] for k in penalties)}")
compare("in play", [k for k in left if not k["shootout"]], [k for k in right if not k["shootout"]])
compare("shootouts", [k for k in left if k["shootout"]], [k for k in right if k["shootout"]])
messi = [k for k in left if "Messi" in k["taker"]]
print(f"Messi: {len(messi)} kicks, {len(messi) / len(left):.0%} of the left-footed ones, scored {rate(messi):.1%}")
compare("without Messi", [k for k in left if "Messi" not in k["taker"]], right)
KIND = {"Goal": "scored", "Saved": "saved", "Saved to Post": "saved", "Post": "hit the post", "Off T": "missed", "Wayward": "missed"}
for name, kicks in (("left", left), ("right", right)):
kinds = Counter(KIND[k["outcome"]] for k in kicks)
print(name, ", ".join(f"{kind} {n / len(kicks):.1%}" for kind, n in kinds.most_common()))
# where it went: StatsBomb's y runs from the taker's left (0) to his right (80); the goal spans 36 to 44
def side(k, foot):
if 36 + 8 / 3 <= k["y"] <= 44 - 8 / 3:
return "middle"
across = k["y"] < 40 if foot == "Right Foot" else k["y"] > 40 # a kicker's natural side is across his body
return "natural" if across else "other"
for foot, kicks in (("Left Foot", left), ("Right Foot", right)):
groups = {s: [k for k in kicks if side(k, foot) == s] for s in ("natural", "other", "middle")}
print(foot, "; ".join(f"{s} {len(g) / len(kicks):.0%} of kicks, scored {rate(g):.0%}" for s, g in groups.items()))
compare(f" {foot}", groups["natural"], groups["other"], ("natural side", "other side"))
Further reading
- StatsBomb open data, on GitHub (now under Hudl, which owns StatsBomb): the free event data used here, with documentation of every field, including each shot's body part and end location.
- Penalty kick (association football), Wikipedia: the laws of the kick, with sections on scoring and saving statistics.
- Footedness, Wikipedia: left- and right-footedness, with a section on football that notes how rare capable left-footers are, and cites Alex Bryson's study of footedness and players' pay in Europe.