Your watch handed you five heart rate zones the day you took it out of the box. It worked them out from your age and nothing else. Every zone session you have done since is built on an assumption about an average person who is not you. The fix does not need a lab, a treadmill with a mask on it, or a coach. Threshold testing for triathletes gives you three real numbers, one per sport, and everything else in your training can hang off them.
TL;DR
CSS, FTP and run threshold are three ways of measuring the same thing: the hardest effort you can hold before fatigue starts winning. Each has a field test you can do on your own, with no lab and no lactate strips. Getting the number is the easy part. Knowing when to trust it is where most people come unstuck.
Key Takeaways
- All three tests are chasing the same physiological boundary. They just report it in different currencies: pace, watts, and heart rate.
- CSS comes from a 400m and a 200m time trial. The maths is one subtraction and one division.
- FTP is usually 95% of your 20 minute power, but that 95% is an average across a lot of riders, not a law.
- Run threshold heart rate is your average HR over the last 20 minutes of a solo 30 minute effort.
- A test result is only worth having if you actually build sessions off it. Retest every six to eight weeks, same protocol, same conditions.
What “Threshold” Actually Means
Threshold is the intensity where lactate production and lactate clearance stop balancing out. Below it, you are in a place you can hold for a long time. Above it, a clock starts, and the clock is not generous.
That is the useful version. The technically correct version is messier. Sports science has LT1, LT2, maximal lactate steady state, critical power, and a few others, and they are not the same point on the curve. Field tests are aiming at roughly the upper one: the top of what is sustainable. Close enough for training purposes, not close enough to argue about on a forum.
None of these tests measure lactate. They measure performance and infer the boundary from it. That is fine. The estimate is good enough to be useful, and it costs you a hard session instead of a lab booking. If you want the underlying framework for how the resulting zones get built, that is covered in How to Read Your Heart Rate Zones.
One thing worth flagging early: your threshold is sport-specific. Your bike threshold heart rate and your run threshold heart rate will not be the same number, and copying one across to the other is one of the most common ways people end up training in the wrong place for months.
CSS: Your Swim Threshold
Critical Swim Speed is the pace you can theoretically hold for a long continuous swim without fading. It is the swim equivalent of FTP. The idea came out of work by Wakayoshi and colleagues in the early 1990s and was later simplified into the two-trial field test that coaches use now.
The Test
- Warm up properly. 800 to 1000m with a few build efforts. Do not skip this, a cold 400 will wreck the result.
- 400m all out. Pace it like a race, not a sprint. Record the time.
- 10 minutes easy. Loosen up, float, breathe.
- 200m all out. This one is closer to a sprint. Record the time.
Do it in a pool, not open water. A 25m or 50m pool, a pace clock, and either a lap counter or a friend who can count. Open water adds current, sighting and wetsuit buoyancy, none of which you can repeat six weeks later.
The Maths
CSS pace per 100m = (T400 - T200) / 2 [times in seconds]
Say you swim 400m in 6:20 and 200m in 3:00. Convert both times to seconds first, because the maths falls apart in minutes.
- 400m: 6:20 becomes (6 x 60) + 20 = 380 seconds
- 200m: 3:00 becomes (3 x 60) + 0 = 180 seconds
- Subtract the smaller from the larger: 380 – 180 = 200 seconds
- Divide by two: 200 / 2 = 100 seconds
- Convert back: 100 seconds = 1:40
Your CSS is 1:40 per 100m. That is the pace every swim set in the next block gets built around.
The reason it works is that both efforts contain an aerobic component and an anaerobic one. Subtracting the shorter from the longer cancels out most of the anaerobic contribution and leaves you with the sustainable part.
The One Thing That Ruins It
Pacing. The formula cares about the gap between your two times, not just the times themselves. Sandbag the 400 and then empty the tank on the 200, and the gap widens, and your CSS comes out slower than it really is. Go out far too hot on the 400 and fade badly, same problem.
This produces a genuinely confusing outcome that trips people up: you can improve both your 400 and your 200 times, and still get a slower CSS than last time, because the gap between them grew. Nothing is broken. You just paced differently. Both trials need to be honest maximums for their distance, and your 400 pace per 100 should always be slower than your 200 pace per 100.
On reliability: a study of national-level swimmers found the 200/400 protocol repeatable across all four strokes, with a coefficient of variation under about 3.4%. Translated into something useful, if your CSS moves by less than roughly 3%, treat it as noise rather than fitness. The same body of work notes that short-trial combinations like 200/400 tend to produce a slightly optimistic number compared with including a longer swim. If you want a more conservative CSS, use an 800 and a 400 instead and accept that the test day is harder.
FTP: Your Bike Threshold
Functional Threshold Power is the power you can hold for roughly an hour. It is the most useful single number in cycling, and the only one of the three tests here that genuinely needs equipment. You need a power meter or a smart trainer. Heart rate is not a substitute, because it lags, drifts with heat, and tells you what your body is doing about the effort rather than what the effort actually is. Single-sided is fine, by the way. You are tracking a number over time, not auditing your left-right balance. If you are still shopping, start with the Favero Assioma PRO RL review.
The 20 Minute Test
- Warm up 20 minutes, including two or three one-minute openers to clear out the legs.
- 5 minutes all out. This is not the test, it is there to flatten your anaerobic contribution so the 20 minutes is more honest. Then 10 minutes easy.
- 20 minutes as hard as you can hold, evenly. Start conservatively. The last five minutes should be the worst five minutes of your week.
- FTP = average power for the 20 minutes x 0.95.
Indoors is easier to repeat than outdoors. No traffic lights, no descents, no wind. Outdoors works if you have a flat road or a steady climb you can use every single time. A gradient around 3% is about ideal: enough resistance that you never freewheel or coast, not so steep that the number stops transferring. Most riders put out more power on a steep climb than they can on flat ground, so a wall of a hill will hand you an FTP you cannot actually reproduce in a time trial position.
The Ramp Test
Power steps up every minute until you cannot turn the pedals any more. FTP comes out at roughly 75% of your final minute. It is the default on Zwift and TrainerRoad because it is short, it is repeatable, and you cannot pace it badly, since there is no pacing to do.
The catch is that a ramp test rewards anaerobic capacity. If you are a punchy rider with a strong sprint, the ramp will flatter you, and then your threshold sessions will feel undoable and you will conclude you are unfit rather than that the test overshot. If your 3×12 minutes at threshold blows up in the second interval, every time, the test is the problem. Knock 5% off and get on with training.
About That 95%
It is an average, not a rule. Coaches working with power data report the real ratio landing anywhere from about 86% for a track sprinter type to about 96% for a time triallist. Kolie Moore, writing for TrainingPeaks in The FTP Test: Physiology and New Protocols, argues the 95% rule produces an accurate FTP for maybe half to sixty percent of riders, which is a polite way of saying it is wrong for the rest.
The academic picture is similarly unsettled. One study comparing critical power against a 20 minute FTP test in 17 trained cyclists and triathletes found the two do not agree: critical power came out higher on average, 256 W against 249 W. Different tests, different numbers, both claiming to describe the same physiology.
The practical takeaway is boring but correct. Pick one protocol and stick with it. The absolute value matters far less than whether the number is moving in the direction you want over a season. Switching from ramp to 20 minute halfway through a block does not give you a fitness update, it gives you a different measurement of the same rider.
Run Threshold: Pace, Heart Rate, or Both
Running is the one where you can walk away with two numbers from a single test, which is a decent return on 30 miserable minutes.
The 30 Minute Test
- Warm up 15 minutes easy plus a few strides.
- Run 30 minutes as hard as you can hold. A track or a flat loop is ideal. Solo.
- Hit the lap button at 10 minutes.
- Your lactate threshold heart rate is the average HR for the last 20 minutes. Your threshold pace is roughly the average pace over the same 20 minutes.
Joe Friel, who popularised this protocol, is specific about the solo part. Do it alone. In his words, doing it in a race or with training partners changes the outcome and your number comes out too high. If you want to do it in a group, make it 60 minutes and take the average of the last 30 instead.
Check the heart rate trace afterwards rather than just trusting the average. Optical wrist sensors throw out nonsense readings often enough that a single dropout can drag the whole number down. If you see a section where HR fell off a cliff while your pace held steady, that is the sensor, not you.
Or Just Use a Race
A recent all-out effort lasting 30 to 60 minutes gives you a threshold pace estimate without a dedicated test. For most age-group athletes that is a 10K. This is often the better option, because you actually raced it, and a solo time trial tends to come in a few percent slower than the same effort with a bib on. If you have a recent result, run it through our Pace Calculator to get your working paces.
Why Your Run and Bike Numbers Will Not Match
Running recruits more muscle mass and keeps you upright, and run threshold heart rate usually comes out several beats higher than bike threshold heart rate in the same athlete. This is normal. It is also why copying one set of zones across both sports quietly ruins a training block. If your easy runs feel harder than they should and your heart rate seems permanently too high, this is worth reading before you assume the zones are correct and you are the problem.
Once you have your LTHR, our HR Zone Finder will turn it into working zones in about thirty seconds, which is faster than doing the percentages by hand and considerably less error-prone.
Where These Tests Go in Your Training
This is the part most people skip, and it is the part that decides whether the test was worth doing.
Test at the Start of a Block
Your test result is what sets the intensities you will use for the next six to eight weeks, so it needs to exist before the block does. Test at the end and you have a number with no training left to spend it on, and by the time the next block starts, it is stale again.
In practice that means three or four tests across a season, tied to where you are in the plan.
- Going into Base. This sets your easy and aerobic ranges, which is most of what Base is. Getting this one wrong is the most expensive mistake of the three, because it is applied to the highest volume of training.
- Going into Build. Your threshold has usually shifted by now, and Build is where you spend the most time working near it. Stale numbers here mean intervals that are either too easy to adapt to or too hard to finish.
- Going into Peak or race prep. Less about setting zones, more about confirming race pacing. It also tells you whether the Build did what it was supposed to.
You can still test at the end of a block if you want the data. Just treat it as the opening test for the next block rather than a scorecard for the last one.
Testing All Three in One Week
You can absolutely do all three in seven days. A recovery week is a good place for it. The thing that makes it work is ordering and rest days, not spreading the tests across a month.
Something like this:
- Monday: easy or off
- Tuesday: bike test
- Wednesday: easy or off
- Thursday: swim test
- Friday: easy or off
- Saturday: run test
- Sunday: off
The swim sits in the middle on purpose. It is the least systemically taxing of the three and the one your legs care about least, so it belongs between the two that actually hurt. The run goes last because it does the most muscle damage, and there is nothing after it that fresh legs would have helped.
The one thing that ruins a test week is treating it as a normal week with three tests bolted on. Cut the volume. If you turn up to Thursday’s swim still wrecked from Tuesday, you are not measuring your swim fitness, you are measuring your recovery. Skip the brick sessions that week too. They will only muddy the results.
Then Actually Build Sessions Off the Number
| Sport | Test | What you get | Example session |
|---|---|---|---|
| Swim | 400m + 200m TT | CSS pace per 100m | 8-10 x 100m at CSS pace, sent off on CSS + 5s |
| Bike | 20 min TT or ramp | FTP in watts | 3 x 15 min at 88-94% FTP (sweet spot), 5 min easy between |
| Run | 30 min solo TT | LTHR and threshold pace | 5 x 6 min at threshold pace, 90s jog recovery |
Easy days get built off the same numbers, from the other direction. Swim aerobic sets sit around CSS plus 5 to 8 seconds per 100m. Easy riding sits well under FTP. Easy running sits well under LTHR, which in practice means slower than feels dignified. If you are unsure where the line between steady and easy sits, Zone 2 vs Zone 3 covers exactly that.
Retest Every Six to Eight Weeks
Same protocol, same time of day, similar weather, similar fatigue state going in. Change any of those and you have measured a different thing and then compared it to the old number anyway, which is how people convince themselves they have lost fitness in December.
When Not to Test
- Race week. You have nothing to gain and a taper to protect.
- Deep in a heavy block, when you are carrying real fatigue. The number will come out low and you will draw the wrong conclusion. HRV is one reasonable way to sanity-check whether you are in a state to test at all.
- Unusually hot or unusually cold. Heat pushes heart rate up and power down and turns your result into a weather report.
- Sick, or in the week after being sick.
- On a course or in a pool you cannot use again. Repeatability is most of the value.
The Trap Worth Avoiding
Testing becomes its own hobby for some people. Every three weeks, another FTP test, another number, another small dose of validation or disappointment. The problem is that testing that often costs you real training sessions and the changes you are chasing are inside the measurement error anyway.
It is also worth knowing that these numbers legitimately go down sometimes. A big aerobic volume block, or the back half of a long-course build, can leave your FTP flat or slightly lower while your ability to hold 80% of it for four hours improves enormously. That is not a failure. It is the block doing what it was designed to do. [I] The number is data about one specific effort duration, not a report card on you as an athlete.
FAQ
How often should I test?
Every six to eight weeks in a build phase is plenty. At the start of a training block rather than the end, so the result actually shapes the next block.
Can I do an FTP test without a power meter?
Not properly. What you can do instead is a 30 minute heart rate test on the bike and work from threshold heart rate, using the same protocol as the run test. It is less precise, because heart rate drifts with heat and fatigue and lags behind changes in effort, but it is a great deal better than nothing.
Do I need all three, or can I pick one?
Pick the sport where you are currently losing the most time. For most age-group triathletes that is the bike, because it is the longest leg and the one most responsive to structured work. Add the others when you are ready to structure those sessions too. An untested sport that you train by feel is not a disaster.
Why did my CSS get slower when both my times improved?
Because the CSS formula depends on the gap between the 400 and the 200, not on the times themselves. If you improved your 200 by more than your 400, the gap widened and CSS drops. Repeat the test with better pacing on the 400 before you accept the result.
Should I use a ramp test or a 20 minute test?
The 20 minute test is closer to what FTP is supposed to represent. The ramp test is easier to complete honestly and easier to repeat. [I] If you are new to structured cycling, start with the ramp, because a badly paced 20 minute test gives you a worse number than a well-executed ramp. Whichever you choose, keep choosing it.
Related Posts
- If you need to turn your test results into working zones, read: How to Read Your Heart Rate Zones (and Why Most People Get Them Wrong)
- If you are not sure where easy stops and steady starts, read: Zone 2 vs Zone 3 Training: Which One Actually Builds Fitness
- If you need a power meter before you can test FTP at all, read: Favero Assioma PRO RL Review
Sources and References
- Friel, J. Determining your LTHR. joefrieltraining.com
- Moore, K. The FTP Test: Physiology and New Protocols. TrainingPeaks.
- Stroke-Specific Swimming Critical Speed Testing: Balancing Feasibility and Scientific Rigour. PMC.
- Relationship Between the Critical Power Test and a 20-min Functional Threshold Power Test in Cycling. PMC.


