Roles & access

Every person in an organisation has one of three roles. Your role decides which surfaces you can open and what you're allowed to change.

The three roles

Admin

Full control of the organisation. Admins can do everything a coach can, plus the admin-only surfaces:

  • Settings — feature toggles, StatSports API credentials, phase tags.
  • User & role management — who belongs to the org and what role they hold.
  • Hard deletes — permanently removing schedule events and GPS-review rows.

Coach

Read access to everything in the org, the view-as player picker, and all the day-to-day management writes:

  • Roster: add and edit players, and bulk-import from CSV/Excel.
  • Availability: set a player's status (available, injured, ill, …) and notes.
  • The schedule: create, edit and delete training, matches and fitness tests.
  • Gym: build templates, assign plans, manage the exercise library.

Coaches do not get the admin-only surfaces above.

Player

Read-only access to their own data through the player app at /me. Players log their own gym sessions and submit their own wellness check-ins, but they can't see other athletes' data or change anything at the squad level.

What this looks like in practice

Surface Admin Coach Player
Roster, squads, athlete pages own data only
Add / edit / import players
Schedule (create/edit/delete)
GPS, Load, Speed, Reports own data only
Gym templates, plans, library own log only
Concerns, Wellness, Jump testing own check-in
Settings, StatSports credentials
Usage analytics

The rule is uniform across the whole product: every management write allows admin and coach, and denies player — enforced both at the page and in the database, so it holds no matter how the request arrives.

A deliberate exception on mobile

Coaches have broad permission to edit player profiles, including the StatSports federation ID and the manual MSS override. Those two fields are powerful — a wrong federation ID silently misroutes a player's GPS data, and a bad MSS override skews their high-speed thresholds for weeks. So the desktop dashboard exposes them to coaches, but the player app deliberately hides them. A mobile save always re-sends the existing values for those two fields unchanged.

How you're matched to your data

When you sign in (Google or email/password), Underdog links your login to any athlete profile that shares your email address, then sends you to the right place: players land on /me, coaches and admins land on the dashboard. A dual-code player who plays for two clubs has a profile in each, and both link to the same login.