The numbers

Data Analytics

Open any channel the boat logged, compare several on one chart, and read every moment against the boat’s own targets.

Who it is for

The performance lead, the coach and the analyst. The job is to compare values and to measure the boat against a reference that can be defended — which is why every number on this page has a source you can open.

The two windows this section is about open inside the debrief player. The Explorer and the tuning guide are floating windows, opened from pills in the player’s topbar — the Debrief Player is the instrument, and this section is what it measures against. Everything else here is its own screen in the app.

The Explorer

One channel list, filtered and ticked, with three channels on by default — boat speed, true wind speed and true wind angle — and two tabs over it.

Channels draws one strip per channel: the name in its series colour, the value at the cursor, and the trend under it. Click a strip to send the whole player to that instant, drag sideways to set the timeline’s view, double-click to fit the race, and hover to read the same instant across every strip at once.

The Explorer window over the player, on its Channels tab: the channel list at the left with derived:vmg_pct and boat_speed ticked and sog, cog, heading, heel, pitch, lat, lon, depth, course, leeway and current_set unticked; and four strip charts to the right, each with the value at the cursor — boat_speed 6.18 kt, wind_speed_true 11.93 kt, wind_angle_true 48 deg and derived:vmg_pct 58 % — over a shared axis running 12:03:00 to 12:13:00
The Channels tab over Race 1 of the Puerto Calero Lanzarote 52 SUPER SERIES Royal Cup, 2026-08-25, with the cursor at 12:03:50 UTC. The step in wind_angle_true is a tack; the same instant is read across all four strips at once.

Compare puts the selected channels on one chart, grouped by unit, so knots are never plotted against degrees. The first two unit groups get labelled axes — knots on the left and degrees on the right, typically — and further groups still draw, which is why the sidebar carries a live value beside every channel. A channel a correction is being applied to carries a small cal badge.

The Explorer window on its Compare tab, the Compare pill lit beside Channels: three channels on ONE chart, grouped by unit, over 12:03 to 12:13 of the same race. The left axis is labelled kt and runs 5.0 to 15.0; the right axis is labelled deg and runs 0.0 to 400.0. Two traces sit on the knots axis — boat_speed in yellow between 5 and 10 kt and wind_speed_true in blue between 10 and 14 kt — and the third, wind_angle_true in green, sits on the degrees axis and steps from about 320 deg down to about 50 deg at 12:03:40 and back up at 12:08, the two tacks
The Compare tab over the same race. Three channels on one chart, grouped by unit: boat_speed and wind_speed_true on the knots axis at the left, wind_angle_true on the degrees axis at the right. The two steps in the green trace are tacks.

The window’s size, position, tab and selection are remembered. Data is seeded from the page’s own batch and topped up lazily in 16-channel chunks, so zooming into a stretch of race refetches nothing. It opens from the Explorer pill in the player’s topbar.

The tuning guide

The boat’s own tuning sheet, read at the wind you actually had: one tile per column, in the team’s own column names, with the upwind or downwind table picked automatically or forced. It opens from the Tuning pill in the same topbar.

The player’s TUNING card at 12:10:22 UTC with its mode selector on Auto rather than a forced Upwind or Downwind. The header reads "UPWIND · from TWA" and then TWS 12.4, TWA 39°, VMG 94%. Ten tiles follow, one per column of the team’s own tuning sheet. The first three carry both a reading and the sheet’s target and are graded against it — BSP 8.5 against tgt 8.7 in green, TWA 39.1 against tgt 37.0 in yellow, HEEL −21.9 against tgt 22.3 in red. The remaining seven — RUDDER 4.2, FORESTAY 7.0, DEFL 99.6, LW_V1 0.4, RAKE 4.1, SHIMS_SILVER −10.2 and SIDE_CHOCKS −8.0 — are target-only and carry the word target where a comparison would be
The tuning card at 12:10:22 UTC of the same race, on Auto: TWS 12.4, TWA 39°, and the upwind table picked from TWA. The first three tiles are compared against the sheet and graded; the other seven are target-only columns and carry the word target where a comparison would be.

A word cell — A2, Max — is shown as written and never graded, because a named sail has no deviation to measure. It stands in the same row of tiles as the graded numbers and carries the word target under it, as every target-only column does.

The player’s TUNING card at 13:50:51 UTC of the same race, its mode selector on Auto. The header reads "DOWNWIND · from TWA" and then TWS 18.4, TWA 148°, VMG 104%. Ten tiles follow, one per column of the team’s own tuning sheet. Three carry a reading and the sheet’s target and are graded against it — BSP 15.7 against tgt 15.7 in green, TWA 148.3 against tgt 145.2 in green, HEEL −9.9 against tgt 11.2 in red. Two carry a word where the others carry a number, printed in plain white with the word target beneath — GENNAKER A2+ and STAYSAIL J3+. The remaining five — RAKE 4.2, AWA_DOWN 84.5, RUDDER 2.8, DEFL 40.0 and TRIM 1.0 — are target-only numbers and carry the word target where a comparison would be
The tuning card at 13:50:51 UTC of the same race, on Auto: TWS 18.4, TWA 148°, and the downwind table picked from TWA. GENNAKER reads A2+ and STAYSAIL reads J3+ — the sheet’s own words, printed as written with no comparison — beside BSP 15.7 and TWA 148.3 graded green against their targets and HEEL −9.9 graded red.

Polars and target sheets

Upload the boat’s polar — .pol, an Expedition table, or VPP output — and keep tuning targets per mode in editable tables, and every moment of the race gets a percent-of-target, upwind and down, interpolated at the wind you actually had rather than read off the nearest row.

Target sheets are free-form on purpose. The columns are whatever your team calls them, and a cell may be a word as easily as a number. Words hold from their row until the next row that has one, and they are never graded.

The sheet you already keep comes across as it is. Import the team’s CSV — first column TWS, the delimiter detected because Excel writes semicolons in comma-decimal locales — and the preview suggests a name for each column head without renaming anything for you. Every column then carries a permanent chip saying whether it is compared against a live channel or is target-only, so a column called bs cannot lose its comparison with nothing on screen saying so.

The DOWNWIND tuning-target table of the same boat, cut to its first six columns. TWS runs down the left from 4 to 18 knots over thirteen rows. Every column head carries a permanent chip: BSP and TWA are chipped "live · BSP" and "live · TWA" in blue, and RAKE, GENNAKER and STAYSAIL are chipped "target only" in grey. The two word columns change with the wind — GENNAKER reads A1 from 4 to 7 knots, A1.5 from 8 to 11, A2 from 12 to 14 and A2+ at 16 and 18, and STAYSAIL reads SS from 4 to 13, then J2 at 14, J3 at 16 and J3+ at 18 — while the number columns beside them run 4.7 to 15.4 for BSP, 134 to 145 for TWA and 4.3 down to 3.6 and back to 4.2 for RAKE. Each head also carries a small × that removes that column
The downwind sheet the card above reads, cut to its first six columns. BSP and TWA carry a live chip and are compared against the channel it names; RAKE, GENNAKER and STAYSAIL carry target only. The two word columns change with the wind — GENNAKER A1, A1.5, A2, A2+ and STAYSAIL SS, J2, J3, J3+ — and a word holds until the next row that has one, which is where the card’s A2+ and J3+ at TWS 18.4 come from.

Calibration as a read-time lens

A masthead vane mounted three degrees out puts a three-degree error in every wind angle the boat recorded. The usual fix is to rewrite the log, which makes the error permanent and unrecoverable. Calibration never changes stored data: your instruments’ readings are kept exactly as they were recorded, and a correction is applied when the data is read. Delete an entry and everything reads as it did before. It is a lens, not an edit, which is what makes it safe to try one.

An entry is linear — an offset, a scale, and the instant it takes effect from — and it applies at every zoom level, precomputed summaries included. Pick an angular channel and the scale field disappears rather than greying out, because angles rotate and do not scale. Wherever the debrief prints a number a correction was applied to, that number carries the cal badge.

Guided calibration

You do not have to guess the offset either. The platform measures it and suggests it; a person applies it. Pick a window of the boat’s own sailing — Today, Yesterday, the last 24 or the last 48 hours, 48 hours being the maximum — and the analysis reads the tacks in it. Three methods are named on screen: tack symmetry, a wind-axis cross-check, and boat speed against SOG. Findings sort into the ones worth applying, the ones marked measured, but not recommended, and the ones marked also measured.

The analysis stores nothing, and applying a finding writes the same ordinary entry you would have typed by hand, so it deletes like any other. It also runs two checks against itself. When the error is not a constant at all, no single linear entry can correct it, and the panel says so instead of giving you a number. And when one board was sailed faster than the other — a crew can produce the same signature by sailing one side lower and faster — it prints both boards’ times, median wind angle and median boat speed, and states that the asymmetry may be the sailing rather than the vane.

Beside it, the upwash profile resolves the same cross-check per two-knot wind band. It is chipped Measurement, not a suggestion and carries no button at all: a per-band error is not linear in the stored value, so it cannot ride the lens. It can prefill a wind-angle correction table, which is chipped Draft — nothing is saved until you save it.

Screen capture to come

The calibration timeline with an entry in force and a number carrying the cal badge, and an Analyze result including either a refusal or a both-boards warning.

Channels and mapping

Three kinds of channel name, and the screens keep them apart: the standard registry, which is platform vocabulary and read-only for every role; your organisation’s own custom: channels; and whatever your files happen to call things. The mapping you make once is remembered per format and shared across the organisation, the columns nobody has claimed are listed rather than dropped, and derived channels are computed at read time from what was stored.

Five ways in, one debrief

Four file formats and one live feed. What they produce is the same day in the same player.

  • Expedition — race logs as .csv with the full channel set, plus the matching events file for start guns and line pings.
  • Vakaros — Atlas recordings, as native .vkx or the Vakaros Connect CSV export. Prefer the .vkx: it also carries the race timer and the line pings the device recorded. Heading, heel and trim are derived from the recorded orientation in a .vkx; the Connect CSV carries all three as columns of its own.
  • B&G / NMEA 2000 — a .zip of your Yacht Devices YDVR recorder’s data folder, or a bare .DAT. The recorder captures the whole bus; the platform decodes the sailing messages in it server-side, B&G performance values included: target boat speed, target wind angle, VMG and distance to the start line. Messages outside that set are counted in the preview and skipped.
  • NMEA 0183 — a raw sentence log as text (.log, .txt, .nmea), one sentence per line, from any talker: position, speed, heading, wind and depth. The file’s own RMC or ZDA sets its clock and every later line inherits it, so lines logged before that first fix are dropped — and counted, with the rest of the census, in the preview. Performance values are not in this format; those come from the NMEA 2000 recording above.
  • Race Control, live — no file, nothing to upload. A boat running the tablet app streams as it sails, and the platform builds the day from that stream: one import row per boat per UTC day. The tablet reads the boat over FaRo (UDP) or NMEA 0183 (TCP or UDP), so anything that puts 0183 on the boat’s network feeds it — a B&G H5000 or Hercules through a multiplexer, or an NMEA 2000 bus through a gateway that converts it.

Nothing is committed unseen. An upload is previewed first — the channels found, the time range, the events, and which of the log’s own column names map onto which platform channel — and you commit that. Imports are idempotent by content, so the same file uploaded twice never duplicates a race: the second attempt finds the import that already exists and links you to it.

Expedition writes its event times venue-local with no zone marker, so the import asks which venue you sailed and anchors the guns to UTC from there. One dropdown, and it is the difference between a start gun on the timeline and a start gun two hours off it.

Every hour every sail has flown

A sail wears out by the hour, and hours are what the platform counts. Each boat keeps a wardrobe — every sail it owns, retired ones included — and a log of the minutes each one has flown. The crew’s taps in Race Control fill that log — up, down, swap, docked — and you type in what the app was not there for: the delivery, the practice day, the seasons before the tablet.

The platform joins those minutes to the boat’s telemetry, so each sail reports the wind it flew in: total time, median TWS, and the two-knot bands the hours fell into. Speed against the boat’s own targets is plotted across each sail’s life — and it is a trend, not a verdict. Sea state, crew, rig tune and what else was up at the time are unmodelled and all real, so the chart draws the scatter each point already carries rather than an invented tolerance.

The SPEED OVER THIS SAIL’S LIFE chart under one mainsail’s wardrobe row, with an "Open the full analysis →" link beside its heading. The vertical axis is labelled 102 %, 100 % and 97 %; the horizontal one 0.0 h, 38.3 h and 76.6 h, under the caption "this sail’s cumulative flying hours →". Twenty-four points are joined by a line and scatter above and below a dashed baseline that runs inside a shaded band. Two notes sit under the axis: "Baseline 99.7 % of target: this sail’s own median over its first five flying hours. The band is ± 1.0 points, the typical scatter within a single use: a point inside it is not distinguishable from the baseline." and "A trend, not a verdict. Sea state, crew, rig tune, what else was up at the time and a team getting better at using a sail are not modelled."
The whole-life chart under one mainsail’s wardrobe row, one point per use, plotted against the sail’s own cumulative flying hours out to 76.6. The baseline is 99.7 % of target — this sail’s own median over its first five flying hours — and the band around it is ± 1.0 points, the scatter a single use typically carries, so a point inside the band is not distinguishable from the baseline.

Sail performance

Every sail also has a page of its own. The hours and the wind bands say what a sail has done; that page answers the harder question — not whether anything is happening, but how much, in which wind, and how sure. The sail is compared with itself. Prime is its earliest sailing and current is its latest — each window at least ten flying hours, and the two never overlap. What is compared is the speed the boat made good toward or away from the wind against the best the boat’s own polar says it could have made good at that wind speed, so the number falls whether the sail is slower or the boat is sailing lower.

The UPWIND — VMG % OF POLAR OVER THIS SAIL’S LIFE chart on one sail’s performance page, with the wind-band filter reading All bands and a Show as table control beside it. The vertical axis is labelled 101 %, 98 % and 94 %; the horizontal one 0.0 h, 6.4 h, 12.8 h, 19.3 h and 25.7 h, under the caption "this sail’s cumulative flying hours →". Twelve points are joined by a line: the first stands above a dashed prime level drawn just under the top of the range, the third touches that level, and every later point falls below it, the last seven of them under the 98 % gridline
One sail’s upwind level over its own life, plotted against its cumulative flying hours from 0.0 to 25.7 rather than against the calendar, with the prime level drawn dashed across it. Prime and current are windows on this axis, which is why the page states them in flying hours and not in weeks.

Only steady sailing is scored — a tack is not evidence about a sail — and what survives is filed by point of sail and by 2-knot wind band, because a light-air stretch says nothing about a sail in a breeze. Which bands can answer at all is therefore a fact about the sail’s own hours, and the wardrobe panel is where you read them.

The WIND THIS SAIL WORKED IN panel for one sail, reading MEDIAN TWS 11.0 kt, FLOWN IN WINDOW 56h 38m and USES 17. Under it, ten 2-knot bands, each with a bar and with the hours and the share of the window against it: 4–6 kt 1h 50m and 4 %, 6–8 kt 3h 44m and 7 %, 8–10 kt 11h 14m and 22 %, 10–12 kt 14h 20m and 28 %, 12–14 kt 10h 58m and 22 %, 14–16 kt 2h 54m and 6 %, 16–18 kt 50m and 2 %, 18–20 kt 3h 3m and 6 %, 20–22 kt 2h 3m and 4 %, and 22+ kt 1m and 0 %
One mainsail’s hours in the window, split into the same 2-knot bands the analysis uses: 56h 38m of flying, 72 % of it in the three bands between 8 and 14 knots, and one minute above 22 knots. How much sailing a band holds is what decides whether it can be measured at all or only counted.

Each band is then reported as three things: a difference in points, an approximate 95 % interval around it, and one of four wordsdown, up, no detectable change, or not enough evidence. The word is read from the interval and from nothing else. A large difference with a wide interval reads no detectable change; a small difference with a narrow interval reads down. There is no threshold behind those words and no fifth word. A band with too little sailing behind it keeps its counts and says which gate it failed, rather than dropping out of the table and leaving a gap that reads as an absence of wear.

The BY WIND BAND table of one sail’s performance page, headed "Each wind band’s level in the prime window and the current one, and the difference between them" and carrying a Show as chart control. The column headings are BAND, PRIME, CURRENT, DIFFERENCE (POINTS), APPROXIMATE 95 % INTERVAL and EVIDENCE, and there are nine rows: 4–6 kt, prime 100.0 %, no current and no difference, evidence thin; 6–8 kt, 99.0 % to 98.0 %, −1.0, measured; 8–10 kt, 98.9 % to 97.5 %, −1.4, measured; 10–12 kt, 99.1 % to 97.2 %, −1.9, measured; 12–14 kt, 99.7 % to 99.2 %, −0.5, measured; 14–16 kt, 98.7 % to 97.8 %, −0.9, measured; 16–18 kt, prime 99.0 % and nothing beside it, thin; 18–20 kt and 20–22 kt, em dashes across every column, thin. The interval column reads an em dash on all nine rows
The upwind table on one sail’s performance page, one row per 2-knot wind band. Five bands hold enough sailing to be graded measured and carry a difference of −0.5 to −1.9 points, and the interval column is empty on every one of them: with no interval, not one of those differences is read as a change.

A sail that is up all day cannot be told apart from the day it sailed in. So beside every band the same comparison is made over every sail that flew that band, and where this sail’s difference sits inside that one, the row reads indistinguishable from the boat’s own drift. The change is reported as the boat’s — crew, rig, sea state, a season of improvement — and is not charged to the sail.

The comparison that settles that case is two sails on the days they both flew. Take the days both were up in the same band, compare them day by day, and whatever made the whole boat fast or slow that day — the sea state, the crew, the rig, the calibration in force — is the same for both and subtracts out. Beside the difference is the count of paired days the first sail was ahead, and every paired day is listed. It needs crossover days: alternating the two sails across one day is what fills it in.

The AGAINST ITS SIBLINGS block of one sail’s performance page. Its note reads "Two sails compared on the days they both flew. Anything that made the whole boat fast or slow that day — the sea state, the crew, the rig, the calibration in force — is the same for both sails and cancels out of the difference." Under COMPARE WITH, J2 is selected and Upwind is chosen over Downwind. The card below reads All bands −3.7 down, then "approximate 95 % interval −4.0 to −2.9 points", then "Ahead on 0 of 7 paired days — counted as days rather than averaged, so one exceptional day cannot carry the answer."
One sail against J2 upwind, on the days both flew: −3.7 points across all bands, an approximate 95 % interval of −4.0 to −2.9 points, and ahead on 0 of 7 paired days. The days are counted rather than averaged, so one exceptional day cannot carry the result.

Under the numbers the page prints what they were measured against — which sails were up alongside this one and for how long, how much sailing was dropped for crossing a sail change, which polar and which calibration entries were in force, and what is not modelled. The method is written out in Measuring sail degradation, down to the sixteen limits it carries, and The sails log walks the page itself.

How it works

  1. Import a file, or stream the day from the boat.
  2. The preview maps the columns; you commit it.
  3. Open the race in the debrief player.
  4. Explorer for the channels, Tuning for the targets — both from the player’s topbar.
  5. Correct an instrument with a calibration entry.
  6. The whole season re-reads through it, summaries included.

What it does not do

Calibration never applies anything itself: the platform suggests and a person applies. A per-band error has no single linear entry, so the upwash profile offers no button at all. A named sail has no deviation, so a word cell is never graded. And the sail performance trend models nothing — sea state, crew, rig tune and what else was up at the time are real and unmodelled. A difference with no interval behind it is served as not enough evidence, never as a change.

Common questions

Which telemetry formats can I import?

Expedition race logs and event files as CSV, Vakaros Atlas recordings as .vkx or the Connect CSV export, an NMEA 2000 recording as a zip of a Yacht Devices recorder’s data folder, and a raw NMEA 0183 sentence log. A boat running Race Control streams the day instead, with no file at all.

Does correcting an instrument change my recorded data?

No. A calibration entry is a lens applied when the data is read, at every zoom level and in the precomputed summaries. Your instruments’ readings are kept exactly as they were recorded, and deleting an entry makes everything read as it did before.

Can the platform work out a wind vane offset for me?

It measures one and suggests it; a person applies it. Pick a window of the boat’s own sailing and the analysis reads the tacks in it, using tack symmetry, a wind-axis cross-check and boat speed against SOG. When the error is not a constant it refuses to give a number instead of giving a wrong one.

How is percent of target computed?

Against the boat’s own polar and tuning targets, interpolated at the wind you actually had rather than read off the nearest row. A target cell that is a word — a named sail, for instance — is shown as written and never graded.

Where to read more

  • Importing telemetryThe five ways a day of sailing gets in, what each format needs from you, and how the preview, the commit and the status line work.
  • Channel mappingThree kinds of channel name and which is which: the standard registry, your own custom: channels, and whatever your files happen to call things — plus the correction you only make once, the ledger of columns nobody has claimed, and who may change any of it.
  • Polars and targetsGiving the boat its numbers: uploading a polar, keeping the tuning tables per mode, importing the team’s own sheet, and what the column chips mean.
  • Calibration in practiceEntering a correction, measuring one from your own sailing, reading what Analyze found, applying it — and undoing any of it exactly.
  • The sails logSetting up the wardrobe, letting the tablet fill the log, typing in what it did not record, correcting rows, and reading the two analysis panels.
  • Guided calibrationMeasuring a wind instrument’s constant angle error from your own sailing — the physics, the algebra, what that constant contains (the mounting offset and the day’s wind shear), and the cross-checks that keep a suggestion accurate.
  • The upwash correction tableCorrecting a wind-angle error that changes with the breeze: fixed 2-knot bands, half the measured step and never the step, and interpolation that clamps rather than invents.
  • The calibration lensWhy a correction is applied when data is read rather than written into it, and the commutation that lets it apply to a whole season instantly.
  • Targets and interpolationReading the tuning sheet at the wind you actually had: interpolation that clamps rather than extrapolates, settings that step, and how a number is graded.
  • Rollups and seriesHow a season of one-hertz telemetry stays instant: incremental summaries at ingest, circular statistics for angles, and what happens to a summary when data is deleted.
  • The sail logHow minutes per sail compute themselves from snapshots, why a missed tap costs one boundary rather than a day, and what the performance trend does and does not claim.
  • Measuring sail degradationWhether a sail has slowed down, and how sure the platform is: VMG against the polar’s best VMG rather than boat speed alone, steady segments conditioned by mode and wind band, day-clustered bootstrap intervals, two sails compared on the same day, and the sixteen limits the method carries.

The rest of the platform

Measure the boat against a number you can defend.

Import a race, correct the instrument, and read the whole season through it. Every account starts with a 30-day free trial for one boat, no card required.