Независимое сравнение механизма подсчёта очков Flying Start с 75 693 реальными результатами Sailwave из 96 яхт-клубов в 10 странах.
По итогам 75 693 индивидуальных сравнений механизм подсчёта очков Flying Start совпадает с Sailwave с точностью 99%. Ошибок в подсчёте очков не обнаружено. Все несоответствия объясняются либо качеством тестовых данных, либо незначительными отличиями в округлении, которые никогда не влияют на результаты.
Мы написали автоматизированный тестовый инструмент, который берёт данные результатов Sailwave, прогоняет их через механизм подсчёта очков Flying Start и сравнивает каждое вычисленное значение с результатами Sailwave. Тест проверяет три параметра для каждого участника в каждой гонке:
Сравнение использует два режима верификации:
Когда исходные данные содержат фактическое время и гандикапные рейтинги, мы пересчитываем скорректированное время с нуля по соответствующей формуле (PY, IRC, YTC и т. д.) и сравниваем с результатами Sailwave. Это проверяет весь конвейер: фактическое → скорректированное → место → очки.
Когда исходные данные содержат только места и очки (характерно для сводных страниц серий), мы проверяем, что соответствие мест и очков соответствует правилам системы подсчёта. Это проверяет назначение штрафных очков, расчёт бонусных очков и подсчёт SCP.
Мы написали парсер, который систематически обходил публичный каталог результатов Sailwave, где публикуются результаты яхт-клубов со всего мира. Для каждого клуба мы загружали до 40 страниц результатов, извлекали данные участников, итоги гонок и коды штрафов, затем преобразовывали их в структурированный формат для верификации.
Для шести флотов Falmouth Sailing Week 2025 мы вручную собирали данные с отдельных страниц гонок, включавших полное фактическое и скорректированное время, что позволило провести глубокую верификацию скорректированного времени.
| Источник | Файлов | Гонки | Сравнений | Совпадений | Крупных | Незначительных |
|---|---|---|---|---|---|---|
| Парсинг (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 (швертботы Великобритании) | Проверено в 60+ клубах Великобритании |
| Гандикап IRC (международные яхты) | Проверено на флотах IRC1/2/3 Falmouth Week |
| Гандикап YTC (крейсеры Великобритании) | Проверено на флотах YTCE/YTCQ Falmouth Week |
| Подсчёт малыми очками | Проверено во всех 4144 гонках |
| Подсчёт бонусными очками | Проверено в клубах, применяющих эту систему |
| Штрафы DNS / DNF / DNC | Проверено во всех клубах |
| OCS / DSQ / RET / UFD / BFD | Проверено там, где встречается в результатах |
| RRS Правило A5.3 (необязательный подсчёт штрафных очков) | По умолчанию для всех тестов — лодок в зоне + 1 против заявок + 1 |
| SCP (штрафные очки) | Проверено в клубах, применяющих процентные штрафы |
| Профили зачёркиваний | Проверено через сравнение таблиц серий |
| Разрешение ничьих по Приложению A8 RRS | Проверено через сравнение мест в флотах с ничьёй |
Мы намеренно проводили тестирование в широком географическом и организационном диапазоне. Клубные гонки на Солете отличаются по характеру от вечерних гонок по средам на уэльском водохранилище или австралийского чемпионата по классу 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).
Шесть флотов трассы Бэй — IRC 1, IRC 2, IRC 3, YTC Cruiser, YTC Quarter-Tonner и Firebird — с полным фактическим и скорректированным временем, собранным с отдельных страниц гонок, размещённых на sailwave.com/results/FSW.
Из 75 693 сравнений 1090 не совпали точно. Ниже приведены все категории несоответствий, их причины и степень значимости.
Все три являются проблемами качества тестовых данных, а не ошибками механизма подсчёта очков.
Несоответствие: Очки — Sailwave указывает 11, Flying Start — 8.
Причина: В Wednesday Champagne Race участвовали 3 гостевые лодки (Autarky, Infinity, Passion), не входящие в регулярную серию. Наш XML не включал их, поэтому размер флота составил 10 вместо 13. По нашим данным Percy финишировал 8-м из 10, тогда как по данным Sailwave — 11-м из 13.
Вердикт: Оба механизма подсчёта очков верны. Разница — в исходных данных, а не в расчёте.
Несоответствие: Очки — Sailwave указывает 12, Flying Start — 9.
Причина: Аналогично случаю выше. Гостевые лодки увеличили размер флота в данных Sailwave.
Несоответствие: Скорректированное время — Sailwave указывает 1:10:13, Flying Start — 1:08:32.
Причина: Tahini выступала в среду с другим рейтингом YTC (1054), отличным от остальных гонок серии (1080). В нашем XML для всех гонок использовалось значение 1080. Формула скорректированного времени elapsed × 1000 ÷ rating, поэтому разный рейтинг = разное скорректированное время.
Вердикт: Обе формулы верны. Разница — в данных гандикапа, а не в расчёте.
Все 1087 незначительных несоответствий делятся на две категории:
Различия в 1–3 секунды между Sailwave и Flying Start, вызванные промежуточным округлением в цепочке вычислений Sailwave. Например, скорректированное время IRC = фактическое × TCC. При фактическом = 3428 с и TCC = 1,072:
3428 × 1.072 = 3674.816 → 3675sВлияние: Никакого. Разница в 1–3 секунды в скорректированном времени никогда не меняет финишное место — обычно лодки разделены минутами.
Различия в 0,1–0,3 очка там, где дробные баллы бонусов Sailwave или процентные расчёты SCP незначительно отличаются. Например, 3-е место при начислении бонусных очков должно равняться ровно 5,7, но некоторые версии Sailwave, по-видимому, используют немного другую точность чисел с плавающей точкой.
Влияние: Пренебрежимо мало. Эти дробные различия никогда не меняют таблицу, поскольку они меньше разрыва между любыми двумя финишными местами.
В ходе тестирования мы обнаружили одну область, где поведение Sailwave непоследовательно в разных клубах. Мы не утверждаем, что это ошибка — возможно, это намеренная опция конфигурации — но это стоит задокументировать для рулевых гонок, переходящих с Sailwave.
Sailwave использует TLE как код штрафа для лодок, не финишировавших в установленный временной лимит. Этот код не фигурирует в Правилах гонок на яхтах (RRS). Эквивалентом по RRS будет DNF (не финишировал).
Мы обнаружили, что Sailwave обращается с TLE непоследовательно в разных клубах:
starters + 1 (аналогично DNF)last finisher's position + 1Flying Start рассматривает TLE как эквивалент DNF (starters + 1), что соответствует наиболее распространённому поведению Sailwave и принципу RRS, согласно которому лодка, стартовавшая, но не финишировавшая, получает starters + 1 очков.
Эта непоследовательность объясняет часть наших незначительных несоответствий. Если ваш клуб применяет TLE со специфическими правилами подсчёта, сообщите нам и мы обеспечим соответствие Flying Start вашей практике.
Несмотря на тестирование 4144 гонок, мы не обнаружили ни одного случая, когда Sailwave выдаёт неверные результаты по правилам RRS. Все несоответствия объясняются округлением, качеством данных или описанной выше неоднозначностью TLE. Sailwave является отраслевым стандартом уже 20+ лет не без причины — математику он считает верно.
Отметим также, что большинство наших сравнений (74 391 из 75 693) — это сравнения только по очкам со сводных страниц серий. Глубокая верификация скорректированного времени охватывает 1302 сравнения по Falmouth Week. Мы приветствовали бы доступ к большему числу мероприятий с опубликованным фактическим и скорректированным временем для укрепления этой верификации.
Тестовый инструмент, собранные данные и полные результаты опубликованы в специальном репозитории с открытым исходным кодом:
| Путь | Описание |
|---|---|
| scripts/soak-test.ts | CLI-запускатель тестов — разбирает XML, запускает верификацию, формирует отчёт |
| scripts/scrape-sailwave.ts | Веб-парсер для HTML-страниц результатов Sailwave |
| verifier/sailwaveVerifier.ts | Механизм сравнения — пересчитывает скорректированное время, места, очки |
| scoring-engine/ | Сам механизм подсчёта очков — raceScorer, seriesScorer, handicapCalculator, tieBreaker |
| data/sources.json | Полный журнал всех 1266 собранных исходных URL |
| data/soak-results.json | Полные результаты тестов с процентом совпадений по файлам и деталями несоответствий |
| REPORT.md | Подробный отчёт о результатах |
Парсер учитывает ранее собранные URL (отслеживаемые в sources.json) и загружает только новые страницы. Весь набор тестов выполняется менее чем за 60 секунд на собранных данных.
Все данные результатов Sailwave взяты из публично опубликованных результатов на sailwave.com/results. Sailwave является торговой маркой Джона Мейолла. Flying Start не аффилирован с Sailwave.