Account Setup
Creating a coach account
- Sign up at allsquads.com.au and select Coach as your role during onboarding, or continue with Google (Google OAuth)
- Complete your coach profile: name, bio, sports, qualifications, profile photo, location
- Add your Working with Children (WWC) check number if applicable — a verified badge displays on your public profile once entered
- Connect your Stripe account via Dashboard > Payments > Connect Stripe (independent coaches only — club-employed coaches skip this step)
- Create your first class using the full class creation wizard, which is integrated into the onboarding flow
Profile completion gate
AllSquads requires a complete profile before a coach can publish classes. A complete profile includes: full name, bio, at least one sport, profile photo, and (for independent coaches) a connected Stripe account.
Independent coach vs club-employed coach
There are two types of coach on AllSquads:
- Independent coach — runs their own coaching business. Must connect their own Stripe account. Has access to Payments and Analytics. Sees business-only features (Court Hire, Pro Shop, Promo Codes, Team Management) as upsell opportunities with an amber "Upgrade" badge.
- Club-employed coach — coaches under a club. Does not need their own Stripe account (payments flow through the club). Payments and Analytics are hidden. Business features are hidden entirely. Club-employed coaches skip the Stripe step during onboarding.
Coaches can operate independently and be affiliated with clubs simultaneously. Independent classes and club-affiliated classes are managed from the same dashboard.
Coach Profile (LinkedIn-style)
Overview
Coach profiles are designed as LinkedIn-style professional profiles that showcase a coach's background and credentials. The public profile displays on the coach's page at allsquads.com.au/coaches/[slug].
Profile fields
In addition to the standard fields (name, bio, sport, photo, location, WWC), coach profiles include:
- Work history — a list of coaching positions with role, venue/organisation, and period (e.g., "Head Coach — Melbourne Tennis Academy — 2019–2023")
- Achievements — notable accomplishments, certifications, and awards (e.g., "Tennis Australia Level 2 Coach", "2022 Coach of the Year")
- Languages — languages spoken
- Social links — links to external profiles and websites (e.g., Instagram, Facebook, LinkedIn, personal website). Each link has a label, URL, and type
Editing profile
All LinkedIn-style fields are editable from Dashboard > Settings > Profile. Work history entries, achievements, and social links can be added, reordered, and removed individually.
Appearing in the public Coaches directory
Explore's Coaches tab lists every coach-role account with a public profile and a name set — club-affiliated or independent (Alex ruling 2026-08-08: "every coach profile, independent or with a club, should be visible. same as every club"). No active-class assignment is required. A coach lists if they hold an unarchived coach/club_admin role at any club, OR have no such club roster role at all (independent, including a coach who only has their own personal organisation). A coach whose club membership was archived (removed from a club's roster) does not appear until they join another club or otherwise regain a roster/independent status. Profile visibility (public by default, toggle in Dashboard > Settings) is the only opt-out. Club owners who tick "Yes, I coach too" during onboarding receive the coach role automatically and appear immediately.
Creating a Class
Step 1 — Class type and basic details
- Navigate to Dashboard > Classes > Create Class
- Select class type: Group Lesson, Social Session, Holiday Camp, or Private Lesson
- Enter class headline, description, sport, and skill level
- Set listing access (Explore visibility): Public, Private, or Invite-only — see "Listing access (Explore visibility)" below for what each option actually controls
Step 2 — Schedule
Group Lesson (Recurring):
- Set start date, recurring frequency (weekly/fortnightly/daily), day(s) of week, start time, duration
- Set end date or leave open-ended (rolling)
- For term classes, set a term end date and configure holiday exclusions (individual session dates can be toggled included/excluded; Australian public holidays are flagged automatically)
Social Session (One-off):
- Set single date, start time, duration
Holiday Camp:
- Select individual camp dates
- Optionally configure weeks with week-based pricing
Private Lesson:
- Set available time slots via Availability Windows (see Availability section)
- Set duration tiers (30/45/60 min) and pricing per tier
- Set minimum booking lead time (hours in advance players must book — enforced on the availability calendar)
Step 3 — Pricing
- Set standard price per session (or per term/camp)
- Optionally set member pricing
- Enable drop-in pricing for term classes (casual single-session rate)
- Enable pro-rata pricing (auto-calculated reduced rate for mid-term joiners)
- Add discount rules (e.g., sibling discount, early bird)
- Subscriptions (recurring classes only): Enable subscriptions to allow players to pay automatically on a weekly or fortnightly basis. Set subscription price, billing interval, and cancellation notice period (default 7 days)
Step 4 — Capacity and settings
- Set maximum capacity per session (hidden for private lessons — private lessons are booked per player per slot)
- Enable/disable auto-approval — ON by default (bookings confirm instantly; switch it off if you want to approve each booking manually)
- Set approval timeout hours
- Assign a court (if court hire integration is configured)
- Configure cancellation policy (see Cancellation Policy document) — a new class defaults to full refund with 1 hour's notice until you change it
- Waitlist is on by default for full sessions; members-only is off by default
- Emergency contact required is off by default — turn it on to require the account holder to have an emergency contact on file before booking themselves or a guest into this class. A player missing one is prompted to add it inline in their cart before checkout. Child attendees always require their own emergency contact regardless of this toggle. Existing classes are unaffected unless you explicitly turn this on
Step 5 — Publish
- Save as Draft (not visible to players) or Publish (immediately live)
- The class type cannot be changed once a class is created (not just once it has bookings) — this also means duplicating a class always keeps the source's type
- Session generation is asynchronous — after publishing, sessions are generated in the background via a BullMQ job. Sessions may take a few seconds to appear on the Schedule tab.
Listing access (Explore visibility)
This is a separate control from Draft/Publish (class status) — it governs whether a published class is listed for discovery, not whether it exists or can be booked.
- Public (default) — listed everywhere: the Explore feed, the homepage, your coach profile's service list, "related classes" rails, and search via the AI assistant.
- Private — excluded from every cross-club listing/discovery surface above. Still directly reachable by anyone with the class's own link (e.g. shared via
/classes/<slug>), and still bookable normally — this setting only controls whether it's surfaced to people browsing, not whether it can be found by direct link or booked. - Invite-only — same listing behaviour as Private (excluded from discovery, reachable by direct link) plus a booking-time restriction: only players on the class's invite list can actually book a seat, even with the direct link. Manage the invite list from the class's Invite List panel.
A class you're currently viewing on your OWN club's public profile page (or its "View all classes" tab, the club's coaching/court-hire embed widgets, or your dashboard's own class pickers) is a direct/scoped view, not cross-club discovery — Private and Invite-only classes still appear there for now. If you need a class hidden even from your own public club page, keep it as a Draft instead (drafts are never shown anywhere on the consumer side).
Managing Classes and Sessions
Class list view
The Classes tab shows all classes in a compact grid card layout. Each card displays the class headline, sport, schedule summary, and assigned coach. The class list includes a Coach column showing which coach is assigned to each class. Holiday camp cards also show camp dates and price per week.
Renaming a class (its web address follows)
A class's public web address (/classes/<slug>) is built from its name. When you rename a class, the address is rebuilt from the new name and the previous address keeps working: anyone opening the old link (a text to parents, a social post, a search result) is redirected to the class's current address. The most recent previous address is remembered — rename a class twice and the address from before the first rename stops working, unless you rename the class back to that earlier name, in which case its original address is restored. Renames that only change capitalisation, punctuation or spacing don't change the address at all. Duplicating a class always gives the copy its own address built from the copy's name.
Viewing sessions
Classes tab shows all classes. Select a class to view its sessions list with upcoming dates, capacity, and booking counts.
Session roster
Each session has a roster showing all enrolled players, their booking status, payment status, and attendance. Two roster statuses look similar but mean different things: "Awaiting payment" is an unpaid/offline booking (e.g. cash or a payment request) still waiting on money — the player hasn't paid yet. "Awaiting approval" is the opposite: the player has already paid, and the booking is waiting on a decision from you (see "Approving pending bookings" below). They are never the same booking.
Setting a per-session capacity override
Need to raise or lower the room in one specific session without changing the class's usual capacity? Open the session in the Bookings tab (class detail page) and use the pencil icon next to the Capacity card:
- Click the pencil icon on the Capacity card
- Enter the new capacity for this session only (leave the field showing the class default if you don't want to change it)
- Save — the new number applies immediately to this session's capacity everywhere it's shown (this card, the player's booking screen, and your own Add Player check)
- To go back to the class's usual capacity, click Clear
An "Override active" note appears under the Capacity card whenever a session has its own number. This doesn't touch the class edit wizard or any other session — it's scoped to the one session you're viewing. Not available once a session has already ended.
Approving pending bookings (auto-approval off)
If you've switched auto-approval off for a class (Step 4 above), new bookings sit as "Awaiting approval" until you accept or decline them — the player has already paid, but their spot isn't confirmed yet. Approve or decline from:
- Bookings tab, class list — a blue "N awaiting approval" note appears next to the enrolled count on any class/session row with a pending-approval booking, so you can spot which ones need a decision without opening each one.
- Bookings tab, Individual bookings view — the player's booking drawer shows Approve/Decline buttons directly whenever their status is Awaiting approval.
- Bookings tab, class detail page — open the class (from either list above, or via the Classes tab's Manage Class drawer, which routes to the same page): the mobile roster card and the player's detail drawer both show Approve/Decline buttons on any pending-approval row, and a session-scoped "Awaiting approval" card sits alongside Capacity/Cancelled.
Approving confirms the booking and notifies the player. Declining cancels the booking, notifies the player, and issues an instant credit for the class price (the booking fee is non-refundable — see Cancellation Policy / Payments and Credits). Declining also lets you suggest an alternative date/time instead of a flat decline.
Redeeming a Play On! government voucher booking
If your class has "Accept Play On! vouchers" turned on (class settings), a player can pay with a QLD Play On! voucher at checkout. Their booking sits Pending until you redeem it — clicking Approve opens a redemption modal showing the voucher code and a link to the government portal. Redeem the code there, then paste the reference back into AllSquads and confirm — the booking then moves straight to Confirmed. If the code is invalid, use Reject instead (frees it up so the player can resubmit a corrected code). An unredeemed voucher booking auto-releases after 7 days if you take no action, with reminders beforehand.
Marking attendance
- Open the session detail
- Select Mark Attendance
- Mark each player Attended or Absent
- Save
Alternatively, use the QR code scanner — each player has a unique QR code in their booking confirmation.
A coach who has been assigned a session by a club admin (a per-session reassignment or substitution) can view that session's roster, mark attendance and notes, and add players to that specific session — even if they aren't the class's head coach or a club admin. The permission is per-session: being assigned one session doesn't grant access to the rest of the class.
Adding a player manually
Coaches can add players to a session manually (e.g., walk-ins, complimentary spots), from the session detail page or the calendar's Manage Class drawer — both open the same Add Player screen:
- Open session detail (or the calendar drawer) > Add Player
- Search by name or email, or add a new person
- For term classes, choose the booking scope: Whole term (all remaining sessions) or This session only
- For kids classes, choose which child is attending (pick from the contact's children, or add a new child) — required so the roster shows the child's name, not the parent's. Optional on classes open to any audience.
- Select payment method: Cash, Free (internal/complimentary, no charge), Already paid, or Send link (pay online)
- Optional: enter an emergency contact name and phone for the player — capture it if you have it, the add goes through either way. It shows on the roster next to their name.
- Confirm
Free and Cash bookings are confirmed immediately — there's no separate approval step. A cash player still shows as owing money until you mark it collected (the "$ Collect" action). A Send-link booking stays Pending until the player pays; it flips to Confirmed automatically once payment goes through — no action needed from you.
Add Player is only available on upcoming sessions — once a session's end time has passed, its roster is read-only (attendance marking is unaffected and stays available for past sessions).
If adding a player would take a session over its configured capacity (including a session-specific capacity override set from the Bookings drawer), you'll see "This exceeds capacity (X/Y). Add anyway?" — this is never a hard block. Confirm to add the player anyway; capacity is a guide for the coach, not a wall.
Moving a player
To move a player from one session to another within the same class:
- Open session detail > select player > Move Player
- Select the destination session
- Confirm — the player is notified
Cancelling a session
- Open session detail > Cancel Class (session)
- All enrolled players are notified automatically
- Refunds are issued as credits per the class cancellation policy
Archiving or deleting a class
- Archive — hides a class from the public explore page and stops new bookings but keeps all historical bookings, sessions, and data. This is the recommended action for any class that has had bookings.
- Delete — permanently removes the class. Only available from the class card kebab menu, with a confirmation modal. Delete is blocked if the class has any active bookings — archive it instead. There is no undo.
Availability (Private Lessons)
Setting availability windows
Availability windows define when a coach is available for private lesson bookings.
- Navigate to Dashboard > Schedule > Manage Availability
- Add recurring availability windows: select days and time ranges (e.g., Mon–Fri 8am–12pm)
- Players can only request private lessons within these windows
Manual availability blocks
To block specific times (holidays, personal appointments):
- Schedule > Add Block
- Set date, start time, end time, and label
- The blocked time is removed from private lesson availability
Responding to a private lesson request
When a player requests a private lesson slot, it appears as a pending booking awaiting your accept or decline. Respond promptly — an unanswered request auto-cancels after a timeout (1 hour by default; clubs can configure a different timeout). You'll get reminder alerts before it expires. If it times out, the player is automatically credited and notified — the request doesn't stay open indefinitely.
Coach Dashboard
Sidebar navigation
The coach dashboard sidebar shows coaching-specific tools:
- Classes — class management (create, edit, view all classes)
- Bookings — view and manage all bookings (list view only)
- Schedule — calendar view of sessions and availability
- Contacts — CRM-style player list
- Messages — player communications and broadcast messaging (with class type and sport filters)
- Payments — Stripe Connect, transactions, payouts showing Last Payout and the current weekly accrual (independent coaches only). Independent-coach earnings — including private lesson offers — accrue into the weekly Monday payout, paid to the coach's own Stripe account net of the platform fee
- Analytics — revenue and performance reports (independent coaches only)
- Reviews — player reviews with respond and appeal/flag actions
- Help — knowledge base and support
- Settings — club/org profile, cancellation policy, embed widget
Personal profile settings (name, photo, bio, qualifications, notifications, account) are accessed via the top-right avatar menu under "My Profile", separate from club/org Settings.
Business-only features (upsell)
Business-only features — Court Hire, Pro Shop, Promo Codes, and Team Management — appear in the coach sidebar with an amber "Upgrade" badge. Clicking any of these items displays an upsell card prompting the coach to upgrade to a Business account to unlock the feature. Coaches cannot access these features without upgrading.
Court Hire
Court Hire is a business-only feature. Independent coaches see it in their sidebar with an amber "Upgrade" badge. Clicking it shows an upsell card prompting upgrade to a Business account. Club-affiliated coaches with business access can view the court hire calendar, check availability, and create bookings on behalf of players (internal or cash bookings). Court pricing and court management are club admin functions.
Contacts
What are contacts?
Contacts is a CRM-style list of all players a coach has worked with. Players are automatically added as contacts when they make a booking.
Contact sources
Contacts can be: Booking (auto-added on booking), Manual (added by coach), Import (bulk uploaded), or Guest.
Contact detail
Each contact shows: name, email, phone, booking history, membership status, notes, and tags.
Adding a contact manually
Dashboard > Contacts > Add Contact. Enter name, email, and any additional details.
Communications
Messaging players
Dashboard > Messages > New Conversation. Select player(s) from contacts. Messages are delivered in-platform and optionally by email.
Contacting all session attendees
From a session detail, select Contact Everyone to send a message to all enrolled players in that session.
Announcements
Announcements can be sent to all contacts or filtered by tag, sport, or class enrolment.
Payments and Payouts
Stripe Connect
Coaches must connect a Stripe account before receiving payments. Navigate to Dashboard > Payments > Connect Stripe and follow the Stripe onboarding flow.
Payout schedule
Payouts are processed weekly by AllSquads. Your Last Payout, Current payout (this week's accrual / last week awaiting Monday approval), and Total Paid Out are visible in Dashboard > Payments > Payouts. There is no separate "Current Balance" — under platform-held payments nothing sits in your Stripe account outside the weekly payout.
Transaction history
All individual transactions (bookings, refunds, credits) are visible in Dashboard > Payments > Transactions.
Fees
AllSquads charges two distinct fees on each booking:
- Booking fee — paid by the player on top of the class price at checkout. The rate depends on class type (group/social 3%, camp 2.5%, term 2.2%, annual 3%, private 2.5%, court hire 3%, drop-in 3%, subscription instalment 3%). This is AllSquads revenue, retained from the platform-held charge (no Stripe
application_fee/Connect params). Subscription instalments use the 3% subscription rate, not the underlying class-type rate. One-off booking fees are floored at 50¢ GST-inclusive — only relevant on tickets under ~$17. - Platform fee — paid by the coach / club out of the payout. The rate depends on subscription tier (Coach Free 5%, Coach 3%, Coach Pro 2.5%; Club Free 5%, Club 2%, Club Pro 1.5%).
Both fees are calculated on the cash portion only — credits applied to a booking never attract a fee. Refunds claw back the cash component, not the fees. Historical rates are snapshotted on each booking so changes never re-rate past payments. The full breakdown of any individual transaction is visible in Dashboard > Payments > Transactions.
Reviews
Receiving reviews
Players can leave a review after attending a class. For club-run classes the review form is two-part: a club review (primary) plus an optional coach review — each with its own star rating (1–5) and optional comment, submitted together in one flow.
Who the review counts for — account-level attribution
Reviews are attributed at the account level, not the individual session level:
- If you run an independent coach profile (no club), every review of a class you teach counts toward your coach profile and your aggregate rating.
- If your class is listed under a club, the player's club part counts toward the club's profile, and their optional coach part counts toward YOUR coach profile and rating. Reviews left directly from your public coach profile also count toward your coach rating.
This means a player has at most one review per coach profile and one per club profile, regardless of how many classes they have booked. A second submission by the same player on the same coach or club updates the existing review.
Reminder cadence
The first review request email goes out about a day after the player's attendance is marked — whatever time of day you marked the roster. If they haven't reviewed after 7 days, AllSquads sends one (and only one) reminder. There is no further follow-up.
A player who has already reviewed you (or your club) is not sent further review requests, because a player leaves at most one review per coach profile and one per club profile. Where a player has several classes newly marked attended, their prompts are paced out over the following days — at most one per club per day and no more than three in a day — so the requests are not all delivered at once.
Indefinite review window
There is no hard cutoff. A player who attended months ago can still leave a review by going to the class page and clicking "Leave a review".
Responding to reviews
Dashboard > Reviews > select review > Respond. Post a public response visible below the review on your profile. One response per review; responses can be edited within 24 hours.
Appealing/flagging a review
Dashboard > Reviews > select review > Flag. Submit a reason (Inappropriate content, Factually incorrect, Not a real booking, or Other) with optional description. Appeals go to AllSquads admin for review. The review remains visible while under review. If admin upholds the appeal, the review is removed. Coaches cannot re-appeal a dismissed appeal.
Analytics
Available reports
Dashboard > Analytics provides:
- Revenue by period (Overview)
- Class performance and attendance (Classes tab)
- Player retention and acquisition (Players tab)
- Financial breakdown including booking fees and platform fees (Financials tab)
Settings
Personal profile
Personal profile settings (name, photo, bio, sports, qualifications, WWC, social links, availability) are accessed via the top-right avatar menu > My Profile at /dashboard/profile. This is separate from the club/org Settings in the sidebar.
Club/org settings
Dashboard > Settings (sidebar). Contains club-level settings: Organisation Profile, Payments/Stripe, Cancellation Policy, Team Management, Embed Widget, Pro Shop hours, Court hire settings.
Notification preferences
Dashboard > Settings > Notifications. Configure which events trigger email, SMS, or in-app notifications.
Cancellation policy defaults
A default cancellation policy can be set at the coach level and applied to new classes automatically.