{{ greeting }}, {{ firstName }}
{{ dateLabel }} · {{ today?.organization?.name }} · {{ summary }}
Check a member in
Records the visit and checks their membership at the door. Past-due or frozen memberships come back with a warning.
{{ deskMatches.length && deskSearching ? '↑ ↓ to choose · Enter checks in ' + deskMatches[deskActive].name : 'Start typing their first or last name.' }}
{{ isTrainer ? 'My classes' : 'Classes today' }}
{{ today.classes.length }}
{{ bookedToday }} of {{ capacityToday }} spots booked
Check-ins
{{ today.checkins.total }}
{{ today.checkins.expected }} expected from bookings
Revenue today
{{ money(today.revenue.today_cents) }}
{{ money(today.revenue.month_cents) }} this month · {{ money(today.revenue.mrr_cents) }} MRR
PT sessions
{{ today.appointments.length }}
{{ today.week.appointments }} booked this week
My clients
{{ today.clients.length }}
{{ today.week.classes }} classes on your week
Active members
{{ today.members.active }}
+{{ today.members.joined_this_month }} joined this month
{{ isTrainer ? 'Your day' : "Today's timetable" }}
{{ remaining ? remaining + ' still to come' : (timeline.length ? 'All done for today' : 'Nothing scheduled') }}
No classes or sessions today
Anything later this week is listed below.
-
{{ item.start }}
{{ item.end }}
{{ item.title }}
On now Up next Done Full{{ item.detail }}
Later this week · {{ today.week.classes }} classes, {{ today.week.appointments }} PT
-
{{ shortDate(session.date) }}
{{ session.name }}
{{ session.start_time }}
Needs attention
{{ attentionCount ? attentionCount + (attentionCount === 1 ? ' member' : ' members') + ' to follow up with' : 'Nobody needs chasing right now' }}
Failed payments {{ money(today.billing.outstanding_cents) }} owed
None — every membership is paid up.
{{ row.name }}
{{ row.plan }} · past due
At risk of leaving
No one in the high-risk band.
{{ row.name }}
{{ row.reasons[0] || 'Attendance dropping' }}
Your clients
{{ today.clients.length }} assigned for personal training
{{ client.name }}
{{ client.next ? 'Next: ' + shortDate(client.next.date) + ' · ' + client.next.start_time : 'No session booked this week' }}