Data-Driven Sailing Home Under the hood ICSA ISSA Notes
October 7, 2026 · data through October 4, 2026 · All notes

Should the best sailor sail A?

A sensitivity analysis. Add your two skippers' ratings and compare the total with the field's average. Above it, the better skipper belongs in A. Below it, in B. Teams below the line still start the better skipper in A 85% of the time.

This is a sensitivity question, and it has a one-line answer: add the two skippers' ratings and compare the total with the field. Above the line, the better skipper belongs in A. Below it, in B.

Almost nobody follows the second half. Across 766 clear cases at 87 events, teams below the line still started their better skipper in A 85% of the time, where the model wanted that in 9%. They gave up 3.3 points on average against their best arrangement, and up to 18. The rest of this note derives the line, shows it on a map, and tests it.

Points are a curve in your rating

Score in a division is places, so a boat's expected points per race are a function of its rating r and of the rivals it races. With the Plackett–Luce model, the chance of beating rival j is pj(r) = 1 / (1 + erj − r) in rating units, and

E(r) = 1 + Σj (1 − pj(r))

one point for yourself, plus one for every rival who beats you. E falls as rating rises, and it falls fastest where many rivals sit close to you. Here are the A-division and B-division fields at the Open Fleet Race National Championship (18 teams, 28 races), with Jacksonville's two skippers (4.29 and 3.30) marked on each.

0.04.08.012.016.033.544.555.513.49.812.88.9A-division fieldB-division fieldskipper ratingexpected points per race (lower is better)
Expected points per race against skipper rating, in the A field and the B field, rivals only.

Sensitivity, and the area under it

The derivative is the sensitivity: g(r) = −dE/dr = Σj pj(1 − pj). Each rival contributes a bell centered on its own rating, so g is a smoothed density of the field. It is large where many rivals are within a rating point or two of you, and near zero for a boat far above or far below everyone. That is what fleet skill means here: where the field is packed.

0.00.51.01.52.02.533.544.555.5A field: 3.63 boats passed per raceB field: 3.83 boats passed per raceA-division fieldB-division fieldskipper ratingboats passed per rating point
Sensitivity −dE/dr for the same two fields. The shaded area between the team's two ratings is the boats a skipper passes per race by being the stronger one in that division.

Integrating, upgrading a division from the weaker skipper w to the stronger s saves S = ∫ws g(r) dr = E(w) − E(s) places per race. Here that is 3.63 boats in the A field and 3.83 in the B field. A team's total is EA + EB, so with the stronger skipper in A, swapping the two changes the predicted total by races × (SA − SB). For Jacksonville that is -2.8 points over 14 races. The sum is maximized by putting the stronger skipper in the division with the larger area, and the areas depend only on where the two fields are packed.

A map of every pairing

Do that for every pair of ratings. Each cell below is a hypothetical team with an A skipper rated as on the horizontal axis and a B skipper as on the vertical axis, in this one fleet. Color is the change in predicted points if the two swap: green helps, red hurts. The map is antisymmetric across the dashed diagonal (swapping twice returns you), so it is zero on the diagonal. Below the diagonal the stronger skipper is in A, as usual; circles are the teams that sailed.

222.52.5333.53.5444.54.5555.55.5stronger skipper in Astronger skipper in BA-division skipper ratingB-division skipper rating+60−6swap costsswap saves
2026 Open Fleet Race Nationals: change in predicted points if A and B are swapped, 14 races per division. Clipped at ±6.

Inside this field's rating range, with the stronger skipper in A, a swap lowers the predicted total by more than half a point in 47% of pairings and raises it in 18%. The best case gains 2.8 points and the worst costs 1.5. The green zone is a strong A skipper over a B skipper well below the rest of the B field, where the B field is dense and a better boat passes many. The red zone is two strong skippers, where there are few boats left to pass. The green and red regions are separated by bands that run along lines of constant rating sum.

Why it comes down to a sum

Let H(r) = EA(r) − EB(r), the places a skipper gives up per race by sailing A instead of B. The swap change is exactly races × (H(w) − H(s)), so the stronger skipper belongs in A when A duty costs them less than it costs the weaker one. Differentiate: H′(r) = −(gA(r) − gB(r)). The A field is packed higher in the ratings than the B field, so gB is larger on the left and gA on the right, and they cross at a rating m. H rises until m and falls after it.

0.00.51.01.52.002468centre mplaces lost by sailing A instead of Bskipper ratingplaces per race
H(r) at the 2026 Open Nationals, peaking at m = 4.3. A weak skipper finishes near last in either division and a strong one near first, so A duty costs them little. It costs most mid-fleet.

Below m, being the stronger skipper is worth more in B. Above it, more in A. If H is roughly symmetric about m, then H(w) > H(s) just means w is closer to m than s is, and (s − w)(s + w − 2m) > 0 gives the rule:

stronger skipper in A  ⇔  rA + rB > c   with c ≈ 2m set by the fleet

The two skippers' ratings enter only through their sum, because the areas on each side of m trade off one for one. The fleet decides where the line sits. At the Open Nationals, a deep field, the line is a total of 7.6; at the Women's Western Semifinals it is 4.9. The same pair of skippers can belong in A in one fleet and B in another, which is why comparing teams by "better skipper in A or B" without the fleet mixes cells of the map that point in opposite directions.

Does the line hold?

H is not perfectly symmetric, so I did not take c = 2m on faith. For each of 87 events (the ICSA championships since fall 2024 and this fall's regattas) I computed every team's swap change from pre-event ratings, and found the one threshold on the sum that best separates the entries where the model wants A from those where it wants B. I counted only entries where the two skippers are at least a quarter of a rating point apart and the swap matters by at least half a point.

One cut on the sum is enough. With a threshold fitted to each event, the sum rule matches the full model's verdict in 99.9% of 766 clear cases. The threshold is fitted, so this shows the sum is the right statistic, not that the line is known in advance. Using the field's average A+B total as the line, with no fitting, it matches 92%.

Your two ratings vs the field's averageEntriesModel wants the better skipper in ATeams put the better skipper in A
more than 1.5 below1921%82%
0.75 to 1.5 below947%87%
up to 0.75 below8730%89%
up to 0.75 above11081%85%
0.75 to 1.5 above11897%96%
more than 1.5 above16599%88%

The model's column swings from 1% to 99% across the line. The teams' column stays between 82% and 96%. Teams respond to rating gaps, not to where those ratings sit in the fleet, which is the whole point of a sensitivity analysis.

Are the curves right?

The map is only as good as E(r). I tested it on real races at the fall 2026 regattas (572 races, 6,740 boat-races at 35 events), conditioning on the fleet: for each race I computed every boat's expected place from its pre-event rating against the other boats in that race, and compared with the place it earned.

Regressing earned place on expected place within each race gives a slope of 1.01 in A (95% interval 0.94 to 1.08) and 1.02 in B (0.95 to 1.08); 1 means the curve is as steep as reality. Grouped by rating relative to the field, the gap between earned and expected place is small everywhere, and every interval includes zero:

Rating vs the fieldA boatsEarned minus expected place (95% interval)B boatsEarned minus expected place (95% interval)
far below the field238+0.25 (-0.22 to +0.67)226+0.07 (-0.34 to +0.47)
below635+0.14 (-0.06 to +0.40)555+0.24 (-0.14 to +0.63)
near the field mean1,658-0.04 (-0.16 to +0.09)1,172+0.06 (-0.16 to +0.28)
above878-0.04 (-0.30 to +0.21)883-0.02 (-0.29 to +0.26)
far above272+0.20 (-0.17 to +0.65)223+0.07 (-0.26 to +0.35)

A direct before-and-after test is not possible: teams almost never move a skipper between divisions within a regatta, and comparing teams that put their better skipper in B with those that did not pools cells of the map that point in opposite directions. Testing the two ingredients, the curve's steepness and the same curve in A and B, is what the evidence can support.

Caveats

Every number on this page is produced by analysis/blog/swap_map.py, nationals_swap.py, swap_threshold.py and division_effect.py in the project repository, from the same database that powers the rest of the site. Corrections welcome: quinnbrighton2005@gmail.com.