Goalscorer Calculator
Calculate anytime goalscorer, multi-goal, and first goalscorer probabilities using Poisson distribution and player xG data.
Player Share of Team xG
How Goalscorer Probability Works
The anytime goalscorer probability uses the Poisson distribution directly on the player's individual xG:
Anytime Scorer = 1 - P(0 goals) = 1 - e^(-playerXG) 2+ Goals = 1 - P(0) - P(1) 3+ Goals = 1 - P(0) - P(1) - P(2) First Goalscorer ≈ (playerXG / teamXG) x P(team scores ≥ 1) x 0.5 Example: playerXG = 0.65, teamXG = 1.8 Anytime: 1 - e^(-0.65) = 47.8% 2+ Goals: 1 - e^(-0.65) - 0.65*e^(-0.65) = 13.9% Team xG Share: 0.65 / 1.8 = 36.1%
First goalscorer is approximated as the player's share of team xG multiplied by the probability the team scores at all, adjusted by a factor of ~0.5. This is a simplification — actual first scorer odds depend on player position, penalty duties, and match script.
Tip: Players with >30% team xG share (e.g., Haaland, Mbappe) offer the best value in anytime scorer markets. Compare these fair odds against bookmaker prices to find +EV opportunities.
From Player Goal Rate to Scorer Probability
The anytime goalscorer market has a clean mathematical core: if a player's goals arrive as a Poisson process at a rate equal to their expected goals for this match, then the probability they score at least once is simply the complement of scoring zero: P(anytime) = 1 − e^(−xG). The relationship is a curve, not a line — a 0.40 xG projection converts to a 33.0% scoring chance while 0.80 xG converts to 55.1%, not 66%. That non-linearity is why "his xG doubled, so the odds should halve" intuitions fail, and why bookmakers get away with compressing prices at the top of the market.
Everything hinges on the match-specific goal rate you feed in. Start from the player's non-penalty xG per 90 over the last 10-15 matches — raw goals are too noisy at player level. Add a premium for designated penalty takers, since a single awarded penalty is worth about 0.78 xG by itself. Then scale for context: if the team's projected xG for this fixture is 20% above its season average, the player's share of it usually rises roughly in step. A quick scalar — per-90 rate × (team match xG / team average xG) — captures most of the opponent and venue effect.
The most common and most expensive mistake is ignoring minutes. Quoted per-90 rates assume a full match; real strikers get substituted, rested and eased back from injury. The first-order fix is linear: match xG = per-90 xG × expected minutes / 90. A 0.85-per-90 striker expected to play 70 minutes projects to 0.66 xG, which knocks the anytime probability from 57.3% down to 48.4% — often the entire difference between a value bet and a losing one. One refinement worth knowing: goals are not spread evenly across the clock. More goals arrive in second halves as games open up, so a pure linear scaling slightly underrates late substitutes attacking tired defences and slightly flatters players likely to be withdrawn early.
Multi-goal and first-scorer markets stack on the same distribution. Two or more goals is 1 − P(0) − P(1), which falls away fast: our 0.65 xG player scores twice or more just 13.9% of the time. First goalscorer is the hardest market to price because three events must align: the team scores, this player is the scorer, and it happens before the opponent scores. This calculator uses the standard rough proxy — team-xG share × P(team scores) × 0.5 — where the 0.5 stands in for "the player's team scores first". A sharper factor is the rate ratio teamXG / (teamXG + opponentXG): for a 1.8 vs 1.2 fixture that is 60%, not 50%, so the proxy shades conservative for favourites. Whichever variant you use, compare the fair price against the book with the EV calculator before betting.
Goalscorer Formulas
P(k goals) = e^(−xG) × xGᵏ / k!
Anytime = 1 − e^(−xG)
2+ goals = 1 − e^(−xG) − xG × e^(−xG)
3+ goals = (2+ goals) − P(exactly 2)
Minutes adjustment:
match xG = xG per 90 × expected minutes / 90
First scorer (approximation):
≈ (playerXG / teamXG) × P(team scores ≥ 1) × 0.5
sharper team-scores-first factor:
teamXG / (teamXG + opponentXG)Worked Examples
A striker projected for 0.85 match xG scores anytime with probability 1 − e^(−0.85) = 57.3% (fair odds 1.75) and bags a brace 20.9% of the time. If a bookmaker offers 1.95 on the anytime market, the edge is 0.573 × 1.95 − 1 = +11.7% EV — a strong bet if the 0.85 projection is honest.
News breaks that the striker is being managed and will likely come off around the 70th minute. Adjusted rate: 0.85 × 70/90 = 0.66 xG, so anytime drops to 48.4% (fair 2.07). The same 1.95 price now carries 0.484 × 1.95 − 1 = −5.6% EV. Nothing about the player changed — only the minutes did.
Frequently Asked Questions
How is anytime goalscorer probability calculated?
It is the complement of scoring zero under a Poisson model: P(anytime) = 1 − e^(−playerXG). A player projected for 0.65 expected goals in the match has a 1 − e^(−0.65) ≈ 47.8% chance of scoring at some point, a fair price of about 2.09. The same distribution gives the 2+ and 3+ goal probabilities.
What is player xG and where do I find it?
Player xG sums the quality of every shot a player takes — a penalty is worth about 0.78 xG on its own, a hopeful long-range strike perhaps 0.03. Understat, FBref and Opta-powered sites publish it. For a pre-match projection, take the player's non-penalty xG per 90 over the last 10-15 matches, add a premium if they take penalties, and adjust for opponent strength and venue.
How do expected minutes change the probability?
Scale the goal rate linearly: match xG = xG per 90 × expected minutes / 90. A striker producing 0.85 xG per 90 who is likely to be substituted around the 70th minute projects to 0.85 × 70/90 ≈ 0.66 xG — dropping the anytime probability from 57.3% to 48.4% and pushing the fair price from 1.75 out to about 2.07. Team news and rotation risk are the biggest levers in this market.
Why don't scorer odds scale linearly with xG?
Because 1 − e^(−xG) is a curve, not a line. Doubling a player's expected goals from 0.35 to 0.70 lifts the anytime probability from 29.5% to 50.3% — a big jump, but far from double. At higher xG values each extra chance adds less, since part of it lands in matches where the player has already scored.
How is first goalscorer different from anytime scorer?
First goalscorer requires the opening goal of the entire match, so three things must line up: the player's team scores, the player is the one who scores, and it happens before the opponent scores. This tool approximates it as team-xG share × P(team scores) × 0.5; a sharper team-scores-first factor is teamXG / (teamXG + opponentXG). Position and set-piece duties matter enormously here, so treat the output as a baseline, not a final price.