Results and Event Report
This chapter follows one programme item from its participant assignment to a published Event Report. The workflow is deliberately sport-neutral: a programme item may be a football match, a tennis tie, a fight, a race or another contest with two or more participants.
Before entering competition data
Confirm that the project has an active sport-profile version and that the programme item belongs to the correct project, stage and round. Its participants must already be assigned. Team entries also need current project memberships before players or staff can appear in the lineup editor.
Set the date, time, venue and attendance from the round's Programme list or the full item editor. Inline schedule fields save automatically. Wait for the saved confirmation before leaving the page.
Once a result, lineup member, event or statistic refers to a programme item, JoomLeague protects the meaning of that historical data. Do not replace its participants to correct an identity mistake. Remove dependent competition data first or create the correct programme item.
Open the operational editors
Open Project Panel → Stages → Rounds → Programme. The action group on each row provides profile-aware editors for:
- lineup and staff;
- officials;
- timeline events;
- statistics;
- result and score segments.
The available controls depend on the active profile. A running race does not gain football substitutions, and a football result does not gain tennis sets unless its profile contract defines them.
1. Verify participants
For a head-to-head contest, select the first and second participants directly in the programme list. The interface may label these slots Home and Away when that terminology is meaningful.
For a multi-participant event, open Manage participants. Assign every project entry in its correct slot and retain seed, lane, grid or bib semantics defined by the project. A race can therefore have many participants without being forced into pairs.
Check the participant list before continuing. Results, lineups, events and statistics all bind to these stable programme-item participant records, not only to a displayed name.
2. Build lineups and staff
Open Lineup and choose one participant using the participant buttons at the top. Repeat the following work for every participant:
- On Players, select available project members.
- Choose the lineup status supported by the screen, such as starter, substitute or available.
- Mark the captain where the sport profile supports captains.
- Assign the selected members.
- On Staff, assign active coaches or other participant staff.
The displayed role and shirt number come from project membership. Correct those values in the participant membership when they are wrong; do not create a second person merely to change a shirt number.
An empty available-members table normally means that the project entry has no current members, their validity interval excludes the programme date, or their person type is not compatible with the selected tab.
Record substitutions or lineup changes
Use Substitutions only when the profile enables them. Select the outgoing and incoming lineup members, then optionally record:
- phase or period;
- phase sequence;
- clock value and unit;
- a short operational note.
JoomLeague validates participant ownership, ordering, re-entry and the profile's match/segment limit. Both people must already belong to the same participant lineup. Add each change in chronological order so the public report can reproduce the real sequence.
3. Assign officials
Open Officials and assign people previously registered under Project Officials. Available role codes come from official positions in the active sport profile, for example referee, umpire, judge or delegate.
The assignment must be valid on the programme date and within the same project. The stored display-name snapshot preserves the historical report if the person's profile is edited later.
Project Preflight reports missing officials as a warning unless the sport profile explicitly makes their count a blocking requirement.
4. Enter the result
Open Result. The editor is generated from the immutable profile version attached to the project. It determines:
- result type, such as numeric, nested or time result;
- score unit and value type;
- permitted result and outcome codes;
- participant statuses;
- required score-segment hierarchy;
- whether higher or lower values are better.
Do not infer these rules from the sport name. Read the profile summary shown beside the editor.
Result status
Use Draft while values are incomplete. Use In progress only when the profile permits a live partial result. Set Final only after all required participant values and child segments are complete and consistent.
Final is operationally significant. Final results are used by standings, rankings, brackets, stage transitions and public result views. Saving a final result also invalidates derived standings so they are rebuilt automatically from canonical results.
Root result and participant values
The root segment represents the complete event. Depending on the profile, each participant may receive a numeric value, duration, text/status value or rank. Multi-participant events can use both result rank and statuses such as finished, DNS, DNF or DSQ.
For head-to-head numeric scoring, enter the complete score for both participants. Do not encode a score as one text string; each participant has its own typed value.
Child score segments
Use child segments for profile-defined periods, sets, games, legs, rounds, laps or other nested score components. Add segments in their real order and enter values for all required participants.
Examples:
- football: complete score plus optional half/extra-time segments;
- basketball: complete score plus quarter and overtime segments;
- tennis: match result with set and game hierarchy;
- volleyball: match result with set point values;
- running race: final duration/rank, with splits represented only when the active contract defines them.
The editor rejects a final result that violates aggregate or profile constraints. Correct the segment values instead of bypassing validation.
Outcome and notes
Select an outcome only from values offered by the profile, such as draw, forfeit, decision or no contest. Use result notes for information that belongs to the official result. Timeline commentary belongs in events, not in the result note.
5. Record timeline events
Open Events. Only event definitions materialized from the active sport type are available. For each event select the definition and, where applicable:
- the programme participant;
- primary lineup person or official;
- a required second lineup person;
- score segment;
- phase and sequence;
- clock value and unit;
- notes.
The editor enforces actor type, participant ownership and two-person rules. For example, a substitution-like event cannot connect people from different participants. A system event cannot be assigned an arbitrary player.
An event that affects score is still not a replacement for the canonical result. Events describe what happened; the Result editor stores the official outcome used by standings and progression.
6. Enter statistics
Open Statistics. Manually writable definitions are separated from values managed by events or calculation. For a manual value choose:
- the statistic;
- a compatible participant or lineup-person target;
- the whole event or one score segment;
- the typed value and optional note.
The profile controls statistic scope, value type and source. A player-only statistic cannot target a team, and a calculated or event-derived statistic must not be duplicated manually. Source badges explain why a value is or is not editable.
For a two-participant public comparison, participant-total statistics appear with the statistic name in the centre and the two values on either side. Person, segment and other values appear in the detailed table.
7. Finalize and verify
Before selecting Final, verify:
- all intended participants are assigned;
- lineup, staff and officials are complete where applicable;
- the root result and every required segment agree;
- ranks and statuses are unambiguous;
- timeline actors belong to the correct participant;
- manual statistics use the correct target and segment.
Save the final result, return to the programme list and confirm its result summary and Final badge. Then run Project Preflight. A stored result that no longer satisfies the immutable profile contract is a blocking error and links back to its Result editor.
8. Publish the Event Report
Create a Joomla menu item of type JoomLeague → Event Report when a stable
direct menu route is needed. Select the programme item in event_id. Normal
Results, Programme, Team Plan and calendar links also lead to this canonical
sport-neutral detail.
Depending on available data and project template settings, the public Event Report can show:
- project, round, date, timezone, venue, status and attendance;
- any number of participants and their final values/ranks;
- complete nested score segments;
- players, staff and captains;
- substitutions or lineup changes;
- timeline events;
- participant, person and segment statistics;
- officials;
- description and previous/next navigation;
- ICS download and Google, Apple or Outlook calendar links.
Sections without data remain absent. Display switches come from the resolved Event Report template configuration; they do not change canonical competition data.
Corrections after publication
Correct a wrong official result through the same Result editor. JoomLeague rebuilds derived standings from canonical final results. Use a standing adjustment only for an explicit competition penalty or administrative bonus, not to conceal a wrong score.
When correcting timeline events or statistics, preserve their intended participant, actor and segment. If a lineup identity itself is wrong, remove dependent event/statistic/change rows before removing that lineup member.
Troubleshooting checklist
- No lineup people: add current members to the project entry and check membership validity dates and person types.
- No official roles: create/materialize official positions in the sport type and register eligible people under Project Officials.
- No event or statistic option: publish/materialize the definition in the sport type; project pages do not invent profile catalogs.
- Cannot finalize: complete every required participant value and segment, then resolve the exact validation message.
- Bracket did not advance: confirm that the source result is Final and has an unambiguous winner/rank required by the transition.
- Standings look stale: verify the result is Final. Public standings are rebuilt automatically; do not create a second result record.
- Public report is empty: publish the project, programme item and related records, check access levels, and test the Event Report menu route while logged out.
Completion checklist
- [ ] Programme schedule and participants are correct.
- [ ] Each applicable participant has players and staff assigned.
- [ ] Substitutions or lineup changes are chronological and profile-valid.
- [ ] Required officials are assigned.
- [ ] Root and child score values agree.
- [ ] Timeline events use valid actors and segments.
- [ ] Manual statistics use compatible targets and sources.
- [ ] Result is Final only after validation succeeds.
- [ ] Project Preflight has no result-contract errors.
- [ ] Public Event Report works for an anonymous visitor.