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.