Manage sports, teams, fixtures, results, and inter-house points.
Sports & Games is where the school runs its competitive and recreational sport: the catalogue of sports offered, the houses students belong to, the teams fielded for each sport, the competitions and fixtures played, the results recorded, the awards granted, and the inter-house points leaderboard. A sports coordinator or PE head runs the day-to-day. Teachers who coach a team can record results and update their own team’s fixtures. School leadership oversees it all. Guardians do not record anything; they see a read-only summary of their own children’s team memberships, fixtures, and awards.
Sports & Games is an optional module. A school can enable or disable it under Settings. When the module is off, the whole Sports & Games group disappears from the sidebar and sport notifications stop going out. Turn it back on and everything returns exactly as it was.
A sport the school offers, such as Football or Athletics. Marked Team or Individual, which decides how its results are recorded.
House
A school house, such as a colour-named house, with a name, colour, and motto. Students belong to a house, and houses collect points.
Team
A squad fielded for one sport in one academic year, with a category (age and gender band), a type (House or School), an optional house, and an optional coach.
Team member
A student on a team’s roster, with an optional position, a captain flag, and the date they joined.
External school
A rival school the school plays against, used as the opponent on inter-school fixtures.
Competition
A tournament or league for one sport, with a level, scope, format, dates, and an academic-year and term context.
Fixture
A single scheduled match, with a date, venue, the two sides (or a team and an external school), and a status. May belong to a competition.
Match result
The score for a team fixture: home score, away score, and a derived outcome (Home Win, Away Win, or Draw). One per fixture.
Individual result
One athlete’s result in an individual-sport fixture: the event, the position, an optional time or distance, and a personal-best flag.
Award
A recognition granted to a student for a sport, such as MVP or Top Scorer, scoped to a term and an optional competition.
House point entry
A points row credited to a house, either swept in automatically from a house-level result or recorded by hand for a non-sport category such as Cleanliness or Discipline.
To offer a new sport, add it to the sports catalogue.
1
Open Sports
Go to Sports and click the create action, or go to /sports.
2
Fill in the sport
Enter the Name, pick the Type (Team or Individual), and add an optional Description. Leave Active on so the sport can be picked when building teams and competitions.
3
Save
Save. The Type is what decides how results are recorded later: a Team sport is scored with a home and away score, an Individual sport with per-athlete placements. Pick it carefully, because it changes the result form.
[Insert screenshot: New sport form at /sports/create showing the Name field, the Type selector (Team, Individual), the Description box, and the Active toggle]
Houses are the basis of the inter-house points system. Add each of the school’s houses once.
1
Open Houses
Go to Houses and click the create action, or go to /houses.
2
Fill in the house
Enter the Name, pick a Color, add an optional Motto and Description, and leave Active on.
3
Save
Save. Students are placed into a house from their own profile under Users & Identity; the house is a tag on the student record. Once a house exists, you can assign its patrons and leaders and it starts collecting points.
[Insert screenshot: Houses list at /houses showing the colour swatch, Name, Motto, Students count, and Active columns]
Each house carries a slate of staff patrons and student leaders for an academic year. Open a house and use its tabs.
On the Patrons tab, add a teacher and pick their role (Head Patron or Assistant Patron) for an academic year.
On the Leaders tab, add a student (from that house) and pick their role (Captain, Vice Captain, Secretary, or Sports Captain) for an academic year, with the date they were appointed. One student holds each role per house per year.
The Students tab lists the house’s members for reference. The Point Entries tab is covered under Inter-house points.
Record a rival school once, then pick it as the opponent on any inter-school fixture.
1
Open External Schools
Go to External Schools and click the create action, or go to /external-schools.
2
Fill in the school
Enter the Name, and optionally the County, Town, Contact Person, Phone, Email, and Notes.
3
Save
Save. The school is now selectable as the opponent on inter-school fixtures. You can also add one on the fly from the fixture form without leaving the page.
You will need: at least one Team-type sport marked Active, and, for a house team, the house it belongs to. The Sport picker lists only active team sports, and the House picker lists only active houses.
1
Open Teams
Go to Teams and click the create action, or go to /teams.
2
Fill in the team
Pick the Sport and enter a Name (for example, “Under-16 Football”). Pick the Category (the age and gender band) and the Type (House or School). When you pick House, a House picker appears and is required. Pick the Academic Year. Optionally pick a Coach (a teacher) and add a Description. Leave Active on.
3
Save
Save. The team now exists with an empty roster. The coach you pick can record results and update this team’s fixtures without holding the full sports permission.
[Insert screenshot: New team form at /teams/create showing the Sport, Name, Category, and Type selectors, the conditional House picker, the Coach picker, the Academic Year selector, and the Active toggle]
Add students to a team from the team’s own Team Roster tab.
You will need: the team to exist, and the students to be admitted under Users & Identity so they appear in the Student picker.
1
Open the team
Open the team from Teams and go to the Team Roster tab.
2
Add a member
Click Add Member. Pick the Student, enter an optional Position, tick Team Captain if they captain the side, and set the Joined On date. A student already on the roster cannot be added twice.
3
Save
Save. The student joins the roster, and their guardians are notified that the child has been selected for the team.
[Insert screenshot: Team Roster tab on a team’s view page showing the student name, Position, Captain, and Joined columns, with the Add Member action]
Open a team from Teams and click Edit to change any detail, the coach, or the active flag. To take a student off a team, open the Team Roster tab and remove their row. Renaming or deactivating a team does not delete its history; past fixtures and results stay readable.
A competition groups fixtures into a tournament or league. A fixture is a single match. You can schedule a one-off friendly fixture without a competition, or create a competition and schedule its fixtures under it.
You will need: the sport the competition is for, and the academic year it runs in. Years and terms are seeded under Academic Years & Terms and ready to pick.
1
Open Competitions
Go to Competitions and click the create action, or go to /competitions.
2
Fill in the competition
Pick the Sport and enter a Name. Pick the Level (House, School, Sub-County, County, Regional, or National), the Scope (Intra-School or Inter-School), and the Format (League, Knockout, or Group + Knockout). For a knockout or group-and-knockout format, optionally set the Total Rounds. Pick the Academic Year and an optional Term, set the Start Date and an optional End Date, and add an optional Venue and Description.
3
Save
Save. The competition starts as Upcoming. Setting the Level to House is what turns on the automatic inter-house points sweep when its results are recorded (see Inter-house points).
You will need: the sport, the teams playing (for an intra-school match) or the external school (for an inter-school match). A fixture can stand alone as a friendly, or belong to a competition.
1
Open Fixtures
Go to Fixtures and click the create action, or go to /fixtures.
2
Fill in the fixture
Pick the Sport and an optional Competition. Set the Fixture date and optional Start time and End time. Pick the Scope:
Intra-School shows a Home Team and an Away Team picker, both drawn from the chosen sport’s teams.
Inter-School shows a Home Team picker and an Opponent School picker for the external school. You can add a new external school here without leaving the form.
For an Individual sport, the team pickers are hidden; you’ll add each athlete’s placement when you record the result. The Opponent School picker still appears for an Inter-School fixture.Enter an optional Venue and Notes. The Status defaults to Scheduled.
3
Save
Save. The fixture is created as Scheduled, and the guardians of the players on both sides are notified that the match is set. When the Events module is on, the fixture also appears on the school calendar.
[Insert screenshot: New fixture form at /fixtures/create showing the Sport and Competition selectors, the date and time fields, the Scope selector, the Home Team and Away Team or Opponent School pickers, and the Status selector defaulting to Scheduled]
You will need: a Knockout or Group + Knockoutcompetition that has no bracket yet, and the teams to seed into it.
For a knockout competition, the system draws the whole bracket for you instead of you scheduling each round by hand.
1
Open the competition
Open the competition from Competitions and find the header actions.
2
Generate the draw
Click Generate Draw. Tick the teams to include. Optionally turn on Apply standard seeding to pair the strongest against the weakest (1 vs N, 2 vs N-1, and so on); leave it off for a random draw.
3
Confirm
Confirm. The system creates one fixture per bracket slot and wires the rounds together so that winning a match advances a team to the next one. If there is an odd team out, that team gets a bye and is advanced automatically. The drawn bracket appears on the competition’s Bracket tab.
You can redraw a bracket with Reset Draw while the competition is still Upcoming; this permanently removes the drawn fixtures and any results, so use it before play begins. A Group + Knockout competition has a separate Generate Knockout Bracket action to seed the qualifying teams into the knockout phase once the group stage is set.
A result is recorded straight onto a fixture, from the Record Result action on the Fixtures list. The form matches the sport: team sports take a score, individual sports take per-athlete placements. There is no separate publish step; recording the result is what completes the fixture and triggers notifications and any house-points sweep.
You will need: a Scheduled or In Progress fixture for a Team sport. The Record Result action is hidden once a fixture is Completed, Postponed, or Cancelled.
1
Open the action
On the Fixtures list, find the fixture and click Record Result.
2
Enter the score
Enter the Home Score and the Away Score. Tick Walkover if the match was awarded without play. Add optional result Notes.
3
Save
Save. The fixture moves to Completed, the outcome (Home Win, Away Win, or Draw) is worked out from the scores, the players’ guardians are notified that the result is recorded, and, in a knockout competition, the winner advances to the next fixture. For a House-level competition, house points are swept in automatically (see Inter-house points).
[Insert screenshot: Record Result modal for a team fixture showing the Home Score and Away Score fields, the Walkover toggle, and the Notes box]
You will need: a Scheduled or In Progress fixture for an Individual sport, and the athletes admitted under Users & Identity so they appear in the Student picker.
1
Open the action
On the Fixtures list, find the individual-sport fixture and click Record Result.
2
Add each athlete's result
Click Add Result for each athlete. Pick the Student, enter the Event name, the finishing position, an optional time or distance record, and tick Personal Best if it was one.
3
Save
Save. The fixture moves to Completed and the athletes’ guardians are notified. For a House-level competition, the top three placements earn their house 5, 3, and 1 points respectively.
You can also view and adjust individual results on a fixture’s Individual Results tab after the match.
You will need: the recipient student, the sport the award is for, and the term. An optional competition can be attached.
1
Open Awards
Go to Awards and click the create action, or go to /awards.
2
Fill in the award
Pick the Student, the Sport, and an optional Competition. Pick the Award type (MVP, Best Player, Most Improved, Top Scorer, Sportsmanship, or Custom). For a Custom award, a Custom Title field appears and is required. Pick the Term and Academic Year, and add an optional Citation / Reason.
3
Save
Save. The recipient’s guardians are notified that the award was granted.
Houses collect points from two sources: an automatic sweep when a house-level competition result is recorded, and manual entries a coordinator records for non-sport categories. The running leaderboard is shown on the dashboard.
When you record a result for a fixture in a competition whose Level is House, the system writes the house points for you, with no extra step:
Team results credit the winning team’s house 3 points, and a draw credits each house 1 point. A loss earns nothing.
Individual results credit the athlete’s house 5, 3, or 1 points for finishing first, second, or third.
These swept entries carry the Sports category and point back to the result that produced them. If you correct a result, the swept points are recalculated to match; if you delete a result, its swept points are removed. You cannot edit or delete a swept entry by hand, because it is owned by the result.
For categories that are not sport, such as cleanliness or discipline, record the points yourself.
You will need: at least one active house and a term to file the points under. This action is available to staff who hold the award-house-points permission, granted through Roles & permissions.
1
Open Award House Points
Go to Award House Points under Sports & Games.
2
Fill in the entry
Pick the Category (Cleanliness, Academics, Discipline, Co-Curricular, Sports, or Other), set the Date, write a Description, and pick the Term. Enter the points for each house in the same step; leave a house blank or at zero to skip it.
3
Submit
Submit. One entry is created per house you gave points to, and the standings update. You can also add a single manual entry from a house’s Point Entries tab.
[Insert screenshot: Award House Points page showing the Category selector, Date, Description, and Term fields, and a points input per house]
The House Leaderboard on the leadership dashboard shows each house’s total points for the current term, ordered highest first. A house’s own Point Entries tab lists every entry behind its total, with the date, category, points, and whether each came from a result or was recorded by hand.
Sports & Games has two records that move through a real lifecycle: fixtures and competitions. Teams, sports, and houses do not carry a lifecycle status; they have an Active flag that simply controls whether they can be picked on new records, which is described under Build teams and Set up sports and houses.
A competition’s status is maintained for you, by date, except for cancellation, which is a manual choice.
Status
What it means
Who can act
What they can do
Upcoming
Created but not yet started. New competitions start here. A knockout bracket can only be drawn or reset while the competition is Upcoming.
Coordinator, leadership
Schedule fixtures, draw or reset a knockout bracket, or cancel the competition.
In Progress
The start date has been reached.
Coordinator, leadership
Record results; cancel the competition.
Completed
The end date has passed and no fixtures are left outstanding.
(none)
Read the competition and its results.
Cancelled
The competition was called off. Every still-scheduled fixture in it is cancelled too.
(none)
Read the competition.
The move from Upcoming to In Progress and from In Progress to Completed happens on its own as the dates pass. Cancelling is the only status a staff member sets by hand, and it cascades to the competition’s scheduled fixtures.
These are not lifecycles. They appear on form pickers when setting up sports records.
Sport type: Team or Individual. Set on the sport; decides whether results are a score or per-athlete placements.
Team category: the age and gender band a team competes in (U-14 Boys, U-14 Girls, U-16 Boys, U-16 Girls, U-19 Boys, U-19 Girls, Open Boys, Open Girls, or Mixed).
Team type: House (the team belongs to a house) or School (the team represents the whole school).
Competition level: House, School, Sub-County, County, Regional, or National. The House level is what turns on the automatic inter-house points sweep.
Competition scope: Intra-School (within the school) or Inter-School (against another school, using an external school as the opponent).
Competition format: League, Knockout (a single-elimination bracket), or Group + Knockout.
Match outcome: Home Win, Away Win, or Draw. Worked out from the scores, not entered.
Award type: MVP, Best Player, Most Improved, Top Scorer, Sportsmanship, or Custom (which uses a free-text title).
House patron role: Head Patron or Assistant Patron.
House leader role: Captain, Vice Captain, Secretary, or Sports Captain.
House point category: Sports, Cleanliness, Academics, Discipline, Co-Curricular, or Other.
A few user-visible relationships are worth keeping in mind:
A sport is the root of its teams, competitions, and fixtures. A team belongs to one sport and one academic year, and a house team also belongs to a house.
A team’s roster is its students. A student can be on more than one team, across different sports.
A fixture is for one sport and is played between two teams, or between a team and an external school. It may belong to a competition, or stand alone as a friendly.
A team fixture has one match result; an individual fixture has one result per athlete.
An award belongs to one student and one sport, scoped to a term and an optional competition.
A house collects points from house-level results (swept in automatically) and from manual entries. The student’s house is set on the student record under Users & Identity.
A student’s per-term sports participation, teams, fixtures, and awards, also appears as a summary on their report card under Assessments & Report Cards when both modules are in use.
Guardians sign in to the same tenant subdomain as staff. Their account holds the locked Guardian role, which is read-only and scoped to their own children. In this area, a guardian sees the Sports & Games widget on their dashboard, which summarises, per child, for the current term:
The child’s number of active team memberships.
The number of fixtures the child played this term.
The number of awards the child received this term.
Guardians also receive notifications, whether or not they log in, when a child is selected for a team, when a fixture for the child is scheduled, postponed, or cancelled, when a match result for the child is recorded, and when the child is granted an award.The Guardian role does not see the Sports, Teams, Fixtures, Competitions, Awards, External Schools, or Houses pages, nor the Award House Points page. Every recording action, creating a team, selecting a roster, scheduling a fixture, recording a result, granting an award, awarding house points, is staff-only and never exposed to a guardian.
Open the fixture and update its match result, or, for an individual sport, adjust the rows on the Individual Results tab. The outcome is recalculated from the corrected scores, and if the fixture is in a house-level competition the swept house points are recalculated to match. There is no separate publish step to undo.
Why is the Record Result button missing on a fixture?
It only appears while a fixture is Scheduled or In Progress. A Completed, Postponed, or Cancelled fixture does not show it. If the fixture is already Completed and you need to change the score, open it and edit the result directly rather than recording a new one.
How are inter-house points calculated?
They are swept in automatically when you record a result for a fixture in a competition whose Level is House. A team win earns the winning team’s house 3 points and a draw earns each house 1; an individual first, second, or third place earns the athlete’s house 5, 3, or 1 points. Points for other categories, such as cleanliness or discipline, are recorded by hand on the Award House Points page. If your house standings are not changing after a match, check that the competition’s Level is set to House and that the teams or athletes are assigned to a house.
Can a student be on more than one team?
Yes. A student can be on several teams across different sports. Within a single team’s roster, the same student cannot be added twice.
How do I draw a knockout tournament?
Create the competition with a Knockout format while it is still Upcoming, open it, and click Generate Draw. Pick the teams, optionally apply standard seeding, and confirm. The system builds the full bracket and advances winners automatically as results come in. To redraw, use Reset Draw, which is available only while the competition is still Upcoming.
What happens to a competition's fixtures if I cancel it?
Cancelling a competition cancels every fixture in it that is still Scheduled. Fixtures that were already completed keep their results. The affected players’ guardians are notified that their fixtures were cancelled.
How do I record the school's results against another school?
Set the competition or fixture Scope to Inter-School, then pick the rival from the Opponent School picker. Add the rival under External Schools first, or create it inline from the fixture form. Record the result the same way you would for any team fixture.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Elimu Bora ERP Help Center","description":"Help center for Elimu Bora ERP — a school management system for Kenyan schools running CBC and 8-4-4.","colors":{"primary":"#800000","light":"#FF4D4D","dark":"#800000"},"logo":{"light":"https://mintcdn.com/elimuborasolutionsco/_rAr-ZsKVDWTZrZ6/images/elimubora-logo-primary.png?fit=max\u0026auto=format\u0026n=_rAr-ZsKVDWTZrZ6\u0026q=85\u0026s=4ed2d6d18eb543c27f5cb0bbe0b1ac02","dark":"https://mintcdn.com/elimuborasolutionsco/_rAr-ZsKVDWTZrZ6/images/elimubora-logo-white.png?fit=max\u0026auto=format\u0026n=_rAr-ZsKVDWTZrZ6\u0026q=85\u0026s=8998852a8162322751aad5b730aeeb3e"},"favicon":"https://media.brand.dev/28107f06-65a0-45ce-9937-4bc6a00d197b.svg","appearance":{"default":"system"},"navbar":{"links":[{"href":"https://elimuboraerp.com/login","label":"Login","type":"button"}],"primary":{"type":"button","label":"Get Started for Free","href":"https://elimuboraerp.com/get-started/"}},"footer":{"socials":{"website":"https://elimuboraerp.com/","x":"https://x.com/elimuboraerp","facebook":"https://www.facebook.com/elimuborasolutions","instagram":"https://www.instagram.com/elimuboraerp","linkedin":"https://www.linkedin.com/company/elimu-bora-solutions-co"},"links":[{"header":"Product","items":[{"label":"Pricing","href":"https://elimuboraerp.com/pricing"},{"label":"Book a Demo","href":"https://elimuboraerp.com/contact"}]},{"header":"Company","items":[{"label":"Blog \u0026 Resources","href":"https://elimuboraerp.com/blog"},{"label":"Contact Us","href":"https://elimuboraerp.com/contact"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://elimuboraerp.com/privacy-policy"},{"label":"Terms of Service","href":"https://elimuboraerp.com/terms-of-service"}]},{"header":"Support","items":[{"label":"support@elimuboraerp.com","href":"mailto:support@elimuboraerp.com"},{"label":"Contact Us","href":"https://elimuboraerp.com/contact"}]}]},"fonts":{"heading":{"family":"Sora","weight":700},"body":{"family":"DM Sans","weight":400}},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"posthog":{"apiKey":"phc_qpX7FwgEJa6osP32UU2YEpCp6hYGcwbzVBUdtdnhgPz6","apiHost":"https://b.elimuboraerp.com","sessionRecording":true}},"thumbnails":{"background":"https://mintcdn.com/elimuborasolutionsco/P4BsReXBMB71cxBd/images/cover.png?fit=max\u0026auto=format\u0026n=P4BsReXBMB71cxBd\u0026q=85\u0026s=38f85d7b5b8afb20150889c68acc2ae2","fonts":{"family":"Sora"}},"navigation":{"global":{"anchors":[{"anchor":"Pricing","icon":"tag","href":"https://elimuboraerp.com/pricing/"},{"anchor":"Book a Demo","icon":"calendar-check","href":"https://elimuboraerp.com/contact/"},{"anchor":"Blog \u0026 Resources","icon":"newspaper","href":"https://elimuboraerp.com/blog/"},{"anchor":"Contact Us","icon":"mail","href":"https://elimuboraerp.com/contact/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"elimuborasolutionsco","hasAudioNarration":false,"actualSubdomain":"elimuborasolutionsco","customDomains":["help.elimuboraerp.com"],"gitSource":{"type":"github","owner":"edaratechnologiesltd","repo":"docs","deployBranch":"main","isPrivate":false,"contentDirectory":"","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aa30504002826c9b5476ac2","collectionId":"92ac9a21-c4d2-446d-9cf6-2e90f5f6c95c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aa30504002826c9b5476ac2"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aa30504002826c9b5476ac2","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Documentation","count":18},{"language":"default","tag":"Modules","count":12},{"language":"default","tag":"Get Started","count":5},{"language":"default","tag":"More","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@elimuboraerp.com","showHelpButton":true}},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"#navbar img{height:40px;width:auto;max-height:40px}"}],"page":{"pagePath":"modules/sports","slug":"/modules/sports","pageMetadata":{"title":"Sports \u0026 Games","description":"Manage sports, teams, fixtures, results, and inter-house points.","icon":"trophy","href":"/modules/sports"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Manage sports, teams, fixtures, results, and inter-house points.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Heading,Mermaid,Note,Step,Steps,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Sports \u0026 Games is where the school runs its competitive and recreational sport: the catalogue of sports offered, the houses students belong to, the teams fielded for each sport, the competitions and fixtures played, the results recorded, the awards granted, and the inter-house points leaderboard. A sports coordinator or PE head runs the day-to-day. Teachers who coach a team can record results and update their own team’s fixtures. School leadership oversees it all. Guardians do not record anything; they see a read-only summary of their own children’s team memberships, fixtures, and awards.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Sports \u0026 Games is an optional module. A school can enable or disable it under Settings. When the module is off, the whole `,_jsx(_components.strong,{children:`Sports \u0026 Games`}),` group disappears from the sidebar and sport notifications stop going out. Turn it back on and everything returns exactly as it was.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`records-you’ll-work-with`,children:`Records you’ll work with`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Record`}),_jsx(_components.th,{children:`What it is`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sport`}),_jsxs(_components.td,{children:[`A sport the school offers, such as Football or Athletics. Marked `,_jsx(_components.strong,{children:`Team`}),` or `,_jsx(_components.strong,{children:`Individual`}),`, which decides how its results are recorded.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`House`}),_jsx(_components.td,{children:`A school house, such as a colour-named house, with a name, colour, and motto. Students belong to a house, and houses collect points.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Team`}),_jsx(_components.td,{children:`A squad fielded for one sport in one academic year, with a category (age and gender band), a type (House or School), an optional house, and an optional coach.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Team member`}),_jsx(_components.td,{children:`A student on a team’s roster, with an optional position, a captain flag, and the date they joined.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`External school`}),_jsx(_components.td,{children:`A rival school the school plays against, used as the opponent on inter-school fixtures.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Competition`}),_jsx(_components.td,{children:`A tournament or league for one sport, with a level, scope, format, dates, and an academic-year and term context.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Fixture`}),_jsx(_components.td,{children:`A single scheduled match, with a date, venue, the two sides (or a team and an external school), and a status. May belong to a competition.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Match result`}),_jsx(_components.td,{children:`The score for a team fixture: home score, away score, and a derived outcome (Home Win, Away Win, or Draw). One per fixture.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Individual result`}),_jsx(_components.td,{children:`One athlete’s result in an individual-sport fixture: the event, the position, an optional time or distance, and a personal-best flag.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Award`}),_jsx(_components.td,{children:`A recognition granted to a student for a sport, such as MVP or Top Scorer, scoped to a term and an optional competition.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`House point entry`}),_jsx(_components.td,{children:`A points row credited to a house, either swept in automatically from a house-level result or recorded by hand for a non-sport category such as Cleanliness or Discipline.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-can-do`,children:`What you can do`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Set up sports and houses`,icon:`trophy`,href:`#set-up-sports-and-houses`,children:_jsx(_components.p,{children:`Add the sports the school offers, the houses students belong to, and the rival schools you play.`})}),_jsx(Card,{title:`Build teams`,icon:`users`,href:`#build-teams`,children:_jsx(_components.p,{children:`Field a team for a sport, fill the roster, and appoint patrons and house leaders.`})}),_jsx(Card,{title:`Competitions and fixtures`,icon:`flag`,href:`#competitions-and-fixtures`,children:_jsx(_components.p,{children:`Create a competition, schedule fixtures, and draw a knockout bracket.`})}),_jsx(Card,{title:`Record results`,icon:`pencil`,href:`#record-results`,children:_jsx(_components.p,{children:`Enter team scores and individual placements, and grant awards.`})}),_jsx(Card,{title:`Inter-house points`,icon:`building`,href:`#inter-house-points`,children:_jsx(_components.p,{children:`Read the automatic sweep on house results, award points by hand, and read the standings.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`set-up-sports-and-houses`,children:`Set up sports and houses`}),`\n`,_jsxs(_components.p,{children:[`Everything else in this module hangs off a sport, a house, or an external school, so set these up first. Open `,_jsx(_components.strong,{children:`Sports \u0026 Games`}),` in the sidebar.`]}),`\n`,_jsx(Heading,{level:`3`,id:`add-a-sport`,children:`Add a sport`}),`\n`,_jsx(_components.p,{children:`To offer a new sport, add it to the sports catalogue.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Sports`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Sports`}),` and click the create action, or go to `,_jsx(_components.code,{children:`/sports`}),`.`]})}),_jsx(Step,{title:`Fill in the sport`,children:_jsxs(_components.p,{children:[`Enter the `,_jsx(_components.strong,{children:`Name`}),`, pick the `,_jsx(_components.strong,{children:`Type`}),` (`,_jsx(_components.strong,{children:`Team`}),` or `,_jsx(_components.strong,{children:`Individual`}),`), and add an optional `,_jsx(_components.strong,{children:`Description`}),`. Leave `,_jsx(_components.strong,{children:`Active`}),` on so the sport can be picked when building teams and competitions.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Save. The `,_jsx(_components.strong,{children:`Type`}),` is what decides how results are recorded later: a Team sport is scored with a home and away score, an Individual sport with per-athlete placements. Pick it carefully, because it changes the result form.`]})})]}),`\n`,_jsx(_components.p,{children:`[Insert screenshot: New sport form at /sports/create showing the Name field, the Type selector (Team, Individual), the Description box, and the Active toggle]`}),`\n`,_jsx(Heading,{level:`3`,id:`add-a-house`,children:`Add a house`}),`\n`,_jsx(_components.p,{children:`Houses are the basis of the inter-house points system. Add each of the school’s houses once.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Houses`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Houses`}),` and click the create action, or go to `,_jsx(_components.code,{children:`/houses`}),`.`]})}),_jsx(Step,{title:`Fill in the house`,children:_jsxs(_components.p,{children:[`Enter the `,_jsx(_components.strong,{children:`Name`}),`, pick a `,_jsx(_components.strong,{children:`Color`}),`, add an optional `,_jsx(_components.strong,{children:`Motto`}),` and `,_jsx(_components.strong,{children:`Description`}),`, and leave `,_jsx(_components.strong,{children:`Active`}),` on.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Save. Students are placed into a house from their own profile under `,_jsx(_components.a,{href:`/modules/users`,children:`Users \u0026 Identity`}),`; the house is a tag on the student record. Once a house exists, you can assign its patrons and leaders and it starts collecting points.`]})})]}),`\n`,_jsx(_components.p,{children:`[Insert screenshot: Houses list at /houses showing the colour swatch, Name, Motto, Students count, and Active columns]`}),`\n`,_jsx(Heading,{level:`3`,id:`assign-house-patrons-and-leaders`,children:`Assign house patrons and leaders`}),`\n`,_jsx(_components.p,{children:`Each house carries a slate of staff patrons and student leaders for an academic year. Open a house and use its tabs.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`On the `,_jsx(_components.strong,{children:`Patrons`}),` tab, add a teacher and pick their role (`,_jsx(_components.strong,{children:`Head Patron`}),` or `,_jsx(_components.strong,{children:`Assistant Patron`}),`) for an academic year.`]}),`\n`,_jsxs(_components.li,{children:[`On the `,_jsx(_components.strong,{children:`Leaders`}),` tab, add a student (from that house) and pick their role (`,_jsx(_components.strong,{children:`Captain`}),`, `,_jsx(_components.strong,{children:`Vice Captain`}),`, `,_jsx(_components.strong,{children:`Secretary`}),`, or `,_jsx(_components.strong,{children:`Sports Captain`}),`) for an academic year, with the date they were appointed. One student holds each role per house per year.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Students`}),` tab lists the house’s members for reference. The `,_jsx(_components.strong,{children:`Point Entries`}),` tab is covered under `,_jsx(_components.a,{href:`#inter-house-points`,children:`Inter-house points`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`add-an-external-school`,children:`Add an external school`}),`\n`,_jsx(_components.p,{children:`Record a rival school once, then pick it as the opponent on any inter-school fixture.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open External Schools`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`External Schools`}),` and click the create action, or go to `,_jsx(_components.code,{children:`/external-schools`}),`.`]})}),_jsx(Step,{title:`Fill in the school`,children:_jsxs(_components.p,{children:[`Enter the `,_jsx(_components.strong,{children:`Name`}),`, and optionally the `,_jsx(_components.strong,{children:`County`}),`, `,_jsx(_components.strong,{children:`Town`}),`, `,_jsx(_components.strong,{children:`Contact Person`}),`, `,_jsx(_components.strong,{children:`Phone`}),`, `,_jsx(_components.strong,{children:`Email`}),`, and `,_jsx(_components.strong,{children:`Notes`}),`.`]})}),_jsx(Step,{title:`Save`,children:_jsx(_components.p,{children:`Save. The school is now selectable as the opponent on inter-school fixtures. You can also add one on the fly from the fixture form without leaving the page.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`build-teams`,children:`Build teams`}),`\n`,_jsx(_components.p,{children:`A team is a squad fielded for one sport in one academic year. Build the team first, then fill its roster.`}),`\n`,_jsx(Heading,{level:`3`,id:`create-a-team`,children:`Create a team`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` at least one `,_jsx(_components.strong,{children:`Team`}),`-type `,_jsx(_components.a,{href:`#add-a-sport`,children:`sport`}),` marked Active, and, for a house team, the `,_jsx(_components.a,{href:`#add-a-house`,children:`house`}),` it belongs to. The `,_jsx(_components.strong,{children:`Sport`}),` picker lists only active team sports, and the `,_jsx(_components.strong,{children:`House`}),` picker lists only active houses.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Teams`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Teams`}),` and click the create action, or go to `,_jsx(_components.code,{children:`/teams`}),`.`]})}),_jsx(Step,{title:`Fill in the team`,children:_jsxs(_components.p,{children:[`Pick the `,_jsx(_components.strong,{children:`Sport`}),` and enter a `,_jsx(_components.strong,{children:`Name`}),` (for example, “Under-16 Football”). Pick the `,_jsx(_components.strong,{children:`Category`}),` (the age and gender band) and the `,_jsx(_components.strong,{children:`Type`}),` (`,_jsx(_components.strong,{children:`House`}),` or `,_jsx(_components.strong,{children:`School`}),`). When you pick `,_jsx(_components.strong,{children:`House`}),`, a `,_jsx(_components.strong,{children:`House`}),` picker appears and is required. Pick the `,_jsx(_components.strong,{children:`Academic Year`}),`. Optionally pick a `,_jsx(_components.strong,{children:`Coach`}),` (a teacher) and add a `,_jsx(_components.strong,{children:`Description`}),`. Leave `,_jsx(_components.strong,{children:`Active`}),` on.`]})}),_jsx(Step,{title:`Save`,children:_jsx(_components.p,{children:`Save. The team now exists with an empty roster. The coach you pick can record results and update this team’s fixtures without holding the full sports permission.`})})]}),`\n`,_jsx(_components.p,{children:`[Insert screenshot: New team form at /teams/create showing the Sport, Name, Category, and Type selectors, the conditional House picker, the Coach picker, the Academic Year selector, and the Active toggle]`}),`\n`,_jsx(Heading,{level:`3`,id:`select-the-roster`,children:`Select the roster`}),`\n`,_jsxs(_components.p,{children:[`Add students to a team from the team’s own `,_jsx(_components.strong,{children:`Team Roster`}),` tab.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` the team to exist, and the students to be admitted under `,_jsx(_components.a,{href:`/modules/users`,children:`Users \u0026 Identity`}),` so they appear in the `,_jsx(_components.strong,{children:`Student`}),` picker.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the team`,children:_jsxs(_components.p,{children:[`Open the team from `,_jsx(_components.strong,{children:`Teams`}),` and go to the `,_jsx(_components.strong,{children:`Team Roster`}),` tab.`]})}),_jsx(Step,{title:`Add a member`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Add Member`}),`. Pick the `,_jsx(_components.strong,{children:`Student`}),`, enter an optional `,_jsx(_components.strong,{children:`Position`}),`, tick `,_jsx(_components.strong,{children:`Team Captain`}),` if they captain the side, and set the `,_jsx(_components.strong,{children:`Joined On`}),` date. A student already on the roster cannot be added twice.`]})}),_jsx(Step,{title:`Save`,children:_jsx(_components.p,{children:`Save. The student joins the roster, and their guardians are notified that the child has been selected for the team.`})})]}),`\n`,_jsx(_components.p,{children:`[Insert screenshot: Team Roster tab on a team’s view page showing the student name, Position, Captain, and Joined columns, with the Add Member action]`}),`\n`,_jsx(Heading,{level:`3`,id:`edit-a-team`,children:`Edit a team`}),`\n`,_jsxs(_components.p,{children:[`Open a team from `,_jsx(_components.strong,{children:`Teams`}),` and click `,_jsx(_components.strong,{children:`Edit`}),` to change any detail, the coach, or the active flag. To take a student off a team, open the `,_jsx(_components.strong,{children:`Team Roster`}),` tab and remove their row. Renaming or deactivating a team does not delete its history; past fixtures and results stay readable.`]}),`\n`,_jsx(Heading,{level:`2`,id:`competitions-and-fixtures`,children:`Competitions and fixtures`}),`\n`,_jsx(_components.p,{children:`A competition groups fixtures into a tournament or league. A fixture is a single match. You can schedule a one-off friendly fixture without a competition, or create a competition and schedule its fixtures under it.`}),`\n`,_jsx(Heading,{level:`3`,id:`create-a-competition`,children:`Create a competition`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` the `,_jsx(_components.a,{href:`#add-a-sport`,children:`sport`}),` the competition is for, and the academic year it runs in. Years and terms are seeded under `,_jsx(_components.a,{href:`/modules/academic-years`,children:`Academic Years \u0026 Terms`}),` and ready to pick.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Competitions`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Competitions`}),` and click the create action, or go to `,_jsx(_components.code,{children:`/competitions`}),`.`]})}),_jsx(Step,{title:`Fill in the competition`,children:_jsxs(_components.p,{children:[`Pick the `,_jsx(_components.strong,{children:`Sport`}),` and enter a `,_jsx(_components.strong,{children:`Name`}),`. Pick the `,_jsx(_components.strong,{children:`Level`}),` (`,_jsx(_components.strong,{children:`House`}),`, `,_jsx(_components.strong,{children:`School`}),`, `,_jsx(_components.strong,{children:`Sub-County`}),`, `,_jsx(_components.strong,{children:`County`}),`, `,_jsx(_components.strong,{children:`Regional`}),`, or `,_jsx(_components.strong,{children:`National`}),`), the `,_jsx(_components.strong,{children:`Scope`}),` (`,_jsx(_components.strong,{children:`Intra-School`}),` or `,_jsx(_components.strong,{children:`Inter-School`}),`), and the `,_jsx(_components.strong,{children:`Format`}),` (`,_jsx(_components.strong,{children:`League`}),`, `,_jsx(_components.strong,{children:`Knockout`}),`, or `,_jsx(_components.strong,{children:`Group + Knockout`}),`). For a knockout or group-and-knockout format, optionally set the `,_jsx(_components.strong,{children:`Total Rounds`}),`. Pick the `,_jsx(_components.strong,{children:`Academic Year`}),` and an optional `,_jsx(_components.strong,{children:`Term`}),`, set the `,_jsx(_components.strong,{children:`Start Date`}),` and an optional `,_jsx(_components.strong,{children:`End Date`}),`, and add an optional `,_jsx(_components.strong,{children:`Venue`}),` and `,_jsx(_components.strong,{children:`Description`}),`.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Save. The competition starts as `,_jsx(_components.strong,{children:`Upcoming`}),`. Setting the `,_jsx(_components.strong,{children:`Level`}),` to `,_jsx(_components.strong,{children:`House`}),` is what turns on the automatic inter-house points sweep when its results are recorded (see `,_jsx(_components.a,{href:`#inter-house-points`,children:`Inter-house points`}),`).`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`schedule-a-fixture`,children:`Schedule a fixture`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` the `,_jsx(_components.a,{href:`#add-a-sport`,children:`sport`}),`, the `,_jsx(_components.a,{href:`#create-a-team`,children:`teams`}),` playing (for an intra-school match) or the `,_jsx(_components.a,{href:`#add-an-external-school`,children:`external school`}),` (for an inter-school match). A fixture can stand alone as a friendly, or belong to a `,_jsx(_components.a,{href:`#create-a-competition`,children:`competition`}),`.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Fixtures`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Fixtures`}),` and click the create action, or go to `,_jsx(_components.code,{children:`/fixtures`}),`.`]})}),_jsxs(Step,{title:`Fill in the fixture`,children:[_jsxs(_components.p,{children:[`Pick the `,_jsx(_components.strong,{children:`Sport`}),` and an optional `,_jsx(_components.strong,{children:`Competition`}),`. Set the `,_jsx(_components.strong,{children:`Fixture date`}),` and optional `,_jsx(_components.strong,{children:`Start time`}),` and `,_jsx(_components.strong,{children:`End time`}),`. Pick the `,_jsx(_components.strong,{children:`Scope`}),`:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Intra-School`}),` shows a `,_jsx(_components.strong,{children:`Home Team`}),` and an `,_jsx(_components.strong,{children:`Away Team`}),` picker, both drawn from the chosen sport’s teams.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Inter-School`}),` shows a `,_jsx(_components.strong,{children:`Home Team`}),` picker and an `,_jsx(_components.strong,{children:`Opponent School`}),` picker for the external school. You can add a new external school here without leaving the form.`]}),`\n`]}),_jsxs(_components.p,{children:[`For an `,_jsx(_components.strong,{children:`Individual`}),` sport, the team pickers are hidden; you’ll add each athlete’s placement when you record the result. The `,_jsx(_components.strong,{children:`Opponent School`}),` picker still appears for an Inter-School fixture.`]}),_jsxs(_components.p,{children:[`Enter an optional `,_jsx(_components.strong,{children:`Venue`}),` and `,_jsx(_components.strong,{children:`Notes`}),`. The `,_jsx(_components.strong,{children:`Status`}),` defaults to `,_jsx(_components.strong,{children:`Scheduled`}),`.`]})]}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Save. The fixture is created as `,_jsx(_components.strong,{children:`Scheduled`}),`, and the guardians of the players on both sides are notified that the match is set. When the `,_jsx(_components.a,{href:`/modules/events`,children:`Events`}),` module is on, the fixture also appears on the school calendar.`]})})]}),`\n`,_jsx(_components.p,{children:`[Insert screenshot: New fixture form at /fixtures/create showing the Sport and Competition selectors, the date and time fields, the Scope selector, the Home Team and Away Team or Opponent School pickers, and the Status selector defaulting to Scheduled]`}),`\n`,_jsx(Heading,{level:`3`,id:`generate-a-knockout-bracket`,children:`Generate a knockout bracket`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` a `,_jsx(_components.strong,{children:`Knockout`}),` or `,_jsx(_components.strong,{children:`Group + Knockout`}),` `,_jsx(_components.a,{href:`#create-a-competition`,children:`competition`}),` that has no bracket yet, and the `,_jsx(_components.a,{href:`#create-a-team`,children:`teams`}),` to seed into it.`]})}),`\n`,_jsx(_components.p,{children:`For a knockout competition, the system draws the whole bracket for you instead of you scheduling each round by hand.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the competition`,children:_jsxs(_components.p,{children:[`Open the competition from `,_jsx(_components.strong,{children:`Competitions`}),` and find the header actions.`]})}),_jsx(Step,{title:`Generate the draw`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Generate Draw`}),`. Tick the teams to include. Optionally turn on `,_jsx(_components.strong,{children:`Apply standard seeding`}),` to pair the strongest against the weakest (1 vs N, 2 vs N-1, and so on); leave it off for a random draw.`]})}),_jsx(Step,{title:`Confirm`,children:_jsxs(_components.p,{children:[`Confirm. The system creates one fixture per bracket slot and wires the rounds together so that winning a match advances a team to the next one. If there is an odd team out, that team gets a bye and is advanced automatically. The drawn bracket appears on the competition’s `,_jsx(_components.strong,{children:`Bracket`}),` tab.`]})})]}),`\n`,_jsxs(_components.p,{children:[`You can redraw a bracket with `,_jsx(_components.strong,{children:`Reset Draw`}),` while the competition is still `,_jsx(_components.strong,{children:`Upcoming`}),`; this permanently removes the drawn fixtures and any results, so use it before play begins. A `,_jsx(_components.strong,{children:`Group + Knockout`}),` competition has a separate `,_jsx(_components.strong,{children:`Generate Knockout Bracket`}),` action to seed the qualifying teams into the knockout phase once the group stage is set.`]}),`\n`,_jsx(Heading,{level:`2`,id:`record-results`,children:`Record results`}),`\n`,_jsxs(_components.p,{children:[`A result is recorded straight onto a fixture, from the `,_jsx(_components.strong,{children:`Record Result`}),` action on the `,_jsx(_components.strong,{children:`Fixtures`}),` list. The form matches the sport: team sports take a score, individual sports take per-athlete placements. There is no separate publish step; recording the result is what completes the fixture and triggers notifications and any house-points sweep.`]}),`\n`,_jsx(Heading,{level:`3`,id:`record-a-team-result`,children:`Record a team result`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` a `,_jsx(_components.strong,{children:`Scheduled`}),` or `,_jsx(_components.strong,{children:`In Progress`}),` fixture for a `,_jsx(_components.strong,{children:`Team`}),` sport. The `,_jsx(_components.strong,{children:`Record Result`}),` action is hidden once a fixture is `,_jsx(_components.strong,{children:`Completed`}),`, `,_jsx(_components.strong,{children:`Postponed`}),`, or `,_jsx(_components.strong,{children:`Cancelled`}),`.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the action`,children:_jsxs(_components.p,{children:[`On the `,_jsx(_components.strong,{children:`Fixtures`}),` list, find the fixture and click `,_jsx(_components.strong,{children:`Record Result`}),`.`]})}),_jsx(Step,{title:`Enter the score`,children:_jsxs(_components.p,{children:[`Enter the `,_jsx(_components.strong,{children:`Home Score`}),` and the `,_jsx(_components.strong,{children:`Away Score`}),`. Tick `,_jsx(_components.strong,{children:`Walkover`}),` if the match was awarded without play. Add optional result `,_jsx(_components.strong,{children:`Notes`}),`.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Save. The fixture moves to `,_jsx(_components.strong,{children:`Completed`}),`, the outcome (Home Win, Away Win, or Draw) is worked out from the scores, the players’ guardians are notified that the result is recorded, and, in a knockout competition, the winner advances to the next fixture. For a `,_jsx(_components.strong,{children:`House`}),`-level competition, house points are swept in automatically (see `,_jsx(_components.a,{href:`#inter-house-points`,children:`Inter-house points`}),`).`]})})]}),`\n`,_jsx(_components.p,{children:`[Insert screenshot: Record Result modal for a team fixture showing the Home Score and Away Score fields, the Walkover toggle, and the Notes box]`}),`\n`,_jsx(Heading,{level:`3`,id:`record-individual-results`,children:`Record individual results`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` a `,_jsx(_components.strong,{children:`Scheduled`}),` or `,_jsx(_components.strong,{children:`In Progress`}),` fixture for an `,_jsx(_components.strong,{children:`Individual`}),` sport, and the athletes admitted under `,_jsx(_components.a,{href:`/modules/users`,children:`Users \u0026 Identity`}),` so they appear in the `,_jsx(_components.strong,{children:`Student`}),` picker.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the action`,children:_jsxs(_components.p,{children:[`On the `,_jsx(_components.strong,{children:`Fixtures`}),` list, find the individual-sport fixture and click `,_jsx(_components.strong,{children:`Record Result`}),`.`]})}),_jsx(Step,{title:`Add each athlete's result`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Add Result`}),` for each athlete. Pick the `,_jsx(_components.strong,{children:`Student`}),`, enter the `,_jsx(_components.strong,{children:`Event`}),` name, the finishing `,_jsx(_components.strong,{children:`position`}),`, an optional `,_jsx(_components.strong,{children:`time`}),` or `,_jsx(_components.strong,{children:`distance`}),` record, and tick `,_jsx(_components.strong,{children:`Personal Best`}),` if it was one.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Save. The fixture moves to `,_jsx(_components.strong,{children:`Completed`}),` and the athletes’ guardians are notified. For a `,_jsx(_components.strong,{children:`House`}),`-level competition, the top three placements earn their house 5, 3, and 1 points respectively.`]})})]}),`\n`,_jsxs(_components.p,{children:[`You can also view and adjust individual results on a fixture’s `,_jsx(_components.strong,{children:`Individual Results`}),` tab after the match.`]}),`\n`,_jsx(Heading,{level:`3`,id:`grant-an-award`,children:`Grant an award`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` the recipient `,_jsx(_components.a,{href:`/modules/users`,children:`student`}),`, the `,_jsx(_components.a,{href:`#add-a-sport`,children:`sport`}),` the award is for, and the term. An optional `,_jsx(_components.a,{href:`#create-a-competition`,children:`competition`}),` can be attached.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Awards`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Awards`}),` and click the create action, or go to `,_jsx(_components.code,{children:`/awards`}),`.`]})}),_jsx(Step,{title:`Fill in the award`,children:_jsxs(_components.p,{children:[`Pick the `,_jsx(_components.strong,{children:`Student`}),`, the `,_jsx(_components.strong,{children:`Sport`}),`, and an optional `,_jsx(_components.strong,{children:`Competition`}),`. Pick the `,_jsx(_components.strong,{children:`Award type`}),` (`,_jsx(_components.strong,{children:`MVP`}),`, `,_jsx(_components.strong,{children:`Best Player`}),`, `,_jsx(_components.strong,{children:`Most Improved`}),`, `,_jsx(_components.strong,{children:`Top Scorer`}),`, `,_jsx(_components.strong,{children:`Sportsmanship`}),`, or `,_jsx(_components.strong,{children:`Custom`}),`). For a `,_jsx(_components.strong,{children:`Custom`}),` award, a `,_jsx(_components.strong,{children:`Custom Title`}),` field appears and is required. Pick the `,_jsx(_components.strong,{children:`Term`}),` and `,_jsx(_components.strong,{children:`Academic Year`}),`, and add an optional `,_jsx(_components.strong,{children:`Citation / Reason`}),`.`]})}),_jsx(Step,{title:`Save`,children:_jsx(_components.p,{children:`Save. The recipient’s guardians are notified that the award was granted.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`inter-house-points`,children:`Inter-house points`}),`\n`,_jsx(_components.p,{children:`Houses collect points from two sources: an automatic sweep when a house-level competition result is recorded, and manual entries a coordinator records for non-sport categories. The running leaderboard is shown on the dashboard.`}),`\n`,_jsx(Heading,{level:`3`,id:`how-the-automatic-sweep-works`,children:`How the automatic sweep works`}),`\n`,_jsxs(_components.p,{children:[`When you record a result for a fixture in a competition whose `,_jsx(_components.strong,{children:`Level`}),` is `,_jsx(_components.strong,{children:`House`}),`, the system writes the house points for you, with no extra step:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Team results`}),` credit the winning team’s house 3 points, and a draw credits each house 1 point. A loss earns nothing.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Individual results`}),` credit the athlete’s house 5, 3, or 1 points for finishing first, second, or third.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`These swept entries carry the `,_jsx(_components.strong,{children:`Sports`}),` category and point back to the result that produced them. If you correct a result, the swept points are recalculated to match; if you delete a result, its swept points are removed. You cannot edit or delete a swept entry by hand, because it is owned by the result.`]}),`\n`,_jsx(Heading,{level:`3`,id:`award-house-points-by-hand`,children:`Award house points by hand`}),`\n`,_jsx(_components.p,{children:`For categories that are not sport, such as cleanliness or discipline, record the points yourself.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You will need:`}),` at least one active `,_jsx(_components.a,{href:`#add-a-house`,children:`house`}),` and a term to file the points under. This action is available to staff who hold the award-house-points permission, granted through `,_jsx(_components.a,{href:`/roles-permissions`,children:`Roles \u0026 permissions`}),`.`]})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Award House Points`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Award House Points`}),` under `,_jsx(_components.strong,{children:`Sports \u0026 Games`}),`.`]})}),_jsx(Step,{title:`Fill in the entry`,children:_jsxs(_components.p,{children:[`Pick the `,_jsx(_components.strong,{children:`Category`}),` (`,_jsx(_components.strong,{children:`Cleanliness`}),`, `,_jsx(_components.strong,{children:`Academics`}),`, `,_jsx(_components.strong,{children:`Discipline`}),`, `,_jsx(_components.strong,{children:`Co-Curricular`}),`, `,_jsx(_components.strong,{children:`Sports`}),`, or `,_jsx(_components.strong,{children:`Other`}),`), set the `,_jsx(_components.strong,{children:`Date`}),`, write a `,_jsx(_components.strong,{children:`Description`}),`, and pick the `,_jsx(_components.strong,{children:`Term`}),`. Enter the points for each house in the same step; leave a house blank or at zero to skip it.`]})}),_jsx(Step,{title:`Submit`,children:_jsxs(_components.p,{children:[`Submit. One entry is created per house you gave points to, and the standings update. You can also add a single manual entry from a house’s `,_jsx(_components.strong,{children:`Point Entries`}),` tab.`]})})]}),`\n`,_jsx(_components.p,{children:`[Insert screenshot: Award House Points page showing the Category selector, Date, Description, and Term fields, and a points input per house]`}),`\n`,_jsx(Heading,{level:`3`,id:`read-the-standings`,children:`Read the standings`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`House Leaderboard`}),` on the leadership dashboard shows each house’s total points for the current term, ordered highest first. A house’s own `,_jsx(_components.strong,{children:`Point Entries`}),` tab lists every entry behind its total, with the date, category, points, and whether each came from a result or was recorded by hand.`]}),`\n`,_jsx(Heading,{level:`2`,id:`statuses-and-lifecycle`,children:`Statuses and lifecycle`}),`\n`,_jsxs(_components.p,{children:[`Sports \u0026 Games has two records that move through a real lifecycle: fixtures and competitions. Teams, sports, and houses do not carry a lifecycle status; they have an `,_jsx(_components.strong,{children:`Active`}),` flag that simply controls whether they can be picked on new records, which is described under `,_jsx(_components.a,{href:`#build-teams`,children:`Build teams`}),` and `,_jsx(_components.a,{href:`#set-up-sports-and-houses`,children:`Set up sports and houses`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`fixture-statuses`,children:`Fixture statuses`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`What it means`}),_jsx(_components.th,{children:`Who can act`}),_jsx(_components.th,{children:`What they can do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Scheduled`}),_jsx(_components.td,{children:`The fixture is set but not yet played. New fixtures start here.`}),_jsx(_components.td,{children:`Coordinator, the teams’ coaches, leadership`}),_jsx(_components.td,{children:`Record the result, or mark the fixture In Progress, Postponed, or Cancelled by editing it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`In Progress`}),_jsx(_components.td,{children:`The match is underway.`}),_jsx(_components.td,{children:`Coordinator, coaches, leadership`}),_jsx(_components.td,{children:`Record the result, or mark it Postponed or Cancelled.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Completed`}),_jsx(_components.td,{children:`The result has been recorded.`}),_jsx(_components.td,{children:`(none)`}),_jsx(_components.td,{children:`Read the result. The result can still be corrected on the fixture.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Postponed`}),_jsx(_components.td,{children:`The match was deferred. The affected players’ guardians are notified.`}),_jsx(_components.td,{children:`Coordinator, coaches, leadership`}),_jsx(_components.td,{children:`Reschedule it back to Scheduled, or cancel it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cancelled`}),_jsx(_components.td,{children:`The match was called off. The affected players’ guardians are notified. Also set in bulk when the parent competition is cancelled.`}),_jsx(_components.td,{children:`(none)`}),_jsx(_components.td,{children:`Read the fixture.`})]})]})]}),`\n`,_jsx(Mermaid,{chart:`stateDiagram-v2\n [*] --> Scheduled: fixture created\n Scheduled --> InProgress: staff marks the match underway\n Scheduled --> Postponed: staff defers the match\n Scheduled --> Cancelled: staff calls the match off\n Scheduled --> Completed: staff records the result (or a bye)\n InProgress --> Completed: staff records the result\n InProgress --> Postponed: staff defers the match\n InProgress --> Cancelled: staff calls the match off\n Postponed --> Scheduled: staff reschedules\n Postponed --> Cancelled: staff calls the match off\n Completed --> [*]\n Cancelled --> [*]`}),`\n`,_jsxs(_components.p,{children:[`Recording a result moves a fixture straight to `,_jsx(_components.strong,{children:`Completed`}),`. The other moves are made by editing the fixture and changing its `,_jsx(_components.strong,{children:`Status`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`competition-statuses`,children:`Competition statuses`}),`\n`,_jsx(_components.p,{children:`A competition’s status is maintained for you, by date, except for cancellation, which is a manual choice.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`What it means`}),_jsx(_components.th,{children:`Who can act`}),_jsx(_components.th,{children:`What they can do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Upcoming`}),_jsx(_components.td,{children:`Created but not yet started. New competitions start here. A knockout bracket can only be drawn or reset while the competition is Upcoming.`}),_jsx(_components.td,{children:`Coordinator, leadership`}),_jsx(_components.td,{children:`Schedule fixtures, draw or reset a knockout bracket, or cancel the competition.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`In Progress`}),_jsx(_components.td,{children:`The start date has been reached.`}),_jsx(_components.td,{children:`Coordinator, leadership`}),_jsx(_components.td,{children:`Record results; cancel the competition.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Completed`}),_jsx(_components.td,{children:`The end date has passed and no fixtures are left outstanding.`}),_jsx(_components.td,{children:`(none)`}),_jsx(_components.td,{children:`Read the competition and its results.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cancelled`}),_jsx(_components.td,{children:`The competition was called off. Every still-scheduled fixture in it is cancelled too.`}),_jsx(_components.td,{children:`(none)`}),_jsx(_components.td,{children:`Read the competition.`})]})]})]}),`\n`,_jsx(Mermaid,{chart:`stateDiagram-v2\n [*] --> Upcoming: competition created\n Upcoming --> InProgress: start date reached\n Upcoming --> Cancelled: staff calls it off\n InProgress --> Completed: end date passes, all fixtures done\n InProgress --> Cancelled: staff calls it off\n Completed --> [*]\n Cancelled --> [*]`}),`\n`,_jsx(_components.p,{children:`The move from Upcoming to In Progress and from In Progress to Completed happens on its own as the dates pass. Cancelling is the only status a staff member sets by hand, and it cascades to the competition’s scheduled fixtures.`}),`\n`,_jsx(Heading,{level:`3`,id:`categorical-values-used-on-forms`,children:`Categorical values used on forms`}),`\n`,_jsx(_components.p,{children:`These are not lifecycles. They appear on form pickers when setting up sports records.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sport type:`}),` Team or Individual. Set on the sport; decides whether results are a score or per-athlete placements.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Team category:`}),` the age and gender band a team competes in (U-14 Boys, U-14 Girls, U-16 Boys, U-16 Girls, U-19 Boys, U-19 Girls, Open Boys, Open Girls, or Mixed).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Team type:`}),` House (the team belongs to a house) or School (the team represents the whole school).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Competition level:`}),` House, School, Sub-County, County, Regional, or National. The House level is what turns on the automatic inter-house points sweep.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Competition scope:`}),` Intra-School (within the school) or Inter-School (against another school, using an external school as the opponent).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Competition format:`}),` League, Knockout (a single-elimination bracket), or Group + Knockout.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Match outcome:`}),` Home Win, Away Win, or Draw. Worked out from the scores, not entered.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Award type:`}),` MVP, Best Player, Most Improved, Top Scorer, Sportsmanship, or Custom (which uses a free-text title).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`House patron role:`}),` Head Patron or Assistant Patron.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`House leader role:`}),` Captain, Vice Captain, Secretary, or Sports Captain.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`House point category:`}),` Sports, Cleanliness, Academics, Discipline, Co-Curricular, or Other.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-records-relate`,children:`How records relate`}),`\n`,_jsx(_components.p,{children:`A few user-visible relationships are worth keeping in mind:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A sport is the root of its teams, competitions, and fixtures. A team belongs to one sport and one academic year, and a house team also belongs to a house.`}),`\n`,_jsx(_components.li,{children:`A team’s roster is its students. A student can be on more than one team, across different sports.`}),`\n`,_jsx(_components.li,{children:`A fixture is for one sport and is played between two teams, or between a team and an external school. It may belong to a competition, or stand alone as a friendly.`}),`\n`,_jsx(_components.li,{children:`A team fixture has one match result; an individual fixture has one result per athlete.`}),`\n`,_jsx(_components.li,{children:`An award belongs to one student and one sport, scoped to a term and an optional competition.`}),`\n`,_jsxs(_components.li,{children:[`A house collects points from house-level results (swept in automatically) and from manual entries. The student’s house is set on the student record under `,_jsx(_components.a,{href:`/modules/users`,children:`Users \u0026 Identity`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`A student’s per-term sports participation, teams, fixtures, and awards, also appears as a summary on their report card under `,_jsx(_components.a,{href:`/modules/assessments`,children:`Assessments \u0026 Report Cards`}),` when both modules are in use.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`reports-and-analytics`,children:`Reports and analytics`}),`\n`,_jsx(_components.p,{children:`Sports \u0026 Games surfaces its analytics as dashboard widgets rather than downloadable files. On the leadership dashboard, staff who can view sports see:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Widget`}),_jsx(_components.th,{children:`What it shows`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sports`}),_jsx(_components.td,{children:`Headline counts for the current term: upcoming fixtures, fixtures played, wins, and awards.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`House Leaderboard`}),_jsx(_components.td,{children:`Each house’s total points for the current term, ordered highest first.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Recent Results`}),_jsx(_components.td,{children:`The latest recorded match results.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Top Performers`}),_jsx(_components.td,{children:`The students with the most awards this term, by sport.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A house’s `,_jsx(_components.strong,{children:`Point Entries`}),` tab is the per-house breakdown behind the leaderboard total.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-guardians-see`,children:`What guardians see`}),`\n`,_jsxs(_components.p,{children:[`Guardians sign in to the same tenant subdomain as staff. Their account holds the locked `,_jsx(_components.strong,{children:`Guardian`}),` role, which is read-only and scoped to their own children. In this area, a guardian sees the `,_jsx(_components.strong,{children:`Sports \u0026 Games`}),` widget on their dashboard, which summarises, per child, for the current term:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The child’s number of active team memberships.`}),`\n`,_jsx(_components.li,{children:`The number of fixtures the child played this term.`}),`\n`,_jsx(_components.li,{children:`The number of awards the child received this term.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Guardians also receive notifications, whether or not they log in, when a child is selected for a team, when a fixture for the child is scheduled, postponed, or cancelled, when a match result for the child is recorded, and when the child is granted an award.`}),`\n`,_jsxs(_components.p,{children:[`The Guardian role does `,_jsx(_components.strong,{children:`not`}),` see the `,_jsx(_components.strong,{children:`Sports`}),`, `,_jsx(_components.strong,{children:`Teams`}),`, `,_jsx(_components.strong,{children:`Fixtures`}),`, `,_jsx(_components.strong,{children:`Competitions`}),`, `,_jsx(_components.strong,{children:`Awards`}),`, `,_jsx(_components.strong,{children:`External Schools`}),`, or `,_jsx(_components.strong,{children:`Houses`}),` pages, nor the `,_jsx(_components.strong,{children:`Award House Points`}),` page. Every recording action, creating a team, selecting a roster, scheduling a fixture, recording a result, granting an award, awarding house points, is staff-only and never exposed to a guardian.`]}),`\n`,_jsx(Heading,{level:`2`,id:`faqs-and-troubleshooting`,children:`FAQs and troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`How do I correct a score I recorded wrong?`,id:`how-do-i-correct-a-score-i-recorded-wrong`,children:_jsxs(_components.p,{children:[`Open the fixture and update its match result, or, for an individual sport, adjust the rows on the `,_jsx(_components.strong,{children:`Individual Results`}),` tab. The outcome is recalculated from the corrected scores, and if the fixture is in a house-level competition the swept house points are recalculated to match. There is no separate publish step to undo.`]})}),_jsx(Accordion,{title:`Why is the Record Result button missing on a fixture?`,id:`why-is-the-record-result-button-missing-on-a-fixture`,children:_jsxs(_components.p,{children:[`It only appears while a fixture is `,_jsx(_components.strong,{children:`Scheduled`}),` or `,_jsx(_components.strong,{children:`In Progress`}),`. A `,_jsx(_components.strong,{children:`Completed`}),`, `,_jsx(_components.strong,{children:`Postponed`}),`, or `,_jsx(_components.strong,{children:`Cancelled`}),` fixture does not show it. If the fixture is already Completed and you need to change the score, open it and edit the result directly rather than recording a new one.`]})}),_jsx(Accordion,{title:`How are inter-house points calculated?`,id:`how-are-inter-house-points-calculated`,children:_jsxs(_components.p,{children:[`They are swept in automatically when you record a result for a fixture in a competition whose `,_jsx(_components.strong,{children:`Level`}),` is `,_jsx(_components.strong,{children:`House`}),`. A team win earns the winning team’s house 3 points and a draw earns each house 1; an individual first, second, or third place earns the athlete’s house 5, 3, or 1 points. Points for other categories, such as cleanliness or discipline, are recorded by hand on the `,_jsx(_components.strong,{children:`Award House Points`}),` page. If your house standings are not changing after a match, check that the competition’s Level is set to House and that the teams or athletes are assigned to a house.`]})}),_jsx(Accordion,{title:`Can a student be on more than one team?`,id:`can-a-student-be-on-more-than-one-team`,children:_jsx(_components.p,{children:`Yes. A student can be on several teams across different sports. Within a single team’s roster, the same student cannot be added twice.`})}),_jsx(Accordion,{title:`How do I draw a knockout tournament?`,id:`how-do-i-draw-a-knockout-tournament`,children:_jsxs(_components.p,{children:[`Create the competition with a `,_jsx(_components.strong,{children:`Knockout`}),` format while it is still `,_jsx(_components.strong,{children:`Upcoming`}),`, open it, and click `,_jsx(_components.strong,{children:`Generate Draw`}),`. Pick the teams, optionally apply standard seeding, and confirm. The system builds the full bracket and advances winners automatically as results come in. To redraw, use `,_jsx(_components.strong,{children:`Reset Draw`}),`, which is available only while the competition is still Upcoming.`]})}),_jsx(Accordion,{title:`What happens to a competition's fixtures if I cancel it?`,id:`what-happens-to-a-competitions-fixtures-if-i-cancel-it`,children:_jsxs(_components.p,{children:[`Cancelling a competition cancels every fixture in it that is still `,_jsx(_components.strong,{children:`Scheduled`}),`. Fixtures that were already completed keep their results. The affected players’ guardians are notified that their fixtures were cancelled.`]})}),_jsx(Accordion,{title:`How do I record the school's results against another school?`,id:`how-do-i-record-the-schools-results-against-another-school`,children:_jsxs(_components.p,{children:[`Set the competition or fixture `,_jsx(_components.strong,{children:`Scope`}),` to `,_jsx(_components.strong,{children:`Inter-School`}),`, then pick the rival from the `,_jsx(_components.strong,{children:`Opponent School`}),` picker. Add the rival under `,_jsx(_components.strong,{children:`External Schools`}),` first, or create it inline from the fixture form. Record the result the same way you would for any team fixture.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Sports \u0026 Games","description":"Manage sports, teams, fixtures, results, and inter-house points.","icon":"trophy","href":"/modules/sports"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Records you’ll work with","slug":"records-you’ll-work-with","depth":2,"children":[]},{"title":"What you can do","slug":"what-you-can-do","depth":2,"children":[]},{"title":"Set up sports and houses","slug":"set-up-sports-and-houses","depth":2,"children":[{"title":"Add a sport","slug":"add-a-sport","depth":3,"children":[]},{"title":"Add a house","slug":"add-a-house","depth":3,"children":[]},{"title":"Assign house patrons and leaders","slug":"assign-house-patrons-and-leaders","depth":3,"children":[]},{"title":"Add an external school","slug":"add-an-external-school","depth":3,"children":[]}]},{"title":"Build teams","slug":"build-teams","depth":2,"children":[{"title":"Create a team","slug":"create-a-team","depth":3,"children":[]},{"title":"Select the roster","slug":"select-the-roster","depth":3,"children":[]},{"title":"Edit a team","slug":"edit-a-team","depth":3,"children":[]}]},{"title":"Competitions and fixtures","slug":"competitions-and-fixtures","depth":2,"children":[{"title":"Create a competition","slug":"create-a-competition","depth":3,"children":[]},{"title":"Schedule a fixture","slug":"schedule-a-fixture","depth":3,"children":[]},{"title":"Generate a knockout bracket","slug":"generate-a-knockout-bracket","depth":3,"children":[]}]},{"title":"Record results","slug":"record-results","depth":2,"children":[{"title":"Record a team result","slug":"record-a-team-result","depth":3,"children":[]},{"title":"Record individual results","slug":"record-individual-results","depth":3,"children":[]},{"title":"Grant an award","slug":"grant-an-award","depth":3,"children":[]}]},{"title":"Inter-house points","slug":"inter-house-points","depth":2,"children":[{"title":"How the automatic sweep works","slug":"how-the-automatic-sweep-works","depth":3,"children":[]},{"title":"Award house points by hand","slug":"award-house-points-by-hand","depth":3,"children":[]},{"title":"Read the standings","slug":"read-the-standings","depth":3,"children":[]}]},{"title":"Statuses and lifecycle","slug":"statuses-and-lifecycle","depth":2,"children":[{"title":"Fixture statuses","slug":"fixture-statuses","depth":3,"children":[]},{"title":"Competition statuses","slug":"competition-statuses","depth":3,"children":[]},{"title":"Categorical values used on forms","slug":"categorical-values-used-on-forms","depth":3,"children":[]}]},{"title":"How records relate","slug":"how-records-relate","depth":2,"children":[]},{"title":"Reports and analytics","slug":"reports-and-analytics","depth":2,"children":[]},{"title":"What guardians see","slug":"what-guardians-see","depth":2,"children":[]},{"title":"FAQs and troubleshooting","slug":"faqs-and-troubleshooting","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"elimuborasolutionsco","siteName":"Elimu Bora ERP Help Center","title":"Sports \u0026 Games - Elimu Bora ERP Help Center","contextualStarterQuestions":[{"_id":"6a0f4a9734ad5fc914a34b5d","deploymentId":"69ff495a3eaa1efe3f179aac","questionText":"What are the main sports records?","status":"active","generatedBy":"contextual","path":"modules/sports","createdAt":"2026-05-21T18:10:31.051Z","updatedAt":"2026-05-21T18:10:31.051Z","__v":0},{"_id":"6a0f4a9734ad5fc914a34b5e","deploymentId":"69ff495a3eaa1efe3f179aac","questionText":"Can I manage inter-house points?","status":"active","generatedBy":"contextual","path":"modules/sports","createdAt":"2026-05-21T18:10:31.051Z","updatedAt":"2026-05-21T18:10:31.051Z","__v":0},{"_id":"6a0f4a9734ad5fc914a34b5c","deploymentId":"69ff495a3eaa1efe3f179aac","questionText":"How do I record match results?","status":"active","generatedBy":"contextual","path":"modules/sports","createdAt":"2026-05-21T18:10:31.051Z","updatedAt":"2026-05-21T18:10:31.051Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-21T18:10:21.066Z","originalFileLocation":"modules/sports.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Manage sports, teams, fixtures, results, and inter-house points.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Elimu Bora ERP Help Center\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://media.brand.dev/28107f06-65a0-45ce-9937-4bc6a00d197b.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://media.brand.dev/28107f06-65a0-45ce-9937-4bc6a00d197b.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://media.brand.dev/28107f06-65a0-45ce-9937-4bc6a00d197b.svg\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://media.brand.dev/28107f06-65a0-45ce-9937-4bc6a00d197b.svg\">\u003cmeta data-mint-head property=\"og:title\" content=\"Sports \u0026amp; Games - Elimu Bora ERP Help Center\">\u003cmeta data-mint-head property=\"og:description\" content=\"Manage sports, teams, fixtures, results, and inter-house points.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Elimu Bora ERP Help Center\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.elimuboraerp.com/modules/sports\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://elimuborasolutionsco.mintlify.app/_mintlify/api/og/v2?division=Modules\u0026amp;title=Sports+%26+Games\u0026amp;description=Manage+sports%2C+teams%2C+fixtures%2C+results%2C+and+inter-house+points.\u0026amp;theme=bc6e4384b58753bfe2bf836e\u0026amp;signature=c69c8e3e19a4b58d16df10956e31bce217b829a47bd89271e268ba1891daaaa4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Sports \u0026amp; Games - Elimu Bora ERP Help Center\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Manage sports, teams, fixtures, results, and inter-house points.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://elimuborasolutionsco.mintlify.app/_mintlify/api/og/v2?division=Modules\u0026amp;title=Sports+%26+Games\u0026amp;description=Manage+sports%2C+teams%2C+fixtures%2C+results%2C+and+inter-house+points.\u0026amp;theme=bc6e4384b58753bfe2bf836e\u0026amp;signature=c69c8e3e19a4b58d16df10956e31bce217b829a47bd89271e268ba1891daaaa4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/elimuborasolutionsco/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Elimu Bora ERP Help Center\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#800000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.elimuboraerp.com/modules/sports\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/modules/sports.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.elimuboraerp.com/#organization\",\"name\":\"Elimu Bora ERP Help Center\",\"url\":\"https://help.elimuboraerp.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/elimuborasolutionsco/_rAr-ZsKVDWTZrZ6/images/elimubora-logo-primary.png?fit=max\u0026auto=format\u0026n=_rAr-ZsKVDWTZrZ6\u0026q=85\u0026s=4ed2d6d18eb543c27f5cb0bbe0b1ac02\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.elimuboraerp.com#website\",\"name\":\"Elimu Bora ERP Help Center\",\"url\":\"https://help.elimuboraerp.com\",\"publisher\":{\"@id\":\"https://help.elimuboraerp.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.elimuboraerp.com/modules/sports#webpage\",\"url\":\"https://help.elimuboraerp.com/modules/sports\",\"name\":\"Sports \u0026 Games\",\"description\":\"Manage sports, teams, fixtures, results, and inter-house points.\",\"dateModified\":\"2026-05-21T18:10:21.066Z\",\"isPartOf\":{\"@id\":\"https://help.elimuboraerp.com#website\"},\"breadcrumb\":{\"@id\":\"https://help.elimuboraerp.com/modules/sports#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.elimuboraerp.com/modules/sports#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Modules\",\"item\":\"https://help.elimuboraerp.com/modules/users\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sports \u0026 Games\",\"item\":\"https://help.elimuboraerp.com/modules/sports\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://help.elimuboraerp.com/modules/sports#article\",\"headline\":\"Sports \u0026 Games\",\"name\":\"Sports \u0026 Games\",\"description\":\"Manage sports, teams, fixtures, results, and inter-house points.\",\"url\":\"https://help.elimuboraerp.com/modules/sports\",\"mainEntityOfPage\":{\"@id\":\"https://help.elimuboraerp.com/modules/sports#webpage\"},\"dateModified\":\"2026-05-21T18:10:21.066Z\",\"publisher\":{\"@id\":\"https://help.elimuboraerp.com/#organization\"},\"isPartOf\":{\"@id\":\"https://help.elimuboraerp.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Elimu Bora ERP Help Center\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Elimu Bora ERP Help Center","nav":{"global":{"anchors":[{"anchor":"Pricing","icon":"tag","href":"https://elimuboraerp.com/pricing/"},{"anchor":"Book a Demo","icon":"calendar-check","href":"https://elimuboraerp.com/contact/"},{"anchor":"Blog \u0026 Resources","icon":"newspaper","href":"https://elimuboraerp.com/blog/"},{"anchor":"Contact Us","icon":"mail","href":"https://elimuboraerp.com/contact/"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Introduction","icon":"house","href":"/introduction"},{"title":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Roles \u0026 permissions","icon":"shield-user","href":"/roles-permissions"},{"title":"For staff","icon":"users","href":"/staff/index"},{"title":"For guardians","icon":"user","href":"/guardians/index"}]},{"group":"Modules","pages":[{"title":"Users \u0026 Identity","icon":"users","href":"/modules/users"},{"title":"Curriculum","icon":"book-open","href":"/modules/curriculum"},{"title":"Academic Years \u0026 Terms","icon":"calendar","href":"/modules/academic-years"},{"title":"Attendance","icon":"clipboard-list","href":"/modules/attendance"},{"title":"Assessments \u0026 Report Cards","icon":"graduation-cap","href":"/modules/assessments"},{"title":"Timetable \u0026 Lessons","icon":"calendar-clock","href":"/modules/timetable"},{"title":"Events","icon":"calendar-check","href":"/modules/events"},{"title":"Finance \u0026 Fee Management","icon":"wallet","href":"/modules/finance"},{"title":"Inventory \u0026 Procurement","description":"Manage products, suppliers, purchases, stock movements, and requisitions.","icon":"package","href":"/modules/inventory"},{"title":"Sports \u0026 Games","icon":"trophy","href":"/modules/sports"},{"title":"Clubs \u0026 Societies","description":"Run clubs, schedule meetings, and log activities.","icon":"users-round","href":"/modules/clubs"},{"title":"Activity Log","icon":"history","href":"/modules/activity-log"}]},{"group":"More","pages":[{"title":"Settings","icon":"settings","href":"/settings/index"}]}]}]},"title":"Sports \u0026 Games - Elimu Bora ERP Help Center","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}