Admin Portal User Manual
1. Logging In & Out
The admin portal is only accessible to you โ it's separate from the client portal and requires your specific admin credentials.
How to Log In
Open your browser and navigate to your PhitFreaks admin page (admin.html on your website).
Use the email and password set up for your admin Firebase account.
You'll be taken directly to the dashboard. If you see an error, double-check your email spelling and password.
How to Sign Out
Click the Sign Out button in the top-right corner of the dashboard. Always sign out when using a shared device.
Go to the Firebase console (console.firebase.google.com), navigate to Authentication, find your email, and use "Send password reset email." You cannot reset it from the admin portal itself.
2. Dashboard Overview
When you log in you'll see the main dashboard. At the top is your header bar with your name and sign out button. Below that is the tab navigation:
| Tab | What It's For |
|---|---|
| ๐ Schedule | Add, manage, and publish classes for the week. Post announcements to clients. |
| ๐ฅ Clients | Approve or reject new registrations. View and manage all your clients. |
| ๐ Roster | See exactly who is booked into any specific class, including the waitlist. |
| ๐ Forms | Quick links to the assessment form, mobile evaluation app, and liability waiver PDF. |
| ๐ณ Sessions | Add or adjust session balances for clients. See who is running low. Open any client's full Session History (๐ History). |
| ๐ Revenue | Business snapshot โ total revenue, sessions sold, expiring clients, class ratings. |
3. Birthday & Anniversary Alerts
Just below the header, you may see a green alert bar that looks like this:
This bar appears automatically whenever a client has a birthday or training anniversary (the date they first joined) within the next 7 days. It only shows if there's something to show โ otherwise it's hidden.
What to Do With It
- Send a personal text or shoutout to clients with upcoming birthdays
- Celebrate training anniversaries in class โ these moments build loyalty
- Consider a small gesture: a birthday discount, free session, or just a heartfelt message
4. ๐ Schedule Tab
This is your home base for managing the weekly class schedule and communicating with clients.
Posting a Client Announcement
Announcements appear as a banner at the top of every client's portal. Use them for weather changes, location notes, schedule shifts, motivation โ anything you want all clients to see.
Click the announcement text box at the top of the Schedule tab. Example: "Tomorrow's 6am class moves to the backyard โ bring your mat!"
Choose how long the announcement should stay visible โ 1 day, 3 days, or 7 days. It disappears automatically after that.
The announcement goes live immediately in the client portal.
Click the Delete button next to any active announcement in the list above the text box.
Adding a New Class
Select the Class Type from the dropdown (Small Group Training, HIIT, Strength & Conditioning, Competition Prep, Mobility & Recovery).
Give the class a specific name clients will see โ e.g., "Morning Burn" or "Leg Day Finale." If you leave it blank, the class type is used.
Pick the date from the calendar picker and the time from the time field.
Choose 30, 45, 60, 75, or 90 minutes from the Duration dropdown. This field is required โ the class won't save without it. Duration tells the system when the class ends, which controls when the Attendance button activates and when reminder emails go out.
Default is 6. Change this if you want a smaller or larger class for that session.
This shows on the client's booking card โ e.g., "Bring a mat" or "Outdoors today."
Leave it checked to make the class visible to clients right away. Uncheck it to save it as a draft and publish later.
The class appears in the week view below.
Managing Classes in the Week View
Use the โ Prev Week and Next Week โ buttons to navigate between weeks. Each class row shows the class name, time, booking count, and action buttons.
| Button | What It Does |
|---|---|
| โ Active / Activate | Toggles whether the class is visible to clients. Green = visible. Grey = hidden draft. If clients are booked when you deactivate a class, each of them gets a "Class cancelled" line in their Session History (and "Class reinstated" if you turn it back on). |
| โ Attendance | Appears the moment a class's end time passes โ available same-day, as soon as the class is over. Opens the attendance confirmation screen. |
| โ๏ธ Edit | Opens an edit panel where you can change the class type, title, date, time, duration, max spots, or notes. Existing bookings are preserved. If you change the date or time of a class with bookings, every booked client is emailed the new time automatically, and it's recorded in their Session History as "Class rescheduled." |
| Delete | Permanently removes the class. Cannot be undone. If clients are booked, the confirmation lists their names first. When you confirm, each booked client is emailed that the class is cancelled, and it's recorded in their Session History. No sessions are deducted. |
Publish All This Week
The โ Publish All This Week button activates every class in the current week at once โ useful if you build the week's schedule as drafts first, then release them all at the same time.
Copy Week โ Next
The ๐ Copy Week โ Next button duplicates every class from the current week into the following week. This is a huge time-saver for a consistent schedule. After copying, you can go to next week and edit any changes.
Build your standard week once, then use Copy Week โ Next every Friday to set up the following week. Takes 10 seconds instead of re-entering everything manually.
5. ๐ฅ Clients Tab
This is where you manage everyone who has registered for the portal. Clients are divided into three sections.
โณ Pending Approval
Anyone who registers on the client portal shows up here first. They cannot book classes or see the schedule until you approve them. You'll see their name, email, and registration date.
The client moves to the Approved section and immediately gains access to the full portal โ they can book classes, see their progress, etc.
Moves them to the Rejected section. They'll see a "not approved" message when they try to log in.
Always verify who a new registration is before approving. If you don't recognize the name or email, reach out to confirm before granting access.
โ Approved Clients
Your full active client list. Each client card shows their name, email, current session balance, and goal. You can:
- Click View Profile to open their full profile
- See session balance at a glance โ clients with 0 sessions show in red
- Search or scroll to find any client quickly
โ Rejected
Shows anyone you've rejected. You can re-approve from here if needed (e.g., someone who registered with the wrong email and re-registered correctly).
6. ๐ Roster Tab
Use this to see exactly who is signed up for any specific class before it happens.
All upcoming and past classes are listed. Pick the one you want to view.
You'll see every client who is booked, along with buttons to Add, Move, or Remove them.
If the class is full, any clients on the waitlist appear below the roster in gold. When you remove someone from the roster, the first waitlist person is automatically emailed that a spot opened.
โ Removing (Cancelling) a Client's Booking
Use โ Remove when a client asks you to cancel, including late cancellations inside 24 hours that they can't do themselves.
A box pops up asking you to confirm, with room for an optional note.
For example: "Client texted to cancel โ sick" or "Late cancel, 6 hrs notice." The client sees this note in their Session History. Leave it blank if you prefer. Click Cancel in the box to keep them booked.
The client is removed and emailed that their booking was cancelled. The first waitlist person is notified, and a "Booking cancelled by Coach Shauna" line is added to the client's history. If you already confirmed their attendance for that class, the box warns you first, and removing them automatically returns the session to their balance.
Removing a client never deducts a session. If your policy is to charge a late cancel, remove them first, then go to Sessions โ ๐ History โ ยฑ Adjust balance, enter -1, and give the reason "Late cancellation charged." The client sees exactly why their balance went down. See Section 10.
โ Adding a Client to a Class
Need to put someone in a class manually โ a makeup session, a last-minute add, or a client who called you directly? Use the โ Add Client to This Class button at the bottom of any roster.
The roster loads with the spots summary and the full client list.
A dialog opens with a dropdown of all approved clients not already in this class. If the class is already full, you'll see a message instead.
The client is added to the class instantly and the roster refreshes. They'll receive a confirmation email letting them know they've been added, and it's recorded in their Session History as "Added to class by Coach Shauna."
Check the roster the night before each class so you know exactly who's coming in. Use โ Add Client for any last-minute additions rather than having clients rebook themselves.
7. ๐ Moving a Client Between Classes
Sometimes a client needs to switch to a different class time โ and they shouldn't lose a session for it. The ๐ Move button in the Roster tab lets you move any client instantly, without touching their session balance.
Sessions are only deducted when you confirm attendance. A move just transfers the booking from one class to another โ the client's session balance stays exactly the same.
How to Move a Client
Select the class the client is currently booked into from the dropdown.
Each entry shows the client's name, email, and session balance.
A modal opens showing the client's name and a dropdown of all other available classes that still have open spots.
Only classes with available spots are shown. Full classes are automatically excluded.
The client is removed from the original class and added to the new one in a single atomic update. The roster refreshes immediately.
Automatic Email Notifications
As soon as you confirm the move, two emails are sent automatically:
| Recipient | Email Contains |
|---|---|
| Client | Confirmation that their class has been moved, showing the old class and the new class (date, time, type). Reassurance that no sessions were affected. |
| You (Shauna) | A summary of the move โ client name, from class, to class. Useful for your records and for the pre-class roster check. |
The move is also recorded permanently in the client's Session History ("Moved by Coach Shauna," with both classes). When a client moves themselves in their portal, that shows in the history too, as "Client moved class."
If a client contacts you asking to move to a full class, you can first remove another client (or a no-show) from that class to free up a spot, then use ๐ Move to place them in.
8. ๐ Forms Tab
Quick access to all your official documents. Nothing to manage here โ it's a library of links.
| Form | What It Is | How to Use |
|---|---|---|
| Client Assessment Form | The online fitness assessment on your website. Clients fill it out before starting. | Click Open Form to preview it or send the link to a prospective client. |
| Movement & Cardio Evaluation | Interactive 3-tab mobile app for in-person assessments during sessions. | Open on your phone during a new client's first session. Walk through it together. |
| Liability Waiver | The PhitFreaks liability waiver PDF. All clients should sign before their first class. | Open the PDF or download it to print. Clients can also sign it digitally from the client portal. |
9. ๐ณ Sessions Tab
This is how you manage session credits โ the currency of PhitFreaks. Every time a client books and attends a class, one session is deducted. You add sessions here when a client purchases a pack.
Clients cannot book a class if their session balance is 0. Any client shown in red has run out of sessions. They need to purchase more before they can book again.
Session Package Pricing
PhitFreaks has four fixed packages with set prices. All packages expire a set number of days after the client's first attended class โ the clock doesn't start on the purchase date, it starts when you confirm their first attendance. There's also a Custom option for special arrangements.
| Package | Sessions | Price | Expires After |
|---|---|---|---|
| 8-Session Pack | 8 | $149 | 45 days from first class |
| 12-Session Pack | 12 | $209 | 60 days from first class |
| 16-Session Pack | 16 | $269 | 75 days from first class |
| 24-Session Pack | 24 | $359 | 90 days from first class |
| Custom | You set it | You set it | You set the days |
Each pack has its own clock. It starts on the date of the class where one of its sessions is first used (the class date, not the day you click Confirm) and runs for that pack's days. The oldest sessions are always used first, so a new pack's clock doesn't start until older sessions are used up. A new pack never extends older sessions; leftovers expire on their own pack's date. The Sessions tab, their profile and the client's portal show the next expiry, e.g. "9 sessions expire in 22d (Nov 9)". Their ๐ History shows every pack.
Linked (shared-pool) members show the primary account's expiry, since the sessions live there.
Always record a new pack with + Add Sessions. If you use Edit on an old purchase to add sessions, the expiry clock doesn't restart and the client gets shorted. Edit is only for fixing a mistake on that purchase.
Adding Sessions to a Client
The Sessions tab shows all approved clients with their current balance. Clients with 0 sessions are highlighted in red at the top.
The sessions count and price auto-fill for fixed packages. For Custom, enter sessions, price, and expiry days manually.
Card, Cash, Venmo, Zelle, PayPal, or Other. This logs how the client paid.
The client's balance updates instantly and a purchase record is saved. The expiry clock will start on their next attended class.
Viewing a Client's History
Each client row in the Sessions tab has a ๐ History button. Click it to open that client's complete Session History: every purchase, attended session, booking, cancellation, move, no-show and adjustment, with a running balance and a check that it all adds up. Purchases still have their Edit and Delete buttons right on the line. Full details in Section 10.
Editing or Deleting a Transaction
If a mistake was made โ wrong session count, wrong amount โ you can fix it directly in the purchase history.
There's no undo. You'll be asked to confirm before any delete goes through. When in doubt, use Edit instead to correct the values.
Edits and deletes that change the session count also leave a "Purchase corrected" or "Purchase deleted" note in the client's history, so a change to their balance is never unexplained.
Add sessions as soon as a client pays โ whether by Venmo, cash, or check. Don't wait. Clients will try to book and wonder why they're blocked if their balance isn't updated.
๐ Shared Session Pools (Couples & Families)
Clients can share a single session balance โ for example, a husband and wife who purchase one pack together. One person is the primary (their account holds the sessions) and the other is the secondary (they draw from the primary's pool automatically).
Once linked, all session deductions for the secondary client come from the primary's balance โ whether the secondary books and attends a class, or you confirm their attendance. You never have to think about it; the system handles it automatically. Both clients can book and attend separately or together.
Setting Up a Shared Pool
In the Clients tab, click ๐ค Profile for the client who will draw from the other person's sessions.
You'll see a dropdown listing all eligible clients.
This is the person whose balance the sessions will come from โ usually whoever paid.
The accounts are now linked. The secondary's Sessions tab row will show a Shares pool badge and their Add Sessions button is disabled โ always add to the primary instead. Any sessions the secondary already had are moved into the primary's pool, and that transfer is recorded in both clients' Session History.
Reading the Sessions Tab When Accounts Are Linked
| Badge | What It Means |
|---|---|
| Primary (blue) | This account holds the shared session pool. Add sessions here. |
| Shares pool (blue) | This client draws from another account's balance. Their Add Sessions button is disabled โ go to the primary. |
Unlinking Accounts
Open the secondary client's profile, scroll to Shared Sessions, and click โ Unlink. After unlinking, each client needs their own session balance again.
It doesn't matter who paid โ pick whoever is more convenient to track. Typically it's the person who tends to buy sessions, since that's the account you'll always add to.
10. ๐งพ Session History โ Tracking & Resolving Session Questions
Every client now has a permanent, time-stamped record of everything that touches their bookings or their session balance, whether they did it or you did. They see it in the ๐งพ Session History tab of their portal, and you see the same record. When a client asks "how many sessions do I have?" or "why did my balance go down?", the answer is one click away and you're both looking at the same thing.
Where to Find It
- Sessions tab โ ๐ History on any client row
- Client profile โ the Session History section near the bottom of the profile
What Gets Recorded Automatically
| Event | Who | Changes Balance? |
|---|---|---|
| Client books a class (incl. booking a linked family member) | Client | No |
| Client cancels (24+ hrs out), shows hours of notice | Client | No |
| Client moves to a different class (from โ to) | Client | No |
| You add a client to a class | You | No |
| You remove/cancel a client's booking (with your note) | You | No |
| You move a client | You | No |
| You change the date/time of a booked class | You | No |
| You deactivate or delete a booked class | You | No |
| Attendance confirmed | You | โ1 |
| No-show: first one on a pack | You | No (free) |
| No-show: after the free one | You | โ1 |
| Expired sessions removed | You | โN |
| Session pack purchased | You | +N |
| Purchase edited or deleted | You | Shown on the purchase line |
| Manual adjustment (ยฑ Adjust balance) | You | ยฑN |
| Sessions transferred when linking accounts | You | ยฑN |
You don't have to do anything extra. Just use the portal the way you always do and it's all captured.
โฆ The Session Sheet
The history panel opens on the Session sheet: one row per session the client has bought, like a spreadsheet. It's built from the record by following every event in order:
- Each purchase adds one row per session, with the purchase date and price per session.
- A booking holds the client's oldest open session ("Scheduled for"). Moving keeps the same session and counts the move. Cancelling or a free no-show releases it, and the session stays available. A no-show after the free one uses the session.
- Confirmed attendance uses the session. โฉ Return session reopens that exact row ("Returned").
- Shared pools: the primary's sheet shows sessions used by linked members ("Used by George").
- Status is one of Available, Booked, Awaiting attendance (class happened, attendance not confirmed yet), Attended, Charged, or Past expiry.
The line under the summary confirms open sessions (booked + available) = balance. Tap any row for its full trail. Use โฌ Download for an Excel/CSV copy, for example to send a client their record. Switch to โฐ Timeline for every change in order and for the Edit, Delete and โฉ Return session buttons. The client sees the same sheet in their portal.
Reading the History Panel
The top bar shows the client's balance, total bought, attended, no-shows, cancels and moves. Below it, every event is listed newest first with:
- What happened, and which class (date and time)
- When it happened, and who did it ("by you" or the client's name)
- The balance change (+, โ, or โ for no change)
- The balance after that change ("bal 7")
Use the filter buttons to show All, Sessions in/out (just the balance changes), or Bookings, cancels, moves.
โ The Balance Check
Every time you open a client's history, the system adds up every purchase, attendance and adjustment and compares it to the balance on their account:
Everything is accounted for. You can show the client their own Session History tab and the math speaks for itself.
Part of the balance has no record behind it. This is expected for clients whose sessions were entered before purchase tracking existed. See "One-Time Setup" below.
One-Time Setup: Recording Opening Balances
Do this once for each client who shows the gold โ๏ธ notice. It's usually long-time clients.
If you see the gold โ๏ธ notice, read the difference.
If you agree the client really has the number shown, continue. If the balance itself is wrong, skip to "Correcting a Balance" below instead.
Keep the default note or type your own, and click OK.
This does not change their balance. It adds a "Starting balance" line at the very bottom of their history, labeled "Before tracking began," so everything adds up from here on.
โณ Expiry by Pack (in the History Panel)
Each pack keeps its own expiry clock: it starts the first time one of its sessions is used, and the pack expires that many days later (8 = 45, 12 = 60, 16 = 75, 24 = 90). The oldest sessions are always used first, and buying a new pack never extends older sessions.
Near the top of every client's ๐ History, the โณ Expiry by pack box lists each pack that still has open sessions:
๐ฆ 12-Session Pack โ $209 ยท bought Sep 6 ยท 9 open ยท expires Nov 9, 2026 (22 days left) ยท first used Sep 10 + 60 days ยท free no-show: used
๐ฆ 8-Session Pack โ $149 ยท bought Jul 10 ยท 2 open ยท expired Aug 29 โ 2 still on balance Remove 2 expired
- Remove N expired: takes the expired sessions off the balance. The client sees "โ 2 sessions expired" in their history. If you'd rather give them more time, use ๐ Set date instead.
- ๐ Set date: sets a custom expiry for that pack (an extension or a special deal), with a reason the client sees. Leave it blank to go back to the automatic date.
- "Has 24 sessions but a 75-day expiry" warning: the pack has the wrong expiry period, usually because a 16-pack was edited into a 24-pack. Click Use 90 days.
- free no-show: available / used: whether that pack's one free no-show has been used.
๐ Find Session Errors
The ๐ Find session errors button at the top of the Sessions tab checks every client's records at once for sessions that were taken by mistake:
| Finding | What it means | Pre-checked? |
|---|---|---|
| Charged twice for the same class | Attendance for that class was confirmed more than once. Before October 2026, reopening Attendance pre-checked everyone again and charged them a second time. | Yes โ clear-cut |
| Charged, then removed from the class | The client was checked in, then removed or cancelled from that class, but the session was never returned | Yes โ clear-cut |
| Charged but not on the roster | Charged as a booked client but no longer on that class's roster. Possibly removed after check-in before tracking began, so verify with the client. | No โ verify |
| Balance lower than the record | The account has fewer sessions than purchases minus attendance supports, with no record of why | No โ verify |
Tick what you want and click Fix selected. Each fix returns the session, crosses out the wrong charge, and adds a "Session returned" line the client sees in their history. For a double charge, only the second charge is reversed.
If clients are saying they have more sessions than the portal shows, run this before anything else. It's the fastest way to find and return every wrongly-taken session. Then run โณ Check expiry dates.
โณ Check Expiry Dates
The โณ Check expiry dates button at the top of the Sessions tab checks every client's packs at once:
- Refreshes the expiry dates shown in the Sessions tab and client portal for everyone, automatically.
- Wrong expiry period: packs whose expiry days don't match the standard for their size. Pre-checked unless the fix would shorten the expiry.
- Expired sessions still on the balance: unused sessions from packs past their expiry date. Pre-checked when the pack had a saved expiry period. Left unchecked when the standard was assumed (older purchases), so you can check those first.
Tick what you want and click Apply selected. Each change is recorded in that client's Session History.
Run it once now, right after ๐ Find session errors, to apply the per-pack rule to everyone. After that, once a month removes expired sessions and keeps dates accurate.
โฉ Returning a Session (Undoing an Attendance)
If someone was checked in by mistake, give the session back. Never use ยฑ Adjust for this.
- From the Roster: remove the client from the class. If they were already checked in as attended, the box warns you, and when you click OK the session is returned automatically. The client gets one email saying so.
- From their ๐ History: every "Attended" line has a โฉ Return session button. Click it and give a reason. Use this when the client is no longer on the roster, for example someone you removed before this fix went in, or a walk-in checked by mistake.
Either way the balance goes up by 1, the original "Attended" line is crossed out as reversed, a "Session returned" line is added, and the history still adds up. If that class was the one that started their expiry clock, the expiry is recalculated from their next class.
ยฑ Correcting a Balance (Late Cancels, Comps, Fixes)
Any time you need to change a client's balance for a reason other than a purchase or attendance, use ยฑ Adjust balance at the top of their history. Don't edit an old purchase to fake it.
Enter the change: -1 to charge a late cancel, +1 to comp a session, or any whole number to fix an error. (No-shows are handled automatically at attendance, so don't use this for them.)
The client sees it exactly as you type it, so keep it clear and friendly. Examples: "Late cancellation charged (2 hrs notice)," "Complimentary session โ thanks for the referral!", "Correction โ duplicate entry."
Their balance changes immediately and the line appears in both your view and theirs.
When a Client Questions Their Sessions
Look for the green โ. If it's green, the record is complete.
This shows only purchases, attended sessions and adjustments: the exact math behind their number.
They see the same lines, dates and running balance you do. Most questions end here.
For an attendance you checked by mistake, click โฉ Return session on that line. For anything else, use ยฑ Adjust balance with a clear reason. Either way the correction is visible to both of you.
The primary account's history shows every session used by linked members ("Amy Lee attended (shared pool) โ1"). A secondary account's history shows their own bookings and attendance, marked "from shared pool," without a running balance, because their sessions live on the primary.
Purchases and attendance go back to the beginning. Booking, cancellation, move and no-show tracking started in October 2026, when this feature went live.
11. ๐ Revenue Tab
Your business at a glance. This tab pulls data automatically โ nothing to enter here. Just click the tab and review.
Metric Cards
| Card | What It Shows |
|---|---|
| Active Clients | Total number of approved clients in your portal. |
| This Month | Revenue from session purchases made in the current calendar month. |
| YTD Revenue | Revenue from January 1st through today โ your year-to-date total. |
| All-Time Revenue | Sum of every session pack purchase ever logged. |
| Sessions Sold | Total number of individual sessions sold across all clients, all time. |
| Expiring Soon | Number of clients with 2 or fewer sessions remaining. Red = urgent. |
Expiring Soon List
Below the metric cards is a list of every client with 2 or fewer sessions left. Clients at 0 show in red, clients at 1โ2 show in gold. Use this to proactively reach out before they run out and can't book.
Class Ratings โ Aggregated (Last 30 Days)
A table showing every class that has been rated in the last 30 days โ average star rating and number of reviews. Use this to see which class types are landing and which might need a refresh.
Individual Reviews & Comments
Below the aggregated table you'll see every individual review submitted โ client name, class, star rating, date, and their written comment (if they left one).
Approving Reviews for the Website
Any review with a written comment has an Approve for website button. When you click it, that review will appear in the Testimonials section of your public website (phitfreaks.com). Reviews without a comment can't be approved.
Clients can leave comments when they rate a class, but nothing goes public until you approve it here. Your website always shows only what you've approved.
12. ๐ง Automatic Post-Class Reminder Emails
The system automatically sends reminder emails after every class ends โ so you never have to worry about forgetting attendance, and clients always get a nudge to leave a rating.
Each time you open the admin portal, the system checks for any classes that ended since the last time you logged in but haven't had reminders sent yet. It fires off the appropriate emails automatically โ no action needed from you.
| Who Gets It | What They Receive | Timing |
|---|---|---|
| You (Coach Shauna) | Attendance reminder listing every client who was booked for the class. Prompts you to confirm attendance in the admin portal. | Every time โ no time limit. If you don't log in for a week, you'll still get the reminder when you do. |
| Clients | A motivating email from you asking them to rate the class and leave a comment. | Only within 24 hours of class end. If more than 24 hours have passed, the client email is skipped (so no one gets a stale rating request days later). |
Once reminders are sent for a class, the system marks it as done. Opening the portal multiple times won't trigger the same emails twice.
This runs automatically every time you log in. No buttons to click, no settings to adjust. Just make sure you have the right class duration set when you create classes โ that's what tells the system when a class ends.
13. Confirming Attendance & Deducting Sessions
This is how sessions get deducted after a class happens. This is important โ sessions are NOT deducted when someone books, only when you confirm they actually showed up.
The โ Attendance button becomes active the moment a class ends โ same day, right after the class finish time. Do it while it's fresh so you remember who was there. You can also circle back later; the button stays available for past classes.
Find the class that just ended. Once the end time passes, it shows a green โ Attendance button โ available same-day.
A modal opens showing everyone who was booked for that class.
Put a checkmark next to every client who attended. Leave anyone who no-showed unchecked. Under each name you'll see what a no-show means for them: free (their pack's one free no-show) or 1 session used (free no-show already used).
In the Walk-In section at the bottom, select any client who came without booking, or type in a guest name. Click + Add for each walk-in.
One session is deducted from every checked client's balance and an "Attended" line is added to their Session History. The confirmation box lists each no-show and whether it's free or uses a session. Each no-show client gets an email explaining which. Walk-ins with 0 sessions will be flagged. Any of it can be undone later with โฉ Return session.
Once a class's attendance is confirmed, its button changes to โ Attendance done. You can reopen it any time to add someone you missed. Everyone already recorded shows as โ ALREADY RECORDED, locked and unchecked, and they're left out of the walk-in list, so they can't be charged a second time. Just add the missed person and confirm.
Just leave no-shows unchecked; the system applies your policy automatically:
- First no-show on a pack: free. No session is used, and the client is emailed that it was their one free no-show.
- Every no-show after that on the same pack: 1 session is used, and the client is emailed why.
- Shared pools share one free no-show per pack. If George used it, Debbie's next no-show on that pack uses a session.
- Marked someone a no-show by mistake? Reopen the class's Attendance. They show as "Marked no-show earlier". Check them, and they're recorded as attended and any no-show charge is returned automatically. Or click โฉ Return session on the no-show line in their ๐ History.
14. Client Profiles โ Full Deep Dive
The client profile is the most powerful part of the admin portal. Access it by clicking View Profile on any client in the Clients tab.
What's at the Top of Every Profile
| Element | What It Means |
|---|---|
| Red Health Alert Banner | If you've flagged a health concern for this client (e.g., bad knee, recent surgery), it appears here in red so you see it before every session. |
| PAR-Q Badge | Shows whether the client has received medical clearance. Green = cleared, grey = not yet. |
| Current Goal | The goal you've set for this client โ visible to them in their portal too. |
| Contact Info | Email, phone, date of birth. The birthday is used for the alert bar. |
Editing Profile Information
Setting or Updating a Health Alert
A prompt appears asking you to type the alert message.
Example: "Right shoulder injury โ avoid overhead pressing." This appears in red at the top of their profile every time you open it.
Setting a Client's Goal
A prompt appears.
Example: "Lose 15 lbs by December, improve deadlift to 200 lbs." The client can see this goal in their own My Progress tab.
Marking Medical Clearance Received
Click the PAR-Q badge or the Medical Clearance toggle in the profile to mark it as received. This updates the badge from grey to green.
Assessment History
Below the client info you'll see any assessment records โ Initial Assessment, 60-Day Check-In, 6-Month Progress, and 1-Year Anniversary. To add a new assessment:
The New Assessment modal opens.
Initial Assessment, 60-Day, 6-Month, or 1-Year.
Weight, body fat %, resting heart rate, and any other metrics you track.
The data is saved and appears in the client's My Progress tab in the portal.
Session History in the Profile
Near the bottom of every profile is the client's full Session History: the same panel you get from ๐ History in the Sessions tab, with the balance check, ยฑ Adjust balance, and every booking, cancel, move, attendance and purchase. See Section 10.
Session Notes in the Profile
The bottom of the profile shows the last 10 session notes you've written for this client โ date, session type, exercises, coaching observations, and effort level (RPE). Clients can also see these notes in their own portal under My Progress.
Profile Footer Buttons
| Button | What It Opens |
|---|---|
| ๐ Session Note | Log a new session note for this client (see Section 15) |
| ๐ Measurements | Enter circumference measurements (waist, hips, chest, arms, thighs) |
| โ Assessment | Add a new assessment checkpoint record |
| Close | Close the profile modal |
15. Logging Session Notes
Session notes are your coach's log for each client. They're visible to the client in their portal and build a complete training history over time. Get in the habit of logging one after every session.
Go to the Clients tab โ click View Profile on the client you just trained.
The Session Note modal opens, pre-filled with today's date.
Small Group Training, HIIT, Strength & Conditioning, Competition Prep, Mobility & Recovery, or 1-on-1.
List the exercises, sets, reps, and weights. Example: "Back squat 5ร5 @ 135 lbs, Romanian deadlift 3ร10, box jumps 3ร8."
Write your observations โ what improved, what needs work, form cues to remember, modifications used, what to focus on next session.
Rate how hard the client worked. 7 = moderately hard, 9 = near max effort. This helps track load over time.
The note is saved and immediately visible to the client in their My Progress tab.
Clients who can see their progress logged in detail stay motivated and feel valued. A quick 2-minute note after class is one of the highest-ROI things you can do for retention.
16. Posting Announcements
Announcements appear as a green banner at the top of every client's portal the next time they log in. Use them any time you need to communicate something to all clients at once.
Good Uses for Announcements
- "Tomorrow's 6am class is moving outside โ meet in the backyard!"
- "I'll be out of town Aug 30โSept 2. No classes those days."
- "New class added: Sunday 9am HIIT โ book your spot now!"
- "Reminder: sessions expire 6 months from purchase date."
- "Congrats to Lisa on hitting her 6-month goal! ๐"
How to Post
The announcement section is at the very top, above the Add Class form.
The announcement disappears automatically after this time. For time-sensitive info (tomorrow's class), pick 1 day. For general info, pick 3โ7 days.
It appears in the list above the text box and goes live in the client portal immediately.
Deleting an Announcement Early
Click Delete next to any announcement in the active list. It disappears from client portals instantly.
17. Your Recommended Daily Routine
| Time | Action | Where |
|---|---|---|
| Morning (before first class) | Check the Roster for today's classes โ know who's coming | ๐ Roster tab |
| Check the Birthday alert bar โ wish anyone a happy birthday | Dashboard top | |
| Check Pending Approvals โ approve any new registrations | ๐ฅ Clients tab | |
| After each class | Confirm attendance for that class and deduct sessions. Leave no-shows unchecked; they're recorded automatically. | ๐ Schedule tab โ โ Attendance |
| Log a session note for each client (takes 2 min per person) | Client Profile โ ๐ Session Note | |
| End of day | Add sessions for anyone who purchased a pack today | ๐ณ Sessions tab |
| Post any announcements relevant to tomorrow | ๐ Schedule tab | |
| Charge any late cancels per your policy (with a reason). No-shows are handled automatically. | ๐ณ Sessions โ ๐ History โ ยฑ Adjust balance |
18. Your Recommended Weekly Routine
| Day | Action | Where |
|---|---|---|
| Friday or Sunday | Use Copy Week โ Next to build next week's schedule | ๐ Schedule tab |
| Make any changes to the copied week (cancellations, additions) | ๐ Schedule tab | |
| Click Publish All This Week to make classes visible to clients | ๐ Schedule tab | |
| Weekly | Check Revenue tab โ who has โค2 sessions left? Reach out proactively. | ๐ Revenue tab |
| Review class ratings โ any class consistently below 4 stars needs attention | ๐ Revenue tab | |
| Check the Clients tab for anyone not booking โ they may be about to drop off | ๐ฅ Clients tab | |
| One time (first week) | Open ๐ History for each client and record opening balances for anyone with a gold โ๏ธ notice | ๐ณ Sessions tab |
| One time now (first!) | Run ๐ Find session errors and fix what it finds | ๐ณ Sessions tab |
| One time now, then monthly | Run โณ Check expiry dates, apply the fixes, and remove expired sessions | ๐ณ Sessions tab |
19. Tips & Reminders
- Confirm attendance right after class โ don't wait until the end of the week
- Add sessions to a client's account the same day they pay you
- Approve new registrations within 24 hours โ they're excited when they sign up
- Set a health alert for any client who mentions an injury or health issue
- Use Copy Week โ Next every weekend to stay ahead
- Add a short note when you remove a client from a class. They'll see it in their history
- Use ยฑ Adjust balance (with a reason) for every manual balance change: late cancels, comps, corrections
- Record every new pack with + Add Sessions so the expiry clock restarts
- Use โฉ Return session (not ยฑ Adjust) when someone was checked in by mistake
- Don't delete a class with clients booked unless you mean to cancel it for all of them. Every booked client is emailed and it's logged. To keep them training, move them first
- Don't check a no-show as "attended". Leave them unchecked; the system applies the 1-free-per-pack rule and emails them
- Don't edit an old purchase to change a balance. Use ยฑ Adjust balance so the reason is on record
- Don't approve a client you don't recognize without verifying who they are
- Don't skip confirming attendance โ clients won't be deducted and your records will be off
- Don't ignore the red zero-session alerts โ clients will be locked out and frustrated
- Data not loading? Refresh the page first
- Error with an index message? The Firestore index may still be building โ wait 2 minutes and try again
- Client says they can't book? Check their session balance in the Sessions tab โ it's almost always zero sessions
- Client questioning their session count? Open their ๐ History. The Session sheet shows every session they bought and exactly what happened to each one, and they see the same sheet in their portal. Run ๐ Find session errors if anything looks off
- Client questioning their expiry? The โณ Expiry by pack box in their ๐ History shows each pack, when it was first used, and its days. Fix it there or with โณ Check expiry dates
- Client doesn't see an announcement? They may need to log out and back in to refresh
PhitFreaks Admin Portal User Manual ยท Updated October 2026 ยท For internal use only