Platform / Admin & staff

Built for whoever’s behind the desk today.

Owners get the portfolio view. Managers get their site. Front desk gets a queue, not a spreadsheet. Everyone logs into the same system, scoped to their role.

Last 30 days

Portfolio overview

Updated 14:32 · live
Active members
3,482
+118 this month
On the floor now
412 / 690
Revenue today
€8,410
+6.2% vs last Wed
Renewal rate
91.4%
Target 89%
Overdue payments
€4,268
14 accounts · needs action
Revenue by stream
30d · €412k
Membership dues€291k
Personal training€72k
POS & retail€31k
Day passes€18k
Average revenue / member€118.32
Peak attendance
QuietFull
Busiest
Wed 18:00 · Central
Capacity breaches
3 this month
Off-peak headroom
41%
Joins vs cancellations
Joins Churn
AprMayJunJulAugSep
Needs your attention
Open queue
14 failed direct debits
Retry 2 of 3 scheduled tonight
€4,268
6 unsigned waivers
Access blocked at the gate
Zuid, Central
Central 92% at 18:00
Consider opening HIIT overflow
Today
4 pause requests this week
3 auto-approved under 14 days · 1 needs review
Review
Noord fit-out on schedule
218 founding memberships pre-sold
14 Sept
MRR
+4.1%
€291,480
Last 14 months · €412k total 30d revenue
By stream
Membership dues€291k
Personal training€72k
POS & retail€31k
Day passes€18k
Revenue / member€118.32
Active members
3,482
+118 this month
Renewal rate
91.4%
Target 89%
Past due
1
Accounts
Frozen
1
Accounts
Admin — Portfolio dashboard
Role-based permissions

Owners, branch managers, coaches and front desk each see exactly what their job needs — nothing more, nothing hidden.

Every site, one login

Switch between locations or view the whole portfolio at once. No separate account per club, no juggling tabs.

A day to full speed

The kiosk and front-desk flows are built to be learned in one shift — median onboarding to a solo shift is one day.

Needs your attention, not a dashboard to hunt through

Failed payments, unsigned waivers, capacity breaches and pause requests surface as one prioritized queue.

Log in as staff and see your role.

Same demo, same data — just scoped differently.

Try demo