Fastest Boats

If you write the boat into the name of every row — 1x Strider, Strider 2x, however you write it — then your history already contains the answer to which hull is quickest. What it also contains is two years of getting fitter and a lot of outings of different lengths, and those move a split far more than any hull does. This fits all three at once and reports only what is left: the boat.

Local0 outings imported here
ExampleSomeone else’s shed, picked because one of its boats lies.
The quickest single scull here isStrider1.4s per 500m clear of Venture, the nearest the shed can be sure of, over 41 outings
Score each outing on its fastest
  • An outing too short for the distance you pick, or with no trace read, falls back to an average of the whole session instead.
— one class on its own is measured from its own quickest hull; several are measured from the quickest of whatever is on screen.

All classes

181 outings · 7 boats · 2 classes

Shape is the crew size:1x2x

Colour is the hull — the same one wherever else it appears. These are measured splits, so the classes sit in bands: an eight is above a single because it is an eight. The table below is not on that scale — every hull there is quoted as a gap from the quickest hull on screen.

202520261:40.01:50.02:00.02:10.0← olderfaster is higher
Hover an outing. Filled dots were measured over their fastest 1.0k. Hollow ones held no unbroken 1.0k anywhere — once the trim has cut out the sitting, a window has to fit between one stop and the next — so they are averaged instead, and a shorter window measures more of them.
Every boat in the fleet, quickest first, with what it gives away in seconds per 500m to the fastest hull in the fleet whatever its class, and a 95% interval on the part of that gap measured within a class. Column headers re-sort the table.
Interval
quickest2x±0.0s19
2x+1.2s±1.226
1x+13.9s41
1x+15.0s±1.212
1x+15.3s±0.863
1x+15.9s±1.318
too few to call1x+18.0s±2.82

Every figure is what a boat gives away to Swift, the fastest hull here whatever its class — so most of what separates an eight from a single is the size of the boat rather than the merit of it, and the ± covers only the part measured inside a class: the step from one class’s best hull to another’s is a difference the fit measures rather than a contrast it estimates, and carries no interval. 2 of 5 hulls are measurably behind the quickest of their own kind at 95%.

How does it work out which boat is quicker?

Within a class, every outing’s split is explained by three things at once: which hull it was, how fit you were on the day, and how long the piece was. Those are fitted together by least squares, and the boat’s share is what is reported. Fitting them together is the whole point — fitness and hull choice are usually tangled up, because a boat you borrowed for one winter was rowed by the version of you that existed that winter.

Fitness is a smooth curve through your history rather than a straight line, so a season of hard gains followed by a plateau is absorbed rather than smeared across every boat. Piece length comes in as a term too, because a 2k and a 20k are not the same effort and some boats get used for one more than the other.

Everything is then quoted against the quickest hull in the class, so every figure is what that boat costs you against the best one of its kind you have. Differences are all this can honestly measure: nothing here knows how fast a boat is, only how fast it is compared to the one next to it on the rack — and a single is never set against an eight, so the quickest 1x and the quickest 2x each have a zero of their own.

What is the ± for, and why does the table refuse to rank some boats?

It is a 95% interval on the boat’s effect. A hull two seconds quicker with a margin of half a second is a finding; the same two seconds with a margin of three is four outings on a good week. When the interval reaches back to zero the honest answer is that the boat cannot be told apart from the quickest one, and that is what is shown — rather than an ordering that would look exactly as confident either way.

The width comes from how much your own outings disagree with each other in the same boat, which for most people is a couple of seconds per 500m. Every claimed difference has to beat that, and the only way to beat it is more outings.

Why the fastest kilometre rather than the whole outing?

Because a session average measures how hard you felt like working far more than it measures the boat. Two hours of steady state and a race piece in the same hull produce completely different averages, and the difference between them is many times bigger than the difference between any two boats in your shed.

So each outing is scored on its best sustained stretch — read out of the GPS trace, which is a separate request to Strava per outing and the reason a long history takes a few visits to read. Outings whose trace has not been read yet fall back to their session average and are held apart in the fit by a term of their own, so a half-read history cannot be mistaken for a sudden improvement.

Why won't it call a boat I only rowed one winter quick?

Because its effect and your fitness during that winter cannot be fully told apart. If every outing in a hull sits inside one stretch of your history, then any change in you over that stretch is indistinguishable from the boat itself. The interval widens to account for it, which is the whole of what the table can honestly say about such a boat; the real fix is to take it out again in a different month.

The example fleet on this page is built around exactly that trap: Tempest has the fastest raw average of any single there by some distance, and the fit will not call it quick at all. It was only ever borrowed in the last few months, by which point the rower was a good deal fitter than when they started, and there is no way to tell those two things apart from the inside of one season.

How does it know which word is the boat?

It finds the class token anywhere in the name — 1x, 2-, 4x+, 8+ — and then looks at the words either side of it. A single name tells it nothing, so it counts phrases across your entire history: a word that turns up beside 1x forty times is a boat, and one that turns up once is a note about the weather.

Which is why the whole history is always read, even when only a handful of outings are new. It also means 8x500m and 4 x 750 are recognised as rep counts rather than as boats, because the digits are followed by a distance.

Where does my data go?

Nowhere. An export is opened in your browser and never uploaded — the archive is read where it sits, a file at a time, and only the outings whose names hold a boat are opened at all. A Strava sync passes through this server to reach Strava — the client secret cannot live in a browser — and nothing from it is written down there; the results go straight to your browser and stay in it. Disconnecting deletes the one cookie holding your tokens, which is the entirety of what exists.

Built on Strava’s API. Not affiliated with Strava.

About this example. Tempest averages 1:57.2 across its outings against 2:00.7 for every other single here — the fastest raw average in the shed by 3.4s. It was also only ever borrowed in the last few months of the history, by which point the rower was several seconds a 500 quicker than they started. With that accounted for, the fit puts it 2.0s per 500m behind Strider, and behind the club workhorse too — an interval of ±1.3s that does not reach back to level. Going from the fastest boat in the shed to one that is measurably behind two of them is the entire reason this page does arithmetic instead of sorting a column.