Project Module 01

Rating Demo + Player Cluster Demo

End-to-end workflow for player performance rating and role clustering: filter data, compare outputs, and produce delivery-ready results.

Rating Demo

Rating Demo Capabilities

FutrixMetrics rating data is objective and model-driven, helping scouting and analysis teams evaluate full player performance quickly.

01 · Rating Data Filtering and Comparison Layer

Use feature filters to isolate relevant player performance indicators before scoring. This keeps every discussion on the same sample base for consistent conclusions.

  • Apply precise filters across shots, goals, season, league, team, and core player indicators.
  • Optimize low-density metrics such as conversion rate and attacking involvement contribution.
  • Support multi-season lateral comparison for players in the same position.
FutrixMetrics football player rating report dashboard

02 · Rating Explanation and Delivery Layer

Rating outputs are designed for analyst review, report production, and client-facing delivery without repetitive manual formatting.

  • Return rating result objects that can be consumed directly by report modules.
  • Generate HTML player reports through the /report route.
  • Link outputs with model chart and player chart pages for unified presentation.
FutrixMetrics football rating feature overview report
Cluster Demo

Player Cluster Demo Capabilities

Built for three core tasks: role identification, similar-player retrieval, and structure analysis.

01 · Cluster Role Identification Layer

First identify which role archetype a player matches, then evaluate fit against the current tactical system.

  • Search by player_name, season, club, and position.
  • Reverse-search by cluster_id, cluster_group, and cluster_name.
  • Useful for similar-player discovery and replacement evaluation.
FutrixMetrics football player cluster feature distribution chart

02 · Cluster Structure Analysis Layer

Understand role-cluster distribution to assess squad balance more clearly.

  • Focus on cluster_group, cluster_local, and cluster_name dimensions.
  • Evaluate role distribution patterns across leagues or custom samples.
  • Combine with rating results to measure role-capability alignment.
FutrixMetrics football player cluster summary panel
Model Effect

Model Performance Overview

This section summarizes model design logic and validation outcomes for fast assessment.

"Quantified data makes player evaluation more objective. Even elite players vary by match and system, so data helps identify their best role, style, and strongest performance patterns."

Model Design Principles

  • Model by objective instead of forcing one model for every task

    We train separate targets such as shooting_quality, passing, defense, aerial, and goalkeeper so each position and style is evaluated more fairly.

  • Shared core features plus target-specific signals

    Most targets use 6-14 features, while rating uses more (62), balancing broad coverage with detailed judgment.

  • Validation performance is prioritized over training performance

    Training and validation are evaluated separately to avoid overfitting. We prioritize Valid RMSE and R2 for practical reliability.

Result Interpretation (Based on the Current Charts)

  • Overall R2 is mostly above 0.96, indicating model decisions are highly aligned with real performance trends.

  • Most targets show low RMSE, which means error is controlled for metrics like rating, assist, and foul_card.

  • Goalkeeper has a higher error level, indicating that keeper scenarios are harder and require more training samples.

  • Compared with previous versions, Final outputs are generally better (lower RMSE), confirming that the upgrade is effective.

OpenAPI Output

Output Examples

Verified endpoints, parameters, and schemas are listed below. The 200 response is defined as object + additionalProperties: true, so no undefined fields are fabricated.

GET /database/ratings

Fetch football player rating analysis data.

player_idfull_nameseasonleagueteamlimitoffset
GET /database/role-cluster-results

Fetch football player cluster prediction results.

player_idplayer_nameseasonleagueclubpositioncluster_idcluster_name
GET /database/role-cluster-summary

Get cluster-level aggregations and summary dimensions.

cluster_idcluster_groupcluster_localcluster_namelimitoffset
POST /score/predict

Submit features to get rating prediction result objects.

body.featuresAuthorizationX-API-Key
POST /score/predict-base

Submit features to get base rating prediction result objects.

body.featuresAuthorizationX-API-Key

POST /score/predict · requestBody (PredictRequest example)

{
  "features": {
    "aerials": 90,
    "aerials_won": 56,
    "assists": 5,
    "blocks": 35,
    "clearances": 140,
    "club": "Example FC",
    "dribbles": 42,
    "dribbles_successful": 23,
    "fouls_committed": 22,
    "fouls_drawn": 18,
    "goals": 3,
    "interceptions": 52,
    "league": "Premier League",
    "minutes": 1980,
    "passes_attempted": 1900,
    "passes_completed": 1650,
    "player_name": "Example Player",
    "position": "defender",
    "red_cards": 0,
    "season": "2024/2025",
    "shots": 28,
    "shots_on_target": 10,
    "tackles": 68,
    "tackles_won": 45,
    "yellow_cards": 4
  }
}

GET /database/ratings · query example

{
  "player_id": 10293,
  "season": "2024/2025",
  "league": "Premier League",
  "limit": 50,
  "offset": 0
}

GET /database/role-cluster-results · query example

{
  "player_name": "Example Player",
  "season": "2024/2025",
  "league": "Premier League",
  "cluster_name": "Vertical Playmaker",
  "limit": 50,
  "offset": 0
}

200 schema (ratings / cluster / predict)

{
  "ratings200": {
    "type": "object",
    "additionalProperties": true,
    "title": "Response Ratings Database Ratings Get"
  },
  "cluster200": {
    "type": "object",
    "additionalProperties": true,
    "title": "Response Role Cluster Results Database Role Cluster Results Get"
  },
  "predict200": {
    "type": "object",
    "additionalProperties": true,
    "title": "Response Predict Score Predict Post"
  }
}

422 Validation Error schema (HTTPValidationError / ValidationError)

{
  "detail": [
    {
      "loc": [
        "string | integer",
        "string | integer"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}