Training zones are defined as follow [1, Friel zones] as a function of the Lactate Threshold Heart Rate (LTHR) in bpm, or of the FTP (see the corresponding paragraph) in respectively s/100m for swimming, s/km for running, and watts for biking or other activities.

Note: NP / Normalized Power, IF / Intensity Factor, TSS / Training Stress Score are claimed trademarks by Peaksware LLC and were first used commercially in their WKO+ software, even though their definitions where discussed by Allen and other on the Wattage group ([2, Wattage group]) before the creation of this software. 3record definitions are conceptually equivalent but may slightly differ in implementation details; NP also sometimes refer to Normalized Pace (called Normalized Graded Pace in TrainingPeaks or Grade Adjusted Pace in Strava).

To normalize the difficulty of any activity against your abilities, 3record uses the functional threshold pace or power (FTP). FTP is defined as the pace (for swim and run) or the power (bike or other) you can keep constant on an effort of about an hour. This should in theory match more or less the activity intensity at which you are at your lactate threshold (LT).

In order to know your FTP, you have to know the constant level you can maintain for 1 hour (which is your FTP by definition) or you can test it on 20 minutes and correct the value obtained by dividing it by 1.05 (as the duration is shorter, your output is about 5% higher). Refer to [3, Friel FTP] for more details.

From this FTP and your actual output level during the activity, 3record can calculate the metrics below introduced by Coggan in [4, Allen & Coggan]. It will first calculate a normalized pace or power for your activity. Then, from it and your FTP, it can deduce a relative intensity or intensity factor which combined to the duration yields the training load, also called training stress score.

Normalized Power (NP) is calculated starting from a power stream as a function of time. This stream can be directly available and used in case you have a power meter but can also be estimated otherwise from speed and slope (see power estimation). In running for instance, the pace or velocity stream is often available but it is not used directly for the calculation of NP as the power that you had to develop to go at this pace is largely dependent on conditions (especially on slope but also on acceleration or deceleration). Therefore, 3record makes the intermediate step of going to power to calculate the normalized power and comes back to NP in terms of pace afterwards, with the normalized pace corresponding then to the constant pace you should have gone on flat terrain to produce the same effort.

Following the original algorithm from Coggan, the NP is calculated in the following steps:

- Evaluate the power stream if it does not exist.
- Calculate a stream of instantaneous NP from the power stream averaged on the last 30 seconds. This average encompasses the inertia in the body lactate system that does not respond immediately. Note that Skiba in his similar Bikescore algorithm uses exponentially weighted averages on 25 seconds which perhaps more closely tracks body response, but results are quite close anyway.
- Raise this instantaneous NP to the 4th power, take the average of this variable on the whole activity. The reason for the 4th power is the relationship between the amount of lactate created and the power output in your body. It correctly increases the perceived difficulty of intervals compared to a steady workout at the same average power or pace.

From the definition of the NP and its fourth power average, it is clear that the NP will be equal to the average power when the power is constant and will be higher otherwise (in the case of intervals for instance).

A variability index has therefore been introduced (first by Charles Howe [6, Howe Power]) as

which measures how constant your pacing was.Long-distance individual efforts seek for a VI close to 1 whereas criteriums or interval workouts have higher VI with typical ranges being:

- VI = 1.00
- Perfectly constant
- 1.00 < VI < 1.05
- Steady ride, flat TT, constant hill climb
- 1.05 < VI < 1.35
- Hilly ride, road race
- 1.35 < VI < 1.50
- Dynamic race (criterium), intervals

The Intensity Factor (IF) is then simply a normalization of the NP by the FTP. It allows to take into account your training level and weight the workout difficulty according to it and enables more accurate comparisons in time (as your FTP improves) and between athletes at different levels. The equation is as follows:

and is always calculated with FTP and NP in terms of power as it is the real work produces by your body. If needed, the power is derived from the pace.Typical values are (see [7, Coggan NP IF FTP]):

- IF < 0.75
- Recovery
- 0.75 < IF < 0.85
- Endurance
- 0.85 < IF < 0.95
- Tempo
- 0.95 < IF < 1.05
- LT intervals
- 1.05 < IF < 1.15
- short TT
- 1.15 < IF
- TT

Finally, we get the load on the body of the activity by combining the intensity factor with the duration ( in hours) to get the Training Stress Score (TSS)

Which implies that a TSS of 100 is equivalent to an hour at FTP. Typical values are (see [8, Friel TSS] and below for CTL):

- TSS/CTL < 0.75
- Easy workout
- 0.75 < TSS/CTL < 1.25
- Moderate workout
- 1.25 < TSS/CTL < 1.5
- Hard workout

To plan the season and track your fatigue and fitness, it is possible to use these values of load (TSS) and plot them as a function of time. This is generally done in the form of a performance management chart (PMC, https://3record.de/u1/analysis/pmc for this site). An introduction is available at [9, Howe PMC].

This chart plots the chronic training load (CTL, representing "fitness") and the acute training load (ATL, representing "fatigue"). The difference of the two being the "form" or training stress balance (TSB).

Fatigue (ATL) and fitness (CTL) use the same definition of an exponential change towards the actual TSS per day. The time constants are however different to include short term load (7 days by default) into fatigue and long term load (42 days) into fitness. This leads to the following definitions starting from yesterday's values (as the exponential falls to zero quite rapidly, the time point at which the 0 reference of both values is set is not important as long as enough data is present):

with by default the time constants and in days.Of course, ATL tracks the changes in TSS more rapidly than CTL, but both tend to go to on constant training load.

The form is then defined as the difference between fitness and fatigue:

For racing, the optimal TSB is close to 0 (from slightly negative values up to +20, depending on individuals). Positive TSB is obtained by having quite a lot of training in the long term (last 6 weeks for instance) and slightly less in the last week (tapering). Optimal racing conditions not only depend on TSB though but also on CTL and you should be careful not to have a rate of change in ATL or CTL too important too quickly for your body to adapt.

Similarly, it is not advised to stay for too long into high positive values (>20-25) as you would be resting too much and loosing opportunities to improve, but also going too low (<-30) can be nefast as too much fatigue increases the chances of illness and injury.

For more advices on using the TSB, see [10, Friel TSB].

- 20 < TSB
- Fully rested
- 10 < TSB < 20
- Rested
- -10 < TSB < 10
- Neutral
- -30 < TSB < -10
- Tired
- TSB < -30
- Really tired

Inspired from the definition of Fellrnr for running [11, Fellrnr Monotony], training monotony and strain are defined for all sports from the last 7 days of TSS as:

where are respectively the sum, the average and the standard deviation of the daily TSS on the last week.Monotony is therefore a measure of the variability of training loads and values below 2 are considered better as to always introduce changes and periods of rest in the training. Strain is the product of monotony and average load and can be used as an alert marker as a phase with high monotony can lead to increased injury risks, especially if training load is already high.

References in text

- [1, Friel zones]
- Joe Friel's quick guide to setting zones, J. Friel, http://www.trainingbible.com/joesblog/2009/11/quick-guide-to-setting-zones.html (also available at http://home.trainingpeaks.com/blog/article/joe-friel-s-quick-guide-to-setting-zones).
- [2, Wattage group]
- Wattage on Google groups, https://groups.google.com/forum/#!forum/wattage (Membership required).
- [3, Friel FTP]
- Functional Threshold Power: The Most Important Power Metric,J. Friel, http://home.trainingpeaks.com/blog/article/functional-threshold-power-the-most-important-power-metric.
- [4, Allen & Coggan]
- Hunter Allen and Andrew Coggan, 2nd ed, Velopress, https://www.velopress.com/books/training-and-racing-with-a-power-meter-2nd-ed/.
- [5, Skiba BikeScore]
- BikeScore, P. Skiba, http://www.physfarm.com/bikescore.pdf.
- [6, Howe Power]
- The Road Cyclist's Guide to Training by Power (Part 1), C. Howe, http://velodynamics2.webs.com/rcgtp1.pdf.
- [7, Coggan NP IF FTP]
- Normalized Power, Intensity Factor and Training Stress Score, A. Coggan, http://home.trainingpeaks.com/blog/article/normalized-power,-intensity-factor-training-stress.
- [8, Friel TSS]
- Applying the Numbers Part 2: Training Stress Score, J. Friel, http://home.trainingpeaks.com/blog/article/applying-the-numbers-part-2-training-stress-score.
- [9, Howe PMC]
- TrainingPeaks Performance Manager - a New Tool for Training Analysis, C. Howe, http://freewebs.com/velodynamics2/PerfMgr.pdf.
- [10, Friel TSB]
- Applying the Numbers Part 3: Training Stress Balance, J. Friel, http://home.trainingpeaks.com/blog/article/applying-the-numbers-part-3-training-stress-balance.
- [11, Fellrnr Monotony]
- Training Monotony, Fellrnr, http://fellrnr.com/wiki/Training_Monotony.

Additional references

- [endurancecorner]
- WKO+ definitions, endurancecorner, http://www.endurancecorner.com/wko_definitions.
- [Skiba SwimScore]
- SwimScore, P. Skiba, http://www.physfarm.com/swimscore.pdf.
- [Skiba GOVSS]
- GOVSS, P. Skiba, http://www.physfarm.com/govss.pdf.
- [Golden Cheetah]
- Golden Cheetah, http://goldencheetah.org, source code available at https://github.com/GoldenCheetah/GoldenCheetah/.