Critical Swim Speed Calculator

CSS threshold pace from two time trials — and the exact rule for how much a stopwatch error moves it: 100 over the distance spread.

Both swims have to be genuinely maximal with a full recovery between them, or the slope is measuring pacing rather than threshold. That is the assumption the whole method rests on, and it is the one no arithmetic can check. Nothing is uploaded.

One second of stopwatch is worth exactly 100 over the gap

Critical swim speed is the slope of a line through two points. Pace is a hundred times the time gap over the distance gap, which is linear in the times — so a one-second error moves the pace by exactly 100 divided by the distance spread, and by nothing else. How fast anyone swam does not enter it.

Test pairSpread1s of error moves the paceAgainst the usual test
200 and 300 100 m 1.000 s 0.50× steadier
200 and 400 — the usual test 200 m 0.500 s 1.00× steadier
100 and 400 300 m 0.333 s 1.50× steadier
200 and 800 600 m 0.167 s 3.00× steadier
400 and 1500 1100 m 0.091 s 5.50× steadier

So the whole of the advice is: spread the two distances out. The usual 200 and 400 turns one second of slop into half a second per hundred; a 400 and a 1500 turns the same second into 0.091 — 5.5 times steadier — while a 200 and a 300 is twice as jumpy as the standard. Swimming the test harder does not help at all; only the geometry does.

Which makes a CSS quoted to the second a bit of a fiction

On the standard test, three seconds of error on the 400 — a touch pad missed, a wall pushed early, a watch thumbed late — moves the threshold pace by a second and a half per hundred. That is a whole training zone, from two swims and a stopwatch.

Error on the 400CSS pace per 100Drift
-3 s 1:33.5 -1.50 s
-2 s 1:34.0 -1.00 s
-1 s 1:34.5 -0.50 s
0 s 1:35.0 0.00 s
+1 s 1:35.5 +0.50 s
+2 s 1:36.0 +1.00 s
+3 s 1:36.5 +1.50 s

None of which makes the method bad — a two-point slope is a sensible way to estimate a threshold, and it is far better than guessing. It does mean the answer deserves a range rather than a decimal place, and that the cheapest way to narrow the range is to pick two distances further apart rather than to swim either of them harder.

How to use

  1. Enter the shorter time trial, distance and time.
  2. Enter the longer one.
  3. Read the threshold pace and how sensitive it is.
  4. Try a wider distance pair to see the error shrink.

Frequently asked questions

How is critical swim speed calculated?

The distance gap divided by the time gap — the slope of a line through two points. A 400 in 6:00 and a 200 in 2:50 gives 200 m over 190 s, or about 1:35 per 100 m.

How accurate is the result?

It inherits your stopwatch. Because pace is linear in the times, one second of error moves the pace by exactly 100 divided by the distance spread — half a second per 100 on the standard 400/200 test.

Does swimming the test harder make it more reliable?

Not at all, and this surprises people. The sensitivity depends only on how far apart the two distances are. Nothing about the speeds or the times enters it, so effort improves the estimate but not its stability.

What is the best pair of distances?

The widest you can genuinely swim flat out. A 400 and a 1500 are 5.5 times steadier than the usual 400 and 200; a 200 and a 300 are twice as jumpy. The whole of the advice is to spread them out.

How wrong can it be in practice?

Three seconds of error on the long swim — a missed touch, an early push, a late thumb — moves the standard test by a second and a half per 100. That is a whole training zone, from two swims and a watch.

Should I quote CSS to the second?

It deserves a range rather than a decimal place. The method is sound and far better than guessing; it is just a two-point estimate, and two points is the fewest a line can be drawn through.

What does the method assume?

That both swims were genuinely maximal with a full recovery between them. If either was paced, the slope measures pacing rather than threshold — and that is the one assumption no arithmetic can check for you.

Does this send anything anywhere?

No. Every figure is computed in your browser, and nothing is uploaded or stored.

🔒 This tool runs entirely in your browser. Nothing you enter is uploaded, logged, or stored.