Fpl Calculator

FPL Player Points Calculator

Goalkeeper Defender Midfielder Forward
No Yes
0 1 2 3
None Yellow Card Red Card
Standard (1x) Captain (2x) Triple Captain (3x)

Estimated Total Points

0

How the FPL Points Calculator Works

Fantasy Premier League (FPL) scoring can be complex, especially when accounting for different positional bonuses and defensive deductions. Our FPL Calculator allows managers to input specific match events to predict or verify a player's total gameweek score. This tool is essential for calculating the impact of your Captaincy or Triple Captain chips.

FPL Scoring Rules Summary

  • Playing Time: 1 point for playing up to 60 minutes, 2 points for playing 60 minutes or more (excluding injury time).
  • Goals: 6 points for Goalkeepers/Defenders, 5 points for Midfielders, and 4 points for Forwards.
  • Assists: 3 points regardless of the player's position.
  • Clean Sheets: 4 points for Goalkeepers/Defenders, 1 point for Midfielders (must play at least 60 minutes).
  • Saves: 1 point for every 3 saves made by a Goalkeeper.
  • Deductions: -1 point for every 2 goals conceded (GKs and DEFs only), -1 for a yellow card, and -3 for a red card.

Practical Example

If you select a Defender who played 90 minutes, kept a Clean Sheet, and provided 1 Assist, the calculation would be: 2 (minutes) + 4 (clean sheet) + 3 (assist) = 9 points. If that player was your Captain, the final score would be 18 points.

function calculateFPLPoints() { var position = document.getElementById('playerPosition').value; var minutes = parseInt(document.getElementById('minutesPlayed').value) || 0; var goals = parseInt(document.getElementById('goalsScored').value) || 0; var assists = parseInt(document.getElementById('assists').value) || 0; var cleanSheet = parseInt(document.getElementById('cleanSheet').value) || 0; var conceded = parseInt(document.getElementById('goalsConceded').value) || 0; var saves = parseInt(document.getElementById('saves').value) || 0; var bonus = parseInt(document.getElementById('bonusPoints').value) || 0; var cards = parseInt(document.getElementById('cards').value) || 0; var multiplier = parseInt(document.getElementById('captaincy').value) || 1; var points = 0; // Minutes Played if (minutes >= 60) { points += 2; } else if (minutes > 0) { points += 1; } // Goals Scored based on position if (position === 'GK' || position === 'DEF') { points += (goals * 6); } else if (position === 'MID') { points += (goals * 5); } else if (position === 'FWD') { points += (goals * 4); } // Assists points += (assists * 3); // Clean Sheets (Must play 60+ mins) if (cleanSheet === 1 && minutes >= 60) { if (position === 'GK' || position === 'DEF') { points += 4; } else if (position === 'MID') { points += 1; } } // Saves if (position === 'GK') { points += Math.floor(saves / 3); } // Goals Conceded (GKs and DEFs only) if (position === 'GK' || position === 'DEF') { points -= Math.floor(conceded / 2); } // Cards points += cards; // Bonus points += bonus; // Final Multiplier var finalScore = points * multiplier; // Display Results var resultDiv = document.getElementById('resultDisplay'); var totalPointsDiv = document.getElementById('totalPoints'); var breakdownDiv = document.getElementById('breakdownText'); totalPointsDiv.innerText = finalScore; resultDiv.style.display = 'block'; var breakdown = 'Base Points: ' + points + ' x ' + multiplier + 'x Multiplier'; breakdownDiv.innerText = breakdown; }

Leave a Comment