# Are left-footed penalty takers worse?

Source: https://www.footballdatascience.co.uk/myth-or-maths/left-footed-penalties
Published: 2026-10-26

> 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.

**On the terraces:** You'll hear that left-footers can't be trusted with a penalty. Over more than 1,500 kicks, the left foot scores just as often as the right. This piece checks every penalty, shootouts too, and shows how one left-footer can sway the numbers.

## 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.

<div class="flex flex-wrap items-center gap-4 rounded-md bg-chalk px-4 py-3" style="margin:1.5rem 0"><img src="/static/img/statsbomb-logo.png" alt="StatsBomb" width="180" height="29" class="h-auto w-44"><p class="text-sm text-ink">Data: StatsBomb open data. The analysis is ours, not StatsBomb's.</p></div>

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

<div class="bars" markdown="1">

| Penalties | Scored |
|---|---|
| Left foot (376) | 74.2% |
| Right foot (1,181) | 74.2% |
| Left foot without Messi (293) | 72.7% |
| Messi (83) | 79.5% |

</div>

**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?](/learn/beta-distribution) And where any taker should aim, against a keeper who has studied him, is [game theory](/learn/penalties-nash-equilibrium).

## 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:

```bash
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:

```python
# 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](https://github.com/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)](https://en.wikipedia.org/wiki/Penalty_kick_(association_football)), Wikipedia: the laws of the kick, with sections on scoring and saving statistics.
- [Footedness](https://en.wikipedia.org/wiki/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.
