Edge Score — Methodology

Edge Score is JPick's proprietary Breakout Potential Index (0–100) for active J1 and J2 players. It blends positional performance, baseline output, and recent momentum to surface players trending ahead of their usage — before the scoreboard catches up.

Key takeaways

  • Edge Score combines three signals: baseline contribution, position-specific performance, and recent momentum — weighted for J-League context.
  • Two badges highlight standouts: NEXT BREAK (≤24 yrs) for early-career breakouts, and X-FACTOR (≥25 yrs) for seasoned difference-makers.
  • Scores recompute nightly from the Daily Batch pipeline, reflecting the latest completed fixtures.

How is Edge Score calculated?

Edge Score combines three components, with the greatest weight placed on position-specific performance, followed by recent momentum and baseline contribution. The exact weighting is calibrated for J-League context and refined over time.

The three components

Baseline contribution

Goals and assists scored per 90 minutes. This captures raw attacking output, normalised so reserve players aren't penalised for limited minutes.

Position-specific performance

The stat mix that actually matters for a player's role, evaluated per 90 minutes. Position-specific stats weigh more heavily than baseline output — a defender contributing heavily on interceptions and duels should stand out even without goals.

Position-specific stats used

  • Forward (FW): shots on target + dribbles completed
  • Midfielder (MF): key passes + duels won
  • Defender (DF): interceptions + duels won
  • Goalkeeper (GK): saves + pass accuracy

Recent momentum

How the last 3 matches compare to the player's own seasonal or prior-season baseline. Momentum is capped to avoid run-away scores from tiny samples, and is phase-aware (see next section).

Phase-based momentum calculation

Momentum comparisons change depending on where the season is. Earlier in the season there isn't enough current-season data for a stable baseline, so we reach back further. Phase labels are internal — the reader only sees an Edge Score.

Phase A — early matchweeks

Recent form is compared against the player's prior full season as the baseline, provided the player logged enough minutes last year to count. Players without a meaningful prior-season sample fall back to a relative form check against team averages.

Phase B — mid-season

Recent form is compared against the player's own current-season baseline. Enough current-season data has accumulated by now that the prior season is no longer needed.

Phase C — late season

Same as Phase B, with additional context-of-the-race weighting. The exact phase boundaries are calibrated per season and may shift depending on schedule compression.

Activation filters

Not every calculated score becomes an active badge. Two gates protect against noise and misleading bursts:

  • A rotation gate — the player must be outside the regular rotation relative to the team's highest-used players, so true starters don't dominate the board.
  • A recent-involvement gate — the player must have actually seen meaningful minutes in the last three matches, so last-year's breakouts don't linger on the list into long absences.

Thresholds for each gate are calibrated per season and are deliberately not published — public thresholds would be easy to game and would drift the signal over time.

Limitations

Edge Score is built to be honest about its own blind spots. Use it alongside full-season stats and recent form rather than as a single truth:

  • Minimum sample of roughly 180 minutes is needed before the score stabilises. Players returning from injury or long absences will show volatile values until their playing-time bank fills back up.
  • Short hot streaks can inflate Edge Score temporarily. Three matches of over-performance can push a player onto the board before regression to the mean catches up.
  • J2 coverage relies on API-Football's J2 2026 dataset, which is still being populated. Some J2 players may have incomplete profile data (nationality, birth date) during early rollout.
  • Edge Score is a breakout / momentum indicator. It does not measure in-team impact on match outcomes — that is Player Impact (PI), available in the JPick iOS app.

Data provenance

All inputs to Edge Score trace back to a single documented pipeline:

  • Match statistics: API-Football, pulled per fixture after full-time.
  • Aggregation: `fixture_players` rows → `player_season_stats` materialised view, refreshed nightly.
  • Edge Score computation: `player_edge_scores` table, recomputed via Daily Batch after the MV refresh.
  • Update cadence: every night via GitHub Actions + launchd (two-layer automation).

Edge Score outputs are published under CC BY-NC 4.0. You may cite or quote Edge Score values with attribution to JPick, non-commercially.

FAQ

Why per-90 minutes?

Per-90 normalisation lets a 60-minute super-sub be compared fairly to a regular starter. Raw totals would always favour the highest-minute players, which is exactly the group Edge Score is trying to look past.

When does the prior-season baseline apply?

Only in Phase A (early matchweeks) and only for players with a meaningful minutes sample in the prior season. Without enough prior-season data, the player falls back to a relative form check against current team averages.

Why are the exact weights and thresholds not published?

Published weights would be trivial to reverse-engineer and optimise against, eroding the signal over time. The three components, their position-specific stats, and the gating logic are disclosed here so the structure is transparent even though the tuning is not.

How do I see the calculation for a specific player?

Each player's page surfaces the Edge Score, the badge type, and a one-line reason that calls out which component is driving the score. The player's full per-90 stats sit immediately below so you can sanity-check the reason yourself.

See the Edge Players ranking →

Match data: API-Football · Proprietary scores: JPick Data Team
License: CC BY-NC 4.0