All methodology

So who should we sign?

Recommendations

How the club-conditioned shortlist is built — a transparent weighted sum of need, upgrade, model consensus and affordability (minus a work-permit penalty), scored against your own squad and league, laid out like a team-sheet with a plain-English reason, and wrapped in a board / assign / recycle / discussion workflow.

Recommendations is the screen that turns everything else — the rating, the source models, the forecasts, the cross-league projection — into a single answer to the only question a recruiter actually has: "who should we sign?" It is a club-conditioned, per-position ranked shortlist: for your club, at your level, within your budget, here are the players who would most improve your squad — biggest upgrades first, grouped like a team-sheet, each with a plain one-line reason.

In one line: a recommendation is meaningless without a "for whom". The same player is a marquee signing for one club and a bench-warmer for another, so the shortlist is scored against your own squad and league — need, upgrade, model consensus, and affordability — by a transparent weighted sum, not a black box. The "AI" is upstream, in the models that flag players; the ranking on top is deliberately legible.

Why club-conditioned

A global "best players" list is useless to a Championship side and worse to a League Two one — the top of it is unsignable, and the part that matters (who upgrades us) is buried. So every number in the score is relative to the club asking:

  • Upgrade is measured against your current starter at the position.
  • Need is measured against your league's typical starter at the position.
  • Affordability is measured against your budget.
  • The candidate pool itself is filtered to a realistic band of one tier up or down.

Two clubs looking at the same player can — correctly — see very different rankings.

The score

The core is a transparent weighted sum of four things, minus a work-permit penalty:

  • Need — how far your starter sits below your league's typical starter at that position. A position with no established starter is maximum need.
  • Upgrade — how much better the candidate would be than who you currently start there, on your league's scale. This is weighted most heavily: a genuine upgrade on your starter should rank above merely filling a gap with someone mediocre, and well above squad depth.
  • Consensus — how many of the independent source models flagged the player. Agreement across models that work in different ways is a confidence signal.
  • Affordability — the player's value against your budget: full credit within budget, fading as the price climbs past it, neutral when the fee is unknown.
  • Work-permit penalty — a soft down-weight, not a hard filter, for an English club below the top flight looking at a player who can't get a work permit. Ineligible players sink but stay visible.

Two design choices matter. The score is additive, not multiplicative: a product would zero a player out the moment any single factor was zero — a free agent under no budget pressure, say — so the additive form keeps every signal contributing. And a candidate with no ability rating is excluded, not scored at zero, because a missing value must never silently outrank a real low one.

From score to shortlist

The screen is laid out like a team-sheet — back to front, central before wide — one section per position, biggest upgrade on top. Each row carries:

  • A Level bar placing the candidate on the position's quality scale for your league, with your league's typical-starter band shaded and your own current starter marked — so "is he actually better than who we start?" is visual, not buried in a number.
  • A plain-English "why him""fills your centre-back gap", "upgrades on your current starter", "depth behind him" — optionally plus one model claim ("breaking out", "tipped to step up a level"). It names your incumbent and never the models: the whole point is to state the recommendation in a recruiter's language, not to show the machinery.
  • An honest tier — every row is labelled gap, upgrade or depth, so the tail of the list is marked plainly rather than dressed up.

The workflow around it

A shortlist is only useful if a recruitment team can act on it together, so the score is wrapped in a collaboration layer:

  • A recruitment board. Actioning a player moves him off the "who's left to look at" shortlist onto a board — a scout's personal triage, or the club's shared kanban (watchlist → pursuing → dismissed) — so the shortlist stays a clean queue.
  • Assignment — a shared-board card can be handed to a colleague, so "you go watch this one" is explicit.
  • Recycle — a player can be dismissed and suppressed for a while, but the timer is smart: the dismissal holds only while nothing materially changes, and the moment a new model flag fires, the player resurfaces labelled "reconsider — new interest since" instead of staying buried.
  • Discussion — each player has a per-club comment thread, with mentions that notify the colleague. This is a human conversation; no model argues for or against a signing here.
  • Impressions — every time the shortlist is shown, what was surfaced is logged. Joined against what teams later pursued, this is the feedback loop that lets the ranking learn what clubs actually act on.

How we keep it honest

The scorer is covered by tests that pin its invariants: scores stay bounded and never break; ranking sorts the biggest upgrades to the top; one weak factor can't zero a player out; an unrated candidate is excluded rather than ranked at zero; the work-permit penalty only bites for the clubs it should; and a position with no starter scores maximum need.

What we are candid about is that this proves the ranking is well-formed, not yet that it is good — whether the list leads to better signings. That is deliberately a ship-and-learn question: the impressions log is the harness built to close it, the recommendation-layer counterpart of the out-of-sample work underpinning the rating and projection systems. Treat the ranking as a transparent, legible prior — not an oracle.

What it can't do

  • It inherits the rating's limits — goalkeepers are excluded (the ability score is built from outfield metrics), and it is only as good as the player rating underneath it.
  • Consensus can double-count — the source models aren't fully independent, so "several models agree" can sometimes be several views of one underlying signal.
  • Affordability uses value as a fee proxy — there's no calibrated fee in this path, so budget conditioning is approximate.
  • Sensible default weights, not tuned — the weighting is a reasoned default, not the output of an optimisation, and per-club customisation is designed-for but not yet exposed.
  • The pool can hide a gem — a candidate must be recently flagged, rated, and within a tier of you; a strong player no model happened to flag, or in an uncovered league, won't appear. And the shortlist is a nightly snapshot, not a live feed.

The research behind it

The recommendation layer is a transparent multi-criteria ranking with a collaboration and feedback loop on top — its lineage is decision analysis and recommender systems, not a single learned model.

  • Fishburn, P. C. (1967). Methods of estimating additive utilities. Management Science. — The additive weighted-sum model: combine bounded criteria by a weighted sum, not a product.
  • Adomavicius, G. & Tuzhilin, A. (2005). Toward the next generation of recommender systems. IEEE TKDE. — Context-aware recommendation: the answer depends on who is asking.
  • Tintarev, N. & Masthoff, J. (2007). A survey of explanations in recommender systems. — Why a recommendation needs a legible reason; the "why him" rationale.
  • Hu, Y., Koren, Y. & Volinsky, C. (2008). Collaborative filtering for implicit feedback datasets. ICDM. — Treating shown-versus-actioned as implicit feedback; the basis for the impressions loop.
  • Hakes, J. K. & Sauer, R. D. (2006). An economic evaluation of the Moneyball hypothesis. Journal of Economic Perspectives. — The consensus and value axes target market mispricing.