39:13 to 34:00: training an AI pacer on cycle-phase data
I started this in February 2026 at a 5K time of 39:13. The goal is to break 30 minutes. Three months in, my latest timed 5K is 34:00.
The interesting part is not the running. It's the coach. A Gemini agent I built that reads three streams and returns tomorrow's workout: pace, distance, intensity, rest. Heart rate from a Fitbit, workout history from Strava, and cycle phase logged by hand.
The reason this is worth doing is not the time. It's that every off-the-shelf plan I tried treats me as a male athlete with a small correction applied. That is not how the endocrine system works. The distance between "male athlete plus adjustment" and "female athlete" is the entire project.
The training data is public on GitHub. Every session, every metric.
What the cycle actually looks like
Day 1 is the first day of bleeding. The phases are not four separate blocks, which is worth stating because most explainers draw them that way and it makes the model wrong.
- Menstrual, days 1 to 5. This sits inside the early follicular phase, it is not a fifth phase. Prostaglandins drive cramping and fatigue. The agent prescribes the lightest sessions of the month here.
- Follicular, days 1 to 13. Estrogen rising, recovery faster, better carbohydrate use. Once bleeding stops, this is where the hardest sessions go.
- Ovulation, around day 14. A short window where many athletes peak. Usually a time trial.
- Luteal, days 15 to 28. Progesterone dominant, core temperature up, perceived effort higher at the same pace, sleep more broken. The agent drops intensity and adds easy volume.
What the evidence actually says
I want to be careful here, because the strong version of this claim is not supported. The largest meta-analysis on cycle phase and exercise performance, McNulty et al. 2020, found the group-level effect to be trivial and the variation between individuals to be large.
I think that result argues for this project rather than against it. A weak group average with high individual variance is exactly the signal a population-based plan cannot use. It averages out to almost nothing across a thousand women and still matters a great deal to any one of them. That is the case for an n of 1 system.
So the claim is not that my performance moves by a known amount in a known direction. The claim is that the amount is mine to measure, and that nobody selling me a training plan has measured it.
What's next
The current version has goldfish memory. It sees this morning's heart rate but not last Wednesday's tempo run. I'm rebuilding the prompt to carry multi-week context, with a retrieval layer over the last 14 days of training.
Targeting sub-32 by end of summer and sub-30 by end of year.
If you're working on something adjacent, femtech or AI coaches or agent evals on personal data, reach me on X.