What Is CSS in Swimming? Critical Swim Speed, Explained Simply

Use Critical Swim Speed as a pacing estimate: learn the 400/200 test, the formula, and how to adapt interval targets and recovery.

CSS, or Critical Swim Speed, is the pace you can hold for a long, hard swim without falling apart. Learn what it means, how to measure it with a 400m and 200m test, and how to turn one number into interval targets you can actually swim instead of guessing.

What CSS actually means, in plain language

CSS stands for Critical Swim Speed. The 400m/200m test estimates a pace from the relationship between the two times. It is a useful starting reference for sustained repeat work, with limits: test pacing, recovery and the swimmer all affect the result.

A CSS estimate does not establish an exact lactate threshold or a guaranteed pace for a particular race distance. Check the number against actual training: can you repeat the target with the stated recovery while keeping effort and technique controlled?

Here is why anyone should care. You have almost certainly seen a set written as something like "8x100 on 1:40" and felt a flicker of doubt. Is 1:40 the pace you should swim each 100? Is it the clock you leave on? Is it rest? Can you even hold it? Without a reference pace, that set is a riddle. CSS is the reference. Once you know your CSS pace per 100m, every one of those questions has an answer, and the set stops being a dare and becomes a plan.

The shortcut: skip the math

You do not have to do mental arithmetic dripping wet on a pool deck. Punch your 400m and 200m times into the AquaPlan swim pace calculator and it returns your CSS pace per 100m plus zone targets instantly. The rest of this article explains what that number means so the calculator is a shortcut, not a black box.

Why CSS matters for every set you swim

CSS earns its keep by anchoring everything else. On its own it is just a pace, but as a reference point it converts vague training language into executable targets. "Swim moderately hard" becomes "hold 1:55 per 100m." "Do a threshold set" becomes "6x200m at 3:40 with 20 seconds rest." The jargon collapses into numbers you can chase against a pace clock.

That is the difference between a written workout and a workout you can actually perform without arguing with yourself at every wall.

A reference can help distinguish an easy session from strong repeat work, but the actual effort and recovery still matter. Use comfortable breathing for easy work, repeatable splits for sustained work and recent race or sprint results for faster targets. Adjust a set when its prescribed pace no longer fits those checks.

Compare CSS tests only when preparation, pool length, start type, recovery and pacing are similar. A faster estimate can reflect improvement, but a changed protocol or poorly paced effort can also change the result. Review the underlying 400m and 200m times alongside the calculated pace.

CSS is also the foundation for proper interval work. If you want the full treatment on building intervals around it, the swim interval training guide covers repeat lengths, rest ratios, and set design, and the swim training zones explainer shows how CSS maps onto the GA1, GA2, threshold, and sprint bands you will see in structured plans.

The CSS test: 400m and 200m, step by step

This version uses a hard 400m and a hard 200m with recovery between them. The calculation divides the distance difference by the time difference to estimate speed; the equivalent pace formula below gives seconds per 100m. It is a two-point estimate, not a direct measurement of how long you can sustain that pace.

Use a familiar pool and a lane where you can complete both efforts safely. Warm up, pace both swims evenly and record the preparation and recovery. Stop if unwell or unable to maintain safe technique; a compromised effort is a reason to test another day.

If you want the long-form version with pacing strategy for each time trial, alternative test distances, and how to interpret a result that surprises you, the dedicated CSS critical swim speed test guide goes deeper than this overview. For most swimmers, though, the five steps above plus the formula below are all you need to get a usable number this week.

The formula, with a worked example

The CSS formula is genuinely simple, which is good, because you will be doing it while cold and mildly oxygen-deprived. In words: CSS pace per 100m equals the 400m time minus the 200m time, divided by two. The reason it divides by two is that the gap between a 400m swim and a 200m swim is exactly 200m, and 200m is two lots of 100m. So the difference in times is the time it took to swim that extra 200m at your sustainable pace, and halving it gives pace per 100m.

That is the entire trick.

The only place people trip is the clock format. Convert both swims to total seconds before subtracting, then convert back to minutes and seconds at the end. Mixing minute:second notation mid-calculation is how you end up with a CSS of negative four seconds and a sense of despair.

So this swimmer has a CSS of 1:50 per 100m. That single number now drives every zone and every send-off in the rest of their training. Swap in your own times and the method is identical. If your 400 was 6:30 (390s) and your 200 was 3:05 (185s), the difference is 205 seconds, halved is 102.5 seconds, which rounds to a CSS of about 1:43 per 100m.

Prefer to never do this by hand again? The swim pace calculator takes your two times and returns CSS plus a full set of zone paces and send-off suggestions. Use it to check your manual math the first few times, then trust whichever you find faster while standing in a puddle.

Turning CSS into zone targets you can swim

One number is the input. The payoff is a whole table of training paces built around it. The principle is that easy work sits slower than CSS, threshold work sits right on it, and fast work sits quicker, each by a predictable margin. The offsets below are working estimates for trained adult swimmers, not laws of physics, so treat them as a starting grid and adjust after a few real sets.

Using the 1:50 CSS from the worked example, the ranges become concrete numbers you can chase.

Notice that one card below is not a pace at all. The send-off is the clock interval you leave on, and it deserves its own line because confusing it with target pace is the most common mistake in pool swimming. More on that in the next section, but keep it in mind as you read the zones: pace is how fast you swim the rep, send-off is how often you push off.

If the zone names look familiar, that is because they map onto the structured bands most plans use. The training zones guide walks through GA1, GA2, threshold, and sprint in detail and shows how each one should feel, not just what it should read on the clock. CSS gives you the numbers, the zones give you the intent, and together they stop you parking in the mushy middle.

When a written set just gives you a send-off and no pace, subtract your planned rest to find the implied target. "10x100 on 2:05" with 15 seconds rest means you are expected to swim around 1:50, which is CSS. If that target is faster than your CSS, the set is harder than threshold whether the author admitted it or not.

Using CSS to set send-offs that make sense

A send-off is the interval you leave on the pace clock for each repeat. It is built from two parts: the time you intend to swim the rep, plus the rest you want before the next one. Target pace plus planned rest equals send-off. That is the formula that should be tattooed on the inside of every swimmer's goggles, because getting it backwards is how sets fall apart.

If you swim faster than target, you simply earn more rest. If you swim slower, you eat into your rest and the next rep starts you deeper in the hole.

Once you know your CSS, building send-offs is mechanical. Pick the zone, take its pace, multiply by the rep distance, add your chosen rest, and round to something your pool clock likes. The examples below all use the 1:50 CSS from earlier so you can see how the send-off shifts with zone and distance. Choose one example as a main set, then add an appropriate warm-up and easy finish.

Faster zones need more rest, which is why a 50m fast send-off is not just a scaled-down version of a 100m threshold send-off.

Start from the 3000m threshold preset with the example CSS of 1:50/100m , assign each block its intended effort, and keep the departure instructions with the set. A poolside PDF shows the targets. The FIT file includes supported distance, recovery and repetition-time steps; it does not encode pace or training-zone targets. Connected-account Garmin uploads use a manual lap instruction for send-offs, so use the pool clock for those departures.

Review the workout on your particular watch before swimming. This is a separate preset for experienced swimmers, not an exact copy of the examples above. Replace 1:50 with your tested pace and shorten the session to suit your training.

If you would rather start from a ready-made session and just slot in your own CSS paces, browse the free swim workouts library and pick a threshold or endurance set that matches your distance, then adjust the targets to your number. Far faster than inventing a set from scratch while your goggles fog.

Common CSS mistakes that wreck the number

CSS is only as good as the test that produced it, and there are a handful of reliable ways to produce a number that lies to you. None of them are subtle once you know to watch for them, but every one is common enough that they are worth spelling out.

The fixes are mostly about honesty and timing: test when you are trained and fresh, pace both trials evenly, re-test as you improve, and never confuse the send-off with the target. Get those right and the number you get is one you can actually build on.

800m CSS 100s example

One main-set option after an easy warm-up, for swimmers with a current CSS estimate. Example uses CSS 1:50/100m. Start with six repeats (600m) if eight is beyond your normal volume. · 800m total

  1. 8 × 100m Threshold 100s — 1:50 swim / 2:05 send-off — WA · Leave every 2:05 between repeats · Leave every 2:05. If the 1:50 target is too fast, choose a slower CSS-derived pace and recalculate the send-off.

1200m aerobic 200s example

A separate aerobic main-set option for swimmers comfortable with 200m repeats. Use 3:56 as an example swim target, not a universal pace. Four repeats gives an 800m main set. · 1200m total

  1. 6 × 200m Endurance 200s — 3:56 swim / 4:16 send-off — GA2 · Leave every 4:16 between repeats · Leave every 4:16. If you choose a rounder clock mark such as 4:20, change the send-off in the builder too; keep the effort sustainable.

500m fast 50s example

A separate fast-repeat option after a full warm-up, for experienced swimmers who can repeat the target without forcing the stroke. This is speed endurance, not all-out sprinting. Start with six repeats (300m). · 500m total

  1. 10 × 50m Fast 50s — :52 swim / 1:22 send-off — SA · Leave every 1:22 between repeats · Aim for :52 per 50m and leave every 1:22. End the block or slow the target when you can no longer hold the pace with a controlled stroke; breathe whenever needed.

1600m easy 400s example

A separate easy-volume option for swimmers comfortable with continuous 400m swimming. Adjust the example 2:10/100m target to easy effort. Two repeats gives an 800m main set. · 1600m total

  1. 4 × 400m Aerobic 400s — 8:40 swim / 9:00 send-off — GA1 · Leave every 9:00 between repeats · Example target: 8:40 per 400m, leaving every 9:00. Use easy effort and increase the clock interval if you need more recovery; do not chase the example pace.

Try it in AquaPlan

Article source

Written and maintained by AquaPlan Team, Swim Training & Product.

The AquaPlan team builds swim-training software for structured pool workouts, Garmin-compatible FIT export, printable workout PDFs, and progress tracking.

Focus areas: Structured swim workout design, Garmin-compatible FIT file export, Pool training plans and workout-library systems, Swim training tools for web, iOS, and Android.

Editorial standard: AquaPlan is built by lifelong swimmers — 20+ years in the water, competitive racing, and countless hours on deck. Our training guides come from that experience, not a content mill.

About AquaPlan