Verifica del Motore di Calcolo

Confronto indipendente del motore di calcolo di Flying Start con 75.693 risultati Sailwave reali da 96 circoli velici in 10 paesi.

75,693
Confronti
4,144
Regate
96
Circoli
0
Errori Trovati

Verdetto: Pronto per la Produzione

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.

Contenuti

  1. Metodologia
  2. Riepilogo dei Risultati
  3. Cosa Abbiamo Testato
  4. Fonti dei Dati — 96 Circoli, 10 Paesi
  5. Analisi delle Discrepanze
  6. Anomalie di Sailwave Scoperte
  7. Limitazioni e Avvertenze
  8. Dati Grezzi e Riproducibilità

1. Metodologia

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:

  1. Tempo corretto — la nostra formula di handicap produce lo stesso numero di secondi?
  2. Posizione — assegniamo la stessa posizione di arrivo?
  3. Punti — calcoliamo lo stesso punteggio?

Il confronto utilizza due modalità di verifica:

Verifica approfondita (con tempi trascorsi)

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.

Verifica dei punti (senza tempi trascorsi)

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.

Come abbiamo raccolto i dati

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.

2. Riepilogo dei Risultati

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).

3. Cosa Abbiamo Testato

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 PointTestato in tutte le 4.144 regate
Calcolo Bonus PointTestato dove i circoli lo utilizzano
Penalità DNS / DNF / DNCTestato in tutti i circoli
OCS / DSQ / RET / UFD / BFDTestato 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 scartoTestato tramite confronto della classifica di serie
Spareggio Appendice A8 RRSTestato tramite confronto di posizione in flotte a pari merito

4. Fonti dei Dati — 96 Circoli, 10 Paesi

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.

Regno Unito (oltre 60 circoli)

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).

Nuova Zelanda (8 circoli)

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

Australia (6 circoli)

Manly YC, Perth SC, Maroochy, Hobie WA, Lake Cootharaba SC, classe Open Skiff (campionati nazionali e statali).

Altri paesi

Sudafrica (Bloemfontein YC), Svezia (KSSS), Ungheria (risultati tramite hunresults), Portogallo, USA (KHYC — King Harbor YC), Canada (Whitby YC).

Falmouth Sailing Week 2025

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.

5. Analisi delle Discrepanze

Dei 75.693 confronti, 1.090 non corrispondevano esattamente. Ecco ogni categoria di discrepanza, cosa l'ha causata e se sia rilevante.

Discrepanze maggiori (3 in totale)

Tutte e tre sono problemi di qualità dei dati di test, non errori del motore di calcolo.

YTCE Falmouth R4 — Percy (John & Julie Roberts)

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.

YTCE Falmouth R4 — Aardvarc (Philip Cook)

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.

YTCQ Falmouth R4 — Tahini (Guy English)

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.

Discrepanze minori (1.087 in totale)

Tutte le 1.087 discrepanze minori rientrano in due categorie:

Arrotondamento del tempo corretto (19 discrepanze)

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:

Impatto: Nessuno. Una differenza di 1–3 secondi nel tempo corretto non cambia mai una posizione di arrivo — le imbarcazioni sono tipicamente separate da minuti.

Arrotondamento dei punti nel calcolo bonus/SCP (1.068 discrepanze)

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.

6. Anomalie di Sailwave Scoperte

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.

TLE (Limite di Tempo Superato) — calcolo incoerente

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:

Flying 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.

Nessun errore di Sailwave trovato

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.

7. Limitazioni e Avvertenze

Cosa questo test NON copre

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.

8. Dati Grezzi e Riproducibilità

Il sistema di test, i dati estratti e i risultati completi sono pubblicati in un repository open source dedicato:

github.com/IDSTUK/SW-FS-Scoring-Engine-Verification
Sorgente del motore di calcolo • Verificatore • Sistema di test • 1.266 fonti di dati estratti

PercorsoDescrizione
scripts/soak-test.tsEsecutore di test CLI — analizza XML, esegue la verifica, produce il report
scripts/scrape-sailwave.tsWeb scraper per le pagine dei risultati HTML di Sailwave
verifier/sailwaveVerifier.tsIl motore di confronto — ricalcola i tempi corretti, le posizioni, i punti
scoring-engine/Il motore di calcolo stesso — raceScorer, seriesScorer, handicapCalculator, tieBreaker
data/sources.jsonRegistro completo di tutti i 1.266 URL sorgente estratti
data/soak-results.jsonRisultati completi dei test con tassi di corrispondenza per file e dettagli delle discrepanze
REPORT.mdReport dettagliato dei risultati

Riproduci il test

cd rc-admin npm install npx tsx scripts/scrape-sailwave.ts # estrai dati aggiornati npx tsx scripts/soak-test.ts <directory> # esegui la verifica

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.