Guide
As of May 2026Footnote Metrics2 min read2 references cited

fit_score Explained — Club Philosophy × Player Evaluation Vector Inner Product

'Is this player a fit for our philosophy?' — scouting's fundamental question. Footnote's fit_score answers numerically. The inner product of own club's evaluation_weights (Phase H) and target player's 4-axis PVS, scaled to 0-100. Math definition, philosophy linkage, scouting workflow, and limitations covered.

Mathematical Definition — Inner Product Vector Similarity

fit_score = ⟨own club weights, target 4-axis score⟩ × 100. Applies linear algebra inner product directly to soccer evaluation.

fit_score = (w_t × s_t + w_ta × s_ta + w_p × s_p + w_m × s_m) × 100. w = own club's 4 weights (sum 1.0), s = target's normalized scores. Example: weights (0.35, 0.30, 0.15, 0.20) × player (0.75, 0.70, 0.65, 0.80) = 0.731 → fit_score 73.

Why inner product

Inner product measures 'directional alignment' between two vectors. Aligned = large product; orthogonal = zero. Naturally implements 'tech-focused club rates tech-strong players' / 'physical-focused club rates physical-strong players.'

Phase H Philosophy Linkage

fit_score requires club_philosophies.evaluation_weights. Without philosophy → no fit_score available. Forces 'no philosophy = no fit judgment.'

evaluation_weights jsonb stored in club_philosophies. Wave N3 implementation provides real-time fit_score in /club/scouting/search. Wave N3b adds threshold filtering ('fit_score 0.85+ candidates only').

Scouting Field Usage

Best as 'first filter.' 70+ candidates → detailed evaluation (video, interviews) → 2-stage workflow most efficient.

  1. Step 1: search filter (position, age, region) + fit_score ≥0.85 → 200 candidates compressed to 20-30
  2. Step 2: detailed evaluation top 5-10 with public portfolio match history, PVS trajectory, skill radar
  3. Step 3: contact via club_scouting_lists + scouting_contacts (under-18 requires parent_consent_confirmed)

Limits and Caveats

fit_score is simple inner product of integrated 4-axis — misses 'extreme weakness in specific axis.' Complement with axis-level review.

  1. Averaging trap: (90, 50, 60, 60) and (65, 65, 65, 65) get similar fit_score — first is 'genius + tactical weakness,' second is 'balanced' — completely different players
  2. Philosophy change disruption: changing philosophy disrupts past scouting record continuity — note 'fit_score X under old philosophy' in scouting_contacts
  3. PVS-unscored players can't be evaluated: 4-axis PVS unavailable → fit_score is null (intentional, prevents overrating data-poor players)

References

  1. [1] Williams A.M., Reilly T. (2000). “Talent identification and development in soccer Journal of Sports Sciences.
  2. [2] Vaeyens R., Lenoir M., Williams A.M., Philippaerts R.M. (2008). “Talent identification and development programmes in sport: current models and future directions Sports Medicine.

Related Articles

Track Your Growth with Footnote

Just record your matches — AI analyzes every 5 games. Visualize growth with PVS Score. All features free during beta.

30-second signup · No credit card required

Last updated: 2026-05-18Footnote Editorial