Give the penalties back a minute at a time Top five pay 5, 4, 3, 2, 1; the minutes come back one per boat, DNFs first, then the last boat home working forwards; leftovers are shared evenly by the boats that stayed home. The TCF change is measured against the next race's expected duration. The weighted giveback, its variants and knobs are retired. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01USJqVVgZxkzFLmkD4kcpJ5
Document boat identity and the CSV import sail-jinx now identifies boats the same way sailing-pf does, sharing the alias seed, so the same hull gets the same id in both. Home.md explains what that means in practice; the storyboard covers the Boats page's bulk import, the per-row results, and why designs are learned rather than entered.
Document the standalone architecture sail-jinx 2.0 has no SailSys integration. Results reach SailSys by a human reading a printed report and typing them in. - Home: rewritten for the standalone app. - Jinx-Handicaps 5.1: adds corrected_finish_time, the report column, which gives back the head start from crossing early but deliberately omits the 5-min OCS penalty - that is implied by the flag beside it and applied on entry. Including it in both places would apply it twice. - Jinx-Handicaps 5.2: places are computed locally; there is no external system to defer to and no SailSys-authoritative mode. - Jinx-Handicaps 8.1: each race's entrant list carries the TCF it was sailed on, so that file IS the handicap history. The separate snapshot file existed only because SailSys kept the latest value. - Jinx-Handicaps 11: rewritten for the real implementation, including where the algorithm lives (arithmetic in Java, 5.1 primitives in static/scoring.js, shared by the race page and the finish report). - Storyboard: rewritten as the actual race-night workflow. - sailsys-api-reference: marked historical. Flags an unresolved question in 6.3/6.4: the spec describes a winner_factor and gap-anchored redistribution that PursuitHandicapEngine does not implement - it weights by elapsed^gamma with no winner anchor, for a reason argued in the code. The divergence predates this work and needs a decision rather than a silent edit.
Refactored so that UI works for all types of race management
Updated Home (markdown)
Initial Home page