Where the eleven minutes went
Two swims from the same point west of Aquatic Park, due east into the cove, two weeks apart. Same route, same water temperature, and the same stroke rate to within a tenth of a stroke per minute. One took forty-seven minutes; the other took fifty-eight.
- 2
- Swims compared
- 2.0 km
- Due east, both
- 14 days
- Apart
- 0.1
- Stroke-rate gap, spm
- 10:48
- Time gap
The controlled variable
27.5 / 27.4
Strokes per minute, 30 May against 13 June. Identical to within a tenth, and flat across both swims — no segment in either falls outside 26.9 to 29.0.
Effort was held still without anyone intending to hold it still. That is what makes the eleven minutes attributable to something.
The uncontrolled one
286
Extra strokes on 13 June, for 89 m more distance. Metres per stroke fell from 2.108 to 1.784.
At the same cadence, distance per stroke is the water plus the swimmer. The study is about telling those two apart.
The same swim, twice
Nothing in the setup differs enough to matter. Two weeks apart, the same hour of the morning, water within 0.2 °C.
| 30 May | 13 Jun | |
|---|---|---|
| Distance | 2,742 m | 2,831 m |
| Time | 47:12 | 58:00 |
| Pace | 103 s/100 m | 123 s/100 m |
| Speed over ground | 0.968 m/s | 0.814 m/s |
| Stroke rate | 27.5 spm | 27.4 spm |
| Strokes | 1,301 | 1,587 |
| Metres per stroke | 2.108 | 1.784 |
| Water | 14.8 °C | 15.0 °C |
Two-thirds of it went in three segments
13 June was slower in all ten segments, but not evenly. It tracks within about 10% through the first half, then loses a quarter of its speed for three consecutive stretches roughly 1.1 to 1.6 km in.
| Segment | 30 May | 13 Jun | 13 Jun is |
|---|---|---|---|
| 1 | 0.992 | 0.906 | -8.7% |
| 2 | 1.103 | 0.914 | -17.1% |
| 3 | 1.097 | 0.986 | -10.1% |
| 4 | 1.198 | 1.122 | -6.3% |
| 5 | 1.210 | 1.066 | -11.9% |
| 6 | 1.183 | 0.881 | -25.5% |
| 7 | 1.000 | 0.754 | -24.6% |
| 8 | 1.225 | 0.901 | -26.4% |
| 9 — sheltered | 0.751 | 0.636 | -15.3% |
| 10 — sheltered | 0.743 | 0.640 | -13.9% |
One held on and fell off; the other faded from the middle
30 May ran flat and fast, peaking at segment 8, +11% above its own median, with one isolated dip at segment 7 between two of its best stretches. Then it fell 32% in the final fifth.
13 June peaked early and much harder — segment 4, +24%, the sharpest single stretch in either swim — and then slid continuously: −3%, −16%, 0%, −30%, −29%. It spent its best water early and had nothing after the middle.
Both swims lose 36% at the breakwater
The final 500 m sits inside Aquatic Park, sheltered from the tide. Both swims slow by the same 36% on entering it, at unchanged stroke rate — so that stretch is a same-day, same-route measurement of speed without the current.
| 30 May | 13 Jun | |
|---|---|---|
| Open water (segments 2–6) | 1.159 m/s | 0.993 m/s |
| Sheltered (segments 9–10) | 0.746 m/s | 0.638 m/s |
| Implied current assist | 0.80 kn | 0.69 kn |
Of the 0.166 m/s gap in open water, 35% was the current and 65% was the swimmer.
Both mornings carried a real push — around three-quarters of a knot eastward, which is roughly half the speed over ground in the middle of each swim. 30 May had a little more of it. But most of the difference was not the tide: in sheltered water, where the tide is not a factor, 30 May was still 17% faster at the same cadence. Its metres per stroke there was 1.607 against 13 June's 1.379 — and 1.379 is almost exactly the 2026 median for swims inside the cove.
This rests on an assumption that cannot be checked from the data: that the sheltered stretch is equally current-free on both days, and that fatigue does not contaminate it. 13 June reached the breakwater eleven minutes deeper into the swim. NOAA publishes tidal-current predictions for this stretch of the bay; with them, the split above becomes a measurement instead of an inference.
Raw pace is close to meaningless here
103 s/100 m against 123 s/100 m reads as a 19% difference in performance. Most of it is not performance, and a naive log would record 30 May as a breakthrough.
This is the case that current-normalised comparison exists for. The tooling is open at dhk/plumbline, which compares an athlete against their own record and nothing else — the two swims above are the whole argument for why that record has to be corrected before it means anything.
Two swims, 2026-05-30 09:01 and 2026-06-13 09:00, San Francisco Bay. Whole-swim figures come from a local Apple Health export; routes from the Strava reduced polylines for the two activities; segment figures from the within-swim profile, ends trimmed 100 yd and the remainder split into ten equal-distance segments — equal distance rather than equal time, because equal-time bins give a slow stretch more weight for being slow. Speeds are speed over ground. Open-water GPS is sparse, so distances are approximate; both swims are measured the same way on the same device, so the comparison holds even where the absolute numbers do not.