Gymkhana Tools User Guide

Gymkhana Tools helps riding-club volunteers manage club setup, memberships, riders, gymkhana registration, run order, scribe result entry, live public results, records, and season standings.

The features you see depend on your assigned role. Ordinary club users work in one club at a time. The club name shown beneath the Gymkhana Tools logo is the current club context. If that club name is wrong, stop before entering or changing event data and contact an administrator.

Platform administration is separate from ordinary club operation. Platform administrators manage club onboarding and lifecycle at a high level; they do not run registration, scribe, rider, member, or event-day workflows for a club.

Getting Started

Signing In

Role required: any active Gymkhana Tools account.

  1. Open Gymkhana Tools.
  2. Enter your email/login and password on the sign-in page.
  3. Select the sign-in button.
  4. Confirm that the page that opens matches your expected role:
  • Club administrators usually land on the Admin Dashboard.
  • Registration volunteers usually land on the Registration Dashboard.
  • Announcer/scribe users usually land on the Announcer / Scribe Dashboard.
  • Platform administrators land on Platform Administration.

If sign-in fails, recheck the email/login and password. If the account or club has been deactivated, contact the appropriate administrator.

Signing Out

Role required: any signed-in user.

  1. Select Logout in the navigation bar.
  2. Confirm the next person using the device is not still signed in as you.

Gymkhana Tools sessions are time limited. If the app asks you to sign in again during a long day, sign back in and confirm the club name before continuing.

Identifying the Current Club

Role required: any ordinary club user.

The current club name appears beneath the Gymkhana Tools logo on signed-in club pages. That name comes from your account. Ordinary users do not switch clubs inside the application. A volunteer who works with multiple clubs needs a separate login for each club.

Role-Based Menus

Only functions allowed for your account appear in normal navigation. On smaller screens, use the collapsed menu button in the header to reveal navigation.

If a menu or action is not visible:

  1. Confirm you are signed in with the correct account.
  2. Confirm the club name beneath the logo is correct.
  3. Ask a club administrator to verify your role.
  4. Do not ask another volunteer to share their account.

Password Requirements

When an administrator creates, resets, or bootstraps an account password, use at least 16 characters. Long passphrases are encouraged, spaces are allowed, and Gymkhana Tools does not require a special character, uppercase letter, number, or other composition formula. Common or easily guessed complete passwords are rejected. Password-manager-generated passwords, paste, and browser autofill remain supported.

The same requirements apply to club users, platform administrators, the first administrator created during Onboard Club, and the cmd/platformadmin bootstrap/recovery command. Existing passwords do not need to be changed solely because of this policy.

Roles and Responsibilities

Club Administrator

Club administrators set up and maintain the club's operating data. They manage Club Profile, Rider Classes, Event Types, Seasons, Gymkhanas, Membership Configuration, Club Users, Members, Riders and Horses, Records, and administrative audit/build information. They can read formal Release Notes and can also use registration and scribe workflows when needed.

Registration Volunteer

Registration volunteers use Registration Dashboard, Manage Riders, Gymkhana Registration, Add Competitor, Edit Competitor, entry filters, paid and checked-in tracking, scratches, additional horse runs, and Run Order Adjustment. They do not manage club-wide setup such as seasons, event types, membership configuration, or club users.

Announcer/Scribe

Announcer/scribe users use Announcer / Scribe Dashboard, result-entry filters, run queues, Current Run Entry, Correct Existing Result, Restore Scratched Run, Current Results, Fastest Times - All Classes, View Records, and Season Standings when a public live token exists.

Platform Administrator

Platform administrators manage clubs at the platform level. They can onboard clubs, activate or deactivate clubs, regenerate a club public live token, manage ordinary club Administrator accounts, manage platform administrator accounts, and read formal Release Notes. They do not manage routine Registration or Announcer/Scribe accounts and do not replace club administrators for routine club operation.

Release Notes and Build Information

Role required: ordinary club Administrator or Platform Administrator.

Club Administrators open System -> Release Notes. Platform Administrators select Release Notes in Platform Administration navigation. The page selects the newest available formal release by default; select another version from Available releases to read its notes. On a narrow screen, the release list appears above the selected content.

Release Notes summarize user-visible and Administrator-relevant changes in formal releases. They are read-only. Registration and Announcer/Scribe users do not have access, and the notes are not published through Public Live.

Release Notes do not identify the application build currently running. Club Administrators use System -> Build Information for the running Version, Git commit, and Build timestamp. Platform Administrators can view the running build metadata on Platform Dashboard. A development build may therefore display older formal Release Notes while Build Information identifies the current development version.

Platform Administrator Account Management

Role required: active platform administrator.

Open Platform Administrators from the platform navigation or select Manage Platform Administrators on Platform Dashboard.

View Platform Administrators

The Platform Administrators page lists platform administrator Display Name, Email/Login, Active or Inactive status, Created date, and available actions. The current account is marked You. Club users do not appear on this page.

Add a Platform Administrator

  1. Select Add Platform Administrator.
  2. Enter Display Name.
  3. Enter Email/Login.
  4. Enter Password and Confirm Password.
  5. Leave Active checked unless the account should be created inactive.
  6. Select Save Platform Administrator.

Password and Confirm Password must match and follow Password Requirements.

Gymkhana Tools creates a clubless platform administrator account. It does not create a club membership, ordinary role assignment, or club user record. Duplicate Email/Login values are rejected with That email/login is already in use.

Edit a Platform Administrator

  1. On Platform Administrators, select Edit.
  2. Update Display Name or Email/Login as needed.
  3. Change Active only when intentionally activating or deactivating the account.
  4. Select Save Platform Administrator.

The form does not expose club ID, ordinary role, or platform role fields. Platform administrators cannot be converted into ordinary club users from this page.

Activate or Deactivate

Use Activate or Deactivate on the Platform Administrators list. Deactivate asks for browser confirmation with Deactivate this platform administrator? Deactivation preserves the account record and prevents future sign-in while inactive.

Gymkhana Tools rejects self-deactivation. It also rejects any deactivation that would leave the platform with no active platform administrator and shows The platform must keep at least one active platform administrator.

Reset a Platform Administrator Password

  1. On Platform Administrators, select Reset Password.
  2. Enter New Password and Confirm New Password.
  3. Select Reset Password.
  4. Confirm the browser prompt Reset this platform administrator password?

New Password and Confirm New Password must match and follow Password Requirements.

The existing password and password hash are never shown. Reset Password assigns the new password directly; Gymkhana Tools does not send reset email, invitation email, MFA challenge, or password-reset token in this workflow.

Bootstrap and Recovery

Normal ongoing platform administrator account management should use Platform Administrators in the application. The cmd/platformadmin command remains for bootstrap or recovery when no valid platform administrator can sign in or the web UI is unavailable. That command prompts for password and confirmation, enforces Password Requirements, and should be run only by an authorized operator against the intended database. A rejected password is not displayed, hashed, or saved.

Onboarding a Club

Role required: active platform administrator.

  1. Open Clubs from Platform Administration.
  2. Select Onboard Club.
  3. Enter Club Name and choose Active as intended.
  4. Under First Administrator, enter Display Name and a globally unique Email/Login.
  5. Enter Initial Password and Confirm Password. They must match and follow Password Requirements.
  6. Select Save Club.

Gymkhana Tools creates the club, first active ordinary club administrator, initial public live token, and platform audit record together. It does not seed seasons, rider classes, event types, gymkhanas, riders, members, registrations, results, or extra users.

If the club is created inactive, the first administrator account still exists but cannot use club workflows until the club is activated. Share the initial credential only through an approved private method.

Managing a Club's Administrators from Platform Administration

Role required: active platform administrator.

Open Platform Administration, select Clubs, then select View for the intended club. The Administrators area on Club Detail shows only ordinary Administrator accounts belonging to that club. Registration and Announcer/Scribe users do not appear and cannot be managed from this area.

Add an Administrator

  1. On Club Detail, select Add Administrator.
  2. Enter Display Name.
  3. Enter a globally unique Email/Login.
  4. Enter Initial Password and Confirm Password. They must match and follow Password Requirements.
  5. Leave Active checked unless the account should be created inactive.
  6. Select Save Administrator.

Gymkhana Tools assigns the current club and ordinary Administrator role. There is no club selector or role selector on the form, and the account is not a Platform Administrator. A duplicate Email/Login shows the generic message That email/login is already in use without identifying the other account or club.

Edit Administrator Identity

  1. In the Club Detail Administrators area, select Edit for the intended Administrator.
  2. Update Display Name or Email/Login.
  3. Select Save Administrator.

Edit does not change the account's club, Administrator role, active state, or platform identity. Use the separate Activate or Deactivate action for active state. This platform support workflow intentionally permits Email/Login correction even though the ordinary club Users workflow keeps Email/Login read-only after creation.

Reset an Administrator Password

  1. In the Club Detail Administrators area, select Reset Password.
  2. Enter New Password and Confirm New Password. They must match and follow Password Requirements.
  3. Select Reset Password.
  4. Confirm Reset this club administrator password?

The existing password and hash are never shown. The new password applies to future sign-ins, but an already authenticated session is not invalidated automatically. This workflow does not send email, create a reset token, or require a password change at next sign-in.

Activate or Deactivate an Administrator

Use Activate or Deactivate in the Club Detail Administrators area. Deactivate asks Deactivate this club administrator? Deactivation preserves the account and its history.

Gymkhana Tools rejects a deactivation that would leave the club with no active ordinary Administrator and shows The club must keep at least one active administrator. This protection also applies while the club itself is inactive, so an Administrator remains available for future club reactivation.

Replace a Departing Administrator Safely

  1. Add the replacement with Add Administrator.
  2. Verify the replacement account exists and, in the appropriate test or deployed environment, can sign in.
  3. Return to the club's Club Detail page.
  4. Deactivate the departing Administrator.

There is no Replace Administrator transfer action. Do not deactivate the departing Administrator before another active Administrator has been created and verified.

Every successful add, identity edit, password reset, activation, and deactivation creates a durable audit entry associated with the affected club. Platform Administrators never gain a club session, ordinary club role, or impersonation access through these controls.

Initial Club Setup

Role required: club administrator.

Use this order for a new or freshly onboarded club:

  1. Open Club Profile and confirm Club Name, contact information, Run Position Terminology, Points Configuration, Active, and Public Live Scoreboard settings.
  2. Open Rider Classes and create the divisions/classes riders will use.
  3. Open Event Types and create the reusable gymkhana events.
  4. Open Seasons and create the season date range before creating gymkhanas.
  5. Open Membership Configuration and confirm Membership Types, Membership Classifications, Membership Statuses, Payment Statuses, and Committees.
  6. Open Club Users and create volunteer accounts for administrators, registration volunteers, and announcer/scribe users.
  7. Open Members and enter member records that should be available for registration lookup and season standings eligibility.
  8. Open Riders and Horses for off-event rider cleanup or pre-entry rider maintenance.
  9. Open Gymkhanas and create the gymkhana for the correct season.
  10. From the Gymkhanas list, open Configure Gymkhana Events for the gymkhana, select included Event Types, set Run Order, and configure Event Groups if needed.
  11. Before registration begins, confirm the gymkhana is Active and has the intended Status, selected events, rider classes, and registration window information.

Do not begin event-day registration until the gymkhana has selected events. Add Competitor is disabled when no events are configured for the gymkhana.

Managing Club Users

Role required: club administrator.

Open People, then Users, or select Users from the Admin Dashboard.

Creating Accounts

  1. Select Add User.
  2. Enter Display Name.
  3. Enter Email/Login.
  4. Choose Role.
  5. Enter Initial Password and Confirm Password.
  6. Leave Active checked unless the account should not be usable yet.
  7. Select Save User.

Initial Password and Confirm Password must match and follow Password Requirements.

Allowed roles are Administrator, Registration, and Announcer/Scribe. The application does not send invitation email, deliver credentials, require password change on next sign-in, or provide self-service password reset.

Editing Accounts

  1. On Club Users, select Edit for the account.
  2. Update Display Name or Role.
  3. Select Save User.

Email/Login is set when the account is created and is read-only on Edit User.

Resetting Passwords

  1. On Club Users, select Reset Password for the account.
  2. Enter New Password and Confirm Password.
  3. Select Reset Password.
  4. Give the new password to the volunteer through an approved private method.

New Password and Confirm Password must match and follow Password Requirements.

A password reset changes future sign-ins. It does not necessarily end an already active session immediately.

Activating and Deactivating Users

Use Activate or Deactivate on the Club Users list. Deactivation preserves the account record. Deactivate asks for browser confirmation with Deactivate this user?

Administrator protections are enforced: you cannot deactivate yourself, deactivate the last active administrator, or demote the last active administrator. Club administrators manage only ordinary users in their own club. Platform administrators and users from other clubs do not appear in Club Users.

Membership Management

Role required: club administrator.

Membership setup is split between Membership Configuration and Members.

Membership Configuration

Open Club Setup, then Membership Configuration. Configure:

  • Membership Types
  • Membership Classifications
  • Membership Statuses
  • Payment Statuses
  • Committees

Each list supports Add, Edit, Show Inactive or Hide Inactive, and Archive where available. Archived configuration items become inactive but remain visible where existing member records already use them.

Member Records

Open People, then Members.

The Members list shows a concise summary: Member Name, Type, Voting, Expiration, Membership Status, Payment Status, Buckle Eligible, and Actions. Use View for the full read-only member record, Edit to change it, Delete to archive/deactivate it, and Show Inactive when archived records need review.

Member forms include Membership Name, Membership Type, Classification, Date Received / Start Date, Expiration Date, Membership Status, Payment Status, Hardship Fund Donation, Buckle Eligible, First Name, Last Name, Contact Name, Birthdate, Voting Member, Phone, Email, Address, Primary Family Member, Emergency Contact, Committee Interests, and Notes.

Membership Status and Payment Status describe real-world standing and payment state. Archiving a member is separate from those fields. Season standings include active linked club members only; changing a descriptive status does not by itself prove standings eligibility if the member record is archived or the rider is not linked to a member.

Riders and Horses

Role required: club administrator or registration volunteer.

Open Registration Dashboard, then Manage Riders, or open People, then Riders and Horses as an administrator.

Manage Riders is off-event rider maintenance. It is different from Gymkhana Registration, which registers a competitor for one selected gymkhana.

Rider forms include First Name, Last Name, Rider Class, Member / Family, Birthdate, Phone, Email, Parent / Guardian Name, Emergency Contact Name, Emergency Contact Phone, Notes, and Active.

Use Manage Riders when you need to search active/inactive riders, update contact or emergency information, link a rider to a member, change a rider class outside a specific event, add notes, reactivate a rider, or archive a rider. Archiving is a soft delete; it preserves historical event data.

Horse handling is event-specific in the current application. The Add Competitor page has Horse Name. The Edit Competitor page calls this Primary Horse Name and also supports Additional Horse Runs. There is no standalone horse-management dashboard.

Preparing a Season

Role required: club administrator.

Open Club Setup, then Seasons.

  1. Select Add Season.
  2. Enter Season Name.
  3. Enter Start Date and End Date.
  4. Choose Status: Draft, Active, Completed, or Archived.
  5. Add Notes if useful.
  6. Check Default Season if this should be the normal selection.
  7. Select Save Season.

Season names must be unique within the club. Season date ranges cannot overlap another season for the same club. If a season already has linked gymkhanas, date changes must keep those gymkhanas inside the season range.

Archived seasons remain available for history and standings but are not offered for new gymkhana creation.

Preparing a Gymkhana

Role required: club administrator.

Open Club Setup, then Gymkhanas.

  1. Select Add Gymkhana.
  2. Enter Name.
  3. Select Season.
  4. Enter Event Date. The date must fall within the selected season.
  5. Enter Start Time if useful.
  6. Choose Status: Draft, Open, Closed, Completed, or Cancelled.
  7. Enter Registration Opens and Registration Closes if the club tracks those times.
  8. Enter Location and Arena Name.
  9. Enter Event Director Name, Phone, and Email if useful.
  10. Add Notes.
  11. Leave Active checked unless this gymkhana should be hidden from normal active lists.
  12. Select Save Gymkhana.

After the gymkhana exists, select Events or Configure Gymkhana Events from the Gymkhanas area.

  1. Check Include for each Event Type that belongs in the gymkhana.
  2. Set Run Order values.
  3. Select Save Gymkhana Events.
  4. If events should be grouped for event-day flow, enter New Group Name, select included Selected Event rows, set Group Order, and select Create Event Group.
  5. For an existing group, edit Group Name, Include, or Group Order, then select Save Group.
  6. Use Delete only when you intend to remove the event group. The page asks Delete this event group?

Event Groups affect scribe/live execution order only. They do not combine results, records, daily placings, or season points.

Registration Workflow

Role required: club administrator or registration volunteer.

Gymkhana Registration is event-specific.

Selecting a Gymkhana

  1. Open Registration Dashboard.
  2. Select Open Registration.
  3. On Select Gymkhana, choose Open for the correct gymkhana.
  4. Confirm the Entries page shows the correct gymkhana name and date.

The Select Gymkhana list shows active gymkhanas. The application displays the gymkhana Status, but current registration pages do not provide a separate closed-registration dashboard.

Adding a Competitor

  1. On Entries, select Add Competitor.
  2. Enter First Name and Last Name. Start typing to search membership database.
  3. If a matching Active or Pending member appears, select that member. The badge changes from Non-member to Member or Pending Member and can fill contact details. If you later change the rider name so it no longer matches the selected member, the member link is cleared and unchanged auto-filled contact fields are cleared; manual contact edits are preserved.
  4. Select Rider Class.
  5. Enter Birthdate if known.
  6. Enter Horse Name for the primary horse.
  7. Enter Phone and Email if useful.
  8. Enter Parent / Guardian Name and Emergency Contact fields if useful.
  9. Under Events Entered, select at least one event.
  10. Check Paid if payment has been received.
  11. Check Checked In if the rider is physically checked in for the event day.
  12. Add Notes if needed.
  13. Select Save Competitor.

A competitor cannot be saved without at least one entered event. If no events have been configured, the page warns that no events are configured and disables Save Competitor.

When saving a new competitor, Gymkhana Tools reuses an existing same-club rider when the trimmed, case-insensitive first name, last name, and rider class match. A rider cannot be registered twice for the same gymkhana. If a duplicate is detected, use Edit on the existing entry instead of adding another competitor.

Editing a Competitor

  1. On Entries, find the rider.
  2. Select Edit.
  3. Update rider details, Primary Horse Name, event selections, scratches, Additional Horse Runs, Paid, Checked In, or Notes.
  4. Select Save Competitor.

Primary Horse Events are the rider's normal entered events and count toward points unless scratched. Additional Horse Runs are separate runs for an extra horse and do not count toward class results or points.

To add additional horse runs, enter Additional Horse Name, then select the additional-horse events. Leave Additional Horse Name blank if there is no additional horse.

Scratches

On Edit Competitor, use Scratch from this event for a primary-horse event, Scratch extra horse for an additional-horse run, or Scratch All Events when the rider is scratching from all entered events. Scratch Reason is optional.

An unselected event is not a scratch. It simply was not entered.

The Entries list shows:

  • Registered when no entered primary-horse events are scratched.
  • Partially Scratched when some entered primary-horse events are scratched.
  • Fully Scratched when all entered primary-horse events are scratched.

Paid means payment has been received. Checked In means the rider has been checked in for event-day participation. Both fields are maintained on Add Competitor and Edit Competitor. There is no separate Check-In dashboard.

Run-Order Effects

Saving registration creates or updates the run-order rows used by registration, scribe, and public live pages. Scratches appear in the scribe/live status as Scratch and are skipped by the pending queue.

Use Run Order Adjustment on the Entries page only when the event director or registration lead decides a manual order change is needed.

Check-In

Role required: club administrator or registration volunteer.

Check-in occurs inside Add Competitor and Edit Competitor.

  1. Open the correct gymkhana through Gymkhana Registration.
  2. Add or edit the competitor.
  3. Set Paid based on payment received.
  4. Set Checked In based on physical event-day check-in.
  5. Select Save Competitor.

Paid and Checked In are separate. A rider may be paid but not checked in, checked in before payment is marked, or both. Confirm both before the first event.

Run Order and Event Groups

Role required for manual run-order changes: club administrator or registration volunteer. Role required for event-group configuration: club administrator.

Run Order Adjustment appears on the Entries page.

  1. Select Event.
  2. Select Class.
  3. Select Run Type: Primary Horse or Extra Horse.
  4. Select Load.
  5. Use Up or Down to move a row one position.

Manual moves preserve the selected Event, Class, and Run Type filters after the move.

Event Groups are configured from Configure Gymkhana Events. They let grouped events display as rider-through-group blocks in scribe and public live views. Grouped events remain separate events for result entry, placings, records, and points. A selected gymkhana event can belong to only one event group.

Registration edits, scratches, and additional horse changes feed the same run-order data used by scribe and public live views. If scribe does not show a recent registration change, refresh the scribe page or confirm the correct gymkhana and filters are selected.

Announcer/Scribe Workflow

Role required: club administrator or announcer/scribe.

Opening the Scribe Page

  1. Open Announcer / Scribe Dashboard.
  2. Choose Open for the correct gymkhana.
  3. Confirm the gymkhana name, season, date, and location.
  4. Use Filters to choose Event, Class, Run Type, and Rider Search.
  5. Select Go.

Run Type choices are Primary, Extra Horse, and All. Primary shows primary runs only, Extra Horse shows additional-horse runs only, and All shows both. Queue cards remain global and are not narrowed by these display filters.

Understanding the Queue

The page shows a current context banner, queue cards using the club's Run Position Terminology, the Runs table, Additional Horse Runs, Current Results, a compact event-progress summary with Registered Riders, Runs, and Estimated Finish, and Fastest Times - All Classes.

Registered Riders is the number of distinct riders registered for the selected gymkhana. Scratch status does not remove a rider from that registration count. Runs is displayed as Completed / Expected for the entire gymkhana. Expected includes primary and additional-horse runs that have occurred or still need to occur. Completed includes normal completed results, DQ, and No Time because those arena runs no longer need to be performed.

A pending Scratch is removed from Expected and does not increase Completed. Restoring the run adds it back to Expected; Restore Previous Result also returns the preserved Completed, DQ, or No Time state to Completed. Correcting an existing result does not add another completed run. Event, Class, Run Type, and Rider Search filters affect the displayed run list, not the whole-gymkhana progress summary.

Estimated Finish answers approximately when the whole gymkhana may finish while its Status is Open. Before current results exist, it uses the configured gymkhana Start Time and an expected total duration. It may change as real operational pace, a late start, or delays become visible. The ~ means the time is approximate, not guaranteed. When an Open gymkhana has no remaining executable work, the field displays Completed. Once the Status is Draft, Closed, Completed, or Cancelled, the field displays that actual status instead of an ETA; for example, a Closed historical event remains Closed even when all runs have results. Event, Class, Run Type, and Rider Search filters do not change it. The summary refreshes automatically without replacing an active result-entry editor.

Only pending rows feed the queue cards. Completed, DQ, No Time, and Scratch rows remain visible in the run list but are not treated as the next pending rider.

Entering a Time

  1. In Runs, select Enter Result for the intended pending row.
  2. In the inline Scribe Result Entry editor beneath the selected row, confirm the rider, horse, event, class, and Primary or Extra Horse label.
  3. Enter the Time.
  4. Select Save Time.
  5. Wait for the success feedback before moving on.

Do not re-submit just because a page refresh appears delayed. The form disables buttons while saving, the open editor is protected from automatic run-list polling, and the run list refreshes after the save completes.

DQ, No Time, and Scratch

Use DQ to save a DQ result. Use No Time to save a No Time result.

To Scratch a pending run from scribe:

  1. Open Enter Result for the row.
  2. Check I understand this will scratch [rider] from [event].
  3. Select Scratch.

Scratch requires the confirmation checkbox for new scratch submissions.

Editing a Completed Result

Completed, DQ, and No Time rows show Update.

  1. Select Update.
  2. Review Correct Existing Result and Current result.
  3. Enter the replacement time, or select DQ, No Time, or Scratch as appropriate.
  4. Check I understand this will overwrite the current result for [rider].
  5. Select Save Correction or the intended status button.

Restoring a Scratch

Scratch rows show Restore.

  1. Select Restore.
  2. If the panel says Restore Scratched Run, check the confirmation to restore the run to Pending.
  3. If the panel says Restore Previous Result, check the confirmation to remove the Scratch and restore the existing result.
  4. Select Restore Run or Restore Previous Result.

A scratched run must be restored before a new time, DQ, No Time, or Scratch can be entered.

Close

Close closes the current inline result-entry editor and discards unsaved input only. It does not change stored times, statuses, placings, fastest times, standings, records, or live results.

Stale or Changed Entries

If another user or a registration edit changes the same run while your form is open, Gymkhana Tools may reject the save and ask you to reload the current result and try again. Reopen the row, verify the latest status, and coordinate with registration or the event director before correcting consequential results.

Public Live Scoreboard

Role required to configure/share: club administrator. Public viewers do not sign in.

Club Profile contains Public Live Scoreboard controls: Public Live Token, Public Live URL, QR Code Instructions, Generate Token or Regenerate Token, and Generate QR Code.

  1. In Club Profile, generate a token if Public Live Token is blank.
  2. Save QR Code Instructions with Save Club Profile if they changed.
  3. Use Public Live URL for sharing, or select Generate QR Code for a printable QR page.
  4. Verify the public page opens before posting or printing the link.

The public page is read-only. It shows the selected gymkhana, Season Standings link, Filters, the same Registered Riders, Runs Completed / Expected, and Estimated Finish summary as Scribe, queue cards, Run Order, Additional Horse Runs, and Current Results. The progress summary and finish/status state cover the whole gymkhana and do not change with the display filters. While the gymkhana is Open, Estimated Finish starts from the configured Start Time, adapts as current pace becomes known, and displays Completed when no executable work remains. For Draft, Closed, Completed, or Cancelled gymkhanas, it displays the actual status instead of an ETA. It refreshes automatically with the public run-order polling. Do not expose administrative screens, volunteer login credentials, member contact details, or public token values in screenshots or support notes.

Regenerate Token invalidates the previous public scoreboard URL and QR code.

Season Standings

Public access: anyone with the club public live URL/token. Authenticated announcer/scribe users can open Season Standings from the navigation when the club has a public live token.

Season Standings shows [Club Name] Season Standings, a season selector, and groups by rider class. It includes Rank, Rider, Member, and Points.

Standings are calculated dynamically from completed primary-horse results for gymkhanas in the selected season. They include active linked club members only. Non-members may place in event results, but they do not appear in season standings and do not consume season point positions. Additional horse runs, DQ, Scratch, No Time, Pending, and other non-completed runs earn 0 points.

Standings aggregate by rider name and class rather than separating a rider's total by horse.

Records

Role required: any signed-in user who can open Records; administrators and announcer/scribe users have navigation or dashboard access.

The Records page is titled Current Records. It shows Fastest completed primary runs by event.

Use the season selector to change Selected Season Records. The page also shows All-Time Records across seasons. Correcting a completed result can change records because records are calculated from current completed results rather than a separate stored record table. DQ, No Time, Scratch, Pending, and additional horse runs do not become records.

Correcting Results and Registration Mistakes

Role required: depends on the correction. Registration corrections require administrator or registration. Result corrections require administrator or announcer/scribe.

Registration Corrections

Use Edit Competitor to correct rider details, Primary Horse Name, selected events, Additional Horse Runs, Paid, Checked In, Notes, or scratches. Save the competitor, then confirm scribe and public live show the expected status.

Stop and verify with the event director before changing entries after runs have started, especially if results already exist.

Result Corrections

Use Update for completed, DQ, and No Time results. Use Restore for Scratch rows. Confirm overwrite or restore checkboxes when shown.

Corrected results update Current Results, public live results, records, and season standings after the save and refresh. If a stale-change warning appears, reopen the row and coordinate before retrying.

Closing or Finishing a Gymkhana

Role required: club administrator for gymkhana status changes; registration and scribe roles assist with verification.

Gymkhana Tools has Status values on the Gymkhana form: Draft, Open, Closed, Completed, and Cancelled. The current application does not provide a separate formal event closeout dashboard.

Practical post-event steps:

  1. In Registration, confirm all competitors have correct Paid, Checked In, and scratch state.
  2. In Scribe, review Current Results for every event/class and additional horse run.
  3. Correct DQ, No Time, Scratch, or timing mistakes before declaring results final.
  4. Check Public Live Scoreboard and Season Standings.
  5. Check Current Records.
  6. If the club uses gymkhana Status operationally, have an administrator update the gymkhana to Closed or Completed.
  7. Avoid regenerating the public live token after the event unless old public links must be invalidated.

Troubleshooting

Login Fails

Recheck email/login and password. If the account should work, ask a club administrator to verify that the user and club are active. If the club itself is inactive, contact a platform administrator.

Expected Menu Is Missing

Confirm the account role and club name. On a phone or narrow screen, open the collapsed navigation menu. Ask a club administrator to verify your role.

Wrong Club Name Is Shown

Stop before entering data. Sign out and sign in with the correct account. If the wrong name remains, contact an administrator.

Rider Cannot Be Found

Check spelling in registration member lookup and Manage Riders. For member lookup, both First Name and Last Name searches may matter. If the rider needs off-event cleanup, use Manage Riders.

Duplicate Competitor Warning

Do not add another entry. Return to Entries, search for the rider, and use Edit.

Registration Change Is Not Visible to Scribe

Confirm both users selected the same gymkhana and filters. Refresh the scribe page. Check whether the row is under Primary or Extra Horse and whether it is scratched.

Result Entry Appears Stale

Do not keep pressing Save. Reopen the run row, review the current status, and coordinate with the event director if a correction is needed.

Live Page Does Not Update

Refresh the public page. Confirm the URL uses the current public live link. If a token was regenerated, old QR codes and old links no longer work.

Wrong Season or Gymkhana Selected

Return to the dashboard or selector and choose the correct season or gymkhana. Confirm the club name beneath the logo before saving changes.

Mobile Menu Is Collapsed

Use the navigation toggle in the header to show the menu.

Browser Shows Stale Styling After Deployment

Refresh the page. If it still looks wrong, use the browser's hard refresh option and sign out/in if needed.

Event-Day Checklist

Before Registration Opens

  1. Confirm the correct club name appears after sign-in.
  2. Confirm Club Profile points, queue labels, public live token, and QR instructions.
  3. Confirm rider classes, event types, season, gymkhana, selected events, and event groups.
  4. Confirm volunteer accounts and roles.
  5. Confirm member records needed for lookup and standings.
  6. Verify public live URL or QR page if sharing with spectators.

Before the First Event

  1. Confirm all competitors are entered in the correct gymkhana.
  2. Confirm Paid and Checked In values.
  3. Confirm scratches.
  4. Confirm Run Order Adjustment for key events/classes if needed.
  5. Confirm scribe filters and queue labels.
  6. Confirm public live scoreboard shows the correct event day.

During Registration

  1. Use Add Competitor for new event-day entries.
  2. Use Edit for corrections and scratches.
  3. Watch for duplicates.
  4. Tell the scribe when consequential changes are made after the queue is active.

During Scribing

  1. Verify rider, horse, event, class, and run type before saving.
  2. Wait for save feedback.
  3. Use Update or Restore rather than entering a second result.
  4. Coordinate on disputed DQ, No Time, Scratch, or timing corrections.

Between Events

  1. Check filters and event/class context.
  2. Review Current Results.
  3. Confirm the next queue matches the arena plan.
  4. Refresh public live if spectators report stale results.

After the Final Event

  1. Review results by event/class.
  2. Verify standings and records.
  3. Make approved corrections.
  4. Update gymkhana Status if the club uses Closed or Completed for finished events.
  5. Keep public links private if they include token values in admin-facing materials.

Terminology

Club: the riding club whose name appears beneath the logo for ordinary users.

Season: a named date range used to group gymkhanas for standings and records.

Gymkhana: one event day with its own date, location, status, registration, selected events, run order, and results.

Rider Class: the division/class assigned to a rider for registration, run order, results, records, and standings grouping.

Event Type: a reusable club event definition selected into a gymkhana.

Event Group: per-gymkhana grouping that changes event-day execution order without combining results or points.

Primary Horse: the rider's normal horse for entered events; primary runs can count toward results and points.

Additional Horse: an extra horse run entered separately on Edit Competitor; these runs do not count toward class results or points.

Scratch: a run or entered event that should not be run.

DQ: disqualification result status.

No Time: result status for a run with no valid time.

Run Order: the ordered list of runs used by registration, scribe, and public live pages.

Registration: the event-specific competitor entry for one gymkhana.

Checked In: event-day attendance status maintained on competitor add/edit.

Season Standings: calculated season point totals for active linked club members, grouped by class.

Record: fastest completed primary run by event for the selected season or all time.

Known Limitations

  • No self-service password reset is implemented.
  • No invitation email or automatic credential delivery is implemented.
  • Ordinary users do not switch clubs inside the application.
  • Volunteers who work with multiple clubs need separate logins.
  • There is no separate Check-In dashboard.
  • There is no standalone horse-management workflow.
  • Additional horse runs do not count toward class results or season points. Equal final times receive deterministic sequential places; shared placing is not implemented. Penalty entry is not implemented in 1.0.
  • Public live links depend on club-specific token values; regenerating a token invalidates prior links and QR codes.
  • There is no formal closeout dashboard separate from registration, scribe, records, standings, and the Gymkhana Status field.