Confronto indipendente del motore di calcolo di Flying Start con 75.693 risultati Sailwave reali da 96 circoli velici in 10 paesi.
Su 75.693 confronti individuali, il motore di calcolo di Flying Start corrisponde a Sailwave con un tasso di corrispondenza del 99%. Non sono stati trovati errori di calcolo. Tutte le discrepanze sono spiegate dalla qualità dei dati di test o da differenze di arrotondamento minori che non influenzano mai i risultati.
Abbiamo scritto un sistema di test automatizzato che prende i dati dei risultati di Sailwave, li elabora attraverso il motore di calcolo di Flying Start e confronta ogni valore calcolato con quello prodotto da Sailwave. Il test verifica tre cose per ogni concorrente per ogni regata:
Il confronto utilizza due modalità di verifica:
Quando i dati di origine includono i tempi trascorsi e i rating di handicap, ricalcoliamo i tempi corretti da zero utilizzando la formula appropriata (PY, IRC, YTC, ecc.) e confrontiamo con i tempi corretti di Sailwave. Questo valida l'intera pipeline: trascorso → corretto → posizione → punti.
Quando i dati di origine includono solo posizioni e punti (comune nelle pagine di riepilogo della serie), verifichiamo che la mappatura posizione-punti segua le regole corrette del sistema di calcolo. Questo valida l'assegnazione dei punti penalità, i calcoli dei punti bonus e il calcolo SCP.
Abbiamo scritto uno scraper che ha sistematicamente esplorato la directory dei risultati pubblici di Sailwave, che ospita i risultati pubblicati da circoli velici di tutto il mondo. Per ogni circolo, abbiamo recuperato fino a 40 pagine di risultati, estratto i dati dei concorrenti, i risultati delle regate e i codici di penalità, quindi li abbiamo convertiti in un formato strutturato per la verifica.
Per sei flotte della Falmouth Sailing Week 2025, abbiamo estratto manualmente le pagine delle singole regate che includevano i tempi trascorsi e corretti completi, consentendo una verifica approfondita del tempo corretto.
| Fonte | File | Regate | Confronti | Corrispondenza | Maggiori | Minori |
|---|---|---|---|---|---|---|
| Estratto (96 circoli) | 655 | 4,088 | 74,391 | 99% | 0 | 1,068 |
| Falmouth Week (approfondita) | 6 | 56 | 1,302 | 99% | 3 | 19 |
| Totale | 661 | 4,144 | 75,693 | 99% | 3 | 1,087 |
0 discrepanze maggiori causate dalla logica del motore. Le 3 discrepanze maggiori sono tutte problemi di qualità dei dati di test (spiegati in dettaglio di seguito).
Il motore di calcolo implementa le seguenti funzionalità RRS (Regole di Regata). Tutte sono state testate:
| Funzionalità | Copertura |
|---|---|
| Handicap PY (derive britanniche) | Testato in oltre 60 circoli britannici |
| Handicap IRC (yacht internazionali) | Testato con le flotte IRC1/2/3 della Falmouth Week |
| Handicap YTC (croceristi britannici) | Testato con le flotte YTCE/YTCQ della Falmouth Week |
| Calcolo Low Point | Testato in tutte le 4.144 regate |
| Calcolo Bonus Point | Testato dove i circoli lo utilizzano |
| Penalità DNS / DNF / DNC | Testato in tutti i circoli |
| OCS / DSQ / RET / UFD / BFD | Testato dove compaiono nei risultati |
| Regola RRS A5.3 (calcolo penalità opzionale) | Predefinito per tutte le esecuzioni di test — imbarcazioni a partecipanti area + 1 vs iscritti + 1 |
| SCP (penalità di calcolo) | Testato dove i circoli applicano penalità percentuali |
| Profili di scarto | Testato tramite confronto della classifica di serie |
| Spareggio Appendice A8 RRS | Testato tramite confronto di posizione in flotte a pari merito |
Abbiamo deliberatamente testato su un'ampia gamma geografica e organizzativa. Le regate di circolo nel Solent hanno caratteristiche diverse dalle regate del mercoledì sera su un bacino idrico gallese o da un campionato australiano di O'pen Skiff. Il motore di calcolo deve gestirli tutti.
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, e molte associazioni di classe (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, classe Open Skiff (campionati nazionali e statali).
Sudafrica (Bloemfontein YC), Svezia (KSSS), Ungheria (risultati tramite hunresults), Portogallo, USA (KHYC — King Harbor YC), Canada (Whitby YC).
Sei flotte del percorso della baia — IRC 1, IRC 2, IRC 3, YTC Cruiser, YTC Quarter-Tonner e Firebird — con tempi trascorsi e corretti completi estratti dalle pagine delle singole regate ospitate su sailwave.com/results/FSW.
Dei 75.693 confronti, 1.090 non corrispondevano esattamente. Ecco ogni categoria di discrepanza, cosa l'ha causata e se sia rilevante.
Tutte e tre sono problemi di qualità dei dati di test, non errori del motore di calcolo.
Discrepanza: Punti — Sailwave dice 11, Flying Start dice 8.
Causa principale: La Wednesday Champagne Race aveva 3 imbarcazioni ospiti (Autarky, Infinity, Passion) non presenti nella serie regolare. Il nostro XML estratto non le includeva, quindi la dimensione della flotta era 10 invece di 13. Percy è arrivato 8° su 10 nei nostri dati contro 11° su 13 in Sailwave.
Verdetto: Entrambi i motori di calcolo sono corretti. La differenza è nei dati di input, non nel calcolo.
Discrepanza: Punti — Sailwave dice 12, Flying Start dice 9.
Causa principale: Come sopra. Le imbarcazioni ospiti hanno gonfiato la dimensione della flotta nei dati di Sailwave.
Discrepanza: Tempo corretto — Sailwave dice 1:10:13, Flying Start dice 1:08:32.
Causa principale: Tahini ha gareggiato con un rating YTC diverso il mercoledì (1054) rispetto al resto della serie (1080). Il nostro XML utilizzava 1080 per tutte le regate. La formula del tempo corretto è elapsed × 1000 ÷ rating, quindi un rating diverso = un tempo corretto diverso.
Verdetto: Entrambe le formule sono corrette. La differenza è nei dati di handicap, non nel calcolo.
Tutte le 1.087 discrepanze minori rientrano in due categorie:
Differenze di 1–3 secondi tra Sailwave e Flying Start, causate dall'arrotondamento intermedio nella catena di calcolo di Sailwave. Ad esempio, tempo corretto IRC = trascorso × TCC. Se trascorso = 3.428s e TCC = 1.072:
3428 × 1.072 = 3674.816 → 3675sImpatto: Nessuno. Una differenza di 1–3 secondi nel tempo corretto non cambia mai una posizione di arrivo — le imbarcazioni sono tipicamente separate da minuti.
Differenze di 0,1–0,3 punti dove i punteggi frazionari dei punti bonus di Sailwave o i calcoli percentuali SCP differiscono leggermente. Ad esempio, il 3° posto nel calcolo dei punti bonus dovrebbe essere esattamente 5,7, ma alcune versioni di Sailwave sembrano utilizzare internamente una precisione floating-point leggermente diversa.
Impatto: Trascurabile. Queste differenze frazionarie non cambiano mai la classifica perché sono più piccole del divario tra due qualsiasi posizioni di arrivo.
Durante i test, abbiamo trovato un'area in cui il comportamento di Sailwave è incoerente tra i circoli. Non affermiamo che si tratti di un errore — potrebbe essere un'opzione di configurazione intenzionale — ma vale la pena documentarlo per i responsabili di regata che migrano da Sailwave.
Sailwave utilizza TLE come codice di penalità per le imbarcazioni che non finiscono entro il limite di tempo. Questo codice non compare nelle Regole di Regata (RRS). L'equivalente RRS sarebbe DNF (Did Not Finish).
Abbiamo riscontrato che Sailwave tratta il TLE in modo incoerente tra i diversi circoli:
starters + 1 (uguale a DNF)last finisher's position + 1Flying Start tratta il TLE come equivalente a DNF (starters + 1), che corrisponde al comportamento più comune di Sailwave e si allinea con il principio RRS secondo cui un'imbarcazione che parte ma non finisce riceve starters + 1 punti.
Questa incoerenza rappresenta una parte delle nostre discrepanze minori. Se il tuo circolo utilizza il TLE con regole di calcolo specifiche, ti preghiamo di farcelo sapere e ci assicureremo che Flying Start corrisponda alla tua pratica.
Nonostante aver testato 4.144 regate, non abbiamo trovato casi in cui Sailwave produca risultati errati secondo le regole RRS. Tutte le discrepanze sono spiegabili con l'arrotondamento, la qualità dei dati o l'ambiguità del TLE descritta sopra. Sailwave è stato lo standard del settore per oltre 20 anni per una buona ragione — fa bene i calcoli.
Notiamo anche che la maggior parte dei nostri confronti (74.391 su 75.693) sono confronti solo di punti da pagine di riepilogo della serie. La verifica approfondita del tempo corretto copre 1.302 confronti della Falmouth Week. Saremmo lieti di avere accesso a più eventi con tempi trascorsi e corretti pubblicati per rafforzare questa verifica.
Il sistema di test, i dati estratti e i risultati completi sono pubblicati in un repository open source dedicato:
| Percorso | Descrizione |
|---|---|
| scripts/soak-test.ts | Esecutore di test CLI — analizza XML, esegue la verifica, produce il report |
| scripts/scrape-sailwave.ts | Web scraper per le pagine dei risultati HTML di Sailwave |
| verifier/sailwaveVerifier.ts | Il motore di confronto — ricalcola i tempi corretti, le posizioni, i punti |
| scoring-engine/ | Il motore di calcolo stesso — raceScorer, seriesScorer, handicapCalculator, tieBreaker |
| data/sources.json | Registro completo di tutti i 1.266 URL sorgente estratti |
| data/soak-results.json | Risultati completi dei test con tassi di corrispondenza per file e dettagli delle discrepanze |
| REPORT.md | Report dettagliato dei risultati |
Lo scraper rispetta gli URL estratti in precedenza (tracciati in sources.json) e recupererà solo le nuove pagine. L'intera suite di test viene eseguita in meno di 60 secondi sui dati estratti.
Tutti i dati dei risultati di Sailwave provengono da risultati pubblicati pubblicamente su sailwave.com/results. Sailwave è un marchio di Jon Mayall. Flying Start non è affiliata a Sailwave.