What to do next
Lifetime value
Clients who cancelled in the last 12 monthsLead sources
Selected period, with sign-ups credited to the paid source firstBark, Thumbtack and Google spend are entered by hand (data/manual/inputs.json). Consults with no matched contact show as "Unattributed". "Showed → sign-up" can pass 100% because some sign-ups never had a consult (walk-ins, referrals).
Salespeople
Starting Point Sessions held in the selected period, by who ran them · click a column to sortNeeds review
Session usage, week by week
Selected period · Monday–Sunday weeksClients who made all their sessions
Attendance, last 6 weeks
Sessions made = sessions booked in Virtuagym minus no-shows trainers posted in Slack. Expected = sessions per week on the client's plan. Paused weeks are known from Oct 26, 2026 on (Virtuagym can't show past pauses).
Cancels by time as a client
InBody progress
Why clients cancel
Selected period, from the cancel logSeasonality
Monthly totals by year. Weeks are counted in the month they start. Before 2025 the data is Webster only.
Membership mix
Grouped by sessions per week only, so every plan name with the same frequency (for example "1 Semi-Private", "1 Semi-Private DNU", "1 SPT") counts together. Clients = everyone on a training plan in the last week of the period, paused clients included. Revenue = paid invoices in the period, matched to the plan the client was on that week. Revenue per client per week = that revenue ÷ the number of client-weeks on that plan in the period, so it reads like a weekly rate. A payment made outside a membership (for example the first week, paid before the membership starts) counts toward the client's nearest training membership. "Non-training revenue" is product sales bought through Virtuagym (drinks, protein, shirts; most are paid in cash or Venmo and don't show here) plus payments from anyone who never had a training membership.
Total clients
End of each weekSign-ups vs cancels
Net weekly growthSessions & bookings
Selected period · a booked session counts as made, minus no-shows posted in SlackTrainers
How full each time slot is
Share of places booked, by weekday and session start time. Brighter = fuller. Hover a cell for the counts.
Website, month by month
Calendar months in the selected period · Google Analytics · traffic is both locations togetherShows every calendar month that overlaps the selected period, with whole-month totals (pick "Last 52 weeks" or "Year to date" for a longer view). Google Analytics has no visit data for Apr–Oct 2025 (tracking gap), so months start again in Nov 2025. Visitors = people who visited that month, each counted once. Visits = sessions (a visit ends after 30 minutes without activity). Avg time on site = engagement time ÷ visits; Google only counts time while the page is open and on screen. Engaged visits = visits that lasted 10+ seconds, saw 2+ pages or included a key action. Form submissions = views of each location's form thank-you page (/webster/successful-form-submission-webster/ and the Pearland one). Channels are Google Analytics' own grouping: Organic Search = Google/Bing without an ad, Direct = typed the address or a bookmark/text link, Organic Social = Facebook/Instagram without an ad. Most Meta ad leads use GoHighLevel forms, not the website, so they don't show here.