Ανεξάρτητη σύγκριση της μηχανής βαθμολόγησης Flying Start έναντι 75.693 πραγματικών αποτελεσμάτων Sailwave από 96 ιστιοπλοϊκούς ομίλους σε 10 χώρες.
Σε 75.693 μεμονωμένες συγκρίσεις, η μηχανή βαθμολόγησης Flying Start αντιστοιχεί στο Sailwave με ποσοστό αντιστοίχισης 99%. Δεν βρέθηκαν σφάλματα βαθμολόγησης. Όλες οι αναντιστοιχίες εξηγούνται είτε από την ποιότητα δεδομένων δοκιμών είτε από μικρές διαφορές στρογγυλοποίησης που δεν επηρεάζουν ποτέ αποτελέσματα.
Γράψαμε ένα αυτοματοποιημένο πλαίσιο δοκιμών που λαμβάνει δεδομένα αποτελεσμάτων Sailwave, τα εκτελεί μέσω της μηχανής βαθμολόγησης Flying Start και συγκρίνει κάθε υπολογισμένη τιμή με αυτό που παρήγαγε το Sailwave. Η δοκιμή ελέγχει τρία πράγματα ανά διαγωνιζόμενο ανά αγώνα:
Η σύγκριση χρησιμοποιεί δύο λειτουργίες επαλήθευσης:
Όταν τα δεδομένα πηγής περιλαμβάνουν παρελθόντες χρόνους και αξιολογήσεις χάντικαπ, επαναϋπολογίζουμε διορθωμένους χρόνους από την αρχή χρησιμοποιώντας τον κατάλληλο τύπο (PY, IRC, YTC κ.λπ.) και συγκρίνουμε με τους διορθωμένους χρόνους του Sailwave. Αυτό επαληθεύει ολόκληρο τον αγωγό: παρελθόντας → διορθωμένος → θέση → βαθμοί.
Όταν τα δεδομένα πηγής περιλαμβάνουν μόνο θέσεις και βαθμούς (συνηθισμένο σε σελίδες σύνοψης σειράς), επαληθεύουμε ότι η αντιστοίχιση θέσης-σε-βαθμούς ακολουθεί τους σωστούς κανόνες συστήματος βαθμολόγησης. Αυτό επαληθεύει την ανάθεση ποινής βαθμών, τους υπολογισμούς bonus βαθμών και τη βαθμολόγηση SCP.
Γράψαμε ένα scraper που συστηματικά ανίχνευσε τον δημόσιο κατάλογο αποτελεσμάτων Sailwave, ο οποίος φιλοξενεί δημοσιευμένα αποτελέσματα από ιστιοπλοϊκούς ομίλους παγκοσμίως. Για κάθε σύλλογο, λάβαμε έως 40 σελίδες αποτελεσμάτων, εξήγαμε δεδομένα διαγωνιζομένων, αποτελέσματα αγώνων και κώδικες ποινών, στη συνέχεια τα μετατρέψαμε σε δομημένη μορφή για επαλήθευση.
Για έξι στόλους Falmouth Sailing Week 2025, scraped χειροκίνητα μεμονωμένες σελίδες αγώνων που περιλάμβαναν πλήρεις παρελθόντες και διορθωμένους χρόνους, επιτρέποντας βαθιά επαλήθευση διορθωμένου χρόνου.
| Πηγή | Αρχεία | Αγώνες | Συγκρίσεις | Αντιστοίχιση | Κύρια | Δευτερεύοντα |
|---|---|---|---|---|---|---|
| Scraped (96 σύλλογοι) | 655 | 4,088 | 74,391 | 99% | 0 | 1,068 |
| Falmouth Week (βαθιά) | 6 | 56 | 1,302 | 99% | 3 | 19 |
| Σύνολο | 661 | 4,144 | 75,693 | 99% | 3 | 1,087 |
0 κύριες αναντιστοιχίες από λογική μηχανής. Οι 3 κύριες αναντιστοιχίες είναι όλες προβλήματα ποιότητας δεδομένων στα δεδομένα δοκιμών μας (εξηγούνται λεπτομερώς παρακάτω).
Η μηχανή βαθμολόγησης υλοποιεί τα ακόλουθα χαρακτηριστικά RRS (Κανόνες Αγώνων Ιστιοπλοΐας). Όλα εξασκήθηκαν κατά τη διάρκεια δοκιμών:
| Λειτουργία | Κάλυψη |
|---|---|
| Χάντικαπ PY (βρετανικά dinghy) | Δοκιμάστηκε σε 60+ βρετανικούς ομίλους |
| Χάντικαπ IRC (διεθνή γιοτ) | Δοκιμάστηκε με στόλους Falmouth Week IRC1/2/3 |
| Χάντικαπ YTC (βρετανικά cruiser) | Δοκιμάστηκε με στόλους Falmouth Week YTCE/YTCQ |
| Βαθμολόγηση Χαμηλού Βαθμού | Δοκιμάστηκε σε όλους τους 4.144 αγώνες |
| Βαθμολόγηση Bonus Βαθμού | Δοκιμάστηκε όπου το χρησιμοποιούν οι σύλλογοι |
| Ποινές DNS / DNF / DNC | Δοκιμάστηκε σε όλους τους ομίλους |
| OCS / DSQ / RET / UFD / BFD | Δοκιμάστηκε όπου εμφανίζονται στα αποτελέσματα |
| Κανόνας RRS A5.3 (προαιρετική βαθμολόγηση ποινής) | Προεπιλογή για όλες τις δοκιμαστικές εκτελέσεις — σκάφη στην περιοχή + 1 έναντι εγγεγραμμένοι + 1 |
| SCP (ποινή βαθμολόγησης) | Δοκιμάστηκε όπου οι σύλλογοι εφαρμόζουν ποινές ποσοστού |
| Προφίλ αποκλεισμού | Δοκιμάστηκε μέσω σύγκρισης κατατάξεων σειράς |
| Σπάσιμο ισοβαθμίας Παραρτήματος A8 RRS | Δοκιμάστηκε μέσω σύγκρισης θέσεων σε ισόβαθμους στόλους |
Δοκιμάσαμε σκόπιμα σε ένα ευρύ γεωγραφικό και οργανωτικό φάσμα. Οι αγώνες ομίλου στο Solent έχουν διαφορετικά χαρακτηριστικά από τους βραδινούς αγώνες της Τετάρτης σε ουαλικό ταμιευτήρα ή σε πρωτάθλημα Australian O'pen Skiff. Η μηχανή βαθμολόγησης πρέπει να τα χειρίζεται όλα.
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, και πολλές ενώσεις κλάσεων (Solo, Osprey, Fireball, 29er, ILCA UK, ITCA, UKWA, Redwings).
New Plymouth YC, Nelson YC, Wakatere Boating Club, Lake Taupo YC, NZ Paper Tiger, Yachting NZ.
Manly YC, Perth SC, Maroochy, Hobie WA, Lake Cootharaba SC, κλάση Open Skiff (εθνικά και κρατικά πρωταθλήματα).
Νότια Αφρική (Bloemfontein YC), Σουηδία (KSSS), Ουγγαρία (αποτελέσματα μέσω hunresults), Πορτογαλία, ΗΠΑ (KHYC — King Harbor YC), Καναδάς (Whitby YC).
Έξι στόλοι από την πορεία Bay — IRC 1, IRC 2, IRC 3, YTC Cruiser, YTC Quarter-Tonner και Firebird — με πλήρεις παρελθόντες και διορθωμένους χρόνους scraped από μεμονωμένες σελίδες αγώνων που φιλοξενούνται στο sailwave.com/results/FSW.
Από τις 75.693 συγκρίσεις, 1.090 δεν αντιστοιχούσαν ακριβώς. Εδώ είναι κάθε κατηγορία αναντιστοιχίας, τι την προκάλεσε και αν έχει σημασία.
Και οι τρεις είναι προβλήματα ποιότητας δεδομένων στα δεδομένα δοκιμών μας, όχι σφάλματα μηχανής βαθμολόγησης.
Αναντιστοιχία: Βαθμοί — Το Sailwave λέει 11, το Flying Start λέει 8.
Βαθύτερη αιτία: Ο Αγώνας Σαμπάνιας της Τετάρτης είχε 3 σκάφη-επισκέπτες (Autarky, Infinity, Passion) που δεν ήταν στη συνήθη σειρά. Το scraped XML μας δεν τα συμπεριλάμβανε, οπότε το μέγεθος στόλου ήταν 10 αντί για 13. Το Percy τερμάτισε 8ο από 10 στα δεδομένα μας έναντι 11ου από 13 στο Sailwave.
Ετυμηγορία: Και οι δύο μηχανές βαθμολόγησης είναι σωστές. Η διαφορά βρίσκεται στα δεδομένα εισόδου, όχι στον υπολογισμό.
Αναντιστοιχία: Βαθμοί — Το Sailwave λέει 12, το Flying Start λέει 9.
Βαθύτερη αιτία: Ίδιο με παραπάνω. Τα σκάφη-επισκέπτες διόγκωσαν το μέγεθος στόλου στα δεδομένα του Sailwave.
Αναντιστοιχία: Διορθωμένος χρόνος — Το Sailwave λέει 1:10:13, το Flying Start λέει 1:08:32.
Βαθύτερη αιτία: Το Tahini έπλευσε με διαφορετική αξιολόγηση YTC την Τετάρτη (1054) από ό,τι στην υπόλοιπη σειρά (1080). Το XML μας χρησιμοποίησε 1080 για όλους τους αγώνες. Ο τύπος διορθωμένου χρόνου είναι elapsed × 1000 ÷ rating, οπότε διαφορετική αξιολόγηση = διαφορετικός διορθωμένος χρόνος.
Ετυμηγορία: Και οι δύο τύποι είναι σωστοί. Η διαφορά βρίσκεται στα δεδομένα χάντικαπ, όχι στον υπολογισμό.
Όλες οι 1.087 δευτερεύουσες αναντιστοιχίες εμπίπτουν σε δύο κατηγορίες:
Διαφορές 1–3 δευτερολέπτων μεταξύ Sailwave και Flying Start, που προκαλούνται από ενδιάμεση στρογγυλοποίηση στην αλυσίδα υπολογισμού του Sailwave. Για παράδειγμα, διορθωμένος χρόνος IRC = παρελθόντας × TCC. Αν παρελθόντας = 3.428 δ. και TCC = 1,072:
3428 × 1.072 = 3674.816 → 3675sΕπίπτωση: Καμία. Μια διαφορά 1–3 δευτερολέπτων στον διορθωμένο χρόνο δεν αλλάζει ποτέ θέση τερματισμού — τα σκάφη συνήθως χωρίζονται ανά λεπτά.
Διαφορές 0,1–0,3 βαθμών όπου οι κλασματικές βαθμολογίες bonus βαθμού ή οι υπολογισμοί ποσοστού SCP του Sailwave διαφέρουν ελαφρώς. Για παράδειγμα, η 3η θέση στη βαθμολόγηση bonus βαθμού πρέπει να είναι ακριβώς 5,7, αλλά ορισμένες εκδόσεις Sailwave φαίνεται να χρησιμοποιούν ελαφρώς διαφορετική ακρίβεια κινητής υποδιαστολής εσωτερικά.
Επίπτωση: Αμελητέο. Αυτές οι κλασματικές διαφορές δεν αλλάζουν ποτέ κατατάξεις επειδή είναι μικρότερες από το χάσμα μεταξύ οποιωνδήποτε δύο θέσεων τερματισμού.
Κατά τη διάρκεια δοκιμών, βρήκαμε μία περιοχή όπου η συμπεριφορά του Sailwave είναι ασυνεπής μεταξύ ομίλων. Δεν ισχυριζόμαστε ότι αυτό είναι σφάλμα — μπορεί να είναι εκούσια επιλογή ρύθμισης — αλλά αξίζει να τεκμηριωθεί για αξιωματικούς αγώνα που μεταναστεύουν από το Sailwave.
Το Sailwave χρησιμοποιεί TLE ως κωδικό ποινής για σκάφη που δεν τερματίζουν εντός του χρονικού ορίου. Αυτός ο κωδικός δεν εμφανίζεται στους Κανόνες Αγώνων Ιστιοπλοΐας (RRS). Το ισοδύναμο RRS θα ήταν DNF (Δεν Τερμάτισε).
Βρήκαμε ότι το Sailwave αντιμετωπίζει TLE ασυνεπώς σε διαφορετικούς ομίλους:
starters + 1 (ίδιο με DNF)last finisher's position + 1Το Flying Start αντιμετωπίζει TLE ως ισοδύναμο με DNF (starters + 1), το οποίο αντιστοιχεί στην πιο συνηθισμένη συμπεριφορά Sailwave και ευθυγραμμίζεται με την αρχή RRS ότι ένα σκάφος που εκκινεί αλλά δεν τερματίζει λαμβάνει starters + 1 βαθμούς.
Αυτή η ασυνέπεια αποτελεί μέρος των δευτερευουσών αναντιστοιχιών μας. Αν ο σύλλογός σου χρησιμοποιεί TLE με συγκεκριμένους κανόνες βαθμολόγησης, παρακαλούμε ενημέρωσέ μας και θα διασφαλίσουμε ότι το Flying Start αντιστοιχεί στην πρακτική σου.
Παρά τη δοκιμή 4.144 αγώνων, δεν βρήκαμε περιπτώσεις όπου το Sailwave παράγει λανθασμένα αποτελέσματα σύμφωνα με τους κανόνες RRS. Όλες οι αναντιστοιχίες εξηγούνται από στρογγυλοποίηση, ποιότητα δεδομένων ή την ασάφεια TLE που περιγράφεται παραπάνω. Το Sailwave είναι το πρότυπο του κλάδου για 20+ χρόνια για καλό λόγο — κάνει σωστά τα μαθηματικά.
Σημειώνουμε επίσης ότι η πλειοψηφία των συγκρίσεών μας (74.391 από 75.693) είναι συγκρίσεις μόνο βαθμών από σελίδες σύνοψης σειράς. Η βαθιά επαλήθευση διορθωμένου χρόνου καλύπτει 1.302 συγκρίσεις από το Falmouth Week. Θα χαιρετίζαμε πρόσβαση σε περισσότερες εκδηλώσεις με δημοσιευμένους παρελθόντες και διορθωμένους χρόνους για να ενισχύσουμε αυτή την επαλήθευση.
Το πλαίσιο δοκιμών, τα scraped δεδομένα και τα πλήρη αποτελέσματα δημοσιεύονται σε έναν αποκλειστικό αποθετήριο ανοιχτού κώδικα:
| Διαδρομή | Περιγραφή |
|---|---|
| scripts/soak-test.ts | Εκτελεστής δοκιμών CLI — αναλύει XML, εκτελεί επαλήθευση, παράγει έκθεση |
| scripts/scrape-sailwave.ts | Web scraper για σελίδες HTML αποτελεσμάτων Sailwave |
| verifier/sailwaveVerifier.ts | Η μηχανή σύγκρισης — επαναϋπολογίζει διορθωμένους χρόνους, θέσεις, βαθμούς |
| scoring-engine/ | Η ίδια η μηχανή βαθμολόγησης — raceScorer, seriesScorer, handicapCalculator, tieBreaker |
| data/sources.json | Πλήρες αρχείο καταγραφής όλων των 1.266 scraped URL πηγών |
| data/soak-results.json | Πλήρη αποτελέσματα δοκιμών με ποσοστά αντιστοίχισης ανά αρχείο και λεπτομέρειες αναντιστοιχιών |
| REPORT.md | Λεπτομερής έκθεση ευρημάτων |
Το scraper σέβεται προηγουμένως scraped URL (παρακολουθούνται στο sources.json) και θα λαμβάνει μόνο νέες σελίδες. Ολόκληρη η σειρά δοκιμών εκτελείται σε λιγότερο από 60 δευτερόλεπτα στα scraped δεδομένα.
Όλα τα δεδομένα αποτελεσμάτων Sailwave ελήφθησαν από δημόσια δημοσιευμένα αποτελέσματα στο sailwave.com/results. Το Sailwave είναι εμπορικό σήμα του Jon Mayall. Το Flying Start δεν συνδέεται με το Sailwave.