Critical Swim Speed (CSS) Calculator
Two time trials in. Every swim pace you need out.
Critical swim speed is your swimming threshold — the pace you could theoretically hold indefinitely, and the anchor every squad set is written against. You need two hard swims to find it: a 400 and a 200. This tool does the arithmetic, checks the test was valid, and gives you the paces and the sets that come off it.
Competent swimmer
Your CSS is 1:43 per 100m — swim your threshold sets at exactly that
That is 0.97 metres per second, from a 3:25 gap between your 400 and your 200. Everything else on this page is derived from it: endurance sets sit a few seconds slower, speed work a few seconds faster, and race pace slower again once you add open water.
Where your CSS sits
View as a table
| Band | Time |
|---|---|
| Fast | Under 1:22 |
| Strong | 1:22–1:35 |
| Competent | 1:35–1:50 |
| Improving | 1:50–2:10 |
| Developing | Over 2:10 |
| You | You — 1:43 |
Bands are pace per 100m in a pool, for age-group triathletes. Faster is to the left. Open-water pace sits 5 to 15% slower than any of these.
Your training paces
Every swim set you do should name one of these. "Swim hard" is not a pace.
| Set type | Pace per 100m | What it looks like |
|---|---|---|
| Speed / VO2max | 1:39–1:41/100m | 50m and 100m repeats with generous rest. Short and genuinely fast. |
| Threshold (CSS) | 1:43/100m | The anchor. 10 x 100m off 15 seconds rest, or 5 x 200m. |
| Steady / tempo | 1:45–1:47/100m | Longer intervals — 400s and 800s — at a pace you can hold honestly. |
| Aerobic endurance | 1:48–1:51/100m | The bulk of your metres. Continuous swimming and long pull sets. |
| Easy / recovery | 1:52–1:57/100m | Warm-up, cool-down and technique work. Should feel like nothing. |
What that means for a sprint (750m) swim
| Scenario | Projected time |
|---|---|
| Pool, at race pace | 12:53 |
| Open water, good conditions | 13:32 |
| Open water, chop or a rough start | 14:49 |
Three sets to take to squad
- Threshold10 x 100m at 1:43 per 100m, 15 seconds rest.
- Endurance3 x 800m at 1:48–1:51 per 100m, 45 seconds rest. The set that builds the race.
- Speed12 x 50m at 1:40 per 100m pace, 20 seconds rest. Short enough to hold the stroke together.
Tri Alliance sessions that close these gaps
- Coached pool swim squad CSS sets are what a coached squad session is built from. Bring this number to your next one.
- Supervised open-water session Pool pace does not survive contact with open water untranslated. A supervised session is where you find out what your CSS is actually worth on race day.
Two maximal swim efforts in one session is a hard workout. Do it with a coach or a squad on deck rather than alone, and never attempt a maximal time trial in open water without supervision.
The short answer
Critical swim speed (CSS) is a swimmer's threshold pace, calculated from two maximal time trials using the formula CSS = 200 divided by the difference in seconds between a 400m time and a 200m time, giving metres per second. Expressed as pace, CSS per 100m equals the 400m time minus the 200m time, divided by two. It approximates the pace a swimmer can sustain continuously without accumulating fatigue, and is used to prescribe swim training: endurance sets at CSS plus 4 to 6 seconds per 100m, threshold sets at CSS, and speed work at CSS minus 2 to 4 seconds per 100m. Both trials must be genuinely maximal and swum on the same day after a full warm-up — a submaximal 200m is the most common cause of an impossibly fast calculated CSS.
How to use this tool
- Warm up properly — at least 600m including some build efforts. A cold 400 is not a test, it is a warm-up.
- Swim 400m maximal from a push start and record the time.
- Recover fully — at least 10 minutes of easy swimming — then swim 200m maximal and record that.
- Enter both times, your pool length and your race swim distance.
- Read your CSS pace and the five training paces, then take the sets below to your next squad session.
Common questions
What is a good CSS pace for a triathlete?
For age-group triathletes, a CSS between 1:35 and 1:50 per 100m is competent, 1:22 to 1:35 is strong, and under 1:22 is genuinely fast. Above 2:00 per 100m usually indicates a technique limitation rather than a fitness one, and the fastest gains there come from stroke correction with a coach on deck rather than from swimming more metres at the same flawed stroke.
Why is my calculated CSS faster than I can actually swim?
Almost always because the 200 was not maximal. CSS is the gradient of the line through your two results, so if the 200 was swum at 90% while the 400 was flat out, the two points sit too close together and the calculated pace comes out impossibly fast. The tell is a gap between your 400 and 200 times of much less than about 100 seconds. Redo the test on a fresh day, and treat the 200 as a race rather than a formality.
How often should I retest my CSS?
Every six to eight weeks. Swimming responds to technique work faster than to fitness work, so a stroke change can move CSS by several seconds per 100m in a matter of weeks — far more than an equivalent block of running or cycling would move those thresholds. Retest with the same pool length, because a 25m pool gives you twice as many push-offs and will flatter your time by roughly one to two seconds per 100m against a 50m pool.
How do I use CSS in a swim session?
Threshold sets are swum at CSS itself — for example 10 x 100m at CSS with 15 seconds rest, or 5 x 200m at CSS plus 2 seconds. Endurance sets sit at CSS plus 4 to 6 seconds per 100m and can run much longer. Speed work sits at CSS minus 2 to 4 seconds over 50m to 100m repeats with generous rest. The point of having the number is that "swim hard" stops being the only instruction.
Does CSS translate to open water?
Not directly. Most triathletes swim 5 to 15% slower in open water than their pool CSS because of sighting, chop, wetsuit restriction and the absence of push-offs, and a wetsuit gives some of that back in buoyancy. Use CSS to prescribe pool training, and use your actual open-water sessions to set race pace expectations. If you have never swum the distance in open water, your pool CSS will overestimate your race split.