Choose Coach to keep coaching
{{ t('billing.hqPlan.coachEndedBody', { date: pgEndedDate }) }}
{{ pgGym && pgGym.owner ? t('billing.hqPlan.gymEnded') : t('billing.hqPlan.gymEndedStaff') }}
{{ pgGym && pgGym.owner ? t('billing.hqPlan.gymEndedBody') : t('billing.hqPlan.gymEndedStaffBody') }}
{{ greeting }}
{{ dateLabel }}
- {{ goal }}
New: a one-minute tour
What Last Soul Ultra can do for you, and a few questions to set it up.
Your Oura recovery
{{ summary ? t('metrics.oura.subtitle', { date: healthDate(summary.date) }) : t('metrics.oura.waiting') }}
{{ summary ? tc('metrics.oura.days', summary.days) : '' }}
Open the Oura app to sync your ring, then use Sync now in your connected services. Your first night will appear here when Oura makes it available.
{{ connectionProblem(connection) }}
{{ error }}
This week
{{ weekDone }}{{ t('home.week.done', { total: weekTotal }) }}
Volume
{{ week ? week.totalDuration : '0h 0m' }}
Done and still planned
Distance
{{ formatNumber(distanceIn(week ? week.totalDistanceKm : 0), { maximumFractionDigits: 1 }) }}{{ distanceUnit() }}
{{ t('home.week.tssHint', { tss: week ? week.totalTss : 0 }) }}
Form
{{ form.tsb }}{{ form.label }}
{{ t('home.week.formHint', { ctl: form.ctl, atl: form.atl }) }}
—
Builds as you log workouts
Loading your training…
{{ workout && workout.sessions && workout.sessions.filter(item => !isMindfulWorkout(item)).length > 1 ? t('home.today.titleMany') : t('home.today.titleOne') }}
{{ !workout ? t('home.today.nothing') : workout.sessions && workout.sessions.filter(item => !isMindfulWorkout(item)).length > 1 ? tc('home.today.inOrder', workout.sessions.filter(item => !isMindfulWorkout(item)).length) : workout.completed ? t('home.today.done') : t('home.today.onPlan') }} · synced from TrainingPeaks
Rest day
Plan a session or sync a device to see it here.
{{ workout.name || workout.title }}
{{ zoneLabel(workout.zone, t) }}
{{ [workout.duration_label || workout.duration, workout.distance ? formatNumber(distanceIn(workout.distance), { maximumFractionDigits: 2 }) + ' ' + distanceUnit() : '', workout.strength ? tc('home.today.sets', workout.strength.sets) + ' · ' + tc('home.today.exercises', workout.strength.exercises) : '', workout.tss ? Number(workout.tss) + ' TSS' : ''].filter(Boolean).join(' · ') }}
From your coach: {{ workout.coach_note }}
{{ completeError }}
{{ fitError }}
Mindful recovery
{{ item.title }}{{ item.summary }}Nutrition
Nutrition
{{ foodError }}
{{ foodSaveError }}
Set your calorie and macro targets to see what is left. Set targets
-
From Apple Health
-
{{ nutritionEntryName(entry) }}
{{ nutritionEntryLine(entry) }}
Nothing logged today.
Your classes
{{ upcomingBookings.length ? t('home.classes.booked', { count: upcomingBookings.length }) : t('home.classes.nothingBooked') }}
{{ booking.session_name }}
{{ prettyDate(booking.session_date) }} · {{ prettyTime(booking.start_time) }}
Open spots
{{ session.name }}
{{ prettyDate(session.session_date) }} · {{ prettyTime(session.start_time) }}
No classes on the timetable for the next two weeks.
Your athletes are in the coach workspace
This page shows your own training and classes. Add an athlete profile in Settings if you train here too.
Welcome to Last Soul Ultra
Join a gym or connect with a coach and your classes and training land here.
Add event
{{ newEventNameError }}
{{ newEventDateError }}
{{ eventError }}
Add goal
{{ newGoalTextError }}
{{ goalError }}
{{ coachNotice }}