About & methodology

House of the Fantasy is a free football draft game built by one person as a side project. This page explains exactly where the numbers come from and what the simulation does with them, because a result is only interesting if you know what produced it.

The data

The game holds 23,583 player-seasons across 1,072 club-seasons, covering the top five European leagues — the Premier League, La Liga, Serie A, the Bundesliga and Ligue 1 — over eleven seasons, from 2014-15 to 2025-26.

SourceSeasons covered
FIFA 15 – FIFA 24 databases2014-15 to 2023-24
EA Sports FC 26 database2025-26

2024-25 is currently missing, because no freely downloadable copy of that edition's database was available when the game was built.

On the ratings. Player ratings, and the six attribute values behind them, are EA Sports' own editorial assessments taken from the FIFA and EA Sports FC databases. They are historical values used here for simulation, and they remain the property of their respective owners. This is an unofficial fan project with no affiliation to, endorsement from, or licence granted by EA Sports, SoFIFA, or any league or club. No player photographs and no club crests are used anywhere in the game.

Ratings were chosen over real-world statistics for one specific reason: EA rates every league on a single 0–99 scale, which makes a Bundesliga midfielder and a La Liga midfielder directly comparable without inventing a league-strength coefficient. Each club's squad is trimmed to its best 22 players, since the tail of a real squad is third-choice keepers and academy prospects nobody would draft.

How a spin works

It is not uniform randomness. Five steps:

  1. A club-season is drawn from your pool, weighted by club strength, so the stronger sides come up several times more often than the weaker ones.
  2. That squad is filtered to players who are not already drafted and — in normal mode — who genuinely play a position you still need.
  3. The club's best nine of those are taken as candidates.
  4. Five of the nine are sampled, weighted towards higher ratings but not simply the top five. That spread is what makes choosing well a skill rather than an obvious pick.
  5. Those five become your shortlist.

A player cannot be drafted twice even across different seasons: identity is tracked per career, not per club-season, so you cannot field two versions of the same man.

How matches are decided

Each eleven is reduced to an attack and a defence rating, built from the players' position-relevant attributes, the number of bodies in each line of the formation, any cost from playing out of position, and the chemistry bonus.

For a match, each side's expected goals are derived from its attack against the opponent's defence, on an exponential curve, with a home advantage applied. The actual scoreline is then drawn from a Poisson distribution around that expectation — which is the standard model for goals in football, and the reason a weak side can still win on the day.

How goals and assists are attributed

When a team scores, a scorer is drawn from the eleven weighted by position and shooting ability; strikers score most, midfielders less, defenders occasionally, and goalkeepers almost never. About 74% of goals also produce an assist, drawn from a different player and weighted by position and passing. Clean sheets are credited to the goalkeeper and the defenders.

The attribution conserves goals exactly — every goal in the league table belongs to a named player. Over a season this produces a golden boot in the mid-twenties and a leading goalkeeper on around fourteen clean sheets, which is roughly where a real top-five league lands.

Why the big clubs finish high

Every AI club fields its own real squad. Real Madrid plays Real Madrid's players; a newly promoted side plays theirs. Your drafted eleven is the outsider trying to gatecrash a genuine league.

An earlier version had every club draft from the same shared pool, which was fairer in the abstract but made club identity meaningless — tables came out with mid-table clubs as champions and the giants in tenth. Realism won that argument.

The result is that champions finish on roughly 84 to 90 points, the five strongest squads in a league average a top-four finish, and the five weakest average bottom five. Winning the league with a drafted eleven is genuinely hard; a top-four finish is a good season.

Everything is reproducible

Every run is generated from a short seed. The same seed and the same choices produce a byte-identical outcome: the same wheel, the same shortlists, the same AI squads, and the same 1,900-odd match results across all five leagues. That is what makes a shared result verifiable rather than a claim, and what makes a challenge link a fair contest.

How it is built

A static site — React and TypeScript, with the entire simulation running in your browser. There is no backend, no database and no account system; the player dataset is a single compressed file the browser downloads once. It is hosted on Cloudflare.

Play a run