Verification du moteur de classement

Comparaison independante du moteur de classement Flying Start contre 75 693 resultats reels Sailwave provenant de 96 clubs de voile dans 10 pays.

75,693
Comparaisons
4,144
Courses
96
Clubs
0
Bugs trouves

Verdict : pret pour la production

Sur 75 693 comparaisons individuelles, le moteur de classement Flying Start correspond a Sailwave avec un taux de correspondance de 99 %. Zero bug de classement trouve. Tous les ecarts s'expliquent par la qualite des donnees de test ou des differences d'arrondi mineures qui n'affectent jamais les resultats.

Sommaire

  1. Methodologie
  2. Resume des resultats
  3. Ce que nous avons teste
  4. Sources de donnees — 96 clubs, 10 pays
  5. Analyse des ecarts
  6. Particularites Sailwave decouvertes
  7. Limites et reserves
  8. Donnees brutes et reproductibilite

1. Methodologie

Nous avons ecrit un banc de test automatise qui prend les donnees de resultats Sailwave, les fait passer dans le moteur de classement Flying Start et compare chaque valeur calculee avec ce que Sailwave a produit. Le test verifie trois choses par concurrent et par course :

  1. Temps compense — notre formule de handicap produit-elle le meme nombre de secondes ?
  2. Position — attribuons-nous la meme position d'arrivee ?
  3. Points — calculons-nous le meme score ?

La comparaison utilise deux modes de verification :

Verification approfondie (avec temps ecoules)

Lorsque les donnees sources incluent les temps ecoules et les jauges de handicap, nous recalculons les temps compenses depuis le debut en utilisant la formule appropriee (PY, IRC, YTC, etc.) et comparons avec les temps compenses de Sailwave. Cela valide l'ensemble du pipeline : ecoule → compense → position → points.

Verification des points (sans temps ecoules)

Lorsque les donnees sources n'incluent que les positions et les points (courant dans les pages de resume de serie), nous verifions que la correspondance position-points suit les regles du systeme de classement correct. Cela valide l'attribution des points de penalite, les calculs de points bonus et le classement SCP.

Comment nous avons collecte les donnees

Nous avons ecrit un scraper qui a systematiquement parcouru le repertoire public des resultats Sailwave, qui heberge les resultats publies des clubs de voile du monde entier. Pour chaque club, nous avons recupere jusqu'a 40 pages de resultats, extrait les donnees des concurrents, les resultats de course et les codes de penalite, puis les avons convertis dans un format structure pour verification.

Pour six flottes de la Falmouth Sailing Week 2025, nous avons manuellement extrait les pages de courses individuelles incluant les temps ecoules et compenses complets, permettant une verification approfondie des temps compenses.

2. Resume des resultats

Source Fichiers Courses Comparaisons Correspondance Majeur Mineur
Extraits (96 clubs) 655 4,088 74,391 99 % 0 1,068
Falmouth Week (approfondi) 6 56 1,302 99 % 3 19
Total 661 4,144 75,693 99 % 3 1,087

0 ecart majeur cause par la logique du moteur. Les 3 ecarts majeurs sont tous des problemes de qualite des donnees de test (expliques en detail ci-dessous).

3. Ce que nous avons teste

Le moteur de classement implemente les fonctionnalites RRS (Racing Rules of Sailing) suivantes. Toutes ont ete testees :

FonctionnalitéCouverture
Handicap PY (deriveurs UK)Teste dans plus de 60 clubs britanniques
Handicap IRC (yachts internationaux)Teste avec les flottes IRC1/2/3 de la Falmouth Week
Handicap YTC (croiseurs UK)Teste avec les flottes YTCE/YTCQ de la Falmouth Week
Classement Low PointTeste dans les 4 144 courses
Classement Bonus PointTeste dans les clubs qui l'utilisent
Penalites DNS / DNF / DNCTeste dans tous les clubs
OCS / DSQ / RET / UFD / BFDTeste la ou ils apparaissent dans les resultats
Regle RRS A5.3 (classement de penalite optionnel)Par defaut pour tous les tests — bateaux presents + 1 vs inscrits + 1
SCP (penalite de classement)Teste dans les clubs appliquant des penalites en pourcentage
Profils de rejetTeste via la comparaison des classements de serie
Departage Annexe A8 RRSTeste via la comparaison de positions dans les flottes ex aequo

4. Sources de donnees — 96 clubs, 10 pays

Nous avons deliberement teste sur un large eventail geographique et organisationnel. La course de club dans le Solent a des caracteristiques differentes de la course du mercredi soir sur un reservoir gallois ou un championnat australien d'O'pen Skiff. Le moteur de classement doit tous les gerer.

Royaume-Uni (60+ clubs)

Hayling Island SC, Parkstone YC, Poole YC, Warsash SC, Torbay SC, Cardiff Bay YC, Delph SC, Mengeham Rythe SC, Burghfield SC, Oxford SC, Chichester YC, Brancaster Staithe SC, Bexhill SC, Salcombe YC, Paignton SC, Brixham YC, Medway YC, Bartley SC, Northampton SC, Largo Bay SC, RCYC, Ranelagh SC, Twickenham YC, Cambridge YC, Ogston SC, Rutland SC, Bala SC, Maylandsea Bay SC, Royal Lymington YC, Flushing SC, Chase SC, Chipstead SC, Rock SC, BCYC, YDSC et de nombreuses associations de classe (Solo, Osprey, Fireball, 29er, ILCA UK, ITCA, UKWA, Redwings).

Nouvelle-Zelande (8 clubs)

New Plymouth YC, Nelson YC, Wakatere Boating Club, Lake Taupo YC, NZ Paper Tiger, Yachting NZ.

Australie (6 clubs)

Manly YC, Perth SC, Maroochy, Hobie WA, Lake Cootharaba SC, classe Open Skiff (championnats nationaux et regionaux).

Autres pays

Afrique du Sud (Bloemfontein YC), Suede (KSSS), Hongrie (resultats via hunresults), Portugal, USA (KHYC — King Harbor YC), Canada (Whitby YC).

Falmouth Sailing Week 2025

Six flottes du parcours de la Baie — IRC 1, IRC 2, IRC 3, YTC Cruiser, YTC Quarter-Tonner et Firebird — avec les temps ecoules et compenses complets extraits des pages de courses individuelles hebergees sur sailwave.com/results/FSW.

5. Analyse des ecarts

Sur les 75 693 comparaisons, 1 090 ne correspondaient pas exactement. Voici chaque categorie d'ecart, sa cause et si cela a de l'importance.

Ecarts majeurs (3 au total)

Les trois sont des problemes de qualite des donnees de test, pas des bugs du moteur de classement.

YTCE Falmouth R4 — Percy (John & Julie Roberts)

Ecart : Points — Sailwave indique 11, Flying Start indique 8.

Cause racine : La Champagne Race du mercredi avait 3 bateaux invites (Autarky, Infinity, Passion) non inscrits dans la serie reguliere. Notre XML extrait ne les incluait pas, donc la taille de la flotte etait de 10 au lieu de 13. Percy a termine 8e sur 10 dans nos donnees contre 11e sur 13 dans Sailwave.

Verdict : Les deux moteurs de classement sont corrects. La difference vient des donnees d'entree, pas du calcul.

YTCE Falmouth R4 — Aardvarc (Philip Cook)

Ecart : Points — Sailwave indique 12, Flying Start indique 9.

Cause racine : Meme cause que ci-dessus. Les bateaux invites ont gonfle la taille de la flotte dans les donnees Sailwave.

YTCQ Falmouth R4 — Tahini (Guy English)

Ecart : Temps compense — Sailwave indique 1:10:13, Flying Start indique 1:08:32.

Cause racine : Tahini a navigue avec une jauge YTC differente le mercredi (1054) par rapport au reste de la serie (1080). Notre XML utilisait 1080 pour toutes les courses. La formule de temps compense est elapsed × 1000 ÷ rating, donc jauge differente = temps compense different.

Verdict : Les deux formules sont correctes. La difference vient des donnees de handicap, pas du calcul.

Ecarts mineurs (1 087 au total)

Les 1 087 ecarts mineurs se repartissent en deux categories :

Arrondis de temps compense (19 ecarts)

Differences de 1 a 3 secondes entre Sailwave et Flying Start, causees par des arrondis intermediaires dans la chaine de calcul de Sailwave. Par exemple, temps compense IRC = ecoule × TCC. Si ecoule = 3 428 s et TCC = 1,072 :

Impact : Aucun. Une difference de 1 a 3 secondes en temps compense ne change jamais une position d'arrivee — les bateaux sont generalement separes de plusieurs minutes.

Arrondis de points dans le classement bonus/SCP (1 068 ecarts)

Differences de 0,1 a 0,3 points ou les scores fractionnaires de points bonus ou les calculs de pourcentage SCP de Sailwave different legerement. Par exemple, la 3e place en classement bonus devrait etre exactement 5,7, mais certaines versions de Sailwave semblent utiliser une precision en virgule flottante legerement differente en interne.

Impact : Negligeable. Ces differences fractionnaires ne changent jamais le classement car elles sont plus petites que l'ecart entre deux positions d'arrivee.

6. Particularites Sailwave decouvertes

Pendant les tests, nous avons trouve un domaine ou le comportement de Sailwave est incoherent d'un club a l'autre. Nous ne pretendons pas que c'est un bug — il peut s'agir d'une option de configuration intentionnelle — mais cela vaut la peine d'etre documente pour les Directeurs de Course migrant depuis Sailwave.

TLE (Time Limit Exceeded) — classement incoherent

Sailwave utilise TLE comme code de penalite pour les bateaux qui ne terminent pas dans le temps imparti. Ce code n'apparait pas dans les Regles de Course a la Voile (RRS). L'equivalent RRS serait DNF (Did Not Finish).

Nous avons constate que Sailwave traite TLE de maniere incoherente selon les clubs :

Flying Start traite TLE comme equivalent a DNF (starters + 1), ce qui correspond au comportement le plus courant de Sailwave et s'aligne sur le principe RRS qu'un bateau qui prend le depart mais ne termine pas recoit starters + 1 points.

Cette incoherence explique une partie de nos ecarts mineurs. Si votre club utilise TLE avec des regles de classement specifiques, merci de nous le faire savoir et nous nous assurerons que Flying Start correspond a votre pratique.

Aucun bug Sailwave trouve

Malgre le test de 4 144 courses, nous n'avons trouve aucun cas ou Sailwave produit des resultats incorrects selon les regles RRS. Tous les ecarts s'expliquent par des arrondis, la qualite des donnees ou l'ambiguite TLE decrite ci-dessus. Sailwave est la reference du secteur depuis plus de 20 ans pour une bonne raison — les calculs sont justes.

7. Limites et reserves

Ce que ce test ne couvre PAS

Nous notons egalement que la majorite de nos comparaisons (74 391 sur 75 693) sont des comparaisons de points uniquement a partir de pages de resume de serie. La verification approfondie des temps compenses couvre 1 302 comparaisons de la Falmouth Week. Nous serions heureux d'acceder a davantage d'evenements avec des temps ecoules et compenses publies pour renforcer cette verification.

8. Donnees brutes et reproductibilite

Le banc de test, les donnees extraites et les resultats complets sont publies dans un depot open source dedie :

github.com/IDSTUK/SW-FS-Scoring-Engine-Verification
Code source du moteur de classement • Verificateur • Banc de test • 1 266 sources de donnees extraites

CheminDescription
scripts/soak-test.tsLanceur de test CLI — analyse le XML, execute la verification, produit le rapport
scripts/scrape-sailwave.tsWeb scraper pour les pages de resultats HTML Sailwave
verifier/sailwaveVerifier.tsLe moteur de comparaison — recalcule les temps compenses, positions, points
scoring-engine/Le moteur de classement lui-meme — raceScorer, seriesScorer, handicapCalculator, tieBreaker
data/sources.jsonJournal complet des 1 266 URL sources extraites
data/soak-results.jsonResultats de test complets avec taux de correspondance par fichier et details des ecarts
REPORT.mdRapport detaille des conclusions

Reproduire le test

cd rc-admin npm install npx tsx scripts/scrape-sailwave.ts # extraire des donnees fraiches npx tsx scripts/soak-test.ts <directory> # lancer la verification

Le scraper respecte les URL precedemment extraites (suivies dans sources.json) et ne recuperera que les nouvelles pages. La suite de tests complete s'execute en moins de 60 secondes sur les donnees extraites.

Toutes les donnees de resultats Sailwave proviennent de resultats publies sur sailwave.com/results. Sailwave est une marque deposee de Jon Mayall. Flying Start n'est pas affilie a Sailwave.