Ritual Studio · Retention ideas

Daniel's nine retention ideas, in five minutes

Daniel sent nine ideas for keeping members coming back. The short answer: most of them do not need to be built as automations. Four are a number staff can see and act on, one is a real feature worth building, one should wait for real data, and three are programs you design first. The full research for each idea is further down the page.

Researched September 23, 2026 · checked against the production app and how leading studios and the research handle each idea

Our take on each

Not everything needs building. Where a number and a person acting on it will do, we say so.
IdeaOur takeWhat it meansYou decide
1 Set-and-forget weekly bookingBuild itThe one real feature here. Members pick a weekly time and the app keeps booking it. About 2 to 3 weeks.Hold next-cycle seats, or rebook after each renewal is paid?
2 Check-in after 10 quiet daysTrack itA daily list of members who have gone quiet. Staff reach out personally, which is what the research says works best.Who owns the list and replies the same day?
3 Unused-session remindersTrack itA list of members with sessions about to expire. The reminders the app already sends cover the rest.Membership sessions too, or packs only?
4 Waitlist with text-to-claimLaterWait until real bookings show how often sessions fill. If built, it is a tap-to-claim link, not a text reply.None today.
5 Visit milestonesTrack itStaff see who reached 10, 25, 50 or 100 visits and celebrate in person, with rewards you choose.What each milestone gets, and the 100-visit party.
6 Sunday Ritual ResetYour programYou design the Sunday experience. The app runs it as its own session time.What it is, the times, and whether it uses a session.
7 Ritual Social ClubYour programRun the first few by hand (RSVP by email). Build events into the app once the format settles.Format, how often, and guest policy.
8 Breathing workshops and classesYour programStart with one class as its own session time. Classes as a full feature are the biggest build (3 to 5 weeks).Included or paid, who teaches, and a breathwork waiver.
9 1,000 visits togetherTrack itOne number on the staff screen. Share it with members when it is worth sharing.Do guest visits count?

What we recommend

  1. One small build first: count every visit at check-in and give staff one daily list (members gone quiet, sessions about to expire, milestones reached, the running total). That covers ideas 2, 3, 5 and 9 as numbers you act on, not automations. About a week.
  2. Then the weekly ritual (idea 1), about 2 to 3 weeks, once you settle the paid-cycle question today.
  3. The waitlist waits for real booking data. Sunday Reset, Social Club and classes wait for your program plans, and the first ones can run by hand.

How messages work

The app controls every message. Emails go out from the app, and texts go out through GoHighLevel, only because the phone number and the texting cost live there. Email replies come back to us. Text replies land in GoHighLevel and do not show up in the app yet, and there is no plan for that yet. So nothing we build should depend on a member texting back; we use tap links instead.

Decide today

  1. Weekly ritual: should the app hold next-cycle seats (released if the renewal fails), or only rebook after each renewal is paid?
  2. Who owns the daily staff list, and how fast they reach out.
  3. Milestone rewards at 10, 25, 50 and 100 visits, and what the 100-visit party includes.
  4. Can we count on the front desk checking in every member at every visit? Every number above depends on it.
  5. Sunday Reset, Social Club and classes: included in membership, or separate?
Feedbackon this page

The detail, idea by idea

The full research behind the summary: what the app does today, what is missing, how other studios do it, how we would build it, and the sources. Open any idea.
1 Set-and-forget weekly booking Build itMedium, 2 to 3 weeksRR-0193
1

Set-and-forget weekly booking

New buildMedium, 2 to 3 weeksRR-0193
During onboarding, members choose one, two or three weekly time slots, and the system automatically keeps their reservations four weeks ahead.

What the app already does

  • Members can book, see upcoming and past visits, and cancel up to 12 hours before. The app enforces the 12 hour rule.
  • Reminders already go out on their own: an email 24 hours before and a text 2 hours before, with quiet hours for texts. Texts only reach members with a verified phone number, and none are verified yet.
  • Each booking takes a session from the member's allowance when it is made and gives it back on a free cancel.
  • Members can only book inside their current paid 28 day cycle, and pack holders up to 90 days ahead, as you decided.
  • Unlimited's limit of 15 future bookings is enforced. Early-access booking windows for Unlimited are built but not switched on.
  • Two people cannot take the last seat at the same time. The app locks the seat while it books.
  • Staff can book for a member from the admin calendar, under the same rules.
  • 'Book Again' on a past visit reopens booking with the same session type and guest details, but the member picks the date and time again. It still books one visit at a time.

What is missing

  • No way to save a weekly slot. Every visit is booked by hand, one at a time.
  • Nothing books the next cycle when a membership renews. Automatic renewals are not running yet either: the nightly renewal exists in the app but nothing starts it, and it has never run.
  • No skip-this-week, change time, pause or end controls for a weekly slot.
  • The member Reschedule button has a bug: it books the new time but does not cancel the old one. 'Change my weekly time' depends on fixing it.
  • No limit on how many seats in a session standing bookings can take.

How leading studios do it

Mindbody and Glofox both let staff set up a recurring booking for a member (Glofox does not offer it to members themselves) and book only the dates that have room. Glofox holds spots for dates past the booking window and turns them into real bookings when the date opens, releasing them automatically if payment fails or the account is paused. In a Wharton study of more than 60,000 24 Hour Fitness members, even the simplest program had people plan workouts ahead and get a text 30 minutes before each one, and 45% of the 53 versions tested raised weekly visits by 9% to 27%.

How we would build it

  1. Fix the Reschedule button so moving a booking cancels the old one and books the new one in a single step.
  2. Add a 'weekly ritual' to a member's account: day, time and start date. Members pick it on the confirm screen ('Make this my weekly ritual'), and staff can set one up for a member.
  3. When a weekly ritual is saved, the app books every matching day left in the current paid cycle, each through the normal booking checks, and sends one summary instead of a stack of confirmations. If a day is full, it tells the member and offers the nearest open time.
  4. At each renewal, the app books the new cycle automatically. A daily check makes sure this happens, since automatic renewals are not switched on yet.
  5. Give members skip-this-week, change time and end controls, and let staff pause and restart. A pause releases the held seats.
  6. Test it end to end in the test version of the app, then switch it on for founding members first.

Where we would start

  • Weekly slots by plan: Core 1, Essential 2, Complete 3, Unlimited up to 3.
  • Weekly slots use the allowance first, and extra visits are booked by hand. A 28 day cycle has exactly 4 of each weekday, so one weekly slot uses all 4 of Core's sessions and half of Essential's.
  • Standing bookings take at most half the seats in any session, so drop-ins and pack holders can still get in. This is a judgment call, not an industry number.
  • A reminder 24 hours before each visit with a one-tap skip, which leaves 12 hours to release the seat before the free-cancel cutoff.
  • A second no-show inside 60 days pauses the weekly slot and flags it for staff, on top of the existing $40 rule.
  • Pauses (staff only) release every held seat in the pause window and restore the slot on return.
  • Standing bookings count toward Unlimited's 15 future bookings.
  • At launch, set up founding members' weekly slots in the order they bought their membership.

Your decisions

  • 'Four weeks ahead' versus 'only book inside the paid cycle'. Option A: book each new cycle only after the renewal goes through. Your rule stays as is, but someone else can take a member's first day or two after renewal. Option B: hold next-cycle seats and turn them into bookings once the renewal is paid, releasing them if payment fails. This is what Glofox does, but it bends your rule and adds about a week of work.
  • How many seats per session standing bookings may take.
  • Whether Unlimited members get up to 3 weekly slots, or more.
  • Whether founding members get first pick at launch, and in what order.
  • What happens to future standing bookings when a member downgrades, falls behind on payment, or is frozen.

Watch out for

  • Your paid-cycle rule: a member on day 20 of a cycle can only book about a week ahead today. 'Four weeks ahead' needs option B, or it becomes 'rebooked at every renewal'.
  • Renewals are not automatic yet, so the weekly booking needs its own daily check or it would never fire. Card payments are not live yet either, so option B can only be fully tested once they are.
  • Fairness: members whose renewal lands earlier grab seats first. A cap per session protects drop-ins and pack holders.
  • Allowance surprise: a Core member's one weekly slot uses all 4 sessions, leaving nothing for an extra visit.
  • Easy-to-forget bookings mean more no-shows under the 12 hour rule and the $40 fee. The skip reminder has to arrive before the 12 hour cutoff.
  • Blackouts added after bookings are made do not cancel those bookings today.
  • Seats are counted per start time (9 per start, a new start every 30 minutes, 90 minute sessions), not people in the room. What 9 really means changes the fairness math.
  • No studio software publishes proof that recurring bookings improve retention. The evidence is indirect, so prove it with founding members first.
Feedbackon idea 1
2 Check-in after 10 quiet days Track itSmall to medium, 1 to 2 weeksRR-0194
2

Check-in after 10 quiet days

Building blocks existSmall to medium, 1 to 2 weeksRR-0194
Send a personal check-in when an active member hasn't attended in 10 days and has no upcoming reservation, and offer help finding a time.

What the app already does

  • Every booking records when staff check the member in, check them out, or mark a no-show.
  • The app already runs a behind-the-scenes sender all day that sends emails and texts, respecting each member's channel choices.
  • Staff tasks exist, and the app already creates them automatically in several places (low stock, the Those Who Serve welcome gift, approved time off, maintenance), so it can do the same for check-ins.
  • The customer profile has last visit fields and a 'high churn risk' flag.
  • Texts go out through GoHighLevel, which also handles STOP replies.

What is missing

  • The last visit and total visits fields are never filled in, so the churn flag never fires and the counts always read zero.
  • The Automations screen offers a 'No visit in 30 days' trigger, but nothing runs it and it sends nothing. Campaign 'send' marks a campaign as sent without delivering it.
  • No daily check for members who have gone quiet.
  • Replies to texts land in GoHighLevel, not in the app.
  • Only staff can check members in. There is no self check-in.
  • Member emails have no unsubscribe link, and members have no marketing opt-in to set: the profile only has switches for email notifications and SMS reminders.

How leading studios do it

The two platforms we checked send a late, generic 'we miss you' email: Xplor Growth at 30 days since the last visit, Mindbody's playbook at 45. The research points earlier and more personal. In a study of 5,209 Lisbon gym members, days without attending was the strongest predictor of quitting, and in a 10,000-member UK study, a staff conversation that led to a return visit within 7 days cut next-month cancellation risk by 86%.

How we would build it

  1. Fill in each member's last visit and visit count every time staff check them in, and backfill from past bookings. This is shared with ideas 5 and 9.
  2. Add a daily morning check that finds active, unpaused members with nothing booked whose last visit has passed their threshold.
  3. Start with a staff task: the app adds something like 'Check in with Sarah, last visit 11 days ago, usually Thursdays 6pm' to a Check-ins list, and staff text her personally from GoHighLevel, where replies already arrive.
  4. Then add an optional automatic text signed by a named staff member, with 2 or 3 open times and one-tap booking. Staff can switch it on or off and edit the words.
  5. Stop the moment the member books. Send at most one follow-up 3 days later, then leave it with staff.
  6. Track how many members book within 7 days of a check-in, so the thresholds can be tuned once there is real data.

Where we would start

  • Threshold: twice the member's usual gap between visits, or a floor by plan, whichever is longer. Core 10 days (Daniel's number, about one missed week), Essential 7, Complete 6, Unlimited 6, and never more than 14.
  • Members with fewer than 3 visits use the plan floor. New members are the most at risk.
  • Also trigger after a no-show with no rebooking within 48 hours, so one miss doesn't become a streak.
  • One check-in per quiet spell. It resets after the next visit.
  • Send between 9am and 7pm only.
  • Skip paused members, pending cancellations, anyone with a future booking, failed payments (those go to billing), text opt-outs, and anyone who got another retention message in the last 7 days.

Your decisions

  • Staff task first, or an automatic text from day one?
  • Who owns the Check-ins list, and how fast replies go out. We suggest the same day during open hours.
  • The thresholds per plan, starting from Daniel's 10 days for Core.
  • Is a check-in a service message or marketing? That decides whether members can opt out and what it may say.
  • Whether to offer a small thank-you for coming back after a miss. The best program in the Wharton study did this and visits rose 27%.

Watch out for

  • Everything depends on staff checking members in. A missed check-in makes a regular look quiet, and they get a 'we miss you' they don't deserve.
  • The 10 day number is a guess until there is attendance data. Nobody has visited yet.
  • Text replies stay in GoHighLevel, so the conversation splits across two places. The staff task approach keeps that simple.
  • A text that reads like marketing needs consent and an easy opt-out. GoHighLevel handles STOP, but emails from the app have no unsubscribe link yet.
  • The Automations screen looks like it can already do this. It can't, and staff could set one up that never sends.
  • Paused and frozen members, and anyone with a booking, must be left out or it will feel like spam.
  • Size: about a week as a staff task, about two weeks with the automatic text.
Feedbackon idea 2
3 Unused-session reminders Track itSmall, about a weekRR-0195
3

Unused-session reminders

Building blocks existSmall, about a weekRR-0195
Notify members when they have remaining, unbooked sessions approaching expiration, with their balance, the expiration date and a direct way to book.

What the app already does

  • Every balance can carry an end date: drop-ins expire after 3 months, packs after 12, membership sessions at the end of the cycle, and loyalty reward sessions after 90 or 120 days. Referral reward sessions and the Those Who Serve welcome pass do not expire under the current rules.
  • A session comes off the balance when it is booked and goes back on a free cancel, so the balance already means 'unbooked'. Sessions already reserved are accounted for.
  • The member wallet shows 'Next session expires' for bought drop-ins and packs, and the next billing date for membership sessions. Either way the member only sees it if they open the wallet.
  • Email and text delivery, with each member's channel choices, already works.
  • Membership sessions end at the cycle end and do not roll over, as decided.

What is missing

  • No reminder before sessions expire. The app has no message for it.
  • Staff have no view of members with sessions about to expire.
  • When sessions expire, nothing records it, so 'what went unused' can't be reported later.

How leading studios do it

Mindbody sends a 'Time Running Out' email up to three times (for example 7, 3 and 1 days before), by email only, and skips auto-renewing members, so a normal member is never warned. Bathhouse in New York runs the same no-rollover model with no documented reminder, while Othership avoids the problem by letting credits roll over. In a pharmacy study of 689,693 people, the best reminder said the shot was 'waiting for you' and came as two texts 3 days apart.

How we would build it

  1. Add a daily check that looks at each member's unbooked sessions and when they expire.
  2. Send a reminder with the balance, the exact deadline and 3 open times near the member's usual slot, each one a one-tap booking.
  3. Never send when nothing can be booked before the deadline, and skip Unlimited.
  4. Let staff switch the reminder on or off and edit the words, like the existing reminders.
  5. Record expired sessions so staff can see what went unused.
  6. Optional: a weekly staff list of members with sessions about to expire.

Where we would start

  • Membership cycle: a pace check on day 14 of 28 if half or more are still unbooked, then 10 days before the end, then 4 days before, then a last nudge 48 hours before, only if open times exist.
  • Packs and reward sessions follow the same timing, keyed to their own expiry date.
  • In-app message and email for the first three. A text only for the last nudge, inside the shared limit of one retention text per member every 7 days.
  • Wording like 'You have 2 sessions waiting for you before Tuesday, 11:59pm', always in studio time.
  • Skip Unlimited and anyone whose sessions are all booked, including by a weekly ritual.

Your decisions

  • Include membership sessions, or packs and reward sessions only? Nudging monthly members could feel like pressure, so the tone matters.
  • How many reminders per cycle. We suggest up to four, stopping as soon as the sessions are booked.
  • Whether the last-chance nudge may go by text.

Watch out for

  • Your paid-cycle rule means booking links can only show times inside the current cycle. That's right, but the last reminder has to leave enough open times to be useful.
  • Nobody holds sessions yet, so this can't be proven until founding members and pack buyers start booking.
  • Deadlines must use studio time (Pacific), or a reminder could name the wrong day.
  • Some packs can be set to never expire, so the check must use each balance's own expiry date, not the usual defaults.
  • Frequent nudges to members who can't make it could feel like 'use it or lose it' pressure.
Feedbackon idea 3
4 Waitlist with text-to-claim LaterMedium, 2 to 3 weeksRR-0196
4

Waitlist with text-to-claim

New buildMedium, 2 to 3 weeksRR-0196
When a session is full, members can join a waitlist, and if a spot opens they get a text inviting them to claim it, followed by a booking confirmation.

What the app already does

  • The booking screen already labels full times 'Full'.
  • The app already stops two people from taking the same last seat. It locks the seat and re-checks room at the moment of booking.
  • It can already check whether a member is allowed to book a time (paid cycle, allowance, Unlimited limit) without booking it.
  • Texts go out through GoHighLevel, the app already puts links in texts (guest invites), and it has a claim-style page (gift claims).
  • The only waitlist in the app today is the website's pre-launch interest list, which is a different thing.

What is missing

  • No session waitlist: nothing to join, no list order, no offers.
  • Nothing notices when a seat frees up after a cancel.
  • No way to receive a 'YES' reply by text. Replies go to GoHighLevel, so for now claiming has to be a tap-to-claim link.
  • Staff can't see how many people are waiting for a session.
  • Times that haven't opened for booking yet also show 'Full', which would confuse a waitlist.

How leading studios do it

Studios use three patterns: automatic promotion in the order people joined (Mindbody, Glofox, Arketa), one person at a time with a short window to claim (Momence gives the first person 10 minutes before moving on), and first to claim wins (Mindbody's 'First to Claim', Mariana Tek). Several mix them, filling spots automatically until a cutoff such as 24 hours before, then texting everyone until booking closes. No one has published which approach fills more seats.

How we would build it

  1. Add a 'Join waitlist' button on full times, and a 'Waitlisted' section in My Schedule with a Leave button. Only allow it when a time is truly full, not just unopened.
  2. When a seat frees up, check who on the list is still allowed to book, in order.
  3. Text and email them a one-time claim link. The claim goes through the normal booking, so only one person can get the seat, and everyone else hears 'just taken, you're still on the list'.
  4. Stop offers 60 minutes before the start. After that the seat is open to everyone.
  5. Show staff a waitlist count per session and an 'offer to next' button.
  6. Later, if needed: hold the seat for one person with a time limit, and accept 'YES' replies by text.

Where we would start

  • Order: first in, first out.
  • To start: text and email the next 3 people at once. The first to tap and confirm gets the seat.
  • Later, for seats that open well ahead: one person at a time, with 30 minutes to claim if the session is more than 24 hours away and 10 minutes if it is 3 to 24 hours away.
  • Offers close 60 minutes before the start.
  • Texts only between 8am and 9pm, and email always goes too.
  • Up to 3 waitlists per member at once. A member leaves a waitlist automatically if they book another session at that time.
  • Joining holds no session. Claiming uses one, like any booking.
  • If the claim falls inside 12 hours of the start, the text says it can't be cancelled for free.

Your decisions

  • First come first served, or Unlimited first, since that plan already sells priority?
  • First to tap wins, or one person at a time with a hold? One at a time is fairer but a bigger build.
  • Can a waitlist text go out during quiet hours for an early morning session? We suggest no.
  • If a member has no sessions left, skip them or send a drop-in link?

Watch out for

  • Few seats will free up. Members can't cancel inside 12 hours and no-shows free nothing, so most openings come more than 12 hours out or from staff cancels. Worth checking how often sessions actually fill before building.
  • Reach: texts need a verified phone, and none are verified yet. Quiet hours hold texts from 9pm to 7am, so a seat freed at night for an 8am session may reach nobody.
  • Claiming close to the start puts the member under the no-show rule ($40 on a second no-show in 60 days). The claim screen must say so.
  • Seats are counted per start time. A seat freed at 8:00 does nothing for someone waiting at 8:30.
  • Keep it separate from the website interest list in name, data and consent. These are booking messages, not marketing.
  • A member's situation can change between joining and claiming (out of sessions, cycle ended, payment failed). The app re-checks at claim time.
Feedbackon idea 4
5 Visit milestones Track itMedium, about 2 weeksRR-0197
5

Visit milestones

Building blocks existMedium, about 2 weeksRR-0197
Celebrate milestones such as 10, 25, 50 and 100 attended visits with a personal acknowledgment and selected rewards. 100 visits = private group session party.

What the app already does

  • Each visit is recorded when staff check a member in, so visits can be counted.
  • The app already gives out referral rewards once and only once. The same approach works for visit milestones.
  • Reward sessions can come from redeeming a loyalty reward or from referrals, and staff tasks can be created automatically. Staff have no way yet to hand a member a free session directly.
  • Members can switch email notifications and SMS reminders on or off in their profile. There is no marketing choice for them to set yet.

What is missing

  • The visit count in the customer profile is never updated, so it always reads 0.
  • No milestone alerts, messages or staff tasks.
  • No setting for members to say whether they want public recognition. Photo release consent exists only as a label, not per member.
  • The 'Celebrate' buttons in the customer profile don't do anything yet.
  • Loyalty points come from paid purchases (10 per $1, 15 per $1 for Those Who Serve) and from staff adjustments. Nothing awards points for visits, so the help page line about points per visit and milestone bonuses is not true yet.
  • The 3 loyalty rewards set up so far are all switched off.

How leading studios do it

Othership front-loads its gifts on early visits (incense on the first, sauna salt on the third, an oil roller on the fifth, a retail discount on the seventh, a gua sha and an invite to the members' chat on the eleventh), collected at the front desk. Mindbody recommends a personal milestone message with a real reward, such as a free class. Research on coffee-card rewards found people visit more often the closer they get to a reward, and a card that starts with 2 bonus stamps gets finished faster.

How we would build it

  1. Count visits from check-ins (the same fix as ideas 2 and 9) and backfill quietly, with no messages for old milestones.
  2. On each check-in, check whether the member just reached a milestone, and record it once so it can never fire twice.
  3. Send the member a personal note in the app and by email, and create a staff task such as 'Maya hits 25 today' for a handwritten card or a word at the desk.
  4. Give rewards through the existing reward system, set by you in the business rules, so you stay in control of what is given.
  5. Show members how close they are ('3 visits to your next milestone') on their home screen.
  6. Later: a recognition opt-in in the member profile, off by default, showing first name and last initial only, with an easy way to turn it off.

Where we would start

  • Milestones at 10, 25, 50 and 100 attended visits. No-shows and cancels don't count.
  • Consider an early milestone at visit 5 too. New members are the most at risk, and Othership puts most of its gifts in the first visits.
  • Starting rewards to react to: 10 visits, a personal note and a small gift at the desk. 25, a reward session. 50, a retail item or reward session.
  • 100 visits: the private group session party Daniel described.
  • Private by default. Public recognition only for members who opt in.
  • A staff task on the day, so someone also says it in person.

Your decisions

  • The reward at each step, and what the 100-visit party includes (how many guests, which time, anything to eat or drink).
  • Whether to add an early milestone for new members.
  • Where public recognition would appear (a board in the studio, social posts, the app) and the consent wording.
  • Whether guests' visits count toward anything.

Watch out for

  • Visits to a recovery studio can be sensitive. Keep it private by default, opt-in only and easy to take back. There is no per-member consent record today.
  • Rewards should go through your business rules, not around them.
  • Missed check-ins mean missed milestones. Front desk routine matters.
  • The help page promise about points per visit should be corrected either way.
  • The backfill must not send a burst of old milestone messages.
  • The 100-visit party is a group booking. It needs capacity and a session type set aside, which depends on the session picker from idea 6.
  • Public recognition adds about another week on top.
Feedbackon idea 5
6 Sunday Ritual Reset Your programSmall, about a weekRR-0198
6

Sunday Ritual Reset

Your program, our systemSmall, about a weekRR-0198
Establish a consistent Sunday experience that gives members a reason to make Ritual part of their weekly routine.

What the app already does

  • Staff can already create a second session type in settings, with its own capacity, length, days and time windows. Sunday-only times are possible.
  • Booking, allowances, confirmations and reminders work for any session type, not only contrast therapy.
  • A booking would use a normal membership session today, Unlimited included.
  • Early-access windows for Unlimited are built and can be set per session type.
  • The member blog and GoHighLevel can promote it now.

What is missing

  • The member booking screen and admin calendar only show Contrast Therapy. There is no way to pick another session type.
  • Safety gap: a new session type can be booked the moment it is saved, even if it is marked as not ready.
  • Contrast and the Reset don't share seats. If they use the same sauna and plunge, contrast's Sunday hours have to be removed by hand to avoid double booking.
  • No separate price for a special session. It always uses a normal session.
  • Campaigns and automations don't deliver yet: sending only marks them sent. The one in-app channel that works is the announcement banner at the top of the member web app, which is switched off today and hidden in the phone app.

How leading studios do it

Saunaday runs a sauna-master-led Aufguss Ritual on a fixed weekly schedule that includes Sunday afternoons, plus a 75 minute guided contrast practice that members book with one membership visit (others pay $40, or $225 for an 8 week pass). Othership gives each guided class a theme, such as energy, relaxation or connection, and guests gather over tea before it starts.

How we would build it

  1. Close the safety gap so unfinished session types can't be booked.
  2. Add a session picker to the member booking screen and the admin calendar, with Contrast Therapy as the default.
  3. Set up 'Sunday Ritual Reset' as its own session type once you choose the times and capacity, and take those hours off regular contrast if it uses the same space.
  4. Optional: open it to Unlimited members first with an early-access window.
  5. Promote it through GoHighLevel and the member blog now, and through the app once member messages can go out.

Where we would start

  • One or two fixed Sunday times, the same every week, so it becomes a habit.
  • Included in membership: it uses one normal session.
  • A host opens with a short welcome and a theme for the week.
  • The same 12 hour cancel and no-show rules as any session.

Your decisions

  • What the experience is, and what makes it different from a normal session.
  • Times, capacity and length.
  • Included (uses a session) or extra cost? A separate price needs more work first.
  • Does it replace regular contrast on Sunday mornings, or run alongside in another space?
  • How often, and where, it is promoted.

Watch out for

  • Sessions are shared: a Core member spends one of their 4 sessions on the Reset. Is that intended?
  • The same space can be double booked if contrast hours aren't adjusted.
  • Unlimited's 15 future bookings count Reset bookings too.
  • Some wording is written for contrast therapy only (the waiver, the loyalty reward for contrast sessions, the plan descriptions) and needs a look.
  • Booking reports will shift once there are two session types.
  • Still marked 'needs information' in the Request Center.
Feedbackon idea 6
7 Ritual Social Club Your programMedium, 2 to 3 weeksRR-0199
7

Ritual Social Club

Your program, our systemMedium, 2 to 3 weeksRR-0199
Create recurring opportunities for members to meet, connect and develop friendships, with a host who welcomes people and makes introductions.

What the app already does

  • A booking can already act as an RSVP, with a capacity limit, reminders and cancel notices.
  • Members can bring guests: invite by email, a guest waiver and guest reminders. Guest passes come with Complete (1 per cycle) and Unlimited (2 per cycle). Otherwise a guest pays the $60 drop-in.
  • Session types repeat by weekday and time window. There is no single-date setting, so staff would switch a type on for a weekday and off again afterwards.
  • Members are added to GoHighLevel when their account is activated, so invites can go out from there. That link is best effort, so it should be checked for each member first.

What is missing

  • No events: no one-off dates, titles, descriptions or hosts.
  • No members-only setting. Anyone can join by paying the drop-in.
  • A free social event would still use up a membership session, or charge a non-member $60.
  • The booking screen allows only 1 guest, although the app allows up to 4 behind the scenes.
  • No attendee list for the host, and no consent for showing members to each other.
  • Guest bookings have never been used for real, so they need a full test first.

How leading studios do it

Othership runs an Evening Social, a two-hour sober-curious gathering meant to replace a night out, has guests mingle over tea before classes, and invites members to its members' chat at their eleventh visit. In a 10,000-member UK study, members spoken to by staff on every visit were over 5 times more likely to still be members a year later than those never spoken to. A 1996 review of exercise studies found that class leaders, fellow exercisers and group bonds generally have a small to moderate positive effect on sticking with it, and a group's shared commitment to the activity had a moderate to large effect.

How we would build it

  1. Build the session picker first (idea 6), so an event can appear in booking.
  2. For the very first event: a temporary session type opened for one date by hand and promoted through GoHighLevel. It works, but it can't be members-only and it uses a session.
  3. The proper version: a small Events feature. Each event has a date, time, capacity, host, members-only setting, guest limit, and 'included or ticketed'.
  4. An Events list in the member app with an RSVP button, and a staff roster with check-in.
  5. An opt-in for being introduced to other members before any names are shared.

Where we would start

  • Monthly to start, on the same evening each month.
  • Members only, with up to 1 guest each.
  • Free for members, without using a session.
  • RSVP required, with a cap.
  • A named host at the door who greets people by name and introduces every first-timer to at least one person.
  • Nobody's name is shown to other members unless they opt in.

Your decisions

  • The format, and how often.
  • Members only, or guests welcome, and at what price?
  • Free, or does it use a session?
  • Who hosts.
  • What members agree to share with each other (names, photos).

Watch out for

  • Social events would fall under the 12 hour cancel rule and the $40 no-show fee unless you make events different.
  • The waiver is written for contrast therapy. A social event in the space may need its own wording.
  • Introductions mean showing members to each other, which needs consent first.
  • Opening a session by hand for each date is easy to forget, and a forgotten window stays bookable.
  • Still marked 'needs information' in the Request Center: cadence, access, guest policy and host aren't decided.
Feedbackon idea 7
8 Breathing workshops and classes Your programLarge, 3 to 5 weeksRR-0200
8

Breathing workshops and classes

Your program, our systemLarge, 3 to 5 weeksRR-0200
Offer recurring guided experiences that help members feel confident, learn something useful and connect, with breathing workshops separate from immersion.

What the app already does

  • A class can be set up as its own session type with its own capacity and length, and it won't take seats from contrast therapy.
  • Booking handles check-in, no-shows, guests and reminders for any session type.
  • Staff profiles can already be marked as contractors with certifications.
  • Staff shifts and time off, with approvals, are built, though nobody uses them yet.

What is missing

  • Members can't see or book anything but Contrast Therapy yet.
  • No instructor on a class, and no 'my classes' roster for instructors.
  • No class-only price or class pack. Any session pays for any session type, both ways.
  • A second single-session price set up without limiting it to the class would block contrast bookings that need a paid seat (a guest not covered by a pass, or a member with no sessions left). Covered bookings would still work.
  • The waiver covers sauna and cold only. Breathwork needs its own health questions.
  • No rooms. Staff can keep contrast off at class times by editing contrast's own weekly time windows. A calendar blackout closes a time window on one date, but it blocks every session type at the location, the class included.
  • Instructor pay and contractor tax tracking aren't in the app.

How leading studios do it

Othership gives members three months of free access to its guided breathwork journeys and builds its classes around a theme. Saunaday prices its guided contrast practice at $40, or $225 for an 8 week pass, while members use one membership visit. Arketa treats workshops as events that are drop-in only by default and not covered by memberships unless the studio changes that.

How we would build it

  1. Use the session picker from idea 6.
  2. Add an instructor to each class, and a 'My classes' roster in the staff hub.
  3. Decide included or paid, then make sessions apply only where you want them (class passes for classes, contrast sessions for contrast).
  4. A breathwork waiver with health screening questions, signed before a first class.
  5. A warning when an instructor is booked during their time off or outside their shift.
  6. Share the events and host setup with the Social Club, so both come together.

Where we would start

  • One recurring class a week at a fixed time to start.
  • Its own session type and capacity, separate from immersion.
  • Keep early classes small so the instructor can coach each person.
  • Start with gentle breathing styles. Intense styles only after health screening.
  • The same 12 hour cancel rule as any session, unless you decide classes work differently.

Your decisions

  • Included in membership, or a separate price or class pack?
  • Who teaches, employees or contractors, and how they are paid.
  • How often, how long, and how many per class.
  • Which breathing styles, and who reviews the health screening.

Watch out for

  • Safety and liability: intense breathwork is generally advised against for people with heart conditions, epilepsy or seizures, and during pregnancy without medical advice. The current waiver doesn't cover this.
  • Sessions leak value both ways until they are tied to session types.
  • A second price set up the wrong way would block contrast bookings that need a paid seat, until it is limited to the class.
  • If a class uses the same space as contrast, staff have to take those times out of contrast's weekly windows by hand.
  • Staff scheduling is built but untested with real staff.
  • Still marked 'needs information' in the Request Center: instructors, cadence, capacity, and included versus paid.
Feedbackon idea 8
9 1,000 visits together Track itSmall, under a weekRR-0201
9

1,000 visits together

Building blocks existSmall, under a weekRR-0201
Track collective progress toward 1,000 attended visits and celebrate reaching the milestone together, counting completed visits rather than plunge time or dips.

What the app already does

  • Every check-in is recorded, so completed visits can be counted.
  • Staff can edit an announcement banner that shows at the top of the member web app. It is switched off today, hidden in the phone app and members can close it, and staff would count visits by hand, because the app keeps no running total yet.
  • Staff tasks exist for planning the celebration.

What is missing

  • No running total since opening, and no screen to show one.
  • No goal setting (target, start date) and no alert when it is reached.
  • No public counter on the website.

How leading studios do it

An online experiment about a shared waste-reduction drive found that, for people less committed to the cause, stressing how much was still needed helped early on, and stressing how much had already been done worked better near the end. The coffee-card research behind idea 5 points the same way: people speed up as a goal gets close.

How we would build it

  1. Soon, with no build: switch on the member banner and post the running total weekly (web app only).
  2. Count completed visits since opening from check-ins, leaving out test and owner preview bookings.
  3. Add a progress card to the member home screen.
  4. Add a goal setting (target, start date, label) for staff, and a staff task when the goal is hit.
  5. Keep it members-only at first.

Where we would start

  • Count checked-in visits only, from opening day. No dips or minutes.
  • Leave out test, owner preview and staff visits.
  • Early on, show how many to go ('812 visits to our first 1,000'). Past halfway, show how many are done.
  • Members only at first.
  • Update the banner weekly until the live card is ready.

Your decisions

  • Do guest visits count? Every guest fills a seat too.
  • Where it shows: the app, the studio, social posts.
  • What the celebration is.
  • What comes after 1,000.

Watch out for

  • Early numbers will look small. Pick a framing that motivates rather than embarrasses.
  • Missed check-ins undercount the total.
  • A public number shows how busy the studio is.
  • Test and preview bookings must be left out, or the count gets inflated.
Feedbackon idea 9
What several ideas share
  • Counting visits. Every check-in should update a member's last visit and visit count. The fields exist today but stay empty. Ideas 2, 5 and 9 all depend on this, and so does honest reporting.
  • Front desk check-in. Only staff can check members in. A missed check-in makes a regular look quiet, misses a milestone and undercounts the 1,000. It needs a clear front desk routine, or a self check-in later.
  • One daily check in the app's behind-the-scenes sender. It already runs all day. We would add named daily checks to it (quiet members, expiring sessions, milestones, next-cycle bookings) rather than rely on the Automations screen, which looks ready but sends nothing.
  • One message system. Reminders already go by email and text, with quiet hours, channel choices and a guard against sending the same message twice. New messages (check-in, sessions waiting, spot open, milestone, weekly ritual summary) plug into it, and staff can switch each one on or off and edit the words.
  • A shared limit on retention texts: at most one per member every 7 days across ideas 2, 3 and 5, so nobody feels chased.
  • Consent. Decide which messages are service messages and which are marketing. Member emails have no unsubscribe link yet, and there is no per-member opt-in for public recognition or introductions.
  • One-tap links. Links that open the app straight to a booking, a skip or a claim. Ideas 1, 2, 3 and 4 all use them. Text replies land in GoHighLevel, so links are the one-tap way to act for now.
  • Renewals and the paid-cycle rule. Automatic renewals are not running yet: the nightly renewal exists in the app but nothing starts it. Ideas 1, 3 and 4 all depend on when a cycle starts and ends, so this gets switched on and tested before booking opens.
  • A session picker, then events and classes. The booking screen only knows Contrast Therapy. A picker unlocks idea 6, and a small events setup with a host or instructor serves both 7 and 8.
  • Capacity. Seats are counted per start time (9 per start, a new start every 30 minutes, 90 minute sessions), not people in the room. Ideas 1, 4 and 6 all depend on what 9 really means.
The longer question list
  1. Weekly ritual and your paid-cycle rule: should the app hold next-cycle seats for standing members (released automatically if the renewal fails), or only book the new cycle after each renewal is paid?
  2. Capacity: does 9 mean 9 people starting at the same time, or 9 people in the space at once? And how many of those seats can standing bookings take? We suggest no more than half.
  3. 10-day check-in: should it start as a staff task where someone reaches out personally, or as an automatic text signed by a staff member? Who owns the replies, and how fast?
  4. Which messages are service messages and which are marketing (check-in, sessions waiting, milestones, events)? This decides the opt-out rules and the wording.
  5. Front desk check-in: can we count on staff checking in every member at every visit? Ideas 2, 5 and 9 all depend on it.
  6. Waitlist: first come first served, or Unlimited first? And first to tap wins, or one person at a time with a hold?
  7. Milestone rewards: what does each step get, and what does the 100-visit party include?
  8. Sunday Reset, Social Club and classes: included in membership (uses a session), free, or priced separately? And what are the Sunday times and capacity?