CX season readiness review and World Cup plan
- Athlete: Sidney McGill (Elite Women, top-20 World Cup level; Hashimoto's thyroiditis; gluten-free and dairy-free)
- Prepared: 2026-09-23 by Coach Luca
- Window reviewed: 2026-08-09 to 2026-09-23 (the last 45 days of her TrainingPeaks calendar), with the July build and last season used for comparison
- Evidence: every planned and completed TrainingPeaks item in the window (75 items, full workout detail, 1-second race files, time-in-zone data, fitness trend, athlete settings, events), last season's race files (Sep 2025 to Jan 2026), the weekly self-assessments, the canonical daily logs, and the July to September preparation strategy
- Status: internal coaching report. Nothing was published to or changed in TrainingPeaks.
Bottom line
- Sidney is aerobically fit but not race-fit. The July to mid-August build was done, and done well: 13-16 hours a week, and on August 19 she rode 270 W for 20 minutes, her best 20-minute power in over a year. On August 20 she did 456 W for 1 minute and 534 W for 30 seconds, close to her season bests.
- The sharpening phase that should have turned that fitness into race speed mostly did not happen. Between August 21 and September 8 she had 8 key race-specific sessions planned. Only 2 were done as intended. Three were compromised and three were missed, including both CX race simulations. August 27 to 31 was five blank days. Her total hours matched the plan, but the hours were the wrong kind: missed intensity, then long rides on easy and opener days (September 8 and 9 were 6 hours where 2:15 was planned).
- Her real training load is lower than TrainingPeaks shows. Five duplicate uploads (Garmin and Wahoo recording the same ride) added about 450 TSS. Corrected, her chronic training load (CTL, a measure of fitness from training) peaked near 72, not 80, and is about 61 today. Last season her best races, the January World Cups, came at a CTL of 83-87. Her December races, at about 70, were mixed (NP 204-223 W in three of four).
- Rochester shows the gap clearly. Her race power (NP, normalized power) was 208 and 215 W against 215-231 W at the same point last season and 241-254 W at the January World Cups. She spent about a third fewer minutes in surges above 150% of FTP, far less time at threshold heart rate, and her power dropped 9-14% after the opening lap. Her 1-minute start power of 324-328 W is well short of the 375-445 W she needed to hold position in World Cup starts last January.
- The coaching loop has been broken since early August, which let all of this happen unnoticed.
- Her Garmin did not sync from August 21 to September 22, so the whole month arrived in one batch on September 22.
- Coach Luca's daily and weekly messages were saved but not delivered from August 9 on. All seven weekly check-ins since August 10 went unanswered, most likely because they never reached her.
- No workouts have been planned in TrainingPeaks since September 13, and the automated daily plans prescribed easy endurance on both Rochester race days.
- Her September 22 request for guidance has had no reply.
- No race results or debriefs have been recorded.
- Health factors have not been ruled out. The thyroid, iron and vitamin D bloodwork planned for July has no record, and the few breakfasts logged before key sessions were low in carbohydrate (19.5 g and 61 g).
- The fix has two parts. First, repair the system this week: data sync, message delivery, a published plan, events in TrainingPeaks, and bloodwork. Second, rebuild CX-specific fitness in the two race-free windows before Nationals (October 5-16, and October 19-28 if Major Taylor is dropped), then carry sharpness through PanAms into Europe. The realistic target for November 27 is to arrive at last season's PanAm level or better, with CTL in the low to mid 70s (corrected) and fresh. A World Cup top-10 is more realistic in the late-December and January rounds than in Ostrava or Tábor.
Where she stands against what the season needs
Body mass is not in the record, so none of this is expressed in W/kg. Getting a current weight is one of the fixes.
What happened in the 45 days
Weekly picture (duplicates removed)
Heart rate lags behind short intervals, so power minutes are the better measure of intensity in the build weeks. From August 23 on, most rides have no power at all.
August 9-20: the build finished well
- Camp and the week after were absorbed. The race-pace 5 x 3 min (August 11) hit a best 3 minutes of 280 W, 108% of FTP. The final long ride (August 15) was 3:30 at NP 183 W with its 3 x 12 min block.
- The FTP retest was aborted on August 18 (best 20 minutes: 185 W) and redone on the next day's "easy spin" slot: 270 W for 20 minutes, 12 W up on the July 14 test (258 W). FTP estimates at 256-257 W, so TrainingPeaks' 260 W is effectively right.
- The short-power retest (August 20) was strong: 622 W for 5 s, 571 W for 15 s, 534 W for 30 s, 456 W for 1 min and 327 W for 3 min.
- There was already one warning sign. The August 14 "easy spin" was ridden at NP 241 W, IF 0.93, for 1:31, the day before the key long ride. Easy days ridden hard become a pattern later.
August 21-31: the sharpening phase was lost
- August 21 and 22 have no files, so race simulation 1 did not happen.
- The Alberta move landed around August 23. She rode 2:11 and 2:05 on the travel day and the planned recovery day, both without power.
- The 30/30s (August 25) lasted 53 minutes at an average HR of 126 and a maximum of 176. That is well under what 2 x 8 x 30 s at 120% FTP produces, so the set was cut short or ridden soft.
- The August 26 endurance ride stopped after 9 minutes.
- August 27 to 31 has nothing in it: no CX skills, no race simulation 2, no endurance ride, no hill-repeat run. Her CTL fell about 10 points in this stretch.
- The data explains why nobody reacted. Every file from August 23 to September 21 was uploaded in one batch on September 22, so at the time the coaching system saw nothing and logged each day as "Unconfirmed".
September 1-12: volume came back, but not sharpness
- She got her volume back: 11.3 and 10.0 hours in the two weeks.
- The prescribed quality did not come with it:
- "Starts and 1-min sharpener" (September 1) became 2:09 with a maximum HR of 176 and no power.
- "Endurance 1:30" (September 2) became 2:13 plus a second 1:23 ride.
- September 5 and 6 each show a warm-up followed by about 45 minutes at race heart rate (average 176 and 168). These were probably local races or full simulations; this needs confirming.
- Race week drifted long. "Openers 1:00" (September 8) became a 3:11 ride with HR up to 190, and "Easy spin 1:15" (September 9) became 2:54.
- The only Canmore race-intensity file is Saturday, September 12: a 27-minute warm-up, then 55 minutes at an average HR of 169 and a maximum of 199, with no power. There is no file for September 13, the listed race date, and no result anywhere.
September 13-23: racing without a plan
- Nothing is planned in TrainingPeaks after September 13.
- September 15 and 16 each have a manual 2:00 entry with no file. September 17 is blank, probably travel.
- Rochester C1 and C2 (September 19 and 20) were raced with power; the numbers are below.
- On September 22 Sidney wrote that her legs were "still quite tired and sore" and asked what to do before Roanoke. A reply was drafted in the log but not delivered. She rode 2:13 easy that day, and today ran 25 minutes and spun 1:06 (both easy by heart rate).
Key-session scorecard, August 21 to September 8
The running and stair work planned for this period (August 21, 26 and 30, September 2) was not done, and none of the eight gym sessions from August 11 to September 1 were logged. The CX skills day on August 13 had a maximum HR of 137, which is not compatible with 6 maximal starts. In the whole window there is no evidence of a start practised at full intensity outside a race.
Race analysis
The two Rochester races are the only races this season with power. The comparisons below use her own files from last season. All power figures are measured from the gun, using 1-second data.
Here "lap 1" and "lap 2" mean the first and second quarters of the race.
Corrected 2026-10-02: race locations were verified from GPS. September 27-28, 2025 was Charm City (Baltimore), not an unnamed late-September race. October 4-5, 2025 was in Wisconsin, not Charm City. Last year's opening weekend (September 13-14) was Roanoke. The November 8, 2025 race was in Washington, DC; its PanAm label was never verified. The numbers are unchanged; only the labels were wrong.
What the files say:
- She had the punch. Her 5-second race peaks (718-744 W) are within 5-9% of last September's (750-786 W). The capacity she showed on August 20 (534 W for 30 s, 456 W for 1 min) is World Cup-grade.
- What's missing is the sustained race work between surges. Her 20-minute race power was 200-201 W against 208-226 W last season, and she spent about a third less time in surges above 150% of FTP. She also spent much less time at threshold heart rate than in last autumn's races. The Sunday race was the weaker of the two (HR 175, 2.6 minutes at threshold heart rate), so repeating a hard race the next day is also below standard.
- Heart rate says the same thing. Her Rochester heart rates are close to the same weekend last year, Rochester 2025 (average 180 and 177 then, 181 and 175 now). Her Alberta race-intensity efforts, though, averaged 168-173 against 182 on last year's opening weekend in Roanoke, with low first quarters (HR 140-169). She is not getting to race intensity early, and not staying there.
- Rochester is not a collapse. It sits at or slightly below last season's September level. That is the problem. Last September's race power was 5-15% below the January form that produced 24th-place World Cup finishes, and the summer was meant to raise her ceiling, not return her to the same starting point.
Placings and time gaps are not in the record. The analysis above uses power and heart rate only. Placings, gaps to the winner, and start-row positions would sharpen it.
Why the races have been sub-standard
In order of impact:
- The conversion block didn't happen. Race-specific intensity is the quality that fades fastest and matters most in cyclocross. Her tested short power on August 20 was near her best. Then came roughly 11 days with almost no intensity (August 21-31, including five blank days), sharpener sessions ridden soft, and a race week of long rides. She arrived at the first races with the aerobic engine intact but without race rhythm, repeatability or practised starts.
- Fitness is lower than the dashboard says. After removing duplicates, CTL peaked around 72 in August and was about 60-65 through the opening races. Last season's evidence is consistent: at about 70 she mostly raced at 205-225 W NP, and her best races came in the 80s. Racing every weekend from here will hold CTL where it is unless mid-week load is deliberately rebuilt.
- She can't hold threshold between surges, and her starts are short of World Cup level. These are the two CX-specific limiters in the files. World Cup starts decide position for the whole race, and her current 1-minute start power would cost her places at every World Cup start.
-
The feedback loop broke, so nothing was corrected in time:
- The Garmin sync gap from August 21 to September 22.
- Messages not delivered from August 9.
- No plan in TrainingPeaks after September 13.
- Daily plans written without knowing her race schedule.
- No debriefs.
- Power missing on most rides from August 23 to September 14.
Sidney has effectively been self-coaching the race block. The pattern of long easy days and missing key days is what you would expect when the athlete isn't receiving the plan.
- Possible physiological contributors are unscreened. With Hashimoto's, under-replacement produces exactly this picture: good aerobic numbers when fresh, blunted heart rate and poor repeatability under race load, slow recovery ("still quite tired and sore" two days after racing). Low carbohydrate availability and low iron do the same. None of this is confirmed; all of it is cheap to check. No TSH, free T4, ferritin or vitamin D result exists in the record since the plan called for them in July.
Was her fitness properly prepared for the season?
Partially. The aerobic foundation was prepared properly and is the best it has been in over a year. The race-specific preparation was not completed, the true load base is lower than last season's (corrected CTL peak of about 72, against a displayed 97 last August, although last season's figures may also contain duplicates), and the monitoring that should have caught this failed for six weeks. She began the season race-ready for C1 and C2 fields, not for World Cup fields, and the numbers from Rochester match that.
Plan to the World Cups
Update 2026-09-23: race selection changed after this review. Every UCI weekend is now raced for points, Major Taylor included. The current day-by-day plan is
2026-09-24-to-2026-11-27-race-block-training-plan.md, with sessions inathlete/calendar/.
Principles
- Two protected build windows before PanAm. October 5-16 (12 days with no racing) is the most important training window of the autumn. October 19-28 is the second, if Major Taylor is dropped.
- Race C1 days for points and learning; treat most C2 days as training races. UCI points matter because they set her start row in Europe.
- Mid-week work targets the limiters shown in the race files: starts, threshold held between surges, and surge repeatability. Aerobic volume is maintenance only, apart from the build windows.
- Easy days stay easy: 60 minutes or less, under 145 W, HR under 140. Openers stay at 60 minutes or less. This is the discipline that slipped in August and September.
- Hashimoto's guardrails still apply. At least one full rest day a week. If sleep, resting HR, appetite or mood slip for more than 48 hours, cut intensity density first, then volume. Fuel every hard session.
- Workouts use FTP 260 W. Retest 20-minute power on October 7.
Calendar from now to Tábor
Between Tábor (November 29) and Glasgow (December 13) there are two race-free weeks: the third build window, and the one that lifts CTL toward the 80s for the December and January rounds. Plan it now so it doesn't get given away to travel.
Key sessions (FTP 260 W)
- VO2 for the CX engine: 5-6 x 4 min at 285-305 W (110-118% FTP), 4 minutes easy between. Once a week in race weeks, twice in build weeks.
- Threshold with surges: 3 x 12 min at 247-260 W (95-100% FTP) with a 10-second surge at 470-520 W every 90 seconds, 6 minutes easy between. This targets her lap-2 fade directly. Once a week.
- Surge repeatability: 3 sets of 8 x 30 s at 390-440 W (150-170% FTP) with 30 seconds easy, 8 minutes between sets. Progress to 40/20s. Once a week in build weeks.
- Starts: 8 standing starts from clipped in, on grass or dirt, 15 s maximal, then hold 45 s at 340+ W. Target at least 600 W for 15 s and at least 420 W for the first minute by November. Twice a week in October: once fresh, and once at the end of a hard session.
- On-course race simulation: 40-50 minutes. Grid start, laps with barriers and a run-up, race the last two laps. Once a week in build weeks.
- Long ride: 3-3:30 h endurance with 3 x 10 min at 234-247 W (90-95% FTP) in the last hour, 80-90 g of carbohydrate per hour. Build weeks only.
- Recovery: 60 minutes or less, under 145 W, HR under 140. No efforts.
- Openers: 45-60 minutes total, 2 x 3 min at 260-275 W and 3 x 15 s starts.
- Run-ups: 15-20 minutes, 6-8 x 15-20 s at race intensity up a steep bank or stairs. Twice a week in build weeks, stopping at any ankle, calf or SI complaint.
- Gym: twice a week in build weeks (RDL, split squat, Nordic lowers, step-ups, calf raises, box jumps for start power, core). Once a light session in race weeks, on Monday or Tuesday.
Race execution targets
- Start: commit fully for the first 60-90 seconds. The race files will show whether she did: the target is 380 W or more in October and 420 W or more by PanAm.
- Laps 2-4: NP of 240 W or more per lap, and no more than a 7% drop from lap 1. This is the single most useful in-race number to track.
- Warm-up: 35-40 minutes, including 2 x 3 min at threshold and 3 starts. Get to the grid warm, with HR up; her first-quarter heart rates show slow starts.
- Debrief within 24 hours of every race: placing, gap to the winner, start row, lap times, what limited her, and legs the next morning. Block the following week's plan until it's in.
Fuelling and health
- Bloodwork this week or right after Roanoke, before the October 5 block: TSH, free T4 (free T3 if her physician agrees), ferritin and an iron panel, vitamin D, CBC. Any thyroid dose change is her physician's decision. Repeat the panel between November 9 and 12, before Europe. Write a levothyroxine timing plan for the Eastern-time block and for the move to Central European Time.
- Carbohydrate targets (Canadian English and GF/DF throughout):
- Race mornings: 1.5-2 g/kg of carbohydrate 3-4 hours before the start, then 30 g at 45 minutes and a gel at 10-15 minutes.
- Build days: 6-8 g/kg. Race weekends and long days: 8-10 g/kg.
- Rides over 90 minutes: 60-90 g per hour.
- After hard sessions: about 1 g/kg of carbohydrate plus 0.3 g/kg of protein.
- The logged breakfasts before a 2-hour ride (19.5 g) and a skills day (61 g) show why these targets need to be explicit.
- Low energy availability (REDs) screen with her physician or a sports dietitian. Hashimoto's plus a heavy racing and travel block makes it worth ruling out.
- Daily readiness data: set her Garmin to sync resting HR, HRV and sleep to TrainingPeaks. The TrainingPeaks metrics log is empty for the whole window.
Fix first, this week
These are system and process fixes. Most are for the operator and Coach Luca, not Sidney.
- Restore message delivery to Sidney. Morning plans and weekly check-ins have shown "Delivery pending" since August 9; the only delivery confirmed in the logs is one nutrition reply on August 13. Reply today to her September 22 question with the Roanoke lead-in above.
- Restore Garmin auto-sync to TrainingPeaks, and record each ride on one device only. Five duplicate uploads inflate her load by about 450 TSS: 3889452745, 3889449042, 3908790138, 3910225177 and 3910356382. Once the operator confirms which copy to keep, remove or hide the duplicate in each pair.
- Pair power meters on every CX bike (race and pit bikes) and zero-offset them before each race. Most rides from August 23 to September 14 have no power, so no power-based prescription could be checked.
- Add every event to TrainingPeaks with A/B/C priority. Only Canmore, Rochester, Go Cross and Charm City are there now. Nationals, PanAms, all nine World Cup rounds and Worlds are missing.
- Plan and publish the workouts from September 28 on, following the trainingpeaks-activity-creator skill (structured blocks, %FTP targets, Canadian English,
lucatag). This needs explicit operator approval, becauseathlete/settings.ymlstill names Gunnar Holmgren as the coach managing live TrainingPeaks. There are no Gunnar-authored workouts in this window. - Correct TrainingPeaks thresholds:
- Run threshold pace is 6:13/km and stale; today's easy 4:56/km run scored IF 1.13.
- Review LTHR 188 against race data: her 50-minute race averages of 180-184 suggest 184-186.
- Add current body mass.
- Record race results: placings and gaps for Canmore and Rochester. Confirm whether Canmore ran on September 12 (the only race file) or September 13, and what the September 5-6 race-intensity efforts were.
- Refresh
athlete/rolling-7-day.mdandathlete/rolling-3-week.md, which have been stale since June. The daily plans depend on them, and nothing in them was written after September 13. - Fix a routing bug: the September 23 heartbeat prompt was logged in the daily log as a "Message from Sidney".
Checkpoints
If Roanoke and Charm City come in below these numbers even with the system fixed, the October 5-16 block runs as planned. If bloodwork or daily readiness shows a health signal, the block's intensity is reduced first.
Decisions needed
- Who coaches the race block. Either Gunnar resumes live TrainingPeaks management, or Coach Luca is approved to plan and publish from September 28.
- Race selection (resolved 2026-09-23): the operator decided to race every UCI weekend for points, Major Taylor included. The day-by-day plan in
2026-09-24-to-2026-11-27-race-block-training-plan.mdreplaces the calendar table above. - Europe travel: arrive by November 20-21, and confirm housing, a GF/DF food setup and equipment.
- Bloodwork appointment before October 5.
Data notes and caveats
- Corrected CTL values remove the five duplicate uploads only. HR-based TSS on the rides without power is less reliable for stop-start CX riding. Last season's CTL was not checked for duplicates.
- August 23 to September 21 was uploaded in one batch on September 22. The August 27-31 gap could still contain rides that were never recorded or uploaded; Sidney should confirm.
- The August 10 "Cycling" file (1:27, 594 m climbing, no HR or power) and the manual 2:00 entries on September 15 and 16 have no usable data.
- The July 16-17 short-power baseline was never done as a standalone test, so the August 20 retest is compared with last season's race and test peaks instead.
- Gym and strength completion is unknown: nothing is logged in TrainingPeaks.
- No placings are in the record. Race quality is judged from power and heart rate only.
Appendix: every item on the calendar, August 9 to September 23
"Intensity" shows NP (with power) or HR as average/maximum. "HR-based TSS" means no power was recorded.