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

Critical Swim Speed (CSS) is your sustainable threshold pace. Learn the 400/200 test, the simple formula, and how to turn CSS into real interval targets.

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. In plain terms, it is the fastest pace you can hold more or less continuously before fatigue starts winning. Think of it as your sustainable ceiling: swim slower than CSS and you can keep going for a long time, swim faster and the clock starts charging interest you cannot afford. Physiologists tie it to the idea of a critical intensity where effort and recovery balance.

Swimmers can skip the textbook and use a friendlier shorthand: CSS is roughly the pace you could hold for about 1,500m, which makes it a tidy proxy for your swimming threshold.

That last point matters because threshold is the word coaches keep using, often without defining it. Your threshold is the effort where lactate begins to accumulate faster than your body clears it. Measuring it properly needs a lab, blood samples, and a budget. CSS is the pool-deck workaround: a number you can find yourself with a stopwatch and two time trials, close enough to your true threshold that training off it works.

No needles, no white coats, no excuse.

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.

It also fixes the most common training failure, which is swimming every repeat at the same medium-hard pace. Without an anchor, easy sets creep too fast and hard sets land too slow, so the whole week clusters in a mushy middle that feels productive and improves very little. CSS pulls those efforts apart. Easy means a specific number slower than CSS, threshold means right around CSS, and fast means a specific number quicker, each with its own rest.

Same pool, same hour, far more signal.

And because CSS is a single, comparable number, it is the cleanest progress metric a swimmer has. Distance and total time wander with how busy the lane was. CSS does not. If it drops from 2:05 to 1:58 across six weeks at the same effort, that is real improvement you can point to, not a motivational feeling. It is the closest thing pool swimming has to a personal benchmark you can re-run on demand.

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

The standard CSS test is two time trials: a hard 400m and a hard 200m, with enough easy swimming between them to recover. The logic is neat. Both swims are above threshold, so both carry the same fixed cost of starting fast and the same anaerobic contribution. Subtract one from the other and that fixed cost roughly cancels, leaving the pace you could sustain for the distance between them.

Divide by the distance difference and you have CSS per 100m. You do not need to believe the physics to use the result, but it is reassuring that the arithmetic has a reason.

Do it on a day you are reasonably fresh, after a real warm-up, in a pool that is not a demolition derby. Pace both efforts as evenly as you can. The single biggest source of a wrong CSS is a swimmer who treats the 400 like a 50m race, dies on the back half, and ends up with a 400 and 200 that are suspiciously close together. Even pacing is not a suggestion here, it is the method.

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. 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.

This is exactly the kind of thing software should do for you. Build any of these sets in the swim workout generator , assign each block its zone, and the send-offs and targets travel with the set onto a poolside PDF or a Garmin FIT file. The watch tells you the rep instead of you doing pace clock algebra at the wall, which is roughly the worst possible time to attempt arithmetic.

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

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