How Fobal Calculates Hit Rates (and Picks)
How Fobal calculates player prop hit rates (L5, L10, H2H, season), builds the 0–100 Fobal score and filters its picks: the exact rules, and the limits we know.
- #methodology
- #hit-rates
- #fobal-score
- #picks
- #transparency
How Fobal calculates hit rates: a hit rate is the share of a player’s appearances in which he reached one exact line, such as 2+ shots on target. We show it over his last 5 and last 10 appearances, against the next opponent and across his record. Picks blend those rates with the bookmaker’s price and a projection model into a 0–100 Fobal score, then pass three filters.
4
hit-rate windows: last 5, last 10, head-to-head, season
11
player markets with their own projection model
40
minimum Fobal score (out of 100) for a pick
3 of 5
recent hits needed (or 6 of the last 10)
This page describes the method exactly as our code runs it in October 2026. If you are new to props, start with the complete guide to football player props.
Where does the data come from?
Match statistics come from Sportmonks: one row per player, per match, per statistic, plus lineups and substitutions, for the Premier League, La Liga, Serie A, Bundesliga, Ligue 1, Champions League and Europa League. Each market reads one statistic:
- Tackles means tackles won, the statistic the market is priced on, not total tackles.
- Goal or assist adds goals and assists in the same match.
- Goals come from the statistics table, which credits no own goals to the player.
- Saves are the goalkeeper’s saves.
Odds come from one major bookmaker’s player lines, through an odds data feed. For each line we store the price and its implied probability, 1 ÷ decimal odds, with the bookmaker’s margin left in. That makes our edge estimates conservative.
Your bet, though, settles on your bookmaker’s data, which is often Opta, not Sportmonks, and the two occasionally disagree on a borderline shot or tackle. How player props are settled explains why that matters.
What counts as a hit?
Lines sit on half-points: Over X.5 is a hit when the player recorded X+1 or more, in every market. Over 1.5 needs 2.
Two definitions shape every number you see:
- An appearance is a match with at least one minute played. A match on the bench or out of the squad is left out: neither a hit nor a miss.
- A match where he played but recorded nothing counts as zero, so it is a miss on every line.
The first rule cuts both ways: leaving out unused substitutes keeps the rate honest about what he does when he plays, but a three-minute cameo counts as a full appearance and almost always lands as a miss.
How does Fobal calculate hit rates in each window?
| Window | Shown on the pick | In the Fobal score |
|---|---|---|
| L5 | Last 5 appearances, all competitions; filter | Last 5 in this competition’s season |
| L10 | Last 10 appearances, all competitions; filter | Not used |
| Season | Full record, all competitions | This competition’s season only |
| H2H | Appearances against this opponent | Not used |
| With sub | His numbers plus his replacement’s, this competition’s season only | Not used |
Two scopes are at work, newest match first in both. What you see on a pick, and the 3-of-5 or 6-of-10 filter, counts every competition we cover, so a new competition can’t show 100% after one match. The with-sub rates are the one exception: they use this competition’s season only. The score is built from the competition he is about to play, this season only: his season rate on the line, his last 5 in that competition and the league average for the line. Only when none of the fixture’s players has played in that competition yet, such as a cup’s first round, does the score fall back to his record across all competitions. The player page shows up to 100 appearances, with a competition filter.
The with-sub rate answers a different question: how often did his role reach the line? It adds the output of the substitute who replaced him, and it counts this competition’s season only. For a striker who usually comes off on 70 minutes, the gap between his own rate and the with-sub rate shows how much of the match he is missing.
How does a hit rate become a Fobal pick?
The pipeline runs the day before each match, for every fixture with player prices.
- Projection. Each of the 11 markets has its own model: gradient-boosted trees (XGBoost) with a Poisson target, suited to counts. Inputs include the player’s last 15 matches, an opponent profile matched to the market (how often they draw fouls for fouls committed, how much they attack for saves), home or away, and his average minutes. Players with an open injury or suspension record are skipped. The output is an expected count, turned into a probability for every line.
- Blend. We combine three estimates into one probability: 55% his season record on the line, 25% his last 5, 20% the model, all in this competition. With fewer than 10 matches in it this season, his record is blended 60/40 with the league average for that line, and the weights shift to 45/15/40. With fewer than 3 matches in it, the model is used alone; if his last 5 hold fewer than 3 appearances, their weight moves to his record.
- Score. Four components, each scored 0–100, then weighted:
| Component | Weight | Built from |
|---|---|---|
| History | 40% | Season hit rate on the line |
| Price | 30% | Edge over the implied probability |
| Form | 20% | Last-5 hit rate and its trend |
| Model | 10% | Model confidence and agreement |
How each component is scored:
- History: season hit rate × 100, plus 0.5 per match played (up to +15), plus up to +10 when his last 5 agree with his season. It loses 10 if they differ by more than 40 points (with 4 or more recent matches).
- Price: the edge is the blended probability minus the implied one. An edge of 15+ points scores 70, 10–15 scores 60, 5–10 scores 50, 0–5 scores 40, 0 to −10 scores 25 and anything lower 10. Odds between 1.40 and 3.00 add 15 (1.20 to 4.00 add 8).
- Form: last-5 hit rate × 100, plus 10 when it runs 10+ points above his season (20 at 20+), minus 10 or 20 when it runs that far below. With fewer than 3 recent appearances, form is a neutral 50.
- Model: model confidence × 100 (from expected minutes and how volatile his output has been), plus up to 20 for agreeing with the blend.
- Reality checks. A line is flagged “unrealistic” if the odds are above 10, if it never landed in more than 5 matches, or if, with more than 10 matches played, he hits it under 5% of the time while the model says over 15%.
- Filters. The odds must sit between 1.30 and 3.50 (1.30 to 8.00 for goals, assists and goal or assist). The score must be at least 40. And he must have hit the line in at least 60% of his last 5 or his last 10 appearances (3 of 5, or 6 of 10). A player with no recent record at all is judged on the model alone. Only the usual lines per market qualify, for example up to Over 2.5 for shots on target.
- Publish and grade. Picks are saved and shown in the app’s Gems feed, where they are ranked by score. After the final whistle each one is graded hit, miss or void against the same statistics. A pick is void when the player wasn’t in the matchday squad. If he was named on the bench and never came on, our record grades it as a miss, which is stricter than the void rule bookmakers such as Sky Bet apply.
Scores of 75 and above are rated excellent, 60 good, 45 marginal, 30 poor and anything lower terrible. A failed reality check overrides the rating with “unrealistic”.
A worked example: Vinicius Junior, 1+ shot on target
Take Vinicius Junior’s 2025/26 season from our data pack: 34 hits in 45 starts on 1+ shot on target (75.6%), and 4 in his last 5. Add an illustrative model probability of 70%, a model confidence of 0.60 and illustrative odds of 1.40 (implied 71.4%). The live score would count only his matches in that competition, so treat this as arithmetic, not a real pick.
- Blend: 0.55 × 75.6% + 0.25 × 80% + 0.20 × 70% = 75.6%, an edge of 4.2 points.
- History: 75.6 + 15 (sample) + 9.6 (last 5 agree) = 100.2, capped at 100.
- Price: edge between 0 and 5 points scores 40, plus 15 for odds in range = 55.
- Form: 80, no trend adjustment = 80.
- Model: 60 + 18.9 agreement = 78.9.
- Fobal score: 0.4 × 100 + 0.3 × 55 + 0.2 × 80 + 0.1 × 78.9 = 80, rated excellent.
The lesson: a 4-point edge still scores 80, because the score leans on a reliable record. Read the edge as well as the score. A high score with a thin edge says “this usually lands”, not “this price is generous”. The same season also shows why a single window misleads: his last-10 rate swung between 60% and 90% while his season settled at 75.6%.
What the Fobal score does not do
- It is not a probability. A score of 80 does not mean an 80% chance.
- It doesn’t know the line-up. Picks are built before team news and assume the player starts.
- It sees one bookmaker’s price. A worse price elsewhere can erase the edge.
- It ignores referee, weather, motivation and likely game state. Those are for you to weigh.
- It doesn’t promise results. This page explains how picks are built, not how often they win.
Honest limitations
Small samples. Five and ten matches are noisy. In our 2025/26 study of 1+ shot on target, a player’s last-10 rate missed his next-10 rate by 12.2 percentage points on average. That is why history carries 40% of the score and form only 20%. The full analysis is in why “hit in 8 of the last 10” can mislead you.
Minutes. A cameo counts as an appearance, and a starter who is often withdrawn early looks worse on per-match lines than his per-90 output suggests: only 34.2% of forwards’ starts lasted the full 90 in 2025/26. Read expected minutes in player props before trusting any rate for a rotation player.
Mixed competitions. The L5 you see can blend a league match against a relegation side with a Champions League night away at a giant. Use the competition filter on the player page when that matters.
Feed gaps. If a match is missing from the feed, it is missing from the window.
How to use Fobal’s hit rates well
- Start from the season rate, then check whether L5 and L10 agree with it.
- Open the H2H and with-sub rates for context, not as the main evidence.
- Compare the edge, not just the score, and convert the price you can actually get.
- Confirm the line-up and likely minutes before kick-off.
- Keep stakes small and fixed. Our guide to responsible betting for player props has limits that work.
Frequently asked questions
What is a hit rate in player props?
A hit rate is the share of matches in which a player reached a given line. At Fobal it is counted on appearances where he played at least one minute, on the exact line: Over 1.5 shots on target is a hit only when he had 2 or more.
Does a substitute appearance count in a Fobal hit rate?
Yes. Any match in which the player was on the pitch for at least one minute counts as an appearance, including short cameos. Matches where he stayed on the bench or wasn’t in the squad are left out.
What is the Fobal score?
The Fobal score is a 0–100 rating for a specific player, market and line. It weights the player’s season record on that line at 40%, the gap between Fobal’s estimate and the bookmaker’s implied probability at 30%, his last-5 form at 20% and the projection model at 10%.
Does a high Fobal score mean the bet will win?
No. The score ranks how well a line is supported by the player’s record, form, price and model. It is not a probability and it does not remove variance. Bet only what you can afford to lose.
Why can Fobal’s stats differ from my bookmaker’s settlement?
Fobal’s match statistics come from Sportmonks, while many bookmakers settle player markets on Opta data. The two providers occasionally record a shot, tackle or foul differently. Your bookmaker’s data provider is the one that decides your bet.
What is the with-sub hit rate?
It adds the output of whoever came on to replace the player to his own numbers in each match. It shows how often the role, not just the player, reached the line. It covers this competition’s season only, and it is context: it does not feed the Fobal score.