ClubHub

Glossary · 147 terms

The words the app uses

Plain meaning first, then the value the system carries. Grouped the way the product is: who people are, the club, the player, the development loop, training, matches, the story, families, the commercial side, and signing in.

People and roles

Who someone is at a club. A role is club-wide; everything else is a relationship to particular records.

Owner
The person who registered the club. Everything an admin can do, plus deleting the club, transferring ownership and exporting a child's data. A club always has exactly one.
owner
Admin
Runs the club's office: members, sponsors, supporters, tickets, audit log, and all the football.
admin
Technical director
Runs the football across every team: seasons, teams, players, assessments, training, matches, notes, exercises, and the documents attached to a session. Not members, guardians or money. The API's word for the role is `director`.
director
Staff
A club member with no appointment yet. Can see the club exists and its seasons — nothing else until appointed to a team.
staff
Member
Anyone in one of the four club roles. Parents, players, sponsors and supporters are never members.
member
Coach
Appointed to one team season — the one team role. Assesses, plans team training, assigns personal training, writes notes, manages the players; sees the staff list.
COACH
Guardian
A parent or carer who follows one child. Not a member. Reads the child's development and family-visible notes, records the child's personal training.
guardian
Player (own login)
A child whose record is linked to their own account. Sees themself only: their development and My training — their personal routine, which they can mark done.
self
Sponsor representative
Represents a sponsor company. Sees the sponsor's page and counts across the clubs it backs — never a player. Admin representatives invite colleagues.
SPONSOR_ADMIN · SPONSOR_MEMBER
Supporter
Anyone who chose to follow a club. Sees the club's public face and what is on sale.
supporter
Ticket owner
The account a season ticket was issued to. Reaches that ticket and the club's public listings.
ticket-owner

The club

The container everything else lives in.

Club
A football club or academy. In the system it is a Better Auth organization; its profile (country, timezone, badge) is ClubHub's.
club · organization
Season
A named period at a club, e.g. 2026. One is current.
season
Team
A team as an identity that outlives a season — U10 Tigers.
team
Team season
A team entered into one season. Staff are appointed to it and players assigned to it. Most coaching screens are about a team season.
team season
Appointment
A staff member's role on one team season. Ended, never deleted.
team staff assignment
Roster (team)
The players assigned to a team season for the season, through `TeamPlayerAssignment` — on screen the team's **Roster** ("17 on the roster"). A team season *has* a roster; it does not own the players — a **Player** is a durable person. Not the **matchday squad**, which is picked from it.
players
Roster (club)
A player on a club's roster for a season. This is what puts a child inside a club's boundary. On screen it is the **ClubHub season roster** — the club's own record, never a Football NSW registration or clearance. Taken off, not deleted.
player registration
Transfer
Moving a player to another team season. The old assignment is marked transferred and a new one opens.
TRANSFERRED
Staff invitation
The club office inviting someone to become a member in a role. Accepted on a confirmed address.
invitation

The player

A person, not a club's record.

Player
A child (or adult) who plays. Has a profile, may have an account, may be registered with more than one club.
player
Position
Primary position, plus optional secondary positions.
GOALKEEPER · DEFENDER · MIDFIELDER · FORWARD
Preferred foot
—
LEFT · RIGHT · BOTH
Player status
Active, inactive (paused) or archived (kept, hidden).
ACTIVE · INACTIVE · ARCHIVED
Has account
Whether the player's record is linked to their own login.
linkedUserId

The development loop

The heart of the product: review the player, choose a focus, assign personal training, review again.

Skill
One thing to be good at — first touch, positioning, resilience. Scored in whole levels, 1 to 5.
skill
Skill category / Domain
An area of the game. On screen: Technical, Game IQ, Physical, Mental, Team & Social (the default; a club can have its own).
skill category
Taxonomy
The club's full set of categories and skills — its vocabulary. Seeded when the club is created. No template ever mirrors all of it.
taxonomy
Assessment
One coach's scoring of a player's skills — a **Player development review**, never a verdict on one evening. Never edited or overwritten; a new assessment is a new record.
assessment
Player development review
What every assessment is: the broader look at how a player is doing, taken on purpose. It carries no session and no fixture — a session's own record (register, plan, result, the player's reflection) describes the occasion; the review describes the player.
assessment
Development stage
The age band a template is shaped for: Foundation U6–U9, Developing U10–U12, Youth U13–U16, Performance U17–U18.
age groups
Assessment template
What a coach is asked, per development stage: the criteria worth observing then, core first, with position criteria where useful. It shapes the sheet, never forces a write.
assessment template
Core criteria
The criteria always included for every player at that stage. The rest are used when appropriate; criteria a position owns are asked only of its players.
core
Coach's picks
On one assessment: the strength highlight, the next focus, and a one-line note — the words the family reads.
strength · next focus · comment
Not observed
A criterion left blank. Never forced, never recorded — the analytics only hold what a coach actually saw.
omitted
Self-assessment / In their own words
The player's answer after training or a match: what went well, what was hard, what to improve, plus effort · confidence · fun. Written by the player or a guardian; read beside the coach's picture, never averaged into it.
player self assessment
Assessment sheet
The team's players against the criteria resolved for their stage, last scores beside each skill — so a coach can review a team in minutes.
assessment sheet
Bulk assessment
Saving the sheet: all players at once, all or nothing.
bulk
Score / Level
Whole levels 1–5, each with a name: Needs Support, Developing, Competent, Strong, Excellent. Children and families see the name and dots, never the number.
1–5
Development Engine
The one place strengths, improvements, category averages and consistency are computed from the evidence. Every screen renders its answer; none recompute it. It suggests — the coach's chosen focus outranks its arithmetic.
engine
Strength / Superpower
A skill the player is already strong in. Superpower is the child's word.
strength
Next focus
The coach's deliberate choice of what a player works on next. ClubHub suggests from the review's own evidence; the coach decides — a low score never becomes the focus by itself. Blank is a valid answer.
next focus
Current focus / Work on next
The focus in force now — the coach's most recent pick. It drives the player's personal training. Work on next is the player's word for it.
current focus
Improvement / Getting better
A skill that went up between the two most recent assessments.
improvement
Progress
The summary for one player: strengths, current focus, improvements, category averages, consistency, match form.
progress
Development framework
What the club develops and assesses for a team's stage — its resolved templates in one readable view (in the iOS app today).
development framework
Trend
A skill's full score series over time, for charts.
trend
Goal
A target score on one skill, set by a coach with the player. Achieved is stamped once.
ACTIVE · ACHIEVED · ARCHIVED
Observation / Coach note
Something a coach wrote about a player, with an explicit audience.
observation
Visibility
Who a note (or other record) is for. Private is the author's alone — even from the club office.
PRIVATE · COACHING_STAFF · CLUB · FAMILY

Events

What happens at a time. Three kinds — a team training session, a match, and a day of a player's personal training — share one stage ladder and one read model; they stay three records underneath. Events is what the API calls that read model. It is **not a door**: a reader is offered **Games** and **Sessions**, one kind of thing each.

Event
A team training session, a match, or a personal training day: when, what, and where it stands. The kind is named in full — never the bare word "training". Events is a read model: it owns no record of its own, and no screen is called Events.
TEAM_TRAINING · MATCH · PERSONAL_TRAINING
Games
The door onto the matches, and only the matches: the club's, one team's, or one player's — a day at a time by default, or a week or a month. A door name — the thing behind it is still a match, still added with **Add a fixture**.
/clubs/:id/games`, `?types=MATCH
Sessions
The door onto team training: the sessions a coach plans, runs and reviews. A player's **personal training** days ride along — one toggle away for a coach or the office, there from the start in a player's or a family's own Sessions. Rows say which kind each is.
/clubs/:id/sessions`, `?types=TEAM_TRAINING[,PERSONAL_TRAINING]
Event key
An event's identity across the sources its ids come from: the kind, then the id — and for a personal training day, the plan and the club-local day, since nothing is stored for it. The key for any mixed list, cache, cursor or deep link — never the bare id.
TEAM_TRAINING:<id> · MATCH:<id> · PERSONAL_TRAINING:<planId>:<YYYY-MM-DD>
Event source
Where one kind of event is read from: the training sessions, the matches, or the training plans. Events composes the sources and pages the merge; a source answers in the calendar's shape and never reaches into another domain's rules.
TeamTrainingEventSource · MatchEventSource · PersonalTrainingEventSource
Next event
The soonest event still ahead, whichever kind — a session, a match, or the player's own routine day. A "Next up" row names the kind and opens that event.
upcoming[0]
Stage
Where an event sits in its life, judged by the API on the club's own calendar day — the same rule wherever an event is shown. A session: **Upcoming · plan it**, **Today · run it**, **Held · review it**, **Reviewed**, or **Cancelled**. A match: **Upcoming**, **Today · record it**, **Played · record the result** (its day has passed and nobody recorded it), **Played · review it**, **Reviewed**, or **Cancelled**. A personal training day: **Upcoming**, **Today**, **Done**, or **Missed** — never reviewed, recorded or cancelled; nothing is presumed of a routine. Derived, never stored — and the API refuses any transition the ladder does not allow.
PLAN · RUN · RECORD · REVIEW · DONE · CANCELLED · MISSED
Schedule
A view inside a door, never a door of its own: the club's calendar by window (a day, a week, a month), every team at once, with collisions marked. The office's operational view; behind Sessions it shows team training, behind Games the fixtures, and personal training only when asked.
GET /clubs/:clubId/events/schedule
Location
Where an event is held, in the club's own words — a pitch, a hall, a park. The one fact two events can collide on. "Pitch 2" and "pitch 2" are one place.
location
Conflict
One team with two events whose times overlap, wherever they are. Two different teams sharing a pitch is not a conflict. A state of the schedule, not a screen: marked where it happens, and answered before it happens — "is this team free at 17:30?" — with a way out: the time the team is free again. A personal training day belongs to no team and is never a conflict.
conflictsWith · GET …/events/conflicts
Reviewed
The closed stage. A match reaches it with the coach review; a session when the coach taps **Mark review complete**. An assessment referencing a session proves evidence exists, never that the review is done — partial reviews are allowed on purpose.
DONE
Held
A session was held: the register was taken, an assessment landed, or the coach said so. Stamped on the session, never inferred from the calendar alone — and never before the session's own club-local day. Once evidence references the session it cannot be un-held: the evidence proves it happened.
completedAt
Event video
One recording of one event — a team training session or a match, and nothing else. Stored in object storage; the bytes never pass through the API, and every URL to them is signed and short-lived.
EventVideo
Ready
A recording ClubHub has read and can play: the object was found, its streams were probed, and the video is H.264 with sound a browser decodes. Not "the upload finished" — a container is not a codec, and a `.mov` holding ProRes is **Failed** with a reason a coach can act on. The length, size and dimensions are all measured here and never reported by a client.
EventVideoStatus.READY
Failed
Terminal. A recording that could not be read or cannot be played stays failed: "try again" is a fresh upload to a fresh key, not a second attempt at the same object.
EventVideoStatus.FAILED
Clip
A moment a coach cut out of a recording: a start, an end, a title, and the players and skills it is evidence of. Saving is instant; ClubHub then cuts it into **its own short video file**, frame-exact, and that file is what families watch — never the recording it came from. Staff can watch it on the recording while the file is being made.
VideoClip
Clip file
A clip's own video, cut by the server after the clip is saved or its start or end moves. **Preparing** until it is made; a shared clip is not watchable by families until then. See ADR 0022.
rendition
Clip visibility
Who may see a clip. **Staff only** is a coach's working note and the default; **Shared** reaches the players tagged in the clip and their guardians — never the rest of the team. The same visibility vocabulary the coach notes and the timeline use.
COACHING_STAFF · FAMILY
Video evidence
A clip on a player's own development record, beside their assessments and named in the club's own skills. Nothing is copied onto the player: the clip is found by the tag it already carries.
video-clips
Evidence for a score
The clips behind one skill's level. **Derived, never stored** — a clip already carries the skills it was tagged with and a score is already about a skill, so there is no link to keep in step: retag a clip and its evidence moves, archive one and it leaves. Narrowing to a skill narrows **within** the reader's reach and never around it, so a family still sees only what a coach shared.
?skillId=
Cancelled
A session that was called off. It stays on the calendar — "we did not train that week" is history a club wants — and takes no register and no evidence. Only possible while the session has not happened; reopening it returns it to the rung its date deserves.
cancelledAt
Club time
A date and a time a coach enters mean that wall clock **at the club**: the API converts them with the club's own IANA timezone. Never the browser's, the device's or the server's, and never a guessed noon UTC.
heldOn · startsAt · kickOffOn · kickOffTime
Team
The state of the team rather than its calendar: players, staff, the team picture and attendance — and its own **Sessions** and **Games** faces, which are the club's doors with that team chosen.
team season

Team training

One kind of event: the team on the pitch. A coach plans it, runs it and reviews it. The other kind of training — personal — is what one player does between sessions; the two are never called by the same bare word.

Training
Avoided as a standalone label wherever the kind could be ambiguous — a tab, a heading, a button, a "Next up" row. Always say **Team training** or **Personal training**.
—
Team training
The team's sessions for the season: planned, held, reviewed. Listed under **Sessions**; families see when the next one is and what it is about.
training sessions
Training session / Session
One team session on the pitch: its date, focus, plan and register. Never "played" — a match is played, a session is held.
training session
Session focus
The 2–4 skills a session works on — what the evening is about, on the plan and on the night.
focusSkillIds
Session plan
The session's ordered blocks: what runs, for how long, and the coaching point that matters. Written on the web, run from the phone. Locked, with the focus, once a player's reflection references the session **or** the coach closes its review — what the session was about stops being editable when the record becomes history. The title and the note stay editable: correcting a spelling is administration, not rewriting history.
blocks · assessedAt · reviewedAt
Block
One step of a session plan: a library exercise or a custom activity, its minutes, and the skills it works on. Snapshotted, so history keeps what was planned.
block
Plan · Run · Review
A session's stages, judged by the API on the club's own day: Upcoming, Today, Held · review it, Reviewed — or Cancelled. **Planning a session creates no register and marks nothing held**: a future session is not evidence that anyone attended. Held comes from the register, a reflection or the coach's word; Reviewed only from **Mark review complete** — evidence is not completion.
PLAN · RUN · REVIEW · DONE · CANCELLED
RSVP
A player's "coming / not sure / can't come" before a session or fixture, given by the player or recorded by a coach; a family reads it. Who to expect — never attendance.
rsvp
Register
Who was at the session, taken on the night. It opens on the session's own club-local day and never before, and saving it is what marks the session held. Everyone defaults to present.
attendance
Attendance
One player's status at a session.
PRESENT · LATE · ABSENT · EXCUSED
Availability
Whether a player can make sessions and matches; managed by the family and the team's staff.
availability

Personal training

What one player does between team sessions, aimed at their current focus. The family's word for it is **My training**.

Personal training
A coach's weekly routine for one player, aimed at the current focus. Assigned by the coach; done and recorded by the family or the player. It lives under the player — **My training** is the deep experience: what to work on and how — and its scheduled days appear on the calendar under **Events**: when to do it.
training plan
Routine
The routine itself: a few drills, each so many times a week, and the days of the week it is done on. Assigning a new one retires the old; adjusting keeps the week's completions counting. A routine reserves no pitch and no coach.
ACTIVE · COMPLETED · ARCHIVED
Schedule (routine)
When a routine is done: its weekdays — their number is the sessions per week — how long a go takes, and, when the family keeps to one, the time of day on the club's clock. Simple youth-sport scheduling; no recurrence engine. Defaults to weekdays spread to match the busiest drill.
daysOfWeek · estimatedMinutes · preferredTime
Personal training day
One day the routine lands on, projected from the plan on the club's own calendar — nothing is stored per day. It is **Done** the moment any of its drills is recorded that day, **Missed** once the day has passed with nothing recorded. A day the player trained off-schedule is on the calendar too, as done.
PERSONAL_TRAINING:<planId>:<day>
Exercise / Drill
An entry in the club's drill library, linked to the skills it develops. The one library feeds both routines and session plans.
exercise
Activity
One drill inside a routine, with its times-per-week target.
training activity
Completion / Mark done
The family's — or the player's own — record that an activity was done. The one thing a family writes; a coach never can.
training completion
This week
The last seven days, not the calendar week.
rolling 7 days
Weekly target
The sum of every activity's times-per-week.
target
Streak
Consecutive weeks that met the target. The current week never breaks it.
streak
Consistency
Per-week completions capped at the target, summed, over what was expected. Null with no routine; 0 with a routine and nothing done.
0–1
Works on
Whether a routine actually develops a skill: at least one of its drills is linked to it. A focus with no routine that works on it is the loop's most common break.
planWorksOn

Matches

The other kind of event. Context beside the development picture — never a skill score.

Match / Fixture
A team season's game: opponent, kick-off, venue, result. Added with **Add a fixture**, and listed under **Games** — the door's name, never the object's.
SCHEDULED · PLAYED · CANCELLED
Record · Review
A match's stages, the match's words for the shared event stage: Upcoming, Today · record it, Played · record the result, Played · review it, Reviewed — or Cancelled. There is no "prepare" step until squad selection and availability exist; the app does not pretend there is.
PLAN · RUN · RECORD · REVIEW · DONE · CANCELLED
Venue
—
HOME · AWAY · NEUTRAL
Matchday squad
The players picked from the team for one fixture, and who starts. Named on the fixture page. The team's **roster** is the season-long list it is picked from — the two are not the same list, and the page says "squad" only for this one (and for a team itself). Every player on the team is in one of four states for a fixture: **starting**, on the **bench** (a sub), on **standby**, or not selected. The first two are the lineup and the third is an assignment; not selected is the absence of all of them, not a mark against a child.
lineup
Starting eleven
The eleven who start. ClubHub is an eleven-a-side app and the picker counts against it — but it is advice, never a rule: a team that turns up with nine still plays, and a short squad saves.
started: true
Formation slot
One place in a shape — `lcb`, `rw` — with the position it asks for. The editable board is drawn from the slots first and the players are put into them, so a 4-3-3 with the right winger missing shows `LW — ST — [empty RW]` rather than closing up into a front two. Recorded on the fixture with the shape; a fixture from before this reads its positions into the shape they fill.
formation`, `slot
Standby
Named as a reserve: not in the squad, and the first called if someone drops out. Recorded on the **match assignment**, not the lineup, because it is something a coach asked of a child rather than a place in the team. The design's fourth state is "Out / Injured" over a physio note; this is the half of it ClubHub will keep.
assignments[].standby
Bench
Picked, and not starting. A bench player who never gets on is still in the lineup at zero minutes, because being named is a fact about the match.
started: false
Position
Where a player stands for one fixture, in football's own abbreviations: GK; LB, LWB, CB, RWB, RB; CDM; LM, CM, RM; LAM, CAM, RAM; LW, CF, ST. Different from the **team position** a club records about a child for a season, which is one of four broad ones — a defender with nothing more said about them stands at centre back.
position
Line
The row of the pitch a position stands in: in goal, defence, holding midfield, midfield, attacking midfield, forwards. The board draws one row per line and reads each left to right, so a back four comes out LB, CB, CB, RB however it was picked.
LINES
Formation
Read off the board, never chosen: the shape is what the lines add up to, and only once eleven are placed with one of them in goal. Picking a shape fills its eleven places — a 4-3-3 asks for a left back, two centre backs and a right back, not for four defenders — and every one of them stays the coach's to change.
FORMATIONS
Match assignment
What a coach asks of one player for one fixture: the armband, a set-piece duty, expected minutes, a defensive base, and instructions their family reads. Separate from the lineup, so replacing who plays never deletes what was asked of them.
assignments
Lineup
Who played, started, minutes, goals, assists, and the coach's rating.
lineup
Match log
What happened in one match, minute by minute: goals, cards, substitutions, corners and staff notes, written on the touchline and correctable afterwards. Staff only. Its minute is written down, not clocked — there is no live match status — and it never writes the fixture's score; the page shows the log's own count beside the recorded result so the two can be seen to disagree.
MatchLogEntry · match_log_entries
A player's match log
A different thing with the same name: one child's list of the matches they appeared in, on their profile. The match log above belongs to a fixture; this one belongs to a player.
matchLog.items
Match form
A player's last 90 days of matches in one number and a few counts. Context only.
form
Played for
How long a fixture was actually played — 70, 80 or 90 minutes depending on the age group, which is why it sits on the fixture rather than in a constant. Null means nobody said, which readers treat as no evidence rather than assuming any of them. Minutes worked out from the match log are measured against it, so a fixture without one can derive nobody's.
Match.regulationMinutes
Holds the ground for
How long the ground is booked, kick-off to the pitch being free again. A booking, not a match length: it has to cover the longest game plus half-time and packing up, so it is never the number minutes are counted from.
Match.durationMinutes
Coach review
The coach's notes on a match after it was played.
review

The story

One feed, written as things happened.

Story / Timeline
Every moment in a player's development, newest first, in chapters by month.
timeline
Moment / Event
One entry in the story.
ASSESSMENT_COMPLETED · GOAL_CREATED · GOAL_ACHIEVED · TRAINING_ACTIVITY_COMPLETED · COACH_OBSERVATION · MATCH_PLAYED · PLAYER_SCORED · DEVELOPMENT_PRIORITY_CHANGED
Highlights
What the story is made of: counts of drills done, assessments, matches, goals.
highlights
Big moment
An assessment, a goal reached, a goal scored — outlined in the story.
big

Families and invitations

How anyone who is not staff gets in.

Relationship invitation
An email link to one address that opens one relationship: a guardian to a child, a player to their own login, a representative to a sponsor. Never club membership.
GUARDIAN · PLAYER · SPONSOR_MEMBER
Accept
Signed in on the invited address, the person accepts — the moment the relationship exists.
accept
Access grant
A guardian's reach into one child at one club. What the API reads. Revoked, never deleted.
ACTIVE · REVOKED
Relationship kind
How a guardian relates to the child.
MOTHER · FATHER · PARENT · LEGAL_GUARDIAN · CARER · OTHER
Family
The child's guardians and, when linked, the child's own login. The Family tab on the phone; the Family card on the web.
family
Give a login / Account invitation
Inviting a player to their own account. Links only when accepted on the address.
account-invitation
Link account
Tying an existing account to a player, for an address that already has one. Fresh sign-in required.
link-account
Add guardian
The office adds an adult to a child by name, address and relationship. An address with an account is linked at once; one without is invited, and the link is its first login — they choose their own password on it. No temporary password exists. Fresh sign-in required.
POST players/:id/guardians` → `LINKED · INVITED
Resend access
A fresh set-up link for an invited guardian whose email did not arrive, or whose link has expired. The old link closes. Never for an account that has accepted: there is nothing to regenerate.
resend
End access / Unlink
Revoking a guardian's grant. The account stays, and so do their other children. The record stays.
revoke

Sponsors, supporters and tickets

Relationships with a club that are not membership and reach no child.

Sponsor
A company that backs one or more clubs.
sponsor
Sponsorship
A sponsor backing a club, or one team season: tier and dates.
ACTIVE · ENDED
Sponsor analytics
Counts across the clubs a sponsor backs — teams, players on the roster, matches, sessions. Nothing names a child.
analytics
Follow / Supporter membership
Choosing to follow a club. Anyone signed in can.
ACTIVE · CANCELLED
Ticket product
What a club sells for a season: name, price, seats per ticket.
season ticket product
Season ticket
A ticket issued to an account. Ownership reaches that ticket, nothing else.
ACTIVE · CANCELLED
Holder
A person a ticket admits, named by its owner within the seats.
holder
Entitlement
What a ticket admits to, and whether it was used.
HOME_MATCH · EVENT

Sign-in and security

Session
Being signed in on one device. Listed under Security; any one can be ended.
session
Sign out everywhere
End every session, on every device — a lost phone.
revoke sessions
Session document
A file attached to a training session — the PDF a technical director planned it on. Staff only: the office, the technical director and the team's coaches. A family never sees one.
training.document.read
Authenticator app / Two-factor
A six-digit code from an app, after the password. Required for owners, admins and directors in production.
TWO_FACTOR_REQUIRED
Backup code
One-time codes for when the authenticator is lost. Shown once at enrolment.
backup code
Fresh sign-in
Some actions need a session younger than 15 minutes: transferring ownership, removing an admin, linking an account, turning off two-factor.
FRESH_AUTH_REQUIRED
Confirmed address
An email address proven by clicking its link. Needed to accept staff invitations.
emailVerified
Permission
A named ability, e.g. player.read. Nobody has one; a relationship carries it over what it is held over.
player.read · development.read …
Not found
What anyone outside a record's reach is told — the same answer as for a record that does not exist.
404
Audit event
A record of a sensitive change or security event: who, what, when. Children are involved.
audit

Back to sign in