The MyTransferIQ Scoring Engine
MyTransferIQ combines Transfermarkt market data with FBref on-pitch percentiles to produce a single 0–100 composite score that ranks any active player against a buying club's budget and target profile. Here's exactly what goes into that number.
Where the data comes from
Player identities, clubs, competitions and valuations are sourced from the community-maintained dcaribou/transfermarkt-datasets GitHub project, which republishes clean CSV snapshots of Transfermarkt.
A scheduled backend job pulls the latest snapshot every Sunday (UTC) and refreshes competitions, clubs, players and the last 18 months of market-value history. That's roughly 30,000+ active players across 65 competitions worldwide, from the Premier League down to K League 1 and MLS Next Pro.
On-pitch performance percentiles are sourced from FBref (Statbomb) data and represent how a player ranks within their position+league bucket for xG+xAG, progressive passes, progressive carries and defensive actions.
The five sub-scores
Every player is scored on five independent 0–100 dimensions. Each one is calculated the same way for every player so they can be weighted and combined later.
Opportunity
Contract leverage. Players within 6 months of a free transfer score 100; 6–12 months scores 85; 1–2 years scores 60; 2+ years remaining scores 30. Closer to expiration = easier to acquire.
step(contract_months_remaining)Financial Fit
70% budget fit (100 = within budget, 0 at 2× budget) plus 30% market-value percentile within the player's own league. Budget fit dominates, while the league context prevents every lower-league player from looking like a bargain against a Champions League budget.
0.7·affordability + 0.3·league_percentileAvailability
Playing-time status. 20–50% of available minutes scores highest (suggests fringe or rotation), as do heavy-minute players in Tier 3+ leagues. Locked-in starters in top leagues score slightly lower because they are harder to pry away.
f(minutes_pct, league_tier)Trajectory
12-month change in market value. Rising stars score above 50; declining assets score below.
50 + clamp(mv_change_pct_12mo, −50, +50)FBref On-Pitch
Tactical performance percentile blend. If a player has no FBref data the score falls back to a neutral 50. This is the only sub-score that measures what happens on the ball, not the market.
0.4·xG+xAG + 0.3·ProgPass + 0.3·ProgCarryLeague Strength Index (LSI)
Not every 20-goal season is created equal. Each of the 65 competitions in the dataset has an individually calibrated LSI coefficient between roughly 0.52 and 1.00. The Premier League sits at 1.00; La Liga, Serie A, Bundesliga and Ligue 1 anchor the top tier; Eredivisie, Championship, Brazilian Série A and Primeira Liga follow; MLS, Saudi Pro, Liga MX and Argentine Primera come next; and everything else scales downward.
The LSI multiplies the final composite score so that a 90 in the Premier League genuinely outranks a 90 in a Tier 4 league — but with an important adjustment for age.
Age-adjusted LSI (Prospect Multiplier)
A 19-year-old in a smaller league shouldn't be punished for the league they play in — that's where prospects come from. So the LSI penalty is reduced by up to 50% for players 21 and under, and fades linearly back to full LSI by age 28.
- Age ≤ 21 → 50% LSI penalty reduction (full prospect boost)
- Age 22–27 → linear fade of the reduction
- Age ≥ 28 → full LSI penalty applied
This lets a genuine young talent in Eredivisie or the Belgian Pro League score 80+ overall while still ranking a 30-year-old in the same league fairly against a Premier League peer.
League-relative valuation & missing values
For lower-tier leagues, raw Euro comparisons distort the Financial Fit sub-score — every player looks cheap next to a Premier League budget. So Financial Fit blends 70% budget affordability with 30% market-value percentile within the player's league. Being in the top 10% of your league's values counts as 100, the median counts as 50. This keeps a €3M player on a €3M budget from being dragged down by a middling league percentile, while still rewarding the best value-for-money targets in smaller competitions.
For unvalued players, MyTransferIQ falls back to the most recent historical valuation, or an imputed value derived from same league + same position + ±3 year age peers. These are displayed with a "~" prefix so you always know when a value is estimated.
The composite score & weighting matrix
The final number combines the five sub-scores through your weights:
composite = (opp·w₁ + fin·w₂ + avail·w₃ + traj·w₄ + tact·w₅) × ageAdjustedLSIWeights must always sum to 100%. Dragging one slider automatically rebalances the others. The FBref On-Pitch (Tactical) weight now varies by preset — modes that lean on proven on-pitch output (Impact, Injury Replacement, Analytics- Driven) push it higher, while raw-upside modes (Youth Development) keep it lower because percentile samples are thinner for teenagers.
You can also pick a Target Type preset to load a distribution built for a specific scouting lens:
- Immediate First-Team Impact — Opp 20 / Fin 20 / Avail 20 / Traj 5 / FBref 35
- High Resale Prospect — Opp 10 / Fin 15 / Avail 15 / Traj 35 / FBref 25
- Youth Development / Loan Target — Opp 15 / Fin 25 / Avail 15 / Traj 35 / FBref 10
- Squad Depth / Rotation — Opp 15 / Fin 25 / Avail 30 / Traj 15 / FBref 15
- Free Agent / Bosman — Opp 35 / Fin 20 / Avail 10 / Traj 15 / FBref 20
- High-Profile Star / Marketing — Opp 10 / Fin 15 / Avail 10 / Traj 35 / FBref 30
- Injury Replacement — Opp 15 / Fin 25 / Avail 20 / Traj 5 / FBref 35
- Analytics-Driven / FBref-Led Signing — Opp 10 / Fin 20 / Avail 10 / Traj 20 / FBref 40
Market inefficiency alerts
MyTransferIQ flags players whose on-pitch performance and market value have diverged. The inefficiency index is simply:
Δ = FBref_On_Pitch_Score − Market_Value_Percentile_in_League- Δ ≥ +25 → Hidden Gem (green): outperforming their market price relative to the league.
- Δ ≤ −25 → Overpriced (red): market value is running ahead of on-pitch output.
These badges appear in the search results table and inside the player detail modal. They are not buy/sell recommendations — they are a signal to look closer.
Player profile radar
The player detail modal includes a five-axis radar chart that plots the sub-scores used to build the composite: Opportunity, Financial Fit, Availability, Value Trajectory, and FBref On-Pitch Impact. This gives a quick visual fingerprint of a player's strengths and the trade-offs a scout would need to evaluate.
What the score is not
MyTransferIQ is a decision-support tool, not a crystal ball. It doesn't watch tape, it can't measure locker-room fit, and it can't see injuries the market hasn't priced yet. Use the score to prioritise your shortlist and open conversations — not to close deals.