On-time vs Late vs Overdue (per coach)
Tasks by priority (per coach)
Per-coach summary — click a coach to see their tasks
| Coach | Total | Done | On time | Late | Overdue | Avg time-to-done |
|---|
Check-in rate per coach
Per-coach check-ins — click a row (or any KPI) to drill in
| Coach | Checked in | Missed | Late | Cancelled | Check-in % | Avg sched→in |
|---|
Metrics are coach-attributed from check-in activity. “Avg sched→in” is the average minutes between the scheduled appointment and the actual check-in (best-effort match; —).
At-risk assignments per coach
At-risk follow-up per coach — click a row
| Coach | Assigned | Open | Escalated | Contacted | Avg follow-up |
|---|
Goals updated this period — click a row
| Coach | Goals updated |
|---|
REMS — Bone Density Scan
Post-REMS survey completed by the coach after each scan, capturing NPS + clarity (and comfort) scores. Source: post_rems_survey_responses (the native post-REMS survey form). Data-gap note: the “REMS Tech Post-Survey” widget embedded in the Coach Dashboard is a GHL-hosted survey — its submissions land in GHL and are not yet synced to the Hub, so this count reflects only native-form submissions and will under-report until that sync is built.
REMS surveys per coach — click a row
| Coach | Surveys | Avg NPS | Avg clarity |
|---|
Spectrum — Osteogenic Loading (4 machines)
Per-coach Spectrum sessions logged in the Coach Dashboard (spectrum_session_save). Gym attendance = member check-ins (checkin). Distinct from REMS — a Spectrum session is never counted as a REMS scan.
Spectrum sessions per coach
Spectrum throughput per coach — click a row
| Coach | Sessions | / active day | / active hr |
|---|
Gym attendance per coach — click a row
| Coach | Check-ins | / active day | / active hr |
|---|
LIMFA — Localized Programme
Location-level only — the Hub stores no member→coach ownership for LIMFA, so it cannot be split per coach. See the LIMFA members and LIMFA completion KPIs at the top of this section (click either to drill into the member list, tiers and adherence).
post_rems_survey_responses. Notes, surveys & member touches are coach-attributed from the activity log and scoped to the period selected above (a short period may legitimately show 0). Actions logged without a coach_id appear as “(unattributed)” rather than being hidden. Surveys count only the native post-REMS form; the GHL-hosted “REMS Tech Post-Survey” widget in the Coach Dashboard is not yet synced to the Hub.Member touches per coach
Member touches per coach — click a row
| Coach | Touches | / active day | Active days |
|---|
Session quality (survey-based) — click a row
| Coach | Surveys | Avg NPS | Avg clarity | Low (≤6) |
|---|
| Metric | Team value | Vs target | Target |
|---|
What do these mean? Tap for what every heading measures and how
Everything on this page follows the Period button at the top. The scores — Composite, the three Score columns, Rank, and the Team average, Team median and Top tiles — and the shift numbers — AlgaeCal, Bookings, Spectrum, Check-ins, Stations, Missed and the Missed stations tile — are all worked out over the Period you pick. Two small exceptions, because they are not date ranges: a few Care parts always look back 30 days (contacts and response) or 14 days (attendance), and Training is where you stand today. The trend bars are the one thing that never moves with the Period — they are always the saved daily 7-day scores.
Tiles at the top
- Team average
- The average Composite of everyone in the table.
- Team median
- The middle Composite: line everyone up from highest to lowest and take the one in the middle (with an even number of people, halfway between the middle two). One very high or very low score moves it less than the average. It is the same number as the Composite in the Team median row at the bottom of the table.
- Top
- The person with the highest Composite, and their score.
- Staff scored
- How many people have a row in the table. Everyone on the active staff list gets one.
- Missed stations (team)
- For the whole team in the Period you picked: Spectrum stations the machine recorded for a member that nobody entered numbers for. Named = misses that belong to a person. Unattributed = misses on visits where no coach entered anything and not exactly one person checked the member in, so nobody can fairly be named — they count for the team but never against anyone. The tile also shows the team's % complete against the 98% target.
Scores — over the Period you picked, out of 100
- Composite
- One overall score out of 100: the Sales score counts 40%, the Care score 35% and the Training score 25%. If nobody on the team has any sales credited that week, Sales is left out and Care and Training share its weight; a score someone has no data for is left out for them the same way. The shift numbers to the right are not part of it.
- Sales — Score
- Your AlgaeCal sales measured against the target of $50 a shift — the same target as the AlgaeCal column to the right. Hit $50 a shift and you score 100; hit half of it and you score 50. Everyone can score well at the same time: until 2026-09-16 this was scored against whoever had the best week, so the one person with a sale took 100 and everyone else took 0. Intros booked, intros that showed, new members signed and sales dollars are still shown on the row, but they are not scored — there is no agreed target for them yet, and most are not linked to the person who made them. Bulk AlgaeCal packs and staff-discount purchases are left out.
- Care — Score
- How well you look after members, mixed from up to six parts: your at-risk members from this week who are still members (25%); contacts you made — approved AI-drafted messages, logged phone calls and at-risk members marked contacted — per day worked, compared with the team's best (25%); trial members who became members (20%); Chief-of-Staff tasks finished (15%); how quickly you approve AI-drafted messages — within 2 hours is full marks, 48 hours or more is zero (10%); and your at-risk members who checked in within the last 14 days (5%). A part with no data yet is left out and the others share its weight — the line under the table says which parts are feeding right now.
- Training — Score
- The share of the Bone Academy courses required for your role that you have passed. Coaches need the science, skill-builder and supplements courses; owners, managers, assistant managers and sales staff also need the sales & marketing courses. This is where you stand today, not a date range.
Shift numbers — follow the Period button
- “Per shift”
- The total divided by the days you worked. If you clocked in on Homebase during the Period, that is the days you clocked in. If not, it is the days you did real work in the Coach Dashboard — logging in or only looking at the calendar doesn't count — marked active days*.
- AlgaeCal /shift
- Your AlgaeCal sales dollars divided by your shifts, matched to you by the staff name on the register sale. Target $50 a shift. Bulk packs are listed underneath but not added in, and staff-discount purchases are left out.
- Bookings /shift
- Appointments you booked through the Coach Dashboard calendar, divided by your shifts. Each appointment counts once. Target 6 a shift.
- Spectrum /shift
- Spectrum visits you entered, divided by your shifts. A visit is one member on one day where you entered at least one station; saving the same visit again doesn't add another. Target 9 a shift.
- Check-ins /shift
- How many members you checked in, divided by your shifts. The same member twice in one day counts once. Target 9 a shift.
- Stations
- Of the Spectrum stations the machine recorded on your visits, the share you entered numbers for (shown underneath as entered / expected). A visit is yours if you entered the most stations on it; if nobody entered anything, it belongs to the person who checked the member in that day — but only if exactly one person did. Only a blocking injury on file excuses a blank station: a surgery not yet cleared, or pain 10 out of 10. Lighter injuries still need numbers. Counted from July 1, 2026. Target 98%.
- Missed
- How many stations were left blank on your visits. The small line underneath counts visits where nothing at all was entered.
Rank, trend and the median row
- Rank
- Your place by Composite, #1 = highest, over the Period you picked — change the Period and the ranking is worked out again over that span. People with the same Composite share a rank: it shows as =3 instead of #3, and the next number is skipped (two people at =3, then #5). Where two tied people sit in the table is decided by the higher Care score, and if that is equal too, by name — but the rank they share is the same number. The shift numbers don't affect it.
- 8-week trend
- Despite the name, each bar is one day: your Composite as it stood on each of the last 8 days (each day's score covers the 7 days up to it). Taller is higher, scaled to your own best day in the span.
- Team median (bottom row)
- The middle value in each column, from everyone in the table who has a number there (a dash is left out). Above the median means you're in the top half for that column. Rank and trend have no median.
Colours
- Composite and trend
- Green 70 or more · orange 45 to 69 · red under 45.
- Shift numbers
- Green at or above target · orange at least three-quarters of target · red below that · grey dash = no data.
Not measured yet
- At-risk follow-through (target 80%) is not scored yet: the system doesn't reliably record who actually made each contact, so scoring it would credit whoever clicked the button.
- Bulk AlgaeCal packs are not in the AlgaeCal /shift number and earn no commission. They are listed under your number so the sale isn't hidden.
- Sales credit: most intros and sales aren't linked yet to the person who made them, which is why most Sales scores read 0 — that is missing records, not proof nobody sold.