> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cel-eleague.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Classement

# Classements

Cette page regroupe les règles de classement vérifiées dans le code Convex.

Sources principales :

* `convex/schema.ts`
* `convex/competition/leagues.ts`
* `convex/competition/league_mutations.ts`
* `convex/competition/match_result_mutations.ts`

## Données d’agrégat

`league_clubs` porte les indicateurs de championnat :
`leagueId`, `clubId`, `division`, `points`, `matchesPlayed`, `wins`, `draws`, `losses`, `goalsFor`, `goalsAgainst`, `goalDifference`, `position`.

## Formule de points

Mise à jour incrémentale (`updateLeagueStandings`) :

* victoire : `+3`
* nul : `+1`
* défaite : `+0`

La version inverse utilise la valeur négative symétrique lors des correctifs (réversion/annulation).

`recalculateLeagueStandingsCore` reconstruit ces valeurs depuis les matchs validés/terminés.

## Tie-break canonique (confirmé)

Le tri canonique est appliqué dans `sortStandings` :

1. `points` décroissant
2. `goalDifference` décroissant
3. `goalsFor` décroissant
4. `clubId` lexicographique croissant

## Statuts prise en compte

Les calculs utilisent les états de match normalisés en minuscule, notamment :

* `validated`
* `completed`

Les transitions vers `completed` ne sont pas documentées dans les fichiers lus ici. **\[non vérifié]**

## Cycle de classement

Quand un résultat devient final (`validated`) :

* contributions d’un match ajoutées,
* tri recalculé,
* positionnement stocké.

Quand un résultat est retiré ou corrigé :

* application inverse (`-1`, `-goalFor`, etc. via le même moteur),
* recomposition selon le tri canonique.

## Données dérivées

Le classement alimente notamment les exports palmarès saison et les vues de progression avec les champs déjà listés dans `league_clubs`.

## Données joueur

`league_player_stats_aggs` reste la source agrégée par ligue côté joueur (buts, passes, évaluations, matchs) ; les mécanismes de répercussion via correction manuelle d’un score de match ne sont pas détaillés ici. **\[non vérifié]**

## Précautions

* certains flux d’import/sync peuvent produire d’autres états de match ; vérifier la compatibilité avant d’appliquer des hypothèses métier. **\[non vérifié]**
* cette page couvre le classement canonique de base ; l’arbitrage de litiges et la propagation de sanctions sont documentés ailleurs. **\[non vérifié]**
