Calculation Methods & Formulas
LactateThreshold calculates LT2 with six published methods; LT1 comes from the log-log breakpoint or baseline + 0.5 mmol/L. Against the maximal lactate steady state, Log-Poly-ModDmax was most accurate in Jamnick et al. (2018): 1.1 W mean difference, ICC 0.96, with 4-minute stages. The fixed 4 mmol/L value often misses, because no universal threshold value exists (Faude et al. 2009).
Complete documentation of all threshold calculations used, with exact formulas, scientific sources, and validation data.
By Kristian Hoffmann · Published · Updated
Threshold Calculations (LT1/LT2)
Log-Poly-ModDmax
StandardDefault method. Like Modified Dmax, but the reference line starts at the log-log breakpoint (onset of the lactate rise after Beaver 1985) instead of the first 0.4 mmol/L rise. Curve: 3rd-order polynomial through all data points. If there is no log-log breakpoint (no baseline plateau), the app falls back to Modified Dmax and labels the result.
1. Start point S = log-log breakpoint (see Log-Log)
2. Reference line from S to the last data point E
3. Curve: 3rd-order polynomial y = a + b·x + c·x² + d·x³ (least squares)
4. LT2 = curve point between S and E with the maximum perpendicular distance to the lineModified Dmax
Maximum perpendicular distance of the polynomial curve (3rd order) to the line from the point preceding the first lactate rise ≥ 0.4 mmol/L to the final data point (Bishop et al. 1998).
1. Find start point S:
If La[i] - La[i-1] ≥ 0.4 mmol/L → S = (P[i-1], La[i-1])
No such rise before the last stage → not determinable
2. Curve: 3rd-order polynomial through all data points (least squares)
3. Distance of every curve point (x,y) to the line S→E:
d(x,y) = |A·x + B·y + C| / √(A² + B²)
where: A = -(La_E - La_S) / (P_E - P_S), B = 1, C = A·P_S - La_S
4. LT2 = curve point with max(d)Dmax (Original)
LegacyOriginal Dmax method by Cheng et al. 1992: line from the first to the last data point, 3rd-order polynomial as the curve.
Identical to Modified Dmax, but:
Start point S = (P[0], La[0]) ← First data pointThe result depends strongly on the first stage: elevated starting lactate shifts the reference line.
Dickhuth (IAT)
Individual Anaerobic Threshold based on the lactate equivalent. The minimum of the equivalent indicates maximum metabolic efficiency.
1. Calculate lactate equivalent:
LE(i) = La(i) / P(i)
2. Find minimum:
i_min = argmin[LE(i)]
La_min = La(i_min)
3. Thresholds:
LT1 = P(i_min) ← the minimum itself
LT2 (IAT) = Power at (La_min + 1.5 mmol/L)
If the minimum falls on the first or last stage, LT1 is not determinable.Delta (+1.5 mmol/L)
Fixed offset above the starting lactate (minimum of the first three stages). Simple, but dependent on the starting value.
1. Determine baseline:
La_baseline = min(La[0], La[1], La[2])
2. Thresholds:
LT1 = Power at (La_baseline + 0.5 mmol/L)
LT2 = Power at (La_baseline + 1.5 mmol/L)
3. Interpolate power:
LT2_P = P[j] + (LT2_La - La[j])/(La[j+1] - La[j]) × (P[j+1] - P[j])Mader (4.0 mmol/L)
LegacyFixed threshold at 4.0 mmol/L (OBLA). Historically widely used, but not individual.
LT2_Lactate = 4.0 mmol/L (fixed value)
LT2_P = P[j] + (4.0 - La[j])/(La[j+1] - La[j]) × (P[j+1] - P[j])
⚠️ The individual MLSS varies between 2.0-7.0 mmol/L!This method is NOT individual and systematically overestimates the anaerobic threshold in many athletes.
Log-Log (LT1)
Onset of the lactate rise after Beaver et al. 1985: on a double-logarithmic plot the blood lactate curve consists of a phase of slow and a phase of rapid increase; the intersection of the two regression lines is the first lactate threshold. LactateThreshold uses it as LT1 of the default method and as the starting point of Log-Poly-ModDmax.
1. x' = log₁₀(P), y' = log₁₀(La)
2. For every split point two regression lines (≥ 2 points per segment);
split with the lowest residual sum of squares
3. LT1 = intersection of the two lines, back-transformed: P = 10^x'
Valid only if the upper line is steeper, the intersection lies inside the measured range
and La there ≤ baseline + 1.0 mmol/L — otherwise the curve has no breakpoint.Baseline + 0.5 mmol/L (LT1)
LT1 for Modified Dmax, Dmax, Delta and Mader: the power at which lactate is 0.5 mmol/L above the starting value (minimum of the first three stages), linearly interpolated.
La_baseline = min(La[0], La[1], La[2])
LT1 = Power at (La_baseline + 0.5 mmol/L)Where to find the comparison
LABThe interactive method comparison runs on your own measurements, so it lives with the data: open a saved step test and you will find it directly below the analysis.
Go to my tests →Uncertainty & Validation
★ V4The core innovation: honest measurement uncertainty instead of false precision. Every threshold receives a CI, every curve gets coverage, and every progression comparison is checked against measurement tolerance.
Bootstrap confidence intervals
New in V4Parametric bootstrap: all lactate values are perturbed 500 times with device-typical noise and the thresholds recomputed; the 68% interval of the results gives the ±. The noise model grows with the measured value (σ = 0.10 + 0.03·y) and lies within the repeatability of hand-held analysers (< 0.5 mmol/L between 1 and 10 mmol/L). Deterministically seeded, the same procedure for every number of stages.
σ(y) = σ_base + σ_cv · y
σ_base = 0.10 mmol/L (device floor)
σ_cv = 0.03 (3% CV)
CI₆₈ = [P₁₆, P₈₄] → ±Half-widthGoodness of fit (R²)
New in V4Polynomial fit (cubic for n ≥ 5, quadratic for n = 4) used to quantify lactate-curve noise. Low R² can indicate noisy measurements, stress lactate or a non-monotone curve.
R² = 1 − (Σ(y_i − ŷ_i)²) / (Σ(y_i − ȳ)²)
Categories:
≥ 95% → Excellent
≥ 90% → Good
≥ 80% → Acceptable
< 80% → NoisyCoverage score
New in V4Checks whether the test actually reached LT2. R² only measures noise: a 4-stage test at 40-60% of LT2 can have R² ≈ 1.0 and still miss LT2 completely. Coverage answers whether the curve truly brackets LT2.
Complete ⟺ all 3 criteria are met:
1. Peak lactate ≥ 4.0 mmol/L
2. ≥ 2 stages > 2.5 mmol/L
3. Δ(last 2 stages) ≥ 0.8 mmol/LProgression significance (error propagation)
New in V4Compares two tests with error propagation: is the improvement significant relative to measurement uncertainty? This prevents athletes from interpreting noise as progress. Three levels are used: 95%, 68% and not significant.
σ_combined = √(CI_a² + CI_b²)
|Δ| > 1.96·σ → sig. 95%
|Δ| > 1.00·σ → sig. 68%
otherwise → n.s.LT1-anchored training zones
New in V4Z2 upper bound = measured LT1 instead of a fixed percentage of LT2. San Millán & Brooks 2018 show that blood lactate and fat oxidation are inversely correlated across all fitness levels — a Z2 bound at LT1 keeps Z2 in the range where fat oxidation still dominates. The Z1 upper bound (0.85 × LT1) and the Z3 upper bound (midpoint LT1–LT2) are conventions of this app, not published values.
lt1Frac = lt1 / lt2 (bike)
lt1Frac = lt2 / lt1 (run, speed ratio)
Z1_upper = 0.85 · lt1Frac ← convention
Z2_upper = lt1Frac ← measured LT1
Z3_upper = (lt1Frac + 1) / 2 ← convention
Z4_upper = 1.05 ← +5% LT2MLSS calibration & method ranking
New in V4Gold-standard validation: the user uploads MLSS constant-test values, the app compares all 6 LT2 methods against this anchor, and ranks them by absolute error. Across multiple comparison pairs this creates a per-athlete method recommendation. Lab tier.
For each method M:
error_M = |LT2_M − MLSS|
Ranking: ascending by mean(error_M)
across all (stepTest, mlssTest) pairs.VLamax Calculation
VLamax Sprint Test
StandardMaximal lactate accumulation rate from an all-out sprint of 10–12 s (Quittmann 2025), lactate before the sprint and after it until the peak.
VLamax = ΔLa / t_eff
where:
ΔLa = La_peak - La_rest [mmol/L]
t_eff = t_sprint - t_alac [s]
t_alac = 3.0 s (10 s sprint) to 3.5 s (15 s), linear (Quittmann 2025)
Example:
Sprint: 15 s, Rest-La: 1.2, Peak-La: 12.8
t_eff = 15 - 3.5 = 11.5 s
VLamax = (12.8 - 1.2) / 11.5 = 1.01 mmol/L/sMathematical Foundations
Linear Interpolation
Simple interpolation between two known points.
y = y₁ + (x - x₁)/(x₂ - x₁) × (y₂ - y₁)
For threshold calculation (Y → X):
x = x₁ + (y - y₁)/(y₂ - y₁) × (x₂ - x₁)Fritsch-Carlson Monotone Spline
New in V4Monotone cubic Hermite interpolation. It guarantees that no new extrema appear between data points, unlike Catmull-Rom splines, which can oscillate on steep or non-monotone curves. This matters for Dmax geometry because overshoot can create false inflection points.
1. δ_k = (y_{k+1} − y_k) / (x_{k+1} − x_k)
2. m_k = (δ_{k-1} + δ_k) / 2
3. if δ_{k-1}·δ_k ≤ 0 → m_k = 0
4. if α² + β² > 9 → scale m_k, m_{k+1}
5. Hermite basis: h₀₀, h₁₀, h₀₁, h₁₁Point-to-Line Distance (Dmax)
Core formula for all Dmax-based methods.
Perpendicular distance of a point (x,y) to the line:
|(y₂-y₁)·x - (x₂-x₁)·y + x₂·y₁ - y₂·x₁|
d(x,y) = ─────────────────────────────────────────
√[(y₂-y₁)² + (x₂-x₁)²]
where (x₁,y₁) = Start point, (x₂,y₂) = End pointReferences
1. Jamnick NA, Botella J, Pyne DB, Bishop DJ (2018). Manipulating graded exercise test variables affects the validity of the lactate threshold and VO₂peak.PLoS ONE 13(7):e0199794
2. Beaver WL, Wasserman K, Whipp BJ (1985). Improved detection of lactate threshold during exercise using a log-log transformation.J Appl Physiol 59(6):1936–1940
3. Bishop D, Jenkins DG, Mackinnon LT (1998). The relationship between plasma lactate parameters, Wpeak and 1-h cycling performance in women.Med Sci Sports Exerc 30(8):1270–1275
4. Cheng B, Kuipers H, Snyder AC, Keizer HA, Jeukendrup A, Hesselink M (1992). A new approach for the determination of ventilatory and lactate thresholds.Int J Sports Med 13(7):518–522
5. Dickhuth HH, Yin L, Niess A, Röcker K, Mayer F, Heitkamp HC, Horstmann T (1999). Ventilatory, lactate-derived and catecholamine thresholds during incremental treadmill running.Int J Sports Med 20(2):122–127
6. Płoszczyca K, Jazic D, Piotrowicz Z, Chalimoniuk M, Langfort J, Czuba M (2020). Comparison of maximal lactate steady state with anaerobic threshold determined by various methods based on graded exercise test with 3-minute stages in elite cyclists.BMC Sports Sci Med Rehabil 12:70
7. Caen K, Pogliaghi S, Lievens M, Vermeire K, Bourgois JG, Boone J (2021). Ramp vs. step tests: valid alternatives to determine the maximal lactate steady-state intensity?Eur J Appl Physiol 121(7):1899–1907
8. Mader A, Liesen H, Heck H, Philippi H, Rost R, Schürch P, Hollmann W (1976). Zur Beurteilung der sportartspezifischen Ausdauerleistungsfähigkeit im Labor.Sportarzt Sportmed 27:80–88, 109–112
9. Heck H, Mader A, Hess G, Mücke S, Müller R, Hollmann W (1985). Justification of the 4-mmol/l lactate threshold.Int J Sports Med 6(3):117–130
10. Mader A, Heck H (1986). A theory of the metabolic origin of "anaerobic threshold".Int J Sports Med 7(Suppl 1):45–65
11. Quittmann OJ (2025). Maximal lactate accumulation rate: current evidence and future directions for exercise testing and training.Eur J Appl Physiol 126(1):1–36
12. Quittmann OJ, Schwarz YM, Mester J, Foitschik T, Abel T, Strüder HK (2020). Maximal lactate accumulation rate in all-out exercise differs between cycling and running.Int J Sports Med 42(4):314–322
13. Moran P, Prichard JG, Ansley L, Howatson G (2012). The influence of blood lactate sample site on exercise prescription.J Strength Cond Res 26(2):563–567
14. Bonaventura JM, Sharpe K, Knight E, Fuller KL, Tanner RK, Gore CJ (2015). Reliability and accuracy of six hand-held blood lactate analysers.J Sports Sci Med 14(1):203–214
15. San-Millán I, Brooks GA (2018). Assessment of metabolic flexibility by means of measuring blood lactate, fat, and carbohydrate oxidation responses to exercise in professional endurance athletes and less-fit individuals.Sports Med 48(2):467–479
16. Seiler KS, Kjerland GØ (2006). Quantifying training intensity distribution in elite endurance athletes: is there evidence for an "optimal" distribution?Scand J Med Sci Sports 16(1):49–56
17. Beneke R (2003). Methodological aspects of maximal lactate steady state — implications for performance testing.Eur J Appl Physiol 89(1):95–99
18. Faude O, Kindermann W, Meyer T (2009). Lactate threshold concepts: how valid are they?Sports Med 39(6):469–490
19. Allen H, Coggan A, McGregor S (2019). Training and Racing with a Power Meter (3rd ed.).VeloPress
20. Jeukendrup A (2014). A step towards personalized sports nutrition: carbohydrate intake during exercise.Sports Med 44(Suppl 1):S25–S33
21. Fritsch FN, Carlson RE (1980). Monotone piecewise cubic interpolation.SIAM J Numer Anal 17(2):238–246
22. Stöggl T, Sperlich B (2014). Polarized training has greater impact on key endurance variables than threshold, high intensity, or high volume training.Front Physiol 5:33
23. Silva Oliveira P, Boppre G, Fonseca H (2024). Comparison of polarized versus other types of endurance training intensity distribution on athletes' endurance performance: a systematic review with meta-analysis.Sports Med 54(8):2071–2095
24. Riegel PS (1981). Athletic records and human endurance.American Scientist 69(3):285–290
25. Vickers AJ, Vertosick EA (2016). An empirical study of race times in recreational endurance runners.BMC Sports Sci Med Rehabil 8:26
26. Treff G, Winkert K, Sareban M, Steinacker JM, Sperlich B (2019). The polarization-index: a simple calculation to distinguish polarized from non-polarized training intensity distributions.Front Physiol 10:707