FPL-Based Prediction Strategy

How we use Fantasy Premier League data to generate accurate match predictions

Why FPL Data?
The advantage of player-level statistics over traditional team stats

Most betting models rely on team-level statistics (goals scored, possession, xG). While useful, these metrics miss the individual player impact that ultimately decides matches.

Fantasy Premier League (FPL) provides granular, real-time player data that captures:

Player Form
Rolling points averages showing recent performance trends
Goals & Assists
Direct offensive contributions by position
Bonus Points System
Comprehensive impact metric (tackles, passes, shots, etc.)
Minutes & Availability
Playing time, rotation risk, injury/suspension status

By aggregating individual player performance, we build team strength indexes that are more predictive than traditional stats alone.

The 5-Step Prediction Process
Step 1

Player Feature Extraction

For each player in the match:
• Calculate 5-game rolling averages:
- Points per game
- Goals + Assists
- Bonus Points System (BPS) score
- Minutes played
• Assess availability (0-1 probability)
- Based on injury/suspension status
Step 2

Team Strength Calculation

For each team:
• Aggregate player features by position
- GK, DEF, MID, FWD
• Calculate weighted team strength:
- Offensive = f(FWD goals, MID creativity, form)
- Defensive = f(GK saves, DEF clean sheets, BPS)
• Adjust for home/away performance
- Historical venue-based modifiers
Step 3

Match Outcome Prediction

1. Match Result (1X2):
P(Home Win) = f(Team A offensive, Team B defensive)
P(Away Win) = f(Team B offensive, Team A defensive)
P(Draw) = 1 - P(Home Win) - P(Away Win)
2. Over/Under 2.5 Goals:
Expected Goals =
(Team A offensive × Team B defensive weakness) +
(Team B offensive × Team A defensive weakness)
P(Over 2.5) = CDF(Expected Goals, threshold=2.5)
3. Both Teams to Score (BTTS):
P(BTTS) = P(Team A scores) × P(Team B scores)
4. First Half Over/Under 0.5:
FH Expected Goals = Expected Goals × 0.4
(0.4 = historical first half ratio)
P(FH Over 0.5) = 1 - P(0 goals in first half)
Step 4

Confidence Scoring

Confidence (0-100) based on:
• Player data completeness
- Minutes played, availability
• Form consistency
- Low variance in recent performance
• Team strength differential
- Higher confidence for clear mismatches
• Historical accuracy
- Similar prediction validation
Step 5

Bet Generation

For each odds target (3x, 10x, 100x):
1. Select high-confidence predictions
2. Combine into accumulator to hit target odds
3. Diversify bet types (mix O/U, BTTS, 1X2, FH)
4. Balance risk across matches
Data Sources

FPL API (Official)

https://fantasy.premierleague.com/api/
  • /bootstrap-static/ - All players, teams, gameweeks
  • /fixtures/ - Upcoming matches with difficulty ratings
  • /element-summary/{'player_id}/ - Historical player performance
Free No API Key Real-time Updates

Historical FPL Data

github.com/vaastav/Fantasy-Premier-League
  • 10+ years of FPL data for backtesting
  • Player-level statistics by gameweek
  • Team strength evolution over seasons

The Odds API

https://the-odds-api.com/
  • Live betting odds from multiple bookmakers
  • Match results and scores for validation
  • 500 free credits/month
Expected Accuracy
Based on historical backtesting with FPL data
3 Odds (Lower Risk)
~65%
Win rate
10 Odds (Medium Risk)
~35%
Win rate
100 Odds (High Risk)
~5%
Win rate

Our strategy prioritizes consistent returns on 3 Odds while allowing occasional big wins on 10x and 100x accumulators. The high-risk 100 Odds may fail 19 out of 20 times, but one win can cover all losses (100,000 KES return on 1,000 KES stake).

Why This Strategy Works

Transparent & Interpretable

You can see exactly how predictions are derived from player stats, not a black box algorithm

Data-Driven

Leverages FPL's detailed, structured player stats that update in real-time

Easy to Update

Just refresh FPL data weekly and recalculate indexes - no manual intervention

Scalable

Can add additional betting markets or advanced statistical models as we evolve