End user documentation

How to use ControleHQ

Choose your role below. Each guide is self-contained so students, instructors, and academy administrators can follow only the instructions relevant to them.

Persona 1

Student guide

Use this section if you attend classes or seminars at an academy.

Join your academy and sign in

  1. 1Open the invitation or join link supplied by your academy.
  2. 2Create your account or sign in with the email address the academy invited.
  3. 3Complete your name and profile information when prompted.
  4. 4If you belong to more than one academy, use the academy switcher at the upper left to select the correct organization.

If the wrong academy appears or no academy is listed, ask an administrator to verify the email address on your membership.

Understand the main navigation

Dashboard

Your attendance, goals, mat hours, streaks, rank, and leaderboard.

Check in

Classes that are currently inside the academy’s check-in window.

Store

Products and variants offered by your academy.

Seminars

Upcoming events and your registration status.

Waiver

The current academy waiver and your signature status.

Bell

Announcements and notifications available to you.

Use your dashboard

  • Review classes attended this month and check-ins this week.
  • Compare weekly and monthly mat hours with the previous period.
  • Track your current and longest streak for each enrolled program.
  • Review your current belt rank and submit a rank-adjustment request when available.
  • View academy announcements and the monthly leaderboard if your academy enables it.
  • Use dashboard customization controls to reorder or hide cards and set personal class goals.

Check in to a class

  1. 1Select Check in in the top navigation.
  2. 2If prompted, read and sign the current academy waiver first.
  3. 3Find the class you are attending. Only classes in the academy’s configured check-in window appear.
  4. 4Select the class check-in action and wait for confirmation.
You need an active paid plan (or payment grace period) or owner/admin-granted payment bypass to check in. Pending payment blocks check-in until the plan is paid. If a class is missing or check-in is rejected, contact academy staff or your account holder. Scanning a class QR code follows the same waiver and eligibility rules.

Sign or review your waiver

  1. 1Choose Waiver from the top navigation.
  2. 2Read the entire current waiver.
  3. 3Enter your legal name and submit the signature form.
  4. 4Confirm that the page reports the current waiver as signed.

A newly published waiver is a new version and may require you to sign again. Waiver-exempt members will see an exemption message instead.

Register for a seminar

  1. 1Select Seminars from the top navigation.
  2. 2Open an upcoming seminar and review its date, details, capacity, and price.
  3. 3Register using the available registration action.
  4. 4Return to Seminars to confirm that your registration is shown.

Use the academy store

  1. 1Select Store from the top navigation.
  2. 2Browse available products and choose any required variant, such as size.
  3. 3Add items to your cart and review quantities before checkout.
  4. 4Review your cart and place the order when ready.

Product browsing and cart checkout are available. In-app store payment processing may still be handled offline by your academy.

Manage your profile and notifications

  1. 1Select your avatar in the upper-right corner, then choose Profile.
  2. 2Upload or change your avatar and update your real name or nickname preference.
  3. 3Choose whether to appear on the attendance leaderboard.
  4. 4Configure notification email delivery and immediate or digest mode.
  5. 5Use Log Out from the avatar menu when finished on a shared computer.

Manage billing and plans

  1. 1Open your avatar menu and choose Account, then Billing.
  2. 2Review plan enrollments for you and, if you are the primary contact, your household.
  3. 3Pay pending plans, cancel active plans, or change to another plan when offered.
  4. 4Primary contacts can open Manage billing to update payment methods and view invoices in Stripe.

Only the primary account contact can manage payment methods. Other members can pay or cancel their own enrollments. Payment bypass (comp) is granted by academy staff only.

Student troubleshooting

  • No gear icon is expected for a student-only account; organization settings are role-restricted.
  • After an administrator changes your role, log out and back in so your session receives the updated role.
  • If check-in redirects to Waiver, complete the current waiver and retry.
  • If a class is missing, it may not be inside the check-in window, may not have been generated from the schedule, or may belong to a program you cannot access.
  • Your plan controls paid program access. Pending payment blocks check-in until paid — use Account → Billing, ask your primary contact, or watch for a payment request email from the academy.
  • Your Account groups household members and billing; use Account → Billing to pay pending, cancel, or change plans.
  • If your rank, plan, or program is wrong, ask academy staff to update the member record.

Persona 2

Instructor guide

Use this section if you teach classes or help manage student progress.

Open instructor tools

  1. 1Sign in and select the academy you are working with.
  2. 2Select the gear icon in the upper-right corner.
  3. 3Use the organization sidebar to open the tools granted to your role.

Academy owners can customize which menus instructors see. Seeing a page does not always mean you can edit it. Instructors typically manage attendance, promotions, plans, and program enrollments. Creating programs, belt systems, schedules, announcements, seminars, store products, and waiver templates usually requires Owner or Admin.

Manage class attendance and rosters

  1. 1Open Schedule from organization settings.
  2. 2Review the week’s class instances and open a class roster.
  3. 3Generate a temporary check-in link or QR when you need to share attendance access.
  4. 4Add a member manually, edit attendance source, or remove an incorrect check-in when needed.
  5. 5Check yourself in when eligible.

Class times use the academy timezone. Creating or editing recurring schedules is usually Owner/Admin work. Check-in windows also come from academy settings.

Record student promotions

  1. 1Open Rank from the organization sidebar.
  2. 2Find the student and confirm the correct belt system.
  3. 3Review the current belt level and stripe count.
  4. 4Record the new belt level or stripe count and save the promotion.
  5. 5Confirm that the student’s dashboard now shows the updated rank.
  • A student should be enrolled in a program linked to the relevant belt system.
  • Review rank-adjustment requests from Notifications and approve or reject them.
  • Use the correct adult, kids, or discipline-specific belt system.

Manage plans and membership

  1. 1Open Plans to create or edit membership plans, prices, billing intervals, and included programs when authorized.
  2. 2Open Members — the Plans column shows each student’s plan enrollments (not payment bypass). Use the ⋯ menu on a plan for staff actions.
  3. 3Use + Add plan on a member to assign a plan: collect payment now, leave pending, or comp (owner/admin only).
  4. 4Payment bypass (legacy program access without a paid plan) is owner/admin only — use the member detail modal.
  5. 5For pending payment: ⋯ → Complete payment (run Checkout yourself), Send payment request (email the billing contact), or Copy payment link (share the Checkout URL).
  6. 6The same ⋯ menu is on Account detail → Plan enrollments and in the member detail modal.

Follow the dependency chain when troubleshooting: the class belongs to a program, the plan grants that program, and the plan enrollment grants access to a specific member inside an account.

What instructors can usually only review

  • Programs and Belt systems: review existing setup; create/edit is usually Owner/Admin.
  • Announcements: the page may be visible, but sending announcements is usually Owner/Admin.
  • Seminars and Store: review activity; creating or changing products/events is usually Owner/Admin.
  • Waivers: review the current template; publishing or replacing templates is usually Owner/Admin.

Instructor troubleshooting

  • If the gear icon or a menu is missing, ask an owner/admin to verify your organization role and menu access.
  • If a page is visible but save/create controls fail, you likely need Owner/Admin permission for that action.
  • After a role change, log out and log back in to refresh session claims.
  • If a member cannot check in, verify active program enrollment, account state, waiver, plan access, and the check-in window.
  • Do not use student-facing check-in to override eligibility; use authorized roster or kiosk staff controls.

Persona 3

Administrator & owner guide

Use this section to configure and operate the academy.

How the core records fit together

Most setup problems happen when a required record earlier in the chain is missing. Use this relationship map before creating schedules, enrolling students, or troubleshooting check-in.

Belt system → Program

A belt system defines rank levels and stripes. A program can link to one belt system so enrolled students can receive ranks in that progression.

Example: Adult Gi and Adult No-Gi programs could both use the same IBJJF Adults belt system. Kids BJJ might use a custom belt system so kids progress faster than the standard IBJJF system.

Program → Schedule → Class

A program is the activity being taught. A recurring schedule must select a program and instructor; it produces dated class instances with rosters and attendance.

Example: The Adult BJJ program has a recurring Monday/Wednesday 7pm schedule. That schedule creates dated class instances such as “Adult BJJ — Mon Mar 3, 7:00pm,” and attendance is recorded on each instance.

Program → Plan

Every plan must include at least one program. Those links determine which programs an active plan enrollment grants access to.

Example: A Monthly Unlimited BJJ plan includes Adult Gi and Adult No-Gi. A Kickboxing 1x weekly Add-on plan includes only one Kickboxing class a week. Creating either plan requires those programs to exist first.

Member → Account → Plan enrollment

A member is a person. An account is the billing or household container. Add the member to an account before assigning that person a paid plan.

Example: The Doe Family account includes Jane, John, Joey, and Jill. Jane and John each have Unlimited Adult BJJ; Joey and Jill are in the Kids program; Jane also has a Kickboxing add-on. Everything bills against the Doe Family account, and they can see each plan as a line item on their monthly statement.

Plan enrollment → Program access

An active plan enrollment grants the member access to that plan’s programs. A freeze, cancellation, or payment failure beyond the grace period can remove that access.

Example: Jane’s active Monthly Unlimited BJJ enrollment grants Adult Gi and Adult No-Gi. If that enrollment is frozen, cancelled, or past the payment grace period, she loses access to those programs even though she is still a member of the academy.

Program access → Class check-in

The class program must be in the member’s effective program access. Account state, waiver status, and the academy check-in window must also allow attendance.

Example: Jane can check in to tonight’s Adult Gi class because she has Adult Gi access, her account is not suspended, her waiver is signed, and class is inside the academy’s check-in window. She cannot check in to Kids BJJ because that program is not on her plan.

Typical dependency chain: Belt system → Program → Schedule/Class, and Program → Plan → Account plan enrollment → Member access → Check-in.

Understand the records before setup

  • Member: one student, instructor, staff member, or administrator in the academy. Pending invitees cannot use all enrollment actions until they join.
  • Account: an individual or family billing group with members and a primary contact. It is not a login and does not itself attend classes.
  • Program: an activity or curriculum such as Adult Gi or Kids BJJ. It connects plans, schedules, ranks, streaks, and attendance.
  • Plan: a priced membership product containing one or more programs. Base plans provide core access; add-ons can be configured to require an active base plan in the same account.
  • Program enrollment (payment bypass): owner/admin-only legacy access to a program without a paid plan; used for comps. Not managed from the Members table.
  • Plan enrollment: a specific member’s subscription to a plan inside an account. Active or in-grace payment_failed grants access; pending_payment does not. Staff can complete, email, or copy a payment link from the plan ⋯ menu.
  • Recurring schedule: the weekly template for a program. It generates class instances; attendance is recorded against an instance, not directly against the template.
  • Belt system and rank: the belt system defines valid progression. A program must link to it before students in that program can track meaningful ranks.

Recommended academy setup order

  1. 1General Settings: set timezone, check-in window, leaderboard, streaks, payment rules, logo, and menu access.
  2. 2Public page: configure academy contact details, theme, and public-facing content.
  3. 3Waivers: create a template and publish it as the current waiver.
  4. 4Belt systems: define progression and stripe limits.
  5. 5Programs: create programs and link belt systems.
  6. 6Schedule: create recurring weekly class slots.
  7. 7Plans: create base/add-on memberships, prices, billing intervals, and program access.
  8. 8Members and Accounts: invite members, create households, and enroll students.
  9. 9Billing and Stripe Connect: configure platform billing and member payment processing.
  10. 10Kiosks: configure the staff PIN, behavior, and paired devices.

Configure general academy settings

  1. 1Select the gear icon, then General Settings.
  2. 2Choose the academy timezone before creating schedules.
  3. 3Set how many minutes before class check-in opens and how long after class it closes.
  4. 4Choose weekly or per-class streak mode and configure leaderboard visibility.
  5. 5Configure whether add-on plans require a base plan and set the payment grace period.
  6. 6Upload the academy logo and save changes.
  7. 7Review Menu access to choose which tools instructors and staff can see.

Publish the public academy page

  1. 1Open Public page.
  2. 2Add the academy description, address, contact details, theme, and other available public information.
  3. 3Choose which qualified team members and membership plans should appear publicly.
  4. 4For a plan to appear during public signup, make it an active, non-archived base plan; enable public signup; link programs; synchronize it with Stripe; and select it for the public page.
  5. 5Preview the academy’s public URL before sharing it.

Create and publish a waiver

  1. 1Open Waivers and create a template with a clear title and complete legal text.
  2. 2Review the saved version, then mark it as the current waiver.
  3. 3Decide whether any individual member should be waiver-exempt from the Members page.
  4. 4When replacing a waiver, understand that the new current version may require every non-exempt member to sign again.
  5. 5Use revoke signatures only when you intentionally need to force re-signing.

Create belt systems, programs, and schedules

  1. 1Create belt systems first, including ordered levels and maximum stripes.
  2. 2Create programs such as Adult BJJ, Kids BJJ, or Kickboxing and link the correct belt system.
  3. 3Set any instructor-confirmation requirement on each program.
  4. 4Open Schedule and add recurring weekly slots with program, title, day, time, and duration.
  5. 5Open generated class instances to manage rosters and attendance.

Create plans and connect program access

  1. 1Create the programs the plan should unlock before opening Plans.
  2. 2Open Plans and create a base or add-on plan.
  3. 3Set the price, billing interval, and at least one included program.
  4. 4Use a base plan for core membership. Use an add-on for optional access, and check the General Settings rule that may require a base plan in the same account.
  5. 5Archive obsolete plans instead of using them for new enrollments.
  6. 6For paid or public signup, connect Stripe and confirm the plan is synchronized before taking payments.

Editing a plan’s program links changes the access that active plan enrollments provide. A plan does not create classes; schedules still need to be created for the linked programs.

Invite and manage members

  1. 1Open Members and create an invitation with the correct email and role.
  2. 2Assign the initial account state and billing account as needed.
  3. 3After the member joins, open their detail view to manage account state, waiver exemption, payment bypass, ranks, plans, and profile visibility.
  4. 4Use Admin only for users who should manage organization configuration; use Instructor or Staff for limited operational access.
  5. 5Ask users to log out and back in after changing their role.

Manage accounts and membership plans

  1. 1Open Accounts and create an individual or household account.
  2. 2Add joined, non-admin members and choose the primary contact. Admin-role users cannot belong to billing accounts.
  3. 3From Members, use + Add plan (collect payment, pending, or comp) or open Account detail → Plan enrollments.
  4. 4For pending enrollments, open the plan ⋯ menu: Complete payment (staff Checkout), Send payment request (email link to the primary contact), or Copy payment link.
  5. 5Use Pause, Cancel, or Add freeze on active enrollments according to academy policy.

A member must belong to the account before receiving a plan. Add-on plans may require an active base plan. Primary contacts can pay pending plans under Account → Billing. Payment request emails go to the primary contact when set, otherwise the enrolled member. Requires email delivery (Resend) to be configured. Enable Customer Portal on the connected Stripe account for payment method updates.

Configure billing and payments

ControleHQ billing

Manage the academy’s subscription to ControleHQ and open the billing portal when available.

Member payments

Connect Stripe before charging plans. Members pay via Account → Billing. Staff use the plan ⋯ menu (Members, member detail, or Account detail) to complete payment, email a payment request, or copy a Checkout link. Configure Customer Portal on the connected account for card updates and invoices.

Manage announcements, seminars, and store

  • Announcements: publish global or role-targeted messages and monitor visibility.
  • Seminars: create events, define registration details, and manage attendance.
  • Store: create products and variants, update inventory, and review orders.

Pair and manage kiosk devices

  1. 1Open Kiosks and configure the shared staff PIN.
  2. 2Choose whether mobile QR check-in, ineligible students, and ineligibility reasons are visible.
  3. 3Create a pairing code and enter or scan it on the kiosk app before it expires.
  4. 4Label the paired device so staff can identify it.
  5. 5Review last-seen status and revoke any lost, replaced, or unauthorized device.

Revocation takes effect on the kiosk’s next API request. The device then returns to its pairing screen.

Configure security and SSO

  • Use Security Policies to configure organization MFA requirements and allowed factors.
  • Use SSO to configure supported SAML or OIDC enterprise connections and provisioning.
  • Some SSO and security mutations require the Admin role specifically, even when Owner can see the menu.
  • Test a new connection with a limited group before broad rollout.
  • Keep at least one working owner/admin login outside a new SSO connection until testing is complete.

When a button, member, plan, or class is missing

  • Cannot create a plan: create at least one program first because every plan requires one or more included programs.
  • Cannot create a recurring class: create an active program and ensure an eligible instructor exists; the schedule needs both.
  • Add plan enrollment is disabled: the account needs at least one joined member and an available plan. Pending invitees and admin-role users are not valid billing-account members.
  • A member is absent from the plan selector: add that joined member to the account first and confirm they are not an Admin.
  • Cannot add an add-on: check whether General Settings requires an active base plan in the same account, then add the base enrollment first.
  • Plan is absent from public signup: verify base type, public-signup setting, active/not archived state, linked programs, Stripe synchronization, and public-page selection.
  • Student cannot see or check into a class: confirm the schedule generated a class instance, the instance uses a program the student can access, and the current time is inside the check-in window.
  • Program enrollment seems ignored: distinguish paid plan access vs payment bypass. Pending payment blocks check-in until paid.
  • Complete pending payment: member uses Account → Billing, or staff uses plan ⋯ → Complete payment, Send payment request, or Copy payment link (Members, member detail, or Account detail).
  • Send payment request fails: confirm RESEND_API_KEY is set and the billing contact or enrolled member has an email address.
  • Access stopped unexpectedly: check cancellation, freeze dates, payment-failed status and grace period, account suspension, and whether the plan still includes the program.
  • Rank controls are empty: link a configured belt system to the student’s program and ensure that belt system has levels.

Administrator troubleshooting

  • Missing gear/menu: verify the user’s organization role, menu access, and fresh login session.
  • Student cannot check in: trace Schedule/Class → Program → paid plan or payment bypass, then verify account state, waiver, pending payment, and check-in time.
  • Add plan button missing: create an active plan, place the joined student in an Account, and use a non-admin member.
  • Payments unavailable: verify Stripe Connect, that the plan is synchronized, and billing is ready on the plan ⋯ menu.
  • Payment request email not received: check spam, confirm Resend is configured, and verify the account primary contact email.
  • Kiosk unauthorized: confirm it is paired and not revoked.
  • Times appear wrong: correct the academy timezone before editing schedules.

Ready to open ControleHQ?

Sign in to access your academy. Your role determines which tools are shown.

Log in