Simulation

AI-Based Dynamic Cycling Power Model

Cycling & sportsML & AI

Three cycling power models — static Monod-Sherrer, dynamic Skiba, and an AI-based variant — are compared on a 20 km virtual time trial, showing how a data-driven model trained on personal training logs outperforms heuristic two-parameter approaches for pacing optimization.

Links & Resources

Static Versus Dynamic Power Curves

A cyclist's power curve — the maximum sustainable power as a function of effort duration — is not static. Fitness evolves over weeks and months, fatigue accumulates within a ride, and not all training data represents maximal efforts. The classical Monod-Sherrer model (1965) treats the curve as static with two parameters: critical power and anaerobic work capacity. Skiba's 2012 model adds a dynamic component accounting for partial recovery between efforts. Both are tractable but limited by their small parameter count.

The AI Approach

The AI-based model, trained on 2017 personal training and racing logs, uses a neural network with enough parameters to capture the complexity of fitness evolution that two-parameter heuristic models cannot represent. All three models are evaluated on the same dataset and tested on a virtual 20 km time trial using their predicted power curve as the constraint on pacing strategy.

The AI model demonstrates higher pacing quality, not only because it is used as ground truth for evaluation — which introduces some bias — but primarily because its representation of the power-duration relationship is more expressive.

The Data Challenge

Training AI models on cycling data is technically straightforward; the real challenge is in feature engineering and label assignment. Fitness evolves over time, so recent data must be weighted more heavily. Not all recorded data represents genuinely maximal efforts, and there is no direct sensor for effort intensity. Filtering out submaximal and stale data leaves a relatively small training set — often too small for deep learning architectures like recurrent neural networks to generalize reliably.

These constraints make the problem harder than it appears, and they are why domain knowledge remains essential even as the ML tooling becomes more accessible. Open-source libraries now require only around 10 lines of custom Python to define and train a model like this one; the rest of the effort goes into getting the data right.

Connection to Pacing Strategy

A dynamic power model that updates with training load and fatigue state is the input that makes real-time pacing optimization meaningful. Without accurate power curve data, the optimizer is working from the wrong constraints. With it, a digital twin of the cyclist's current physical state becomes practical.