Swimming CSS (Critical Swim Speed) Calculator

Calculate your Critical Swim Speed from two timed efforts.

Free Critical Swim Speed calculator. Enter your 400m and 200m time-trial results to compute your CSS threshold pace per 100m, your CSS speed in m/s, and threshold-based training paces. Runs in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What is Critical Swim Speed?

CSS is the fastest pace you can sustain over a long swim without fatiguing rapidly — your aerobic threshold in the water. It is the swimming equivalent of a runner's threshold pace and is the anchor for most endurance swim training.

Critical Swim Speed (CSS) is the single most useful number for endurance swim training — the threshold pace you can hold for a long, steady effort. This tool computes it from the classic 400 m and 200 m time-trial test, then converts it into a pace per 100 m and a set of training paces so every swim has a target.

How it works

CSS is the slope of the line through your two time-trial points. Because the distances differ by exactly 200 m:

CSS (m/s) = (400 − 200) ÷ (T400 − T200) = 200 ÷ (T400 − T200)

The tool converts that speed into a pace per 100 m (100 ÷ CSS), then builds threshold-relative paces: easy aerobic a few seconds slower, endurance slightly slower, and VO2/speed work a touch faster. It validates that your 400 m time is slower than your 200 m time before computing.

How to run the test

The accuracy of your CSS depends entirely on doing two genuinely maximal efforts:

  1. Warm up thoroughly (at least 400–800 m of easy swimming and a few pickups).
  2. Swim 400 m all-out from a push start, as evenly paced as possible. Record the time in minutes and seconds.
  3. Rest fully — at least 10 minutes of easy swimming or passive rest.
  4. Swim 200 m all-out, again evenly paced. Record the time.
  5. Enter both times above.

A soft trial on either distance shifts your CSS. If your 200 m feels easy, you held back too much on the 400 m — which happens often when swimmers fear blowing up at 300 m. Aim for even splits across the 400 m.

Worked example

A 400 m of 6:00 (360 s) and a 200 m of 2:50 (170 s):

CSS = 200 ÷ (360 − 170) = 200 ÷ 190 ≈ 1.053 m/s
Pace per 100 m = 100 ÷ 1.053 ≈ 94.97 s ≈ 1:35 per 100 m

From this CSS of 1:35 / 100 m, the training zone table might look like:

ZonePace per 100 mUse
Easy aerobic1:45–1:55Recovery, warm-up
Endurance1:38–1:43Long sets, base building
CSS threshold1:33–1:37Threshold intervals
VO2 / speed1:25–1:32Short high-intensity sets

Using CSS in training

The most effective use of CSS is threshold intervals: repeated swims of 100 m or 200 m with 5–15 seconds rest, targeting CSS pace. Sessions like 10 × 100 on CSS + 10 s rest, or 5 × 200 on CSS + 15 s rest, build aerobic capacity efficiently. Unlike open-ended distance sets, CSS intervals give you a precise pace target that is directly linked to your physiology — not an arbitrary number.

Re-test every 4 to 6 weeks. As fitness improves your CSS improves; without re-testing you will train at a pace that is too easy and miss the adaptation stimulus.

Everything runs locally in your browser — nothing is uploaded.