The math

The upwash correction table

A vane can read three degrees wide in six knots and one degree wide in sixteen. That is not a number to enter — it is a curve, and this is the table that carries it.

Why a vane’s error can vary with the wind

Guided calibration measures the part of an instrument error that is a constant — a masthead unit bolted down a few degrees off, the same few degrees in every breeze. Not everything a vane gets wrong is that.

The sail plan bends the air before it reaches the masthead, so the vane reads a wider angle than the boat is really sailing — on both tacks, which is why it lands as a step across the tack rather than as a constant. That is upwash, and it is your rig’s signature rather than a fault in the instrument.

It is largest in light air: the boat sails deeper, the rig works harder, and more air is bent on the way past. It shrinks as the breeze builds. And under backstay load it can push the other way, because mast bend twists the masthead unit to windward — so on a hard-loaded rig the two effects are working against each other.

A single mounting offset cannot produce a step across the tack at all, which is exactly what makes this measurement independent of the one beside it. That argument is made in full on the guided calibration page, whose cross-check is what measures this; the same physics read from the deck is in calibration in practice. This page is the formal statement of what a correction table is, and of exactly what arithmetic turns a measured step into one.

The principle

A mounting error is one number. Upwash is a curve — so no single correction is right at both ends of a day. A curve is corrected by a table, and only where it was measured.

That is why it is a separate object rather than another linear calibration entry: a scale and an offset apply one number to every reading of a channel, and a correction that depends on the wind speed at that instant is not one number. It is served the same way — on the way out of a read, keyed on the boat’s own wind angle and wind speed, second by second — and the serving is the lens’s subject rather than this page’s. This page is the table and its arithmetic.

1 The table is the correction

One entry is one document, not one number: a fixed ladder of 2-knot bands, lower bound included, upper bound excluded, every lower bound an even number — so 8.0 knots belongs to the 8–10 band and never to 6–8. Those are the same bands the sail log reports wind in. There is one band convention across the platform, and this is it.

Each band may carry an upwind_deg, a downwind_deg, both, or neither. The unit is degrees added to |TWA|, positive meaning wider; section 3 derives the sign, and it is the one place on this page where getting it backwards would be expensive.

One object corrects both wind channels. The same number reaches wind_angle_true and wind_direction_true at the same instant, because TWD = HDG + TWA: a vane that reads the angle wide reports the direction wrong by exactly as much. There is deliberately no field naming a channel, so a half-applied pair is not something the format can express. A linear entry names one channel and leaves the pairing to whoever writes the second one; here the pairing is structural, and a wind angle and a wind direction that disagree by the size of the correction cannot be produced.

An entry resolves exactly like a linear one:

  • The latest entry at or before the reading wins — the greatest effective instant that is not after it, and the boundary is inclusive.
  • Two entries at the same instant: the later-created wins.
  • Nothing is interpolated between entries and nothing reaches backwards. A table is a step in time, not a ramp — and before the first entry, nothing is corrected.

It composes after the linear entries: whatever scale and offset are in force apply first, and the table’s degrees are added to the result. A rotation and a curve are two different findings about the same vane, and applying one does not consume the other.

2 Between the bands, and outside them

A band is two knots wide and the wind is not. So a band’s number is treated as a measurement taken at the band midpoint — the 6–8 band’s number is what was measured at 7 knots — and between two populated midpoints the correction is interpolated linearly in wind speed.

a band's number is measured at its midpoint 6–8 kt → 7.0 kt between two populated midpoints a straight line in TWS outside the populated range held flat, at the nearest measured number

Read as a sentence: the curve joins the numbers you measured, and stops where they stop.

A table measured to 16 knots therefore serves its 16-knot number in 30 knots. Nothing extrapolates, and that is a deliberate refusal rather than a gap — the same refusal the tuning sheet makes at the ends of its own table. Upwash probably does keep shrinking above 16 knots; running a line off the end of the evidence would put a number on that “probably” and then correct a season with it.

Why the band does not simply hold

The obvious alternative — serve a band’s own number flat across the whole band — was considered and rejected, and it is worth saying why. It would put a repeated square wave into the served wind: a boat drifting either side of eight knots would have its wind angle jump by the difference between two bands, over and over, all afternoon. That jump is keyed to a threshold rather than to the weather, and physical upwash has no edge at 8.00 knots. A straight line between two measured points is an assumption; a step at a round number is an artefact.

A null cell is skipped, not a hole

Interpolation joins the populated cells of a column and steps over the empty ones. A band entered only to carry a downwind number does not interrupt the upwind curve — the upwind line simply runs from the populated band below it to the populated band above. That is the opposite of a blank in a tuning-target table, where a blank stops the answer outright: there a blank is a row that deliberately has no setting, and here it is a band nobody measured in a curve that is continuous anyway.

A mode with no populated band at all contributes zero, never a copy of the other mode. A table carrying only upwind numbers corrects upwind sailing and leaves the runs exactly as recorded, which is what an unmeasured thing should do.

Upwind and downwind cross-fade

The two columns are measured on different sailing — tacks measure the upwind rig, gybes the downwind one — so they are two numbers, and a boat spends part of every race between them:

|TWA| ≤ 65° the upwind number, at full strength |TWA| ≥ 120° the downwind number, at full strength between w = ( |TWA| − 65 ) / ( 120 − 65 ) d = (1 − w) · upwind + w · downwind

Read as a sentence: each column applies over the sailing it was measured on, and only the reach between them is interpolated.

Those two angles are not tuning constants picked to look tidy: they are the same bounds that decide which maneuvers the measurement was taken from. So there is no stretch of sailing where a number measured close-hauled is applied to a boat that is running, and none where a gybe’s number is applied to a beat — the only interpolated region is the one nothing was measured on.

3 Half the step, never the step

This is the arithmetic that turns a measurement into a table cell. Let d be the correction added to |TWA|, with positive meaning wider, and take TWA as positive to starboard:

TWA' = TWA + sign(TWA)·d TWD' = TWD + sign(TWA)·d — because TWD = HDG + TWA step_deg = starboard − port = −2·d so the number to enter in the band is d = − step_deg / 2

Read as a sentence: halve the measured step, and turn it around.

Both operations earn their place, and both are easy to lose. The halving is there because step_deg is the full difference between the two tacks: the vane is wrong on starboard and wrong on port, and the step is those two errors back to back — twice the error on either one of them. Enter the step and you correct the boat twice.

The negation is there because the step and its correction point opposite ways. A positive step means the vane is reading wide, which is classic upwash; a correction that widened it further would be the error again rather than its cure. So the table narrows what reads wide, and the minus sign is the whole of that sentence.

Worked: a measured step of +3.6° in the 6–8 knot band becomes −1.8° typed into that band’s upwind cell. Half, and the other way round.

Numbers of that size are what a real table is made of, which is why the editor refuses a cell beyond ±20°. That bound is a guard rather than a claim about how large upwash can get: it leaves an order of magnitude of headroom and still catches the two mistakes this arithmetic invites — a decimal point in the wrong place, and the sign entered backwards. Both are expensive here, because the correction goes on both tacks: a 20° mistake is a 40° step in the wind axis, across every hour of sailing that entry covers. The editor gives that reason when it refuses.

A hollow band supplies nothing

Under three maneuvers a band is hollow: the measurement withholds its number and reports the count instead, so the step arrives as nothing rather than as a figure. When the platform prefills the editor from a measured profile, that null is the gate — the cell is left empty, and the neighbouring bands are never interpolated into it. Doing so would turn a missing measurement into a typed one, and a number in a saved table is indistinguishable from a number somebody measured.

A reader may type a number into that cell: it is their boat and their judgment. The platform never offers one.

What a plausible table looks like

The upwind column follows the shape at the top of this page: largest in light air, shrinking as the breeze builds, and able to turn the other way under real backstay load. The downwind column tends to run the opposite way — crews who keep these tables report it slightly positive in light air and turning negative as the breeze builds. That is a different sail plan doing a different thing to the air, not the upwind curve mirrored. And on a reach, the figure practitioners work with is roughly half the upwind number.

Those are practitioner expectations, offered for a sense of shape. Nordic Stars measures none of them, and none of those figures are ours. Your own maneuvers are the only evidence a saved table carries — and what this platform serves on a reach comes from the cross-fade in section 2 rather than from a cell of its own, which is where those two answers can part company. The last item under What the table does not do is that gap, stated.

A wavy table is probably wrong

The hollow-band rule above is the platform refusing to invent a number where nothing was measured. A measured zig-zag is a different case, and it is worth being suspicious of: adjacent bands sit two knots apart, and physical upwash does not swing one way and back again over two knots. A band that breaks the trend is far more often a band with few maneuvers in it, or one that caught a change in the boat — a backstay setting that came on for part of the afternoon, a different hand on the runner.

So smoothness is worth treating as evidence. Fill the cells from the measurement, then read the column as a curve: where one band stands out of the line its neighbours make, smooth it by eye or go back and measure more sailing in that breeze. Typing the zig-zag in as measured is the one option with nothing to recommend it — it corrects a season with a wobble the wind never had.

4 The convergence test

The acceptance test for all of the above is the loop itself. Take a day with a known wind-speed-dependent error in it, analyse it, prefill a table from the result, apply it, and analyse the same day again through the correction. If the arithmetic is right, the second analysis finds almost nothing left.

31.28°
Σ|step| across the bands, before the table
0.86°
Σ|step| on the same day, re-analysed through it
unmoved
the tack-symmetry suggestion — orthogonality tested, not asserted

The third result is the one worth dwelling on. Applying a table that removed a wind-speed-dependent step left the mounting-offset suggestion — measured by an entirely different method — exactly where it was. That is the two findings’ independence tested rather than argued: the table adds the same widening on both tacks, so it produces no symmetric offset to find; a linear rotation adds the same constant to both tacks, so it produces no step. Each is invisible to the other’s measurement, which is why both can sit on the same boat without one eating the other.

Those are recorded measurements on synthetic data, not promises. The day had a known error injected into it precisely so that there was a right answer to check against; your boat comes with no such guarantee, and the supported claim is that the loop converges — not that it will converge that far.

What the table does not do

Eight limits, on the page rather than in a footnote, because a correction whose edges you cannot see is worse than none:

  • One profile per boat, not per sail configuration. Upwash is a property of the sail plan, and a masthead kite bends the air differently from a jib. The platform records which sails were up, so per-configuration profiles are the obvious next question — and they are deliberately out of scope rather than half-built.
  • The load confound is inherited, and no amount of sailing resolves it. Backstay load rises with breeze on nearly every boat, so a table indexed by wind speed is partly indexed by rig tension — and the two push opposite ways as it builds: upwash shrinks while load-twist grows. A day sailed with unusual rig settings for the breeze is mis-corrected, and a crew that changes tuning philosophy needs a new entry. The effective-from instant is that mechanism.
  • Interpolation between bands is an assumption. The measurement proves the numbers at the midpoints. The straight line joining them is a reasonable shape for a physical effect to have; it is not something the data showed.
  • Reaching is interpolated, and never measured. Two things are measured and only two: tacks, which are the upwind rig, and gybes, which are the downwind one. Everything between 65° and 120° is the cross-fade joining them, so the reach is the one part of the wind range this table corrects with no evidence of its own. It also parts company with the rule of thumb when the columns disagree in sign: a cross-fade halfway between −1.8° upwind and +0.4° downwind lands on −0.7°, where “about half the upwind number” would say −0.9°. Neither of those is a measurement. A measured reaching column would settle it, and there is not one.
  • Apparent wind angle is deliberately uncorrected. The wind triangle does not carry a masthead rotation into apparent wind one for one, so the same degrees would be the wrong degrees there.
  • Wind speed is deliberately uncorrected, and this is the question anybody who knows a B&G H5000-class system will ask, because those carry a wind-speed table beside the angle table. The answer is that this table corrects the wind angle only. A boat-speed or wind-speed error is a linear entry’s job — that is what its scale is for — and nothing measured here measures a wind-speed error, so nothing here offers to fix one.
  • The sign is a property of the second. The correction leans on which side of the wind the boat is, so the second or two a maneuver spends crossing head-to-wind or dead downwind is corrected on one side of the axis only. That is one or two seconds per maneuver, inside the deadband the maneuver detection already refuses to classify.
  • Sea state, heel and crew are unmodelled. All three move a vane, and none of them is in this table.

Where to find it

In the web app: Boats → your boat → Calibration. The Wind angle correction table panel sits between Analyze and Add a correction — measure it, correct it, and the ordinary linear entries are below.

On a measured upwash profile there is a Use as a correction table action. It fills the editor in from that profile — the halving and the negation done for you, hollow bands left empty — and then it stops. A human saves it. Nothing here is written by the platform: the profile is a measurement, the table is a decision, and the gap between them is a person reading the numbers.

A saved entry appears on the same timeline as every other correction, with the same effective instant, and it deletes like any other. Deleting one returns every affected read to exactly the numbers it served before, for the reason the calibration lens explains: the stored samples never moved in the first place.

How large any of this is on a given boat depends on where the vane lives. A masthead rig with a short vane arm holds the unit in air the sail plan has already bent; a 7/8 rig carrying a tall arm holds it further out of that influence, and the same class of boat can be rigged both ways. So these numbers are not portable — not from a tuning partner, and not from a sistership. A table copied from another boat is that boat’s rig geometry applied to your season.

A correction table is your boat’s own measured signature, not a setting the platform recommends. It corrects what your maneuvers showed, over the range they covered — and says nothing at all about the rest.