Hybrid endurance programming

Personalized endurance training that fits the rest of your life

Connect Strava, set your races and training constraints, and get a daily session built around fitness, fatigue, soreness, and the 80/20 endurance model.

View demo

Invite-only service. Accepted athletes start with a 14-day trial.

training.cjarhodes.com/dashboard

Good morning, Alex

Saturday, March 22 · Build phase

A Race · 47 days

FITNESS

62

CTL

FATIGUE

71

ATL

FORM

-9

TSB

PHASE

Build

Training

Soreness

Quadsmild

60% recovered

Calvesmild

85% recovered

Bike · Saturday~148 TSS

Long Aerobic Ride — Zone 2 with cadence drills

What this trains

Aerobic base and durability from a long Zone 2 ride. Cadence drills keep it efficient without spending this week's hard efforts.
↓ Download .fit✓ Log completion
Strength · SaturdayStrength

Saturday Accessory — Upper Pull Focus

• Strict pull-up: 4×5 @ BW — 3-sec down

• Single-arm DB row: 3×10 @ 28kg

• Face pulls: 3×15 @ light cable

Why today

Upper posterior balance. Low CNS cost on a long ride day.

Training note

Saturday long ride per weekly structure. TSB at -9 — healthy for build phase. CTL ramp rate 1.4 points/week. 47 days to A race — no peak work yet. Upper accessory after ride keeps lower body fresh.

How it works

01

Connects to Strava

Syncs your activities and calculates fitness, fatigue, and form scores automatically — no manual logging.

02

Prescribes daily training

Workouts adapt to your training load, soreness, available time, and race goals using polarized methodology.

03

Exports to Garmin

Endurance sessions download as .fit files to load onto your Garmin, with targets set from your thresholds.

Agent-ready training layer

Built for the app, your devices, and external agents

The training system is available through a headless API, not just the web interface. External agents can read training context, submit confirmed updates, move planner sessions, log supplementary sessions, and refresh connected data while the app remains the source of truth.

Scoped agent tokens

Grant read or write access by capability, from today's workout to planner moves and confirmed session imports.

Structured training context

Expose readiness, CTL, ATL, TSB, recent activity, soreness, races, availability, and upcoming sessions as JSON.

Confirmed actions only

Ambiguous writes return confirmation_required so an agent has to ask before changing the plan.

Sample output

What gets prescribed

Swim · TuesdayTSS 58

Aerobic threshold + catch drill set

What this trains

High-elbow catch mechanics at race pace. Builds the neuromuscular pattern for early vertical forearm before fatigue accumulates in the second half of a 70.3 swim.

Strength · TuesdayStrength focus

Back squat 5×3 @ 80% + accessory

Warm-up: 3 sets × 5 @ 60%, 70%

Working sets: 5×3 @ 96kg (80% of 120kg 3RM)

Accessory: 3×10 Bulgarian split squat, 3×12 GHD sit-up

Why today

Quads recovered, TSB neutral. Strength day before tomorrow's rest. Loading from tested 3RM — not 1RM.

The methodology

Polarized training, with classes and strength counted

Most plans drift into moderate-intensity work: too hard to recover from, not hard enough to adapt. Here the hard efforts come from one weekly budget, set by your training phase and shared between endurance and hard classes. A tough class spends the same budget as a threshold run, so the rest of your endurance work stays easy, in Zone 1–2.

Every workout is prescribed from your CTL, ATL, TSB, race proximity, and today's soreness — not pulled from a static plan. The programming changes when your data changes.

See it in the demo →

Start training from your data

Apply for training access

For athletes who want endurance structure that can accommodate strength work, studio classes, mobility, and recovery. Connect your history, define your goals, and get programming that adjusts as your fitness changes.

See the product

Works with

StravaGarmin .fit filesAgent APIOpen-Meteo weatherRace calendarWearable recovery

training.cjarhodes.com

Privacy Policy