Blood lactate testing has been a cornerstone of endurance sports science for decades. When you exercise at increasing intensities, your muscles produce lactate as a byproduct of anaerobic metabolism. The rate at which lactate accumulates in the blood — and specifically the intensities at which it rises sharply — reveals critical information about your aerobic fitness, training readiness, and optimal training zones.
Two thresholds are particularly important:
Lactate Threshold 1 (LT1) — Aerobic Threshold: The intensity above which lactate begins to rise measurably above baseline. Training below LT1 is predominantly aerobic and supports fat oxidation, cardiovascular development, and recovery. Most successful endurance athletes spend the majority of their training volume in this zone.
Lactate Threshold 2 (LT2) — Anaerobic Threshold / MLSS: The highest intensity at which lactate production and clearance are in equilibrium — also called the maximal lactate steady state (MLSS). This is often the best predictor of endurance race performance and correlates strongly with an athlete’s sustained power or pace over distances from ~20 minutes to several hours.
Introducing the Lactate Threshold Analyzer
To make lactate analysis more accessible, I’ve developed an interactive Lactate Threshold Analyzer — a free, browser-based tool that takes your incremental test data (load, heart rate, and blood lactate) and applies scientifically validated algorithms to detect LT1 and LT2 automatically. The tool was developed with Claude Code (Opus 4.8).
What the Tool Does
Interactive data entry: Enter your stage data (load in watts, speed, or pace; heart rate; blood lactate concentration) in a clean table. Load one of four built-in presets (cyclist, runner, rower, elite athlete) to explore immediately.
Multiple detection methods: Choose from Dmax, Modified Dmax, fixed 2 mmol/L, fixed 4 mmol/L, 3.5 mmol/L, or the Log-Log method — each with a brief scientific description.
Lactate curve visualisation: A real-time chart overlays the fitted spline curve on your raw data points, with LT1 and LT2 marked as vertical dashed lines. Heart rate is shown as a secondary overlay when available and you can compare a previous test too entering the data.
5-zone training model: Based on detected thresholds, the tool generates a personalised 5-zone training model with load and heart-rate ranges for each zone.
Scientific interpretation: Each detection method is described with plain-language guidance on training implications for each zone.
CSV and PNG export: Download your results as a spreadsheet or save the chart as an image for reports.
The Science Behind the Methods
Dmax Method (Cheng et al., 1992)
A geometric method that identifies the point on the lactate curve that is maximally distant from the straight line connecting the first and last data points. It reliably corresponds to MLSS and is well-validated across cycling, running, and rowing.
Modified Dmax (Bishop et al., 1998)
An adaptation of Dmax that starts the reference line from the point at which lactate rises by 0.4 mmol/L above resting baseline — making it more robust when warm-up or baseline lactate is already elevated.
Fixed Concentration Methods (Mader et al., 1976)
The classic 4 mmol/L criterion (Mader criterion) and the more conservative 2 mmol/L threshold (aerobic threshold) are the simplest approach. While easy to apply, they do not account for inter-individual variation — two athletes may reach MLSS at 3 mmol/L and 6 mmol/L respectively.
Log-Log Method (Beaver et al., 1985)
By plotting log(lactate) against log(workload), the curve approximates a bilinear function, and the breakpoint in this log-log space corresponds closely to the ventilatory threshold — making it useful when you want to cross-reference with respiratory data.
How to Use the Analyzer
Enter athlete information — name, sport, load unit (watts, km/h, pace), and test date.
Enter stage data — for each stage of your incremental test, enter the load, heart rate (optional), and blood lactate value. Minimum 4 stages required. You can use a preset to explore immediately.
Select a detection method — Dmax is recommended for most athletes. Use Fixed 4 mmol/L only when comparing to historical data that used that criterion.
Click Analyze — the tool fits a cubic spline to your lactate curve, detects LT1 and LT2, calculates HR at each threshold, and generates training zones.
Review the results — check the chart, threshold values, and 5-zone model. Use the interpretation panel for training recommendations.
Export — save as CSV for your records or export the chart as PNG for reports.
Practical Implications for Training
Polarised training: Research by Seiler and colleagues consistently shows that elite endurance athletes perform ~80% of training below LT1 and ~20% at or above LT2. Correctly identifying LT1 is therefore essential to ensure that “easy” training is truly easy — the so-called “grey zone” between thresholds is associated with excessive fatigue without specific aerobic or anaerobic adaptation.
Race pace prediction: LT2 load (watts or speed) often predicts performance in events from ~20 minutes to several hours. Track changes in LT2 over a training block to assess adaptation.
Overtraining monitoring: A downward shift of LT1 and LT2 over repeated tests — without change in maximal load — can be an early sign of non-functional overreaching.
Return from illness/injury: Lactate testing provides an objective readiness metric that heart rate alone cannot supply.
Planning High Intensity Intermittent Exercise Sessions: you have a simple tool to plan a session using the data from testing.
Try the Tool
The Lactate Threshold Analyzer is free to use directly in your browser — no installation or account required. I plant to keep working on it to improve and offer some training sessions design options.
The tool is intended for educational and performance monitoring purposes. Lactate testing should be conducted by qualified sports scientists under standardised protocols. Threshold values and training zones should be interpreted in the context of an athlete’s full physiological and performance profile.
References
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-40.
Bishop D, Jenkins DG, Mackinnon LT. (1998). The effect of stage duration on the calculation of peak VO2 during cycle ergometry. J Sci Med Sport, 1(3):171-8.
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-22.
Mader A, Liesen H, Heck H, et al. (1976). Zur Beurteilung der sportartspezifischen Ausdauerleistungsfähigkeit im Labor. Sportarzt und Sportmedizin, 27(4):80-88.
Seiler KS, Kjerland GØ. (2006). Quantifying training intensity distribution in elite endurance athletes. Scand J Med Sci Sports, 16(1):49-56.
For most of my career, the richest data in elite football sat behind closed doors. Tracking systems, multi-camera optical feeds, possession context, off-the-ball movement — the kind of information that actually explains why a match unfolds the way it does — was the private property of a handful of federations and clubs wealthy enough to own it. Everyone else worked with shots, corners, fouls and possession percentage, and squinted to fill in the rest.
That is changing, and the FIFA World Cup has become the most visible stage for the shift. Over the last two tournaments FIFA has done something I think is genuinely important for our field: it has taken some of the most modern performance data ever produced in football and made a meaningful slice of it public. As someone who has spent years arguing that data only becomes knowledge when people are allowed to interrogate it, I find this exciting — so I wanted to write down where this data lives, who is doing interesting things with it, and why the act of sharing matters as much as the numbers themselves.
FIFA’s initiative: Enhanced Football Intelligence
The centrepiece is Enhanced Football Intelligence (EFI) — the set of metrics that first appeared as those small graphics in the corner of the screen during the 2022 World Cup. EFI was built by FIFA’s Football Performance Analysis & Insights team to move us beyond traditional counting stats and toward metrics that describe how a team plays.
What makes EFI different is its source. Rather than relying only on on-the-ball event data, it combines event data with live tracking data from every player on the pitch, captured by a multi-camera optical system. When something happens, you know where all twenty-two players were in relation to it. That positional context is what unlocks metrics you simply cannot derive from a traditional stats sheet, including:
Line breaks — how often a pass cuts through an entire defensive unit, and whether it went through, around or over. FIFA’s own analysis shows that the more line breaks a team concedes in midfield, the more games it tends to lose.
Ball recovery time — how long, on average, it takes a team to win the ball back after losing it.
“In contest” possession — the honest third category that sits between “our ball” and “their ball,” capturing the messy phases when nobody is truly in control.
Receptions behind the midfield and defensive lines — where and how players make themselves available between the opponent’s units.
Pressure on the ball and forced turnovers — whether a side is genuinely disrupting the opponent or merely looking busy.
Crucially, FIFA makes this available to the public. The metrics are explained — with video and multilingual PDFs — on the FIFA Training Centre, and snippets of match data are published after games. For the 2026 tournament FIFA has gone further still, layering on two new initiatives: the FIFA Power Rankings, an objective player-rating system scoring every outfield player 0–10 for attacking, creativity and defending using EFI algorithms; and FIFA AI Pro, which gives all 48 teams the same generative-AI tools to explore match data and rebuild moments in 3D — explicitly framed as democratising analytics that used to belong only to the biggest budgets.
Where to find the data and the people working with it
Here are the sites I’d point any coach, analyst or curious fan toward. I’ve grouped them deliberately, because one distinction matters a great deal and is easy to miss: some of these work directly from data officially published by FIFA, while others produce excellent World Cup analysis using third-party providers such as StatsBomb. All are worth your time — but knowing which is which keeps you honest about where a number actually came from.
This is the well from which everything else is drawn. Free, open, and aimed at coaches of every level, it hosts the EFI metric explainers, the “Football Language” glossary, video breakdowns, the FIFA Insight interviews with the people who built EFI, and — the part I’d flag for 2026 — the Match Report Hub, a live index of post-match summary reports for every World Cup match, organised by group and added as the tournament unfolds. If you only bookmark one link from this article, make it this one.
The sharpest example I’ve seen of someone treating FIFA’s openness as a system rather than a curiosity. Tactics Journal points out that FIFA is publishing a roughly 52-page post-match summary for every group-stage game — formations, pressing phases, line-break tables player-by-player, defensive pressure maps, sprint-zone physical data — all in a consistent structure. Their argument is that because every report follows the same layout, you can parse all of them into a structured, auditable evidence layer for scouting and tournament-wide tactical questions. They call it “tactical infrastructure,” and I think that’s exactly the right way to think about it: the PDF is content; the structured layer you build from it is infrastructure.
An independent blog that does something quietly useful: it organises and explains the EFI metrics as a reference, pulling together the definitions of phases of play, line heights, team lengths, receptions and the rest into one navigable place. A patient companion to the official material that helps a newcomer go from “what is a line break?” to actually reading a match through that lens.
My favourite example of why open methods matter as much as open data. Parlak built an open-source implementation of FIFA’s EFI metrics — data, concept and visualisation layers — with the explicit goal of reproducing FIFA’s match reports and testing whether the published concepts are specified well enough to be rebuilt by an outsider. That is science in the best sense: take the published method, try to recreate it, and flag the ambiguities. For analysts and students it doubles as a practical toolkit for generating EFI-style visualisations. You can read his Master’s thesis on this project here.
The wider analytics and data-journalism ecosystem
These don’t all run on FIFA’s own feed, but they show what a culture of shared football data makes possible — and they’re some of the most engaging World Cup analysis being published right now.
A blog “powered by data science and written by journalists,” produced by Northeastern’s Network Science Institute (the NetSI Sport group led by Brennan Klein). It’s a masterclass in turning event data into narrative: passing networks and passing-cluster maps that fingerprint a team’s style, xG shot maps, dribble-and-carry graphics, and genuinely novel angles like whether the 2026 hydration breaks are changing scoring patterns. Worth knowing that their underlying data comes from Hudl StatsBomb(over 3,400 events per match), not FIFA’s EFI feed — a good illustration of how the official and commercial data worlds sit side by side.
Not a football site at all, but a weekly roundup of the best data visualisations from newsrooms around the world, and during the tournament it’s been a reliable showcase of World Cup charts — qualification journeys, the evolution of the match ball, player and game analyses from the likes of Reuters, The New York Times and El País. The best place to see how professional data journalists choose to present this kind of information. Some details are also here.
A reminder that you don’t need a newsroom to do this. This is a community-built interactive Power BI dashboard — one example aimed at World Cup Fantasy players, with a “Stat View” toggle to compare a player’s club versus international form before making transfer decisions — sitting within Fabric’s wider Data Stories Gallery of user-made World Cup dashboards. A nice window into the grassroots, build-it-yourself end of the spectrum.
(Two more worth a look in the same spirit: Tactical Football Analysis for written post-match tactical breakdowns, and Flourish, whose football chart templates are a quick way to build your own tournament visualisations.Also, have a look at this substack on how to build team-shape visualisations.)
What the analysis actually looks like
The reason this data is worth sharing is that it produces visuals that change how you see a match. A few of the workhorse formats:
Pass networks map who connects to whom and where, turning a team’s structure into a readable shape — you can see at a glance whether a side is building through its full-backs, overloading one flank, or bypassing midfield entirely.
Tracking heatmaps show where players and teams actually spend their time, exposing the difference between nominal position and real behaviour, and revealing how compact or stretched a side is in and out of possession.
xG (expected goals) shot maps put a probability on every chance so you can judge whether a team created genuine danger or simply accumulated low-value shots — useful, as long as you remember it’s a guide, not a verdict.
The principle underneath all of them is the same one I keep coming back to: the best statistics don’t make football more complicated, they make it easier to understand. A line-break count, a compactness number or a clean sprint map isn’t there to replace the coach’s eye — it’s there to sharpen the question the coach is already asking as well as providing additional information for support staff to improve how players are prepared.
The other half of the story: injuries and player health
It would be a strange omission, for me especially, to write about World Cup data and talk only about what happens when players are on the pitch. The same tournament that generates all this performance data also generates a great deal of information about the cost of playing it — and FIFA itself frames its data mission broadly, as unlocking the potential of video and data to drive technical development and education, not just tactical analysis.
This World Cup has put player load firmly in the spotlight. The expansion to 48 teams and 104 matches, layered on top of an already congested club calendar, has prompted warnings from sports-medicine specialists that fatigue and tight scheduling are pushing injury rates up — with the knee particularly exposed to the constant cutting, pivoting and rapid changes of direction the modern game demands. FIFA’s own venue medical staff have pointed to the injuries they see most often in elite players: ankle sprains, and hamstring and calf strains. None of that is new in kind, but the volume and the schedule are. At the end of each tournament there is always a published paper on the injury surveillance activities conducted by the FIFA medical team. If you want to read more about our experience at the FIFA 2022 World Cup you can read the following papers:
For the public, the most visible “injury data” is the running tracker — outlets such as ESPN, The Independent and others maintain live lists of who is ruled out or racing to be fit, and this tournament has tested several squads hard, with sides like Brazil and the Netherlands losing first-choice players before a ball was kicked. These are journalism rather than open datasets, but they perform a real function: a structured, continuously updated public record of availability.
FIFA has a long history of medical research around its tournaments, and the combination of tracking data (sprint loads, high-intensity distances, accelerations) with injury records is exactly the kind of linkage that could move us from counting injuries to understanding and preventing them. The performance data and the medical data are two halves of the same picture; sharing both is how we protect the players who generate it.
Why sharing the data matters
I want to close on the part I care about most, because it’s easy to treat “FIFA released some metrics” as a minor technical footnote. It isn’t.
It democratises insight. When tracking-derived data was private, the gap between the richest and poorest programmes was partly a data gap. Publishing EFI, and giving every World Cup team the same AI tools, narrows that gap. Insight stops being a function of budget alone.
It creates a shared language. When a coach in one country and an analyst in another can both point to the same definition of a line break or “in contest” possession, conversations get more precise and more productive. Common metrics are the grammar of a common discussion.
It invites scrutiny and reproducibility. The moment a method is public, people like Doğan Parlak can try to rebuild it, stress-test it, and improve it. That is exactly how a field matures — not by guarding methods, but by exposing them to challenge.
It stimulates new ways of analysing the game. This is the part that excites me as a scientist. Hand the same dataset to a hundred curious people and you will get analyses no single organisation would ever have commissioned. Open data is generative: it produces questions, tools and visualisations that wouldn’t otherwise exist, and the elite game gets smarter as a result.
Football has always been understood through stories and through the eye. What FIFA’s data initiative does is add a third lens — a transparent, shareable, contestable one — and then, remarkably, hand it to everyone. The numbers are interesting. But the decision to share them is what will change how we understand the game at the very highest level. So, well done to my FIFA colleagues for this initiative.
At Aspetar we have produced a special issue of our Journal dedicated to Football and the World Cup. You can access it by clicking on the cover page.
In my last post I shared my first proper experiment with AI tools — scraping publicly available muscle-injury data from the major football leagues and pulling it into a dashboard that I could update and share with almost no manual work. I promised I would do more, and it did not take me long to find an excuse. With the Giro d’Italia in full swing, I could not resist pointing the same toolkit at a race I have been following obsessively for weeks.
So this time I used Claude, Claude Cowork and GitHub to build a live dashboard for the 2026 Giro d’Italia. It scrapes publicly available race data, pulls it together, and refreshes itself — and you can explore it directly at the bottom of this post or on its own GitHub page.
How the GIRO finished
And what a Giro it turned out to be. Jonas Vingegaard (Visma–Lease a Bike) rode with a control that bordered on the imperious, lighting up the brutal Piancavallo stage to put the result beyond any doubt and then rolling into Rome in the maglia rosa. For a rider who has already won the Tour de France and the Vuelta, this maiden Giro completes the set of all three Grand Tours — a milestone worth pausing on, whatever you make of the strength of the opposition this May.
Behind him, Felix Gall (Decathlon CMA CGM) took second, a little over five minutes back, with Jai Hindley (Red Bull–Bora–hansgrohe) completing a fine return to the podium in third. Thymen Arensman (Netcompany–Ineos) ended up just off the box in fourth.
The minor jerseys produced their own subplots. Paul Magnier (Soudal Quick-Step) was the sprinter of the race and took the cyclamen points jersey, while Giulio Ciccone (Lidl-Trek) went hunting for mountain points with real appetite and claimed the blue. The young riders’ classification went right down to the wire between Afonso Eulálio (Bahrain Victorious) and Davide Piganzoli — I’ll let the dashboard below tell you who held the white jersey in the end, and who took the bunch sprint on the streets of Rome. That, really, is the whole point of the exercise: the numbers update themselves, so I don’t have to.
How I built the data source and dashboard
The workflow was remarkably similar to the football injuries project, which is exactly what I find so interesting about these tools — once you understand the pattern, you can reuse it for almost anything.
I asked Claude and Claude Cowork to gather the publicly available race data — general classification, stage results, the points and mountains battles, rider profiles — and to organise it into something I could actually look at rather than squint at across a dozen browser tabs. The agents then built the dashboard itself, and I hosted the whole thing on GitHub using GitHub Pages, which is free and gives me a clean public link. Because the page lives on GitHub and reads the underlying data, I can refresh it whenever I like, or automate the update entirely, and then simply embed it back here on the blog with a single line of code.
The dashboard is organised into a few tabs: an overview, the stages, the evolution of the GC over the three weeks, the points battle, the individual rider profiles, and — for the data nerds among us — a set of estimated power figures.
All of this took me a fraction of the time it would have done even a year ago, and with effectively no programming on my part. That is genuinely new, and worth pausing on.
The usual health warning
As I wrote last time, I will keep being honest about the limitations. The data here are scraped from publicly available sources, so their veracity and accuracy are only ever as good as the source — and in cycling, numbers move and get corrected constantly. The estimated power values deserve a particularly large pinch of salt: these are modelled figures derived from public information, not measurements from a calibrated power meter, and anyone who has worked in performance physiology knows how much can hide behind a single wattage number. Treat them as a bit of fun and a conversation starter, not as evidence.
With those caveats firmly in place, I have mostly used this as another chance to learn what these tools can and cannot do — how to gather, share and visualise data quickly, and where the human still very much needs to stay in the loop. Critical thinking, as ever, is key.
Have a play
Here is the dashboard, embedded live. It updates itself, so it should already be showing the final classifications from Rome.
Update
I updated some views and with each individual rider now you can see the summary of their participation and what they did in each stage.
You must be logged in to post a comment.