Skip to contents

lactater estimates the lactate threshold concepts that are most used in sport science. This article says how each one is defined, how lactater computes it, what the evidence says about it, and how to collect data that does the methods justice. Every statement points to its source, and every source links to the paper.

Two thresholds, many methods

Most authors describe the lactate response to a step test with two thresholds and three phases: a first rise of lactate above resting values (LT1) and a second, abrupt increase (LT2), which split the intensities into three zones with distinct metabolic, hormonal and cardio-respiratory responses (Hofmann & Tschakert, 2017). With gas exchange, the two boundaries can also be estimated without blood, as the estimated lactate threshold and the respiratory compensation point: Keir et al. (2022) explain the physiology behind them and how to find them, and introduce an online app to practice on real data. The methods in lactater fall into the three families of a review that counted 25 lactate threshold concepts: fixed lactate concentrations, a first rise above baseline, and concepts aimed at the maximal lactate steady state (MLSS) or a distinct change in the curve (Faude et al., 2009). Some still carry the name “anaerobic threshold”, which is historical: blood lactate rises because glycolysis speeds up and lactate appears faster than it is removed, not mainly because the muscle runs short of oxygen (Poole et al., 2021).

Method What it finds Curve Source
Log-log Where two straight lines through log(lactate) and log(intensity) cross none (measured stages) Beaver et al., 1985
OBLA 2.0-4.0 Intensity at a fixed lactate of 2.0 to 4.0 mmol/L your choice Heck et al., 1985; Kindermann et al., 1979; Skinner & McLellan, 1980
Bsln+ 0.5-1.5 Intensity at 0.5 to 1.5 mmol/L above baseline your choice Berg et al., 1990; Zoladz et al., 1995
Dmax Point of the curve furthest below the line between the first and last stage 3rd degree polynomial Cheng et al., 1992
ModDmax As Dmax, from the stage before the first rise of at least 0.4 mmol/L 3rd degree polynomial Bishop et al., 1998
Exp-Dmax As Dmax, on an exponential plus constant curve exponential Hughson et al., 1987
Log-Poly-ModDmax, Log-Exp-ModDmax As Dmax, from the Log-log threshold polynomial or exponential Jamnick et al., 2018
LTP1, LTP2 Breakpoints of three straight lines through lactate and intensity none (measured stages) Hofmann et al., 1997; Pokan et al., 1997
LTratio Lowest lactate / intensity ratio B-spline Dickhuth et al., 1999
IAT 1.5 mmol/L above the lactate at LTratio B-spline Dickhuth et al., 1999; Röcker et al., 1997
Keul, Simon (running) Speed where the curve rises by 1.26 or 1 mmol/L per km/h (a tangent at 51°34’ or 45°) 3rd degree polynomial Keul et al., 1979; Simon et al., 1981
Stegmann Tangent to the curve from the point in recovery where lactate is back at its end-of-exercise value your choice Stegmann et al., 1981

How lactater computes them

The plots below are demo_data, a cycling test of 7 stages, with autoplot(results, method = ...).

results <- lactate_threshold(demo_data, intensity, lactate, heart_rate, plot = FALSE)

Fitted curves

The 3rd and 4th degree polynomials are fitted by least squares. “B-spline” is a natural cubic regression spline with 4 degrees of freedom. The exponential plus constant, a + b * exp(c * x), is fitted by searching c only, and only positive values as in Hughson et al. (1987): for a fixed c the model is linear in a and b. This needs no starting values and cannot fail to converge. lactate_fit_quality() compares the curves on your data.

Fixed concentrations (OBLA, Bsln+, IAT)

The intensity is found by solving the fitted curve for the target lactate. When the curve crosses the target more than once (an early lactate dip), the last crossing where lactate rises through it is used: from there on, lactate stays above the target. Bsln+ takes the resting sample as the baseline, or the first stage when there is no resting sample.

autoplot(results, method = "Bsln + 0.5")

IAT rises from the lowest lactate / intensity ratio (LTratio) instead of from the baseline:

autoplot(results, method = "IAT")

A fixed concentration assumes that everyone’s MLSS sits at the same lactate, and it does not. In national and international athletes the lactate at the MLSS was 3.1 +/- 0.5 mmol/L in rowing, 5.4 +/- 1.0 in cycling and 6.6 +/- 0.9 in speed skating, although the MLSS sat at 72 to 78% of the maximal workload in all three (Beneke & von Duvillard, 1996). In 33 men cycling it was 4.9 +/- 1.4 mmol/L, whatever their performance (Beneke et al., 2000), and in 57 men it ranged from 2.2 to 9.2 mmol/L (Hauser et al., 2014).

The Dmax family

Every variant takes the point where the fitted curve lies furthest below a straight line that ends at the last stage. Where the line’s ends sit differs between papers, and lactater follows each one by default (dmax_anchor = "original"):

Other authors drew Dmax from the measured points too: “the two end data points” (Bishop et al., 1998), “the first and last lactate measurements” (Bentley et al., 2007) or “the first and last measured points” (Heuberger et al., 2018). dmax_anchor = "fitted" puts every end on the curve and "observed" every end at the measured values. On a smooth curve the choice moves Dmax by less than 1 W; when lactate levels off in the last stage it can move a threshold by tens of watts.

The ModDmax first rise is “at least 0.4 mmol/L” between two stages (Heuberger et al., 2018); Bishop et al. (1998) and Jamnick et al. (2018) wrote “> 0.4”, which differs only when two stages differ by exactly 0.4 mmol/L. Bishop et al. measured plasma lactate from the fingertip. Change the rise with moddmax_rise, for example for sweat lactate. The resting sample is never used, and the Log-log start of the Log-*-ModDmax variants is computed without it.

autoplot(results, method = "Log-Poly-ModDmax")

Log-log

Beaver et al. (1985) split the log-log data into two segments that share the stage between them, fitted a straight line to each, and took the threshold where the two lines cross. They chose the split by eye; Jamnick et al. (2018) took “the intersection point of the two lines with the lowest residuals sum of squares”. lactater tries every stage as the split, with at least three stages per line (a line through two points has no residuals, which would favor the shortest segments), so Log-log needs at least five stages. When the two lines cross outside the measured stages, the result is NA.

autoplot(results, method = "Log-log")

LTP

Hofmann et al. (1997) and Pokan et al. (1997) found each turn point as the crossing of two regression lines “with minimal standard deviation”, inside a window: LTP1 from the first lactate value up to 4 mmol/L (Hofmann et al., 1997) or 75% of the maximal power (Pokan et al., 1997), and LTP2 from LTP1 to the maximal power. Their tests had 1-min and 90-s stages, so the windows held many samples. With the 6 to 10 stages of a typical step test the windows hold too few stages, so lactater fits three connected straight segments to all stages at once, trying every pair of breakpoints with at least two stages per segment. The result is the global optimum and never depends on starting values. ltp_fix_first_slope = TRUE keeps the segment before LTP1 flat.

autoplot(results, method = "LTP1")

Stegmann

Stegmann et al. (1981) followed blood lactate over time, during the test and in recovery (at 1, 2, 5 and 10 min). After the test lactate first rises and then falls; from the point where it is back at its end-of-exercise value, they drew a tangent to the lactate curve of the test. The point of contact is the threshold, and the slope of the tangent the maximal rate of lactate elimination. Give lactater the recovery samples as recovery (minutes and lactate) and the stage duration as stage_duration: lactater puts the recovery minutes on the intensity axis at the rate the test rose, finds the return to the end-of-exercise value by linear interpolation between the recovery samples, and draws the tangent that touches the fitted curve from below. Some of the model’s assumptions about lactate kinetics “have been challenged” (Faude et al., 2009). Nor can the threshold always be found: when lactate falls fast after the test, it is already below its end-of-exercise value at the first recovery sample, which ruled the method out in 5 of 12 elite cyclists (Płoszczyca et al., 2020) and 6 of 57 men (Hauser et al., 2014). lactater then returns NA.

Here with demo_data (3-min stages) and recovery samples simulated for the example:

recovery <- tibble(time = c(1, 3, 5, 7, 10), lactate = c(9.3, 9.6, 9.0, 8.2, 7.1))
stegmann <- lactate_threshold(
  demo_data, intensity, lactate, heart_rate,
  method = "Stegmann", recovery = recovery, stage_duration = 3, plot = FALSE
)
autoplot(stegmann, method = "Stegmann")

Keul and Simon (running only)

Keul et al. (1979) and Simon et al. (1981) put the individual anaerobic threshold where the curve reaches a set slope. Both fitted a 3rd degree polynomial to lactate (mmol/L) against running speed (km/h), on treadmill tests at a 5% grade with 3-min stages of 2 km/h and earlobe blood. Keul et al. took the mean slope at 4 mmol/L of 60 tests of 20 cross-country skiers, 1.26 mmol/L per km/h (a tangent at 51°34’); Simon et al. took 1 mmol/L per km/h (45°), as the point where the slope changes most. The slope was set in km/h on that protocol, and neither paper gives a counterpart in watts, so lactater computes these two for running only. The tangent on the plot does not look like 51° or 45°, because the two axes have different scales.

Here with running_recreational from lactate_tests (simulated, 3-min stages of 2 km/h at a 2% grade):

runner <- lactate_threshold(
  filter(lactate_tests, test == "running_recreational"), intensity, lactate, heart_rate,
  method = c("Keul", "Simon"), sport = "running", plot = FALSE
)
autoplot(runner, method = "Keul")

Heart rate

The heart rate at each threshold is interpolated between the measured stages.

What the evidence says

The strongest evidence on validity comes from studies that compare a threshold with the MLSS measured directly.

Source Who and how What it found Evidence
Jamnick et al., 2018 17 trained male cyclists; five step tests (1, 3, 4, 7 and 10-min stages) and constant-power bouts to find their MLSS; venous blood Log-Poly-ModDmax from the 4-min test gave the best estimate of the MLSS (mean difference 1.1 W, ICC 0.96). Dmax differed from the MLSS by 19 to 49 W, and OBLA 4.0 overestimated it in every test. Single study
Płoszczyca et al., 2020 12 elite male cyclists (V̇O2max 71 mL/kg/min); 3-min stages of +40 W and 30-min constant-power bouts; fingertip blood, Biosen Dmax was 1.7 +/- 3.9 W below the MLSS, and Stegmann’s IAT 4.3 +/- 7.9 W below in the 7 riders it could be computed for. Bsln + 1.0 was 6.7 W below on average but far off in single riders. ModDmax and OBLA 4.0 overestimated the MLSS by 32 and 43 W. Single study
Hauser et al., 2014 57 men from untrained to 14 h of training a week; 4-min stages of +40 W and 30-min constant-power bouts; earlobe blood, Biosen OBLA 4.0 was 7.4 +/- 25.1 W below the MLSS and Stegmann’s IAT 12.4 +/- 24.6 W above it; LTratio + 1.5 mmol/L, the IAT of lactater, was 37.4 +/- 26.4 W below. Despite correlations of 0.83 to 0.89, single athletes were far off. Single study
Heuberger et al., 2018 48 male cyclists, 109 tests (24 on placebo); five tests each; venous blood, Lactate Pro 2 Intra-subject variation over five tests: 3.4% for Dmax, 3.6% for IAT, 3.8% for 4 mmol/L, 4.3% for ModDmax. ModDmax predicted a time trial best (r = 0.94); 4 mmol/L was a simpler alternative. Single study
Jamnick et al., 2020 Review of the methods to determine exercise intensity LT1 has some evidence for separating the moderate and heavy domains; most methods have little for the heavy and severe domains. Test-retest variation: Dmax 3.8-10.3%, OBLA 4.0 3.1-8.2%, Bsln+ 0.5, 1.0 and 1.5 1.2-3.7%, 3.4-12.6% and 3.1-3.4%. One athlete’s threshold can differ by about 30% between methods. Bsln+ 1.5 estimated the MLSS in two studies with 3-min stages, not with other stage lengths. Review
Heck et al., 1985 16 men of varying fitness running on a treadmill; step tests with 3-min and 5-min stages, and 25-min runs to find their MLSS; earlobe blood Keul’s threshold correlated with the speed at the MLSS (r = 0.98 for both stage lengths). Computed from Heck’s raw data, it lay 0.20 m/s above the MLSS with 3-min stages and 0.06 m/s below with 5-min stages (Faude et al., 2009, Table V). Single study

How close a method lands to the MLSS depends on the protocol and the athletes: Dmax was within 2 W of it with 3-min stages in elite cyclists, but 19 to 49 W off in the study of Jamnick et al. Most of this evidence comes from trained, male, cycling populations; check how well it matches the athletes you test.

Whether the MLSS is the boundary between the heavy and the severe domains is itself debated. Jones et al. (2019) argue that the MLSS, as usually measured, falls below the maximal metabolic steady state, and that the critical power marks the boundary. In a meta-analysis of 10 studies the critical power was 12 W above the MLSS on average, with 95% limits of agreement from -19 to 44 W, and further above it in fitter and younger people (Micheli et al., 2025).

Check it in your own athletes

Constant-load bouts give the MLSS itself. lactate_mlss() finds it and how far each threshold of the step test lies from it, and Beyond the step test explains how to run the bouts and what the studies comparing the MLSS with the critical power found.

Collecting good data

The methods are only as good as the test behind them: stage duration, sampling site, sample type and analyzer all change the numbers. Best practices for a step test collects what the literature says, as a checklist for running a test and analyzing it.

References

Beaver WL, Wasserman K, Whipp BJ. Improved detection of lactate threshold during exercise using a log-log transformation. J Appl Physiol. 1985;59(6):1936-40. doi:10.1152/jappl.1985.59.6.1936

Beneke R, von Duvillard SP. Determination of maximal lactate steady state response in selected sports events. Med Sci Sports Exerc. 1996;28(2):241-6. doi:10.1097/00005768-199602000-00013

Beneke R, Hütler M, Leithäuser RM. Maximal lactate-steady-state independent of performance. Med Sci Sports Exerc. 2000;32(6):1135-9. doi:10.1097/00005768-200006000-00016

Bentley DJ, Newell J, Bishop D. Incremental exercise test design and analysis: implications for performance diagnostics in endurance athletes. Sports Med. 2007;37(7):575-86. doi:10.2165/00007256-200737070-00002

Berg A, Jakob E, Lehmann M, Dickhuth HH, Huber G, Keul J. Current aspects of modern ergometry. Pneumologie. 1990;44(1):2-13. PMID:2408033

Bishop D, Jenkins DG, Mackinnon LT. The relationship between plasma lactate parameters, Wpeak and 1-h cycling performance in women. Med Sci Sports Exerc. 1998;30(8):1270-5. doi:10.1097/00005768-199808000-00014

Cheng B, Kuipers H, Snyder A, Keizer H, Jeukendrup A, Hesselink M. A new approach for the determination of ventilatory and lactate thresholds. Int J Sports Med. 1992;13(7):518-22. doi:10.1055/s-2007-1021309

Dickhuth HH, Yin L, Niess A, et al. Ventilatory, lactate-derived and catecholamine thresholds during incremental treadmill running: relationship and reproducibility. Int J Sports Med. 1999;20(2):122-7. doi:10.1055/s-2007-971105

Faude O, Kindermann W, Meyer T. Lactate threshold concepts: how valid are they? Sports Med. 2009;39(6):469-90. doi:10.2165/00007256-200939060-00003

Hauser T, Adam J, Schulz H. Comparison of selected lactate threshold parameters with maximal lactate steady state in cycling. Int J Sports Med. 2014;35(6):517-21. doi:10.1055/s-0033-1353176

Heck H, Mader A, Hess G, Mucke S, Muller R, Hollmann W. Justification of the 4-mmol/l lactate threshold. Int J Sports Med. 1985;6(3):117-30. doi:10.1055/s-2008-1025824

Heuberger JAAC, Gal P, Stuurman FE, de Muinck Keizer WAS, Mejia Miranda Y, Cohen AF. Repeatability and predictive value of lactate threshold concepts in endurance sports. PLOS ONE. 2018;13(11):e0206846. doi:10.1371/journal.pone.0206846

Hofmann P, Pokan R, von Duvillard SP, Seibert FJ, Zweiker R, Schmid P. Heart rate performance curve during incremental cycle ergometer exercise in healthy young male subjects. Med Sci Sports Exerc. 1997;29(6):762-8. doi:10.1097/00005768-199706000-00005

Hofmann P, Tschakert G. Intensity- and duration-based options to regulate endurance training. Front Physiol. 2017;8:337. doi:10.3389/fphys.2017.00337

Hughson RL, Weisiger KH, Swanson GD. Blood lactate concentration increases as a continuous function in progressive exercise. J Appl Physiol. 1987;62(5):1975-81. doi:10.1152/jappl.1987.62.5.1975

Jamnick NA, Botella J, Pyne DB, Bishop DJ. Manipulating graded exercise test variables affects the validity of the lactate threshold and V̇O2peak. PLOS ONE. 2018;13(7):e0199794. doi:10.1371/journal.pone.0199794

Jamnick NA, Pettitt RW, Granata C, Pyne DB, Bishop DJ. An examination and critique of current methods to determine exercise intensity. Sports Med. 2020;50(10):1729-56. doi:10.1007/s40279-020-01322-8

Jones AM, Burnley M, Black MI, Poole DC, Vanhatalo A. The maximal metabolic steady state: redefining the ‘gold standard’. Physiol Rep. 2019;7(10):e14098. doi:10.14814/phy2.14098

Keir DA, Iannetta D, Mattioni Maturana F, Kowalchuk JM, Murias JM. Identification of non-invasive exercise thresholds: methods, strategies, and an online app. Sports Med. 2022;52(2):237-55. doi:10.1007/s40279-021-01581-z

Keul J, Simon G, Berg A, Dickhuth HH, Goerttler I, Kübel R. Bestimmung der individuellen anaeroben Schwelle zur Leistungsbewertung und Trainingsgestaltung. Dtsch Z Sportmed. 1979;30(7):212-8.

Kindermann W, Simon G, Keul J. The significance of the aerobic-anaerobic transition for the determination of work load intensities during endurance training. Eur J Appl Physiol Occup Physiol. 1979;42(1):25-34. doi:10.1007/BF00421101

Micheli L, Lucertini F, Grossi T, Pogliaghi S, Keir DA, Ferri Marini C. Analysis of the factors influencing the proximity and agreement between critical power and maximal lactate steady state: a systematic review and meta-analyses. PeerJ. 2025;13:e19060. doi:10.7717/peerj.19060

Płoszczyca K, Jazic D, Piotrowicz Z, Chalimoniuk M, Langfort J, Czuba M. 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. 2020;12:70. doi:10.1186/s13102-020-00219-3

Pokan R, Hofmann P, von Duvillard SP, et al. Left ventricular function in response to the transition from aerobic to anaerobic metabolism. Med Sci Sports Exerc. 1997;29(8):1040-7. doi:10.1097/00005768-199708000-00009

Poole DC, Rossiter HB, Brooks GA, Gladden LB. The anaerobic threshold: 50+ years of controversy. J Physiol. 2021;599(3):737-67. doi:10.1113/JP279963

Röcker K, Schotte O, Niess AM, Heitkamp HC, Dickhuth HH. Laufbandtestdaten und Wettkampfprognosen für den Langstreckenlauf (Treadmill testing and the prediction of race results in distance running). Dtsch Z Sportmed. 1997;48(9):315-23.

Simon G, Berg A, Dickhuth HH, Simon-Alt A, Keul J. Bestimmung der anaeroben Schwelle in Abhängigkeit vom Alter und von der Leistungsfähigkeit. Dtsch Z Sportmed. 1981;32(1):7-14.

Skinner JS, McLellan TH. The transition from aerobic to anaerobic metabolism. Res Q Exerc Sport. 1980;51(1):234-48. doi:10.1080/02701367.1980.10609285

Stegmann H, Kindermann W, Schnabel A. Lactate kinetics and individual anaerobic threshold. Int J Sports Med. 1981;2:160-5. doi:10.1055/s-2008-1034604

Zoladz JA, Rademaker AC, Sargeant AJ. Non-linear relationship between O2 uptake and power output at high intensities of exercise in humans. J Physiol. 1995;488(1):211-7. doi:10.1113/jphysiol.1995.sp020959