I’ve made some major improvements to my threshold, CV, and VO2max pace calculator!
The latest update improves accuracy in longer events like the 5k and the 10k, adds data from master’s and adult runners, and provides better uncertainty ranges across a wide range of speeds.
🎯 Check out the improved calculator here! 🚀
Below, I’ll cover some of the new features and lay out my roadmap for upcoming features.
If you’re not familiar with my calculator, it lets you take advantage of the strengths of the critical speed model without having to actually run three different race distances in a short period of time.
By using a large dataset of other runners who have run several different race distances during the same season, the calculator is able to predict your training paces based on just one race performance.
Unlike almost every other pace calculator out there, my threshold, CV, and VO2max pace calculator include uncertainty ranges so you can understand how much individual variation you can expect to see among runners at your level of performance.
That individual variation matters a lot in shorter events like the mile and the 800, since anaerobic contributions can vary tremendously from one athlete to the next even at the same level of performance.
A better statistical model for predicting threshold, CV, and VO2max
The biggest change is the underlying statistical model. The original version used a pretty simple linear model: its predictions were pretty good for performances of around 15:00 to 20:00 in the 5k, but got progressively worse outside that range.
Now, the new version uses a much more powerful nonlinear model that makes much better predictions even for much slower 5k times—as well as slower times at other race distances.
The plots below show a comparison of the old model and the new model.
Here’s predicted threshold paces (in blue), CV pace (in black), and VO2max pace (in red) along with half the associated uncertainty range—to avoid clutter, I’m plotting 50th to 90th percentile for VO2max, and 10th to 50th for threshold. These correspond to the “median estimate” (50th) and “safe estimate” (90th/10th) in the calculator.
We’ll look at the old model first, across a wide range of 5k paces. 5k pace itself is annotated with the dashed line:

For 5k times slower than 25:00, the model predicts that VO2max pace is much slower than 5k pace! That certainly doesn’t seem plausible.
The new model does much better:

On top of that, the new model has more consistent uncertainty ranges across the board.
The real benefits are even better than they appear here, since even the “old model” plot above was built on the new and improved dataset, with more performances, fewer bugs and errors, and a broader range of runners.
If you’re a statistics nerd like me, the actual model I’m using is a spline-based additive quantile regression model, which directly estimates the 10th, 50th, and 90th percentiles of critical speed (and CS+ / CS-) from a given performance at any arbitrary distance (which is why you can input any distance you want with the . Pretty cool!
More data from master’s and adult runners
The original version of the calculator relied on data from high school and college athletes. Now, I’ve added hundreds of performances from adult and master’s athletes: the model now includes runners as young as 12 and as old as 80!
These new performances also help increase the range of race times in the underlying dataset. There’s also new data from less-common race distances like 2000m, 6 km, and 8 km.
I also cleaned out some suspicious performances from the original dataset, like runners who had raced a mile at a faster pace than they’d raced an 800m, and fixed some bugs with critical speed calculations for runners who had competed multiple times at the same distance.
The roadmap for future improvements
One big improvement that’s coming soon is the ability to predict LT1, the first lactate threshold, directly from a single race performance. I have made some significant advances on this front and am hoping to wrap up the project soon (and write an article about it).
Adding LT1 predictions should also allow me to provide recommendations for easy run pace—or at least “maximum easy run pace,” based on the lower boundary of the uncertainty range around LT1.
Another improvement that I’ve already laid the groundwork for is the ability to explicitly account for age in the calculations. Among runners at the same performance level, age can sometimes have a five to ten-second per mile effect on threshold, CV, and VO2max pace. That’s not enormous, but it’s definitely worth accounting. Adding age is very easy on the “back end” of the model; I just need to add a front-end interface to take age as input from the user.
(One interesting aside: threshold, CV, and VO2max paces are not significantly different among men versus women at the same level of performance. The dataset used in this model has ~8,600 performances in it, and over 4,000 of them are from women, so I’m quite confident in this finding!)
If you want to check out the data or the model and code itself, both are freely available on my GitHub.
Check out more apps for training and racing
My threshold, CV, and VO2max pace calculator is just one of the web apps I've built. Check out some of the others at apps.runningwritings.com! These include:
- 🧮 Pace percentage calculator for doing Renato Canova-style workouts
- 🌬️ Headwind and tailwind calculator for running on a windy day
- ⛰️ Grade-adjusted pace (GAP) calculator for running up and down steep hills (or on a treadmill)
- And of course...
- 🎯 The new and improved threshold, CV, and VO2max calculator!
Find out when I’ve got new content coming out
If you want to learn more about training for events from 800m to the 10k, check out my book: Modern Training and Physiology for Middle and Long-Distance Runners. It's available both in paperback and ebook!
I also have a lot of cool new projects in the works. If you want to be the first to find out when these new improvements to my CV calculator come out, join my email list! It’s the best way to keep up to date with all my projects, whether that’s scientific deep-dives, elite training analysis, or new apps and calculators.
Enjoy the new pace calculator!
If you've got feedback or find any bugs, drop me a line.
Related articles

New web app: Predicting LT1 pace and Zone 2 pace from 5k time

New app for making power law predictions for race performance

New web app for calculating critical speed

New features in my pace percentage calculator

New calculator for track workouts on windy days

Coe-style elite 800m, 1500m, and mile training from “Winning Running”

The Marathon Excellence plans are now supported by the Defy Calendar Hack

A guide to post-race workouts for runners

Two workouts that aren’t in Marathon Excellence

