Atlas / tournament documentation
Results and closeout
The Records screen: the audit trail of manual decisions, the closeout band that finalizes a tournament, the closeout packet and ballot exports, and what Finalize changes.
Records is the screen that holds the paper trail of a tournament and the control that closes it. The upper part is a read-only log of every manual decision taken on the tournament, with who took it, when, and the reason written. The band under the log is called Closeout. It holds the Finalize button, which marks the tournament complete and settles its results, and two downloads for the organization: every ballot as a CSV file and the closeout packet as one workbook.
Records is the Records item in the left rail, and its first view is Audit. The rail item carries a count labelled manual. The route is /tournaments/{tournamentId}/admin/records. Compliance, the screen for conduct reports, is the second view under the same rail item and has its own page, Compliance.
Who can use it
| Role | Records log and CSV export | Closeout band, Finalize and the two downloads |
|---|---|---|
| Platform admin | Reads the log of any tournament and exports it. | Yes. Finalize, the ballot export and the closeout packet. |
| Organization owner or admin | Reads and exports the log of the organization's tournaments. | Yes, for the organization's tournaments. |
| Tournament admin seat | Reads and exports the log. | Yes. |
| Tab seat | Reads and exports the log. | Yes. A tab seat keeps Finalize. Fees, refunds, promo codes and announcements stay with full admins, and none of them is on this screen. |
| Compliance seat | Reads the log and takes the CSV export. Rows show no link to the screen that owns the entry. | No. The band is not drawn. The ballot export and the packet refuse the seat with Forbidden. |
| Coach, competitor, judge, observer | No. The admin screens answer as if the tournament page did not exist. | No. |
A compliance seat that opens any other admin screen is sent to Records, and a line above the log reads: That screen is for the tournament's administrators. A compliance seat reads Records and Compliance, and changes nothing.
The log header
| Control | What it does | Default or limit |
|---|---|---|
| Records | The screen heading. | The page title in the browser tab is Records followed by the tournament name. |
| Read only | A badge that says nothing on the log can be edited. | Shown to every role. |
| Summary line | Says how many entries are loaded, how many carry a written reason and how many are overrides, for example 120 entries · 80 with a written reason · 3 overrides. When more rows exist than are loaded it adds: latest 250 shown, the export has all. | The screen loads the latest 250 entries. The CSV export holds all of them. |
| Export CSV | Downloads the whole trail as a CSV file. The same button appears at the foot of the screen. | Newest entry first. The file is named with the tournament name followed by records and the csv extension. Available to every role that can open Records, including a compliance seat. |
Searching and filtering the log
| Control | What it does | Default or limit |
|---|---|---|
| Search records | A search box with the placeholder Search reasons, people, rooms. It keeps the rows whose text contains the typed words in the person, the action, the action in plain words, the reason or the touched label. | Not case sensitive. Empty by default. Searches only the loaded rows, which are the latest 250. |
| Everything | Shows every loaded row and its count. | Selected by default. |
| Overrides | Shows rows whose action is an override. The count turns red when it is above zero. | An action counts as an override when its code contains the word override. |
| Without a reason | Shows rows with no written reason, with a count. | Rows written by the system, and rows for which the person gave no reason, are included. |
| Ballots | Shows ballot entries and corrections made by the tab room, ballot rows, and result disputes. | No count is shown on this chip. |
| Pairings | Shows rows that touched a pairing. | No count is shown on this chip. |
| Rounds | Shows rows that touched a round. | No count is shown on this chip. |
| Entries | Shows rows that touched a registration. | No count is shown on this chip. |
When no row matches, the table says: No records match. Clear the filter or widen the search. When the tournament has no entries at all it says: Nothing has been recorded for this tournament yet.
The log table
| Column | What it shows | Notes |
|---|---|---|
| When | The time of day on the tournament's clock. | A heading row above each group of entries gives the day, with Today or Yesterday where it applies, the date and the zone abbreviation, for example EDT. Every time on the page uses the tournament's time zone, not the viewer's. |
| Who | The name of the person who took the action. A row written by the scheduler reads System in italics. | A name is the person's profile name, else the first part of their email address, else Admin. |
| What happened | The written reason in the main line, and the action in plain words in small capitals below it. An override action is red. A row with no reason reads No reason written in italics. | Examples of the plain words: Ballot corrected after submission, Judge reassigned, Round released, Entry dropped, Tournament finalized. |
| Touched | What the action was about, for example a round and room, an entry, a judge or an account. Where one screen owns the thing, a link follows, such as Rounds → or Field →. | The link goes to Ballots, Rounds, Field, Standings, Setup, Disputes, Users & roles, Observers or Sponsors depending on the entry type. A compliance seat sees the label without a link. An entry whose target cannot be named shows its type and the first eight characters of its id. |
Clicking a row selects it. The first row is selected when the screen opens.
The detail rail
The rail beside the log, or under it on a narrow screen, reads the selected row in full. With no row selected it says: Select a row to read it in full.
| Part | What it shows | Notes |
|---|---|---|
| Record or Override | A small heading, then the action in plain words, then the day, date, time and zone. | Override is red and replaces Record when the action is an override. |
| Who | The person, or System, on schedule when no person is named. | Plain text. |
| Reason | The reason as written. With none, it says None written. For an override it says: None written. An override needs a reason, and this one has none. | The sentence is a description. The screen does not prevent an override from being saved without a reason. |
| Change or N changes | Each changed field with the old value struck through, an arrow, and the new value. | Shown only when the entry stored both an old and a new value. |
| Touched | The label of what the action was about, and a button reading View in followed by the owning screen and Trace →. | The button is absent when no screen owns the entry type and for a compliance seat. |
| Record | Three lines: Id with the entry type and the first eight characters of its id, Source, and Exported. | Source reads Admin console when a person took the action and Scheduler when none did. Exported always reads In tonight's CSV, whatever the date. |
| Immutability line | Immutable. Entries are appended, never edited or deleted. | Fixed text. |
The line at the foot of the screen reads: Nothing on this screen can be edited. A correction made elsewhere appears here as a new entry; the original stays.
What the log contains
- Manual decisions taken in the console: ballots entered or corrected by the tab room, pairings set by hand, judges and rooms reassigned, rounds released or released over a blocking check, entries dropped, restored, waitlisted, refunded or waived, check-ins, Setup changes, break and bracket actions, and seat changes on Users & roles.
- Rulings the database records on its own: finalizing a tournament, finalizing without a break, result dispute rulings, assistance request updates, schedule escalation rulings, judge nomination reviews and judge withdrawals. These appear in the log as copies of the older ledger the database writes.
- A tournament finalized without a break shows two finalizing entries, Finalized without a break and Tournament finalized, because the database writes both. Neither carries a reason, so both count under Without a reason.
The Records count in the left rail, labelled manual, counts log entries that carry a written reason. It is not capped at 250. The Overview screen shows the same number as manual decisions in its Records line.
The closeout band
The band sits under the log, headed Closeout. It is drawn for every role except a compliance seat.
| Control | What it does | Default or limit |
|---|---|---|
| Export every ballot | Downloads every ballot of the tournament as a CSV file. See the ballot export below. | Works before and after finalizing. Needs an admin or tab seat. |
| Download the closeout packet | Downloads the closeout packet, one workbook of seven sheets. See the closeout packet below. | Works before and after finalizing. Before finalizing the packet reports what is still open. |
| Finalize without a break | A button that opens the impact review for a tournament that ran rounds and no elimination round. | Shown only while the tournament is not complete and the offer applies. It is hidden while the review is open. |
| Finalize tournament | Finalizes the tournament. | Shown only while the tournament is not complete. The button is never disabled. It acts when pressed and has no confirmation dialog. |
| Before it can finalize | The list of everything that stands in the way, all at once, each with a link to the screen that fixes it. | Shown while the tournament is not complete and the list could be read. |
The sentence in the band changes with the state. Before finalizing it reads: Finalizing marks the tournament complete and settles its results. What still stands in the way is listed below, all at once, each with the screen that fixes it. After finalizing it reads: This tournament is complete. Its standings and speaker awards are settled, and the public page reads them as final. After finalizing without a break it reads: This tournament is complete, without a break: the standings after the last preliminary round are its result, settled with its speaker awards, and the public page reads them as final.
What blocks Finalize
Finalize lists every blocker at once and refuses while any blocking item remains. The checks run in this order, the same order the database applies them. Counts in the messages change with the number, so one item reads has and several read have.
| Check | Blocks when | Message in the list | Link |
|---|---|---|---|
| Pending ballots | A released room has no result yet. A bye does not count. | N released rooms still have no result. Resolve every pending ballot. | Open the room for one room, Open the ballots for several. |
| Rooms without a judge | A room that is not a bye has no judge. | N rooms have no judge. Assign every judge. | Open the room for one room, Open the rounds console for several. |
| Unreleased pairings | A prepared pairing has not been released. | N prepared pairings are not released. Release or delete them. | Open the rounds console. |
| Payments | An active entry has a payment status other than Paid or Waived. Pending, Failed, Refunded and Not due all block. | N active entries have an unresolved payment. | Open the entries. |
| Check-in | An active entry has no check-in record, or its record was checked out. | N active entries are not checked in. Check in or account for every competitor. | Open check-in. |
| Judge compliance | A judge on the roster who is not withdrawn has no compliance acknowledgment. | N judges have not acknowledged compliance. | Open compliance. |
| Champion | For Finalize tournament: an event, or the whole tournament when rounds are not run per event, has no decided final. A decided final is the last elimination round of the event with exactly one debate that is not a bye. | One event has no decided final, so no champion is crowned. Several events read N events have no decided final. When the finish without a break is offered the sentence adds: A tournament that stops after its preliminary rounds finishes without a break. | Review the finish without a break when that finish is offered, otherwise Open the elimination rounds. |
| Open disputes | Does not block. Listed so a ruling can be made first. | N open disputes. Finalizing does not wait for them, but a completed tournament is locked, so rule first. | Open the disputes. |
- Rooms named under a blocker read as the round and the room, for example Round 2 · Hall B. An online room reads as Online room followed by its place in the room list, never the meeting link. Eight rooms are listed and the rest read and N more.
- When only the Open disputes item remains, the list adds: Nothing here blocks finalizing.
- An entry counts as active when its status is active. A dropped, waitlisted or withdrawn entry is not checked for payment or check-in.
- A tournament with no rounds at all passes the champion check, because there is no event that ran a round. The other checks still apply.
- If the facts behind the list cannot be read, the band shows no list and the database applies its own checks when Finalize is pressed.
- The Open compliance link opens the Compliance screen, which lists conduct reports. A judge's compliance acknowledgment is recorded on the judge in Field.
Finalize without a break
A tournament that ran preliminary rounds and never created an elimination round has no champion to crown. The Finalize without a break button is offered for that case. It opens an impact review in the band, at the address with ?review=no-break, so a director reads what is being closed before pressing the button.
| Part of the review | What it says | Notes |
|---|---|---|
| One line per event | For example Varsity: 4 preliminary rounds run, as Setup plans. or Varsity: 2 preliminary rounds run, of the 6 Setup plans. | A tournament whose rounds are not run per event shows one line without an event name. When rounds are run per event, an event with an active entry and no round shows 0 preliminary rounds run. |
| No break recorded | No elimination round has been run, so no break is recorded. The standings after the last preliminary round are the tournament's result, and the closeout packet says so. | Fixed text. |
| Planned rounds not run | Setup plans a preliminary round that has not been run, so finalizing will be refused. Run it, or lower the number of preliminary rounds in Setup if the tournament stops here. | Shown only when an event has run fewer rounds than Setup plans. |
| Not reversible | Finalizing cannot be undone. A completed tournament is a record: its rounds, ballots and standings are settled. Speaker awards stay editable on Awards, and a change to them shows publicly at once. | Fixed text. |
| Before it can finish without a break | The same blocker list as above, except that the champion check is replaced by a planned rounds check: Setup plans preliminary rounds that have not run. If no round exists at all it reads: No round has been run. Run a preliminary round first. | Event lines under the planned rounds blocker read, for example, Varsity: 2 of 6 run. |
| Control in the review | What it does | Default or limit |
|---|---|---|
| Finalize without a break | Records that no break was run and finalizes the tournament in one step. | Refused when any blocking item remains. The button is not disabled. |
| Keep it open | Closes the review and returns to Records without changing anything. | A link. |
A tournament that has an elimination round of any kind cannot be finished without a break. The database refuses it with: An elimination round exists, so decide it before finalizing this tournament. The planned count of preliminary rounds comes from Setup: the event's own value when it has one, else the tournament-wide value. If the rounds cannot be read, the band says: The rounds could not be read just now, so finishing without a break is not offered. Reload to try again.
The ballot export
Export every ballot downloads one CSV file named with the tournament name followed by ballots. It has one row per judge's decision. A panel is a room with two or more judges. Each panelist's own ballot is one row, and the room's decision is repeated on those rows. A room with a single judge, and a result entered or overridden by the tab room, is one row marked Result of record. A bye has no row, and a room still waiting for a ballot has no row.
| Column | What it holds |
|---|---|
| Round | The round's name. |
| Stage | Prelim or Elim. |
| Event | The event's name. |
| Room | The room label. |
| Aff | The affirmative entry. The entry's team name where it has one, else the competitors' names. |
| Neg | The negative entry, named the same way. |
| Judge | The judge who wrote the ballot, or the judge of record. A room with no judge of record reads No judge of record. |
| Ballot | Panelist's ballot or Result of record. |
| Winner | The winning entry with its side, for example Ridgeway AB, Aff. Empty while a panel is undecided. |
| Aff rank, Neg rank | The ranks recorded for each side. |
| Aff points, Neg points | The speaker points recorded for each side. |
| Forfeit | Yes when the ballot records a forfeit, else empty. |
| Reason for decision | The judge's written reason. |
| Room decision | The room's decision with the panel split, for example Ridgeway AB, Aff, with a 2 to 1 split. For an undecided panel it reads Undecided, 2 of 3 ballots in. |
| Entered or corrected by the tab | The names of the tab staff who entered or corrected the result, oldest first. |
| Last saved | When the ballot was last saved, on the tournament's clock. |
Rows are ordered by round, then event, then room in numeric order, then the judges of a panel by name. Competitor names appear as the admin console shows them.
The closeout packet
Download the closeout packet produces one workbook named with the tournament name followed by closeout and the xlsx extension. It is the hand-off for the organization. The first row of every sheet is a frozen header. No user id is printed anywhere: each person appears by name, and an account with no profile left reads Account no longer on record.
| Sheet | Columns | What it holds |
|---|---|---|
| Summary | Item, Value | Tournament, Dates, Status, Finalized by, Times are in, Packet made, Made by, Entries, Rounds, Ballots, Fees recorded as paid, Open issues and Records. Status reads Complete: finalized, results final, or Not finalized: see Open issues. Finalized by names the person and the time, or reads Not recorded for a tournament marked complete without finalizing, or Not finalized. |
| Standings | Event, Rank, Entry, School, Wins, Losses, Byes, Total points, Average points, Total ranks | Each event's preliminary standings in the order the Standings screen computes them. Elimination rounds are not in this sheet. |
| Ballots | The same columns as the ballot export | Every ballot, as above. |
| Awards | Award, Event, Place, Speaker, Entry, School, Rounds spoken, Total points, Average points | A Champion row and a Finalist row for each event whose final is decided, and Speaker rows to the depth saved on Awards. The depth is 3, 5 or 10, and 3 when none was saved. |
| Payments | Entry, School, Event, Entry status, Payment, Amount paid | Every entry. Payment reads Paid, Pending, Failed, Refunded, Not due or Waived. |
| Open issues | Issue, Blocks finalizing, Count, Detail | One row for each check: Pending ballots, Unassigned judges, Unreleased rounds, Incomplete payments, Unchecked competitors, Missing judge compliance and Missing judge orientation, then Events without a champion, Open result disputes and Open assistance requests. Detail lists up to 25 names and then reads and N more. |
| Records | When, Who, What happened, Touched, Reason, Change | The whole trail, oldest first, with the older ledger decisions and the resolution of each result dispute, each with who ruled and why. A copy of a ledger row is printed once. |
- Missing judge orientation is listed with Blocks finalizing set to No. Finalize has no orientation check. Open result disputes and Open assistance requests are also No.
- For a tournament finalized without a break the row Events without a champion reads No, with the note that no break is recorded and the standings after the last preliminary round are the result. The Rounds line of the Summary adds finalized without a break.
- Fees recorded as paid adds the amount recorded on entries whose payment status is Paid.
- Unreleased rounds in the packet counts rounds that hold an unreleased pairing, while the list on Records counts pairings.
What Finalize changes
- Status. The tournament's status becomes Completed. The page for the tournament reads it as complete.
- The record. An entry named Tournament finalized is written with the person who pressed the button. A tournament finalized without a break also writes Finalized without a break. Both appear in Records and in the packet.
- Locks. Pairings, rounds, ballots and result disputes become read only. The database refuses every change to them from the product, including by admins. See the next heading for the messages.
- Still editable. Registrations, judges, rooms, tab settings, the speaker award depth on Awards and compliance reports.
- No way back. A status change out of Completed is refused. The product has no reopen.
- Webhook. The tournament.finalized event is queued once, when the change commits, for any webhook endpoint the organization has set to receive it. The event carries the tournament and no other data.
- Refresh. The Records, admin Overview and tournament pages are refreshed.
Pressing Finalize on a tournament that is already complete changes nothing and reports success.
Locked after Finalize
A write to a locked record is refused by the database, whichever screen or import attempts it. The refusals read as follows.
| Message | What it means | What to do |
|---|---|---|
| This tournament is complete and its results are a record. Nothing on it can be changed. | A pairing, round or dispute was written on a completed tournament. | Nothing can be done in the product. Rule on disputes and correct ballots before Finalize. |
| This tournament is finalized; its results are locked. | A ballot or pairing was written on a completed tournament. | The same. Corrections must be made before Finalize. |
| A completed tournament cannot be reopened. | A change of status away from Completed was tried. | A completed tournament stays complete. |
| This tournament is complete and its results are a record. Nothing can be imported into it. | An import was attempted into a completed tournament. | Import before Finalize. |
The service role that the platform uses for seeds and support fixes is exempt from these locks. No screen in the product uses it.
How the public results page reads after Finalize
The public tournament page does not wait for Finalize to show standings or rounds. Standings follow the publish rule chosen in Setup. Finalize adds the following.
| Where | Before Finalize | After Finalize |
|---|---|---|
| Status pill | Between rounds or a round name. Once the final is decided, Final decided. | Complete. |
| Rooms heading | The last round's results. | Champion name followed by won the tournament, when the final is decided. |
| Rooms note | Decisions published as they are in. | Champion beat runner up in the final. The tab room has finalized the results. |
| Footer line | The round's closing counts. | Champion won the final. Results are final. Without a champion: Every round is complete. Results are final. |
| Header line | The round count or the current round. | Champion: followed by the name, or Final after the number of prelims when there is no champion. |
| Speaker awards | Not shown. | A Speaker awards block, per event when there are several, listing ranks to the depth saved on Awards with each speaker's school and total speaker points. |
| A competitor's own line | Where the entry stands in the current round. | The elimination placing, or Finished followed by the record. |
- The Speaker awards block appears only when the tournament is complete, speaker points are published, a depth is saved on Awards, and the tournament does not mask participant names on its postings. An event the director hid shows no block.
- Speaker points are published when standings are published, no round is live, and no round reveals the winner only.
- A tournament finalized without a break has no champion line. Its page reads Final after the number of preliminary rounds.
Can Finalize be undone
No. Both Finalize buttons act when pressed, with no confirmation, and nobody can reopen a completed tournament, including platform admins, from the product. Ballots, corrections and disputes must be settled first. After Finalize only registrations, judges, rooms, tab settings, speaker awards and compliance reports can still be changed.
Tasks
Find out why a decision was made.
- Open Records. The Audit view opens with the latest entries.
- Select a chip, such as Overrides or Ballots, or type a name, room or phrase in Search records.
- Select a row. Read the reason, the change and the touched label in the rail.
- Select the View in button to open the screen that owns the entry.
Review overrides that lack a written reason.
- Open Records and select Overrides.
- Read the count beside Without a reason, and select Without a reason to list those rows.
- Select each row and read the rail. An override with no reason reads None written. An override needs a reason, and this one has none.
Finalize a tournament that ran elimination rounds.
- Open Records and read the list under Before it can finalize.
- Select the link beside each blocking item and fix it. Rule on open disputes first, because a completed tournament is locked.
- Return to Records and confirm the list is empty or reads Nothing here blocks finalizing.
- Download the closeout packet and read the Open issues sheet if a record is wanted from before the finish.
- Select Finalize tournament. The band then reads that the tournament is finalized and public results are now available.
Finalize a tournament that stopped after its preliminary rounds.
- Open Records and select Finalize without a break.
- Read each event line. If a line shows fewer rounds run than Setup plans, run the rounds or lower the preliminary rounds in Setup.
- Clear every blocker in the list under Before it can finish without a break.
- Select Finalize without a break. Select Keep it open instead to leave the tournament as it is.
Hand the record to the organization.
- Open Records.
- Select Download the closeout packet for the workbook.
- Select Export every ballot for the ballot CSV.
- Select Export CSV for the audit trail as a CSV file.
After finalizing, the band reads that the tournament is complete, the Finalize buttons are gone, the exports stay, the log shows the finalizing entry at the top, and the public page reads Complete.
Troubleshooting
| Message | What it means | What to do |
|---|---|---|
| Not finalized. Everything that stands in the way is listed below. | The app found at least one blocking item and did not call the database. | Work through the list under Before it can finalize, or Before it can finish without a break. |
| Resolve every pending ballot before finalizing this tournament | A released room has no result. | Open Ballots or the room and enter or resolve the ballot. |
| Assign every judge before finalizing this tournament | A room that is not a bye has no judge. | Assign a judge in Rounds. |
| Release every prepared pairing before finalizing this tournament | A prepared pairing is unreleased. | Release it, or delete it, in Rounds. |
| Resolve every active registration payment before finalizing this tournament | An active entry is not Paid or Waived. | Mark the payment, waive the fee, or drop the entry in Field. |
| Check in or account for every active competitor before finalizing this tournament | An active entry has no open check-in. | Check the entry in, or drop it, in Field. |
| Obtain judge compliance acknowledgment before finalizing this tournament | A judge who is not withdrawn has not acknowledged the compliance statement. | Record the acknowledgment on the judge in Field, or withdraw the judge. The judge can also acknowledge it on the judge page. |
| Run a preliminary round before finalizing this tournament | Finalizing without a break was tried with no rounds at all. | Run at least one preliminary round. |
| Run every planned preliminary round before finalizing this tournament | An event ran fewer preliminary rounds than Setup plans. | Run the remaining rounds, or lower the count in Setup. |
| Crown a champion in every event before finalizing this tournament | An event has no decided final. | Finish the elimination rounds, or finish without a break when no elimination round exists. |
| An elimination round exists, so decide it before finalizing this tournament | Finalizing without a break was tried on a tournament that has an elimination round. | Finish the bracket and use Finalize tournament. |
| You do not have admin access to finalize this tournament | The signed-in account does not hold an admin or tab seat on this tournament. | Sign in with an account that has one. |
| The tournament could not be finalized. Refresh and try again. | The database returned an error that is not one of the sentences above, for example Tournament not found. | Reload Records and try again. |
| The rounds could not be read just now, so finishing without a break is not offered. Reload to try again. | The round list failed to load. | Reload the page. |
| Nothing has been recorded for this tournament yet. | The log has no entries. | None needed. |
| Could not export the records right now. Try again. | The Records CSV could not be built. | Try again. |
| Could not export the ballots right now. Try again. | The ballot CSV could not be built. | Try again. |
| Could not build the closeout packet right now. Try again. | The workbook could not be built, or the names of the people in it could not be read. | Try again. |
| Could not check your admin access. Try again. | The access check did not run. The export route answers with status 503 and Records stops loading. | Reload and try again. |
| Forbidden | A compliance seat or another role asked for an export that needs an admin or tab seat. | Ask a tournament admin for the file. |