FPL Vault

Methodology

What the engine actually does. Every threshold, formula, and decision rule — documented from the code.

xPts Model

Expected points per player per fixture, aggregated across a configurable GW horizon (1/3/5/8 weeks).

ComponentFormulaPts by Position
Appearanceavail% × projected minutes2 (60+ min) or 1 (< 60 min)
xGoalsxG/90 × proj_min/90 × pos_multGKP 10 · DEF 6 · MID 5 · FWD 4
xAssistsxA/90 × proj_min/90 × 3All positions: 3
Clean Sheetcs_prob × pos_multGKP/DEF 4 · MID 1 · FWD 0
Bonusbonus/90 × proj_min/901-3 per game (BPS)
Defensive Contributiondc_prob × 2DEF (10/90) · MID/FWD (12/90) · GKP 0
Savessaves/90 × proj_min/90 ÷ 3GKP only — 1pt per 3 saves

CS probability: (fixture_prob × 0.5) + (form_prob × 0.5)

fixture_prob = (5 - diffScore) / 4 · form_prob = 1 - teamGcPerGame / 2

Transfer Engine

FeatureHow It Works
Per-transfer hit evaluationEach hit transfer must independently justify itself. A strong free transfer cannot carry a weak hit.
xPts-per-fixture rankingSquad ranked by xPts/fixture (not raw xPts) — prevents BGW teams from being unfairly penalised.
Outs poolBottom ~8 squad players by xPts, sorted worst first.
GK contamination preventionGKs excluded from outs pool by default. A low-xPts GK would push outfield candidates out of the pool.
Signal tiebreakerWhen xPts diff < 0.5, Value Radar signal (buy > watch > hold > sell) breaks the tie.
Flagged player exclusionRed/yellow flagged players excluded from outs pool (distorted xPts). UI override available.
Combo generationSingles (1+ FT): top 5 · Doubles (2+ FT): top 5 · Triples (3+ FT): top 3 · Quads (4+ FT): top 3 · Quints (5+ FT): top 3.

Transfer Regime Matrix

RegimeGameweeksHit RecommendHit MarginalNotes
Early1-56 xPts4 xPtsSame as normal (future-proofed)
Normal6-296 xPts4 xPtsDefault thresholds
Endgame30-363 xPts1 xPtsBGW/DGW cluster — banking nudge active
Final37-380 xPts0 xPtsAny positive gain = recommend

Early-trigger: GW28-29 enters Endgame if a BGW/DGW is confirmed within 3 GWs.

Banking nudge: Endgame only — surfaces when BGW/DGW is within 3 GWs ahead.

Season Decision Matrix Framework

RegimePrimary SignalBank BiasHit ThresholdKey Rule
EarlyMinutes / price / ownershipLowHighUse if squad health at risk, preserve WC
NormalxPts persistenceLowMediumUse unless specific future opportunity > persistence cost
EndgameFixture structure (BGW/DGW)HighLowBank for blanks/doubles, hits are cheap
FinalRaw single-week xPtsNoneAny positiveUse everything, no tomorrow

Engine Configuration

ParameterValuePurpose
hitCost4 ptsFPL points cost per extra transfer
hitRecommendThreshold6 xPtsMin net gain for green Recommend verdict
hitMarginalThreshold4 xPtsMin net gain for amber Marginal verdict
gkSwapMaxAvgFdr2.3Max avg fixture difficulty for incoming GK
gkSwapRequiresBGWOrFlagtrueOnly swap GK if current has BGW or injury flag
minIncomingOwnership0.5%Filter out extremely low-owned targets
minIncomingBaseXpts3.0Minimum base xPts floor for incoming candidates
maxPlausibleSingleGain20Sanity cap — filter implausible gains (bad data)
starterPenaltyMultiplier2.0Weight for underperforming starters in ranking
flaggedPlayerExclusiontrueExclude red/yellow flagged from outs pool

Bench Boost Thresholds

ParameterValue
DGW viable (bench total)20 xPts
DGW strong recommend25 xPts
SGW expiring16 xPts
Per-player strong4.0 xPts
Per-player viable3.0 xPts
Per-player expiring2.5 xPts
Min starts %50%

Fixture Calendar

FeatureDescription
DGW detectionTeams with 2+ fixtures in a GW from FPL API data.
BGW detectionTeams with 0 fixtures in a GW.
Prediction mergingManual DGW/BGW predictions for unconfirmed GWs. API data always overrides.
CentralisedSingle source of truth — replaces duplicated detection across the codebase.

Transfer Value — Banking vs Using

How the engine values banked transfers at each FT level. These are implied by the engine's combo gates, regime thresholds, and Transfer Capital tiers — not externally validated.

FTsImplied UpliftEngine GateTransfer Capital Tier
10%Singles free, doubles cost a hitLow — use it
2~25%Doubles free, banking nudge fires in endgameBuilding — combinations emerging
3~40%Triples unlocked (hard gate at FT >= 3)Optimal — peak flexibility
4~30%Quads unlocked (hard gate at FT >= 4)Warning — diminishing returns
5~15%Quints unlocked (hard gate at FT >= 5)Damaged — capped, next FT wasted

Uplift is bell-shaped: peaks at 3 FTs, falls on both sides. Each combo size gate (triples/quads/quints) adds genuine combinatorial value, but longer banking means more weeks of squad degradation. The engine doesn't hardcode these percentages — they emerge from how the combo gates, hit thresholds, and capital tiers interact.

Roadmap

FeatureStatusNotes
xPts ModelLivePer-player per-fixture expected points across configurable horizons
Transfer EngineLivePer-transfer hit evaluation, regime-aware thresholds, singles through quints
Transfer Regime MatrixLiveFour regimes (Early/Normal/Endgame/Final) with adjusted thresholds
Fixture CalendarLiveCentralised DGW/BGW detection with prediction merging
Transfer CapitalLiveFT value model — combo gates at 3/4/5, capital tier warnings
Value RadarLiveBuy/watch/hold/sell signals based on form, fixtures, value trends
Chip AdvisorPlannedChip timing recommendations with DGW/BGW awareness
FDR Model ImprovementsPlannedDynamic fixture difficulty based on team form
Captain AnalysisPlannedRetrospective captain pick evaluation
Persistence ModelNext SeasonPlayer form persistence prediction
Early Season RegimeNext SeasonGW1-5 specific thresholds
Price Band FilteringPlannedValue Radar — filter by price brackets
Mobile RedesignPlanned91% of traffic is mobile
No ads. No subscriptions. No fluff.