• ๐Ÿ‡บ๐Ÿ‡ธ EN
  • ๐Ÿ‡ช๐Ÿ‡ธ ES
  • ๐Ÿ‡ฎ๐Ÿ‡น IT
  • ๐Ÿ‡ฉ๐Ÿ‡ช DE
Login

Help

Learn how to use Diamond Core

1. GETTING STARTED

Diamond Core is a sports league management platform. It lets you manage tournaments, teams, players, game schedules, live scoring, and statistics — all in one place.

Signing In

To use Diamond Core, you need an account. Go to the login page and enter your username and password. Once signed in, you will see the home page with all available sections.

Diamond Core login and home page

Your Role

What you can do depends on your role:

  • Viewer — You can browse games, rosters, and scores (read only).
  • Scorer — You can do everything a Viewer can, plus score live games and manage lineups.
  • Administrator — Full access, including creating tournaments, teams, players, and games in the Setup area.

Your Organization

Diamond Core supports multiple organizations. If you belong to more than one, you can switch between them using the dropdown in the top-right corner of the screen, next to your name. Tournaments, games, and scoring data are scoped to your current organization. Players and clubs are shared globally across all organizations.

3. MESSAGES

Diamond Core includes an internal messaging system. Users within the same organization can send messages to each other directly within the platform — no external email required.

Accessing Messages

Click the mail icon (envelope) in the top navigation bar to open the inbox panel. The inbox slides open and shows your recent messages.

Unread Badge

A red badge on the mail icon shows the number of unread messages. The badge disappears when all messages have been read.

Inbox Panel

The inbox panel shows your recent messages. Each entry displays the sender name, subject, a short preview of the message body, and the timestamp. Unread messages appear bold and highlighted so you can quickly spot new mail.

Composing Messages

To send a new message:

  1. Click the Compose button in the inbox panel header.
  2. Search and select one or more recipients. Each recipient shows a colored status dot: green means online, red means offline.
  3. Enter a subject (required) and your message body.
  4. Optionally attach files: drag & drop files onto the compose area, click to browse your device, or paste images directly from your clipboard. You can attach up to 5 files, each with a maximum size of 5 MB.
  5. Click Send to deliver the message.

Reading Messages

Click a message in the inbox to view the full message. The detail view shows the sender, all recipients (each with an online/offline status dot), the complete message body, and any attachments.

Downloading Attachments

If a message includes attachments, they appear as clickable links in the message view. Click an attachment link to download the file to your device.

Deleting Messages

Click the Delete button in the message view to remove a message from your inbox. Deleting a message only affects your inbox — other recipients still see their own copy.

Message Retention

Messages are automatically deleted after 15 days, including all attachments. There is no way to recover messages after they are removed.

Tip: Press Esc to close message panels and modals at any time.

4. GAMES

Games List

The Games page shows all scheduled and completed games. Each row shows the date, tournament (with host country flags), edition, phase (e.g. Round Robin, Medal Round), teams (with country flags), venue (with country flag), and game status. If any entity has no country assigned, the UN flag is displayed as a placeholder.

Games list with filters and sorting

Filtering

Use the filter panel at the top to narrow down the list. Click Show Filters to expand the panel. When filters are active and the panel is collapsed, a badge shows the number of active filters. You can filter by:

  • Season (year)
  • Tournament
  • Edition
  • Gender
  • Field / Venue
  • Club name
  • Phase (e.g. Round Robin, Medal Round)
  • Game status (Scheduled, Live, Final, Canceled, Postponed)

When filters are applied, pill tags appear below the filter panel showing each active filter (e.g. "Season: 2025"). Click Clear All Filters to reset all filters at once.

Sorting

Click any column header to sort by that column. Click again to reverse the order. The active sort column is highlighted in amber with a bold arrow (โ–ฒ or โ–ผ). Hold Shift and click another column to sort by multiple columns at the same time (for example, sort by date first, then by game number).

Game Status

  • Scheduled — The game has not started yet.
  • Live — The game is in progress.
  • Final — The game is over and the score is official.
  • Canceled — The game will not be played.
  • Postponed — The game has been delayed to another date.

If a game has been in Live status for more than 24 hours, a red Stale badge appears next to its status. This usually means the game was never properly finalized or canceled after it ended.

Game Detail

Click any game to see its detail page. This shows the full scoreboard with the score by inning, team lineups, and links to the box score and scoring sheet.

Player Detail: Click any player name in the lineup tables to open a detail modal showing the player's profile, tournament stats (batting and pitching), game log, biography, and sanctions.

If the venue has GPS coordinates, a map is displayed with the venue location. Click Get Directions below the map or inside the map marker popup to open Google Maps with turn-by-turn directions from your current location.

Delete Game: Superusers can delete a game using the Delete Game button in the page header. A confirmation dialog shows the game code and warns that all scoring data, lineup events, notes, and statistics will be permanently removed. After deletion, you are redirected to the landing page.

Game detail page showing final score and recap

Forfeit Games

A forfeit happens when a team cannot play or when a game must be stopped before it finishes. The opposing team is awarded the win. There are two types of forfeit:

  • No-Show — The team never takes the field. For example, a team's bus breaks down and they cannot arrive. The official score is automatically set to 7-0 (in softball) or 9-0 (in baseball), with 1 run per inning for the winning team. Since no baseball was actually played, no individual player statistics are recorded for anyone.
  • In-Game — The game starts but is stopped before it finishes. This usually happens when a player is ejected and the team does not have enough players to continue. For example, after 5 innings a player is expelled and the team only has 8 players left, which is below the minimum. The actual scores that were played are kept in the records, but the official final result becomes 7-0 (or 9-0). If the game lasted at least 5 complete innings (this number is configurable in Forfeit Rules), batting and pitching statistics still count — but no pitcher is awarded a Win, Loss, or Save decision.

How to declare a forfeit: Open the Game Detail page and click Declare Forfeit. You will be asked to choose:

  • The type — No-Show or In-Game
  • Which side wins — Home or Away
  • A comment explaining what happened (for example, “Player #12 ejected in the 5th inning, team below minimum”)

Once declared, a red Forfeit badge appears on all game lists, the game detail page, box score, and scoring sheet so everyone can see it at a glance. If a forfeit was declared by mistake, click Undo Forfeit to reverse it. Forfeit fields can also be edited in the Setup Game Edit form and in the Admin section.

Automatic detection during TAS import: When you import games from TAS (The Automated Scorebook) HTML files, the system automatically checks whether a game was a forfeit. It looks for the sign that no pitcher was awarded any decision — the TAS file shows “Win - None. Loss - None. Save - None.” When this is found, the game is imported as an In-Game forfeit. However, because TAS files do not say which team caused the forfeit, the system leaves the winner side blank and adds a warning. After importing, you need to open the game and manually set which side won the forfeit.

5. LIVE SCORING

The scoring sheet is the heart of Diamond Core. It is a digital version of the official paper scoring sheet used by scorers at the field.

Live Scoring Game Selection

Click Live Scoring in the sidebar to open the Live Scoring game selection page. This page lists all games with the same filters, sorting, and pagination as the Games page, including live timers for in-progress games. A Sheet column shows a green check mark if a scoring sheet already exists, or a dash if not. Clicking a game row takes you directly to the scoring sheet (if one exists) or to the game detail page (where you can create one).

Live Scoring game selection page

Getting to the Scoring Sheet

From the game detail page, click the scoring sheet link. If a scoring sheet does not exist yet, an administrator or scorer can create one. You must have the Scorer role to record plays.

Game detail page with scoring sheet link
Important: A scoring sheet can only be created when the game status is Live. Similarly, scoring cannot be started until the game is live. If the game is scheduled, final, or canceled, the “Create Scoring Sheet” and “Start Scoring” buttons will not appear.

The Grid

The scoring grid has rows for each player in the batting order and columns for each inning. On the left you see:

  • # — Jersey / uniform number
  • Name — Player name
  • Pos. — Fielding position (P, C, 1B, 2B, SS, 3B, LF, CF, RF, DH...)

On the right side of the grid are batting statistics columns (PA, R, H, 2B, 3B, HR, RBI, BB, K, and more). These update automatically as you score.

Scoring grid showing batting order and inning columns

Pitcher Statistics

Below the scoring grid, a Pitcher Statistics section shows per-pitcher stats for the displayed team's own pitchers. The table displays one row per pitcher (ordered by appearance) with the following columns:

  • IP — Innings Pitched
  • BF — Batters Faced
  • H — Hits
  • R — Runs
  • BB — Walks
  • K — Strikeouts

A totals row at the bottom sums up all pitchers. When a pitcher change happens mid-game, each pitcher's stats reflect only the batters they faced. The pitcher stats section is also included in the printable version (Export PDF) for both teams.

Pitcher statistics table

Inning Columns

Each inning gets its own column. If all batters have batted in one inning and the inning is not over yet, the system automatically creates a continuation column marked with a "+" sign. Columns are added as needed — there is no limit.

Footer Stats

At the bottom of each inning column, a small grid shows the totals for that inning:

  • R — Runs scored
  • H — Hits
  • BB — Walks
  • E — Errors
  • LOB — Runners left on base at the end of the inning
Inning footer stats showing R, H, BB, E, LOB

Away and Home Teams

At the top of the scoring sheet you will see tabs to switch between the Away and Home team. Each team has its own scoring grid. The currently displayed team is highlighted.

Away and Home team tabs

Scoring Sheet Controls

The scoring sheet header has several action buttons:

  • Game Details — Navigate to the game detail page for this game.
  • Manage Lineup — Open the lineup management page. This button is disabled when the game is finalized or the scoring sheet has been submitted, abandoned, or finalized (lineup changes are no longer allowed).
  • Export PDF — Open a printable version of the scoring sheet.
Scoring sheet header with action buttons and game status

Scoring Sheet States

A scoring sheet moves through these stages:

  1. Created — The sheet exists but scoring has not started.
  2. Started — Scoring is active. You can record plays.
  3. Submitted — The scorer has finished and submitted the sheet for review. You can reopen a submitted sheet to make corrections before finalization.
  4. Finalized — The sheet is locked. No more changes can be made.

A scoring sheet can also be Abandoned at any time before it is submitted. Abandoning a sheet means the scoring session is discarded. The game score, statistics, and rankings are not updated. The game remains in its current status (usually Live). An abandoned sheet can be resurrected using the Resurrect button, which returns it to the Created state so scoring can be restarted.

Tip: Before you can start scoring, both teams must have their lineups entered. If lineups are missing, the system will show a message and a button to set them up.

Auto-Save Indicator

When you record a play, undo, redo, or perform any scoring action, a status indicator appears near the game timer showing the save progress:

  • Saving... — The action is being sent to the server. A spinning icon is shown.
  • All changes saved — The server confirmed the action was saved successfully. Shows a check mark and the time.
  • Save failed โ€” retrying — A network error occurred. The system will automatically retry up to 3 times.
  • Save failed — All retry attempts failed. Check your network connection and try the action again.

What Happens When You Finalize

When a scoring sheet is finalized, the system automatically:

  1. Locks the scoring sheet โ€” no more changes can be made.
  2. Syncs the final game score (runs, hits, errors per inning) to the game record.
  3. Refreshes batting statistics โ€” all player and team batting stats are recomputed.
  4. Refreshes pitching statistics โ€” all pitcher stats are recomputed.
  5. Calculates rankings โ€” both teams' Elo ranking points are updated based on the game result.

This means statistics, rankings, and game scores on all pages are updated immediately after finalization. There is no delay or background process.

Game Notes & Protests

The Game Notes panel on the scoring sheet lets you record free-text observations during a game โ€” such as weather conditions, incidents, rule disputes, or any other notable information.

  • Opening the panel: Click the "Game Notes" header below the Event History section. The panel remembers whether it was open or closed.
  • Adding a note: Type your observation in the text area and click Add. Notes are timestamped and attributed to the current user.
  • Filing a protest: Check the "Protest Filed" checkbox to flag the game as protested. This adds a red Protest badge to the scoring sheet, game lists, game detail, and box score pages. Uncheck to remove the flag. Protests can only be changed while scoring is in progress (started state).
  • Viewing notes: Notes appear read-only on the Game Detail, Box Score, and printed/exported scoring sheet pages.
Game Notes panel with protest checkbox

6. RECORDING PLAYS

To record a play, click the next empty cell in the scoring grid (highlighted with a dashed border). A panel will appear with buttons for the type of play.

Play Types

Hits

  • Single (1) — Batter reaches first base on a hit.
  • Double (2) — Batter reaches second base on a hit.
  • Triple (3) — Batter reaches third base on a hit.
  • Home Run (HR) — Batter hits the ball out of the park and scores.
  • Inside-the-Park Home Run (IHR) — Batter circles all bases and scores without the ball leaving the field.
  • Four-Base Award (4) — Batter is awarded all four bases (ground-rule).

Outs

  • Out (O) — Batter is retired (fly out, ground out, etc.).
  • Strikeout (K) — Batter strikes out on a called third strike.
  • Strikeout Foul (K) — Batter strikes out on a foul ball.

Walks

  • Walk (BB) — Batter receives four balls and goes to first base.
  • Intentional Walk (IBB) — Pitcher deliberately walks the batter.

Other

  • Fielder's Choice (FC) — Batter reaches base; the fielder chose to attempt an out on a different runner (see Special Plays).
  • Sacrifice Fly (SF) — Batter flies out, but a runner scores.
  • Error (E) — Batter reaches base because a fielder made an error.
  • Lost Turn (LT) — A batter missed their turn at bat and the opposing team did not appeal. This is a scoresheet notation only — it does not count as a plate appearance, at-bat, or out, and has no effect on any statistics.
Record At-Bat dialog with hit and out play types

Runs Batted In (RBI)

When recording a play, you can set the number of RBI (runs batted in). This is the number of runners who scored because of the batter's action.

RBI and runner selection in the play entry dialog

Runners Who Scored

If runners score on the play, the system shows checkboxes with the names of runners currently on base. Check the box next to each runner who scored on this play.

Bases-Full Warning

When the bases are loaded (3 runners on base) and you record a reach-base event (Single, Double, Triple, Walk, Intentional Walk, Error, or Fielder's Choice) without selecting which runners scored or were put out, the system shows an orange warning: "Bases full โ€” select which runners scored or were put out." The panel stays open with your selections preserved. Check the appropriate runners in "Who scored?" or "Runners out on play" and the warning dismisses automatically. Home Runs and forced walks handle runner accounting automatically and do not trigger this warning.

Inning Sequence Enforcement

The scoring sheet enforces strict baseball/softball inning sequence: Top 1 โ†’ Bottom 1 โ†’ Top 2 โ†’ Bottom 2, and so on. Only the current cell (next batter in the rotation) is clickable. All other empty cells appear locked and grayed out.

When three outs have been recorded in an inning, the system automatically switches to the opposing team's scoring sheet and advances to the next inning.

If you navigate to the wrong team's tab, a banner will appear indicating which team is currently batting and providing a link to switch to the correct tab. No cells will be clickable on the wrong team's tab.

To correct a mistake, void the incorrect event (click on the filled cell and choose Void). The voided cell appears with a dashed amber border โ€” click it to re-enter the play. The gold cursor stays at the normal scoring position so you can continue scoring. Multiple gaps can be visible at once and filled in any order. The scoring sheet cannot be submitted while unfilled gaps remain.

If filling a gap creates 3 outs in that inning and events were recorded after the gap, a dialog will ask whether to remove the subsequent events or cancel the gap-fill.

Editing a Play

To review or change a play you already recorded, click on that cell. A panel will show the details and options for that event, including the ability to void (cancel) the play if needed.

Undo / Redo

The Undo button in the toolbar voids the last recorded event for the active team. This is a quick way to reverse a mistake without navigating to the cell. Undo is only available while the scoring sheet is in the "Started" state.

The Redo button restores the most recently undone event. Redo is not available if new events have been added after the undo. You can also use Ctrl+Z (Undo) and Ctrl+Shift+Z (Redo) keyboard shortcuts. On Mac, use Cmd instead of Ctrl.

Event History

Below the scoring grid, you can expand the Event History panel. This shows a table of every play recorded so far โ€” including substitutions and re-entries โ€” in reverse order (newest first). Lineup changes appear with a purple badge (SUB for substitutions, RE for re-entries) and show which player was replaced. You can choose how many events to show per page (10, 25, or 50). Click any column header to sort the table by that column (click again to reverse the sort direction). The panel remembers whether you left it open or closed.

7. SPECIAL PLAYS

Fielder's Choice (FC)

A fielder's choice means the batter reached base safely because a fielder chose to attempt an out on a different runner. The runner may or may not actually be put out.

  1. Record the FC event for the batter from the Other category.
  2. A Runners out on play section appears with checkboxes for each runner on base. If a runner was put out on the play, check that runner. You can optionally select the base where the out occurred using the dropdown next to each runner.
  3. Click Submit to record the event. A purple curved line will connect the FC cell to the runner's cell and a red circle will appear on the runner's cell to indicate the out.
  4. If no runner was put out (everyone safe), simply submit without checking any runner.
Tip: You can also mark a runner out later by clicking the FC cell at any time and choosing Mark Additional Runner Out from the actions menu.

Double Play / Triple Play

When a batter makes an out and one or more runners are also put out on the same play:

  1. Record the out event for the batter (Out, Strikeout, Sacrifice, etc.).
  2. Set the Outs on Play field to 2 (for a double play) or 3 (for a triple play).
  3. A section called Runners Out on Play will appear. Check the box next to each runner who was also put out.

Curved connector lines will appear between the batter's cell and each runner cell that was put out, just like with a fielder's choice.

Courtesy Runner

Some leagues allow a courtesy runner to replace a batter on the bases. When recording a play, check the Courtesy runner used option, then select the player who ran. The cell will show "CR" and the runner's jersey number in the corner. Runs still count for the original batter, not the courtesy runner.

Limit: Only one courtesy runner is allowed for non-pitchers per half-inning. Pitchers can use courtesy runners without limit. If a non-pitcher has already used a courtesy runner in the current half-inning, the option will be disabled for other non-pitcher batters until the next inning.

Run Scored

When a runner scores, their original cell in the grid gets a small box filled in the top-right corner. This is the standard way scoring sheets show that a run was scored.

8. LINEUPS AND SUBSTITUTIONS

Lineup Game Selection

Click Lineup in the sidebar (or on the landing page) to open the Lineup game selection page. This page lists all games with the same filters and sorting as the Games page. Each row shows a Lineup column with H (Home) and A (Away) indicators — a green check mark means that team's lineup has been initialized, and a dash means it has not. Click any game row to open the lineup management page for that game.

Lineup game selection page

Setting Up the Lineup

Before scoring can begin, both teams need a lineup. From the scoring sheet, if lineups are missing, you will see a Set Starting Lineup button. Click it to open the lineup management page. You can also navigate directly from the Lineup game selection page.

For each team, select the players from the roster and assign them a batting order (1 through 9 or more) and a fielding position. You must also designate the starting pitcher.

If you need to change the lineup before scoring starts, click Edit Lineup on the lineup management page. This re-opens the initialization form pre-populated with the current lineup. After making your changes and saving, the old lineup is replaced with the updated one.

Once a game is Live, the lineup page becomes read-only. All lineup changes (substitutions, position changes) must be made through the Scoring Sheet. A banner on the lineup page provides a direct link to the scoring sheet. Superusers retain override access to edit lineups directly during live games.

On finalized or read-only lineups, clicking any player name (including substituted players and pitcher history) opens the Player Detail modal window showing their tournament stats, game log, and biography.

Lineup management page with starting nine positions

Making a Substitution

During the game, click the Substitute Player button on the scoring sheet. Choose the player leaving the game and the replacement player from the bench. Set the inning and position for the new player.

Substituted players are shown with a line through their name in the grid. The new player appears in a new row with a marker showing when they entered the game.

Re-entry

If the league rules allow it, a player who was substituted out can re-enter the game. The system tracks which players are eligible for re-entry and displays them when needed.

Designated Hitter (DH)

When the DH rule is enabled, a team may designate one player (the DH) to bat in place of another player. During lineup initialization, assign a player to the DH position, then use the DH Bats For dropdown to select which player the DH will replace in the batting order. The selected player will play defense only and be marked as Does not bat (DNB). The DH can bat for any player, not just the pitcher.

On the scoring grid, the DNB player appears at the bottom of the lineup in a greyed-out row with no scoring cells. Their batting order shows DNB instead of a number.

On the lineup management page, a DH Active badge is shown when the DH rule is in effect. The DH player's row shows the DH annotation, and the replaced player's row is marked as DNB.

Note: The DH is terminated if the DH player enters the game defensively (changes from DH to a fielding position). Once terminated, the DH cannot be re-established for the remainder of the game. The pitcher must then take the DH's place in the batting order.

Pitcher Changes

To change the pitcher, use the Change Pitcher button in the pitcher area of the scoring sheet. The pitcher change panel shows two sections:

  • From Lineup — Current lineup players who can swap positions with the pitcher.
  • From Bullpen — Roster players not yet in the game. Selecting a bullpen pitcher creates a substitution: the old pitcher leaves the game and the new pitcher enters at the same batting order position.

The IP (innings pitched) display shows the current pitcher's individual IP, not the total team pitching. When a pitcher change occurs, a red horizontal line appears at the bottom of the last batter's cell that the departing pitcher faced, following standard scoring convention.

Note: The system requires a pitcher to be assigned before any scoring events can be recorded. If no pitcher is set, you will see a message asking you to assign one first.

Undoing Pitcher Changes and Substitutions

If you made a pitcher change or player substitution by mistake, you can undo it as long as no scoring events have been recorded since the change.

  • Undo Pitcher Change — Open the pitcher change panel and click the Undo Pitcher Change button at the bottom of the panel. A confirmation prompt will appear.
  • Undo Substitution — Open the substitution panel and click the Undo Substitution button at the bottom of the panel. A confirmation prompt will appear.

The undo buttons only appear when an undo is possible (i.e., no scoring events have been recorded since the change). Once any play is recorded after the change, the undo option is no longer available.

Pitcher History

On the lineup management page, below the Current Pitcher card, a Pitcher History section appears when more than one pitcher has entered the game. Pitchers are listed in order of appearance — the starting pitcher first (marked with an SP badge), followed by each reliever with an indicator showing the inning they entered (e.g., T4, B3). This section is only visible when there have been pitcher changes.

Lineup Export

The lineup management page includes an Export dropdown button in the page header. It offers three export formats:

  • Print / PDF — Opens a print-friendly page with the full lineup card (game header, batting lineups with substitution history, pitchers in order of appearance, and bench players). Use your browser's print dialog to save as PDF.
  • Excel (.xlsx) — Downloads a spreadsheet with the same information, formatted with headers and column widths for easy reading.
  • CSV — Downloads a plain-text comma-separated file that opens in any spreadsheet application.

All export formats include: tournament and game header, batting lineup with substitution history for both teams, pitcher history in order of appearance, and bench players (roster players not in the lineup).

9. GAME TIMER

Some tournaments use a time limit for games. Diamond Core includes a countdown timer that you can use during the game. The default timer duration is set per tournament edition by the administrator. If no duration is configured, it defaults to 45 minutes.

Scoring sheet controls with timer, undo, and submit buttons

Using the Timer

The timer appears on the game detail page (and inside the scoring sheet). You can set the number of minutes and seconds, then use the buttons to control it:

  • Start — Begins the countdown.
  • Break — Pauses the timer (for rain delays, breaks, etc.).
  • Resume — Resumes the countdown after a break.
  • Reset — Sets the timer back to its starting value.
Game timer on the game detail page

Color Coding

The timer display changes color based on how much time is left:

  • Green — More than 5 minutes remaining.
  • Yellow — Between 1 and 5 minutes remaining.
  • Red (pulsing) — Less than 1 minute remaining.

When the timer reaches zero, a sound plays and a banner appears to let everyone know that time is up.

Tip: The timer keeps running even if you navigate to another page. When you return, it will show the correct remaining time.

10. BOX SCORES

Results & Box Scores Page

Click Results in the sidebar (or on the landing page) to browse game results. By default, the page shows Final and Live games. Each game appears as a card with the inning-by-inning line score (Runs, Hits, Errors) always visible.

Each card includes a View Full Box Score link that takes you to the detailed box score page with full batting and pitching stats for both teams.

Click Show Filters to expand the filter panel. You can narrow results by season, tournament, edition, gender, country, venue, club, or status. You can clear the default status filter to see all games. When filters are active and the panel is collapsed, a badge shows the count. Active filter pills appear below the panel; click Clear All Filters to reset.

Results and Box Scores page with line scores

Game Recap

At the top of the game detail and box score pages for finalized games, a Game Recap provides a brief text summary of the game. The recap includes:

  • Winner and Loser — The winning team and final score.
  • Score Margin Description — Word choice reflects how decisive the victory was (dominated, defeated, beat, edged, topped).
  • Innings Played — Number of innings (if different from regulation).
  • MVP / Top Performer — The winning team's top batter with their hitting statistics (e.g., "Alice Johnson led the offense going 3-for-4, a home run, 2 RBI").
  • Star Pitcher — The winning team's best pitcher with innings pitched, strikeouts, and runs allowed (e.g., "Maria Lopez pitched 6.0 innings, 8 strikeouts"). A pitcher must have pitched at least 1 full inning to qualify.
  • Big Inning — If a team scored 4 or more runs in a single inning, that inning is highlighted in the recap.

The recap is displayed for final games only. Games that are scheduled, live, canceled, or postponed will not show a recap.

Full Box Score Page

The box score page gives a summary of a completed (or in-progress) game. You can reach it from the game detail page or from the Results & Box Scores page.

The box score shows:

  • Game Recap — A natural-language summary of the finalized game (see "Game Recap" section above).
  • Line Score — Runs per inning for both teams, plus total Runs (R), Hits (H), and Errors (E). Innings that were not played are displayed as “X” in italic muted text; hover over them to see a “Not played” tooltip. When the home team wins without needing to bat in the last inning (walk-off rule), the bottom of that inning shows “X” instead of “0”.
  • Player Statistics — Individual batting stats for each player who appeared in the game.
  • Pitcher Decisions — For games imported from TAS or WBSC, the pitching table shows who got the Win (W), Loss (L), or Save (S) next to the pitcher's name. These are color-coded so you can spot them quickly: green for the winning pitcher, red for the losing pitcher, and blue for a save. For example, you might see “John Smith (W)” in green. If the game was a forfeit and the “Pitcher Decisions Excluded” rule is turned on (in Forfeit Rules), no pitcher gets a W, L, or S — the decision badges are hidden entirely.
Full box score page with line score and game recap

Player Detail: Click any player name (shown in gold) in the box score tables to open a detail modal showing the player's profile, tournament stats (batting and pitching), game log, biography, and sanctions. This works on the compact box score (Results page), the full Box Score page, Game Detail lineups, and the Statistics pages.

Box score batting statistics table

11. STATISTICS

The Statistics page provides an interactive explorer for batting and pitching statistics aggregated from all finalized scoring sheets. Statistics are computed from play-by-play scoring data and refreshed automatically when a game is finalized.

Aggregation Levels

Use the level selector at the top of the page to choose how statistics are grouped:

  • Player Stats โ€” Individual player statistics per tournament edition and team. Each player shows their nationality flag, each team its country flag, and each edition its tournament host country flags.
  • Team Stats โ€” Team-level aggregates per tournament edition. Each team shows its country flag and each edition its tournament host country flags. Click any team name to view its Rankings detail page.
  • Tournament Stats โ€” Tournament-wide totals across all teams. Each tournament shows its host country flags (international tournaments may have multiple).

Stat Tabs

  • Basic โ€” Counting stats: G, PA, AB, R, H, 1B, 2B, 3B, HR, IHR, 4B, RBI, BB, IBB, K, SF
  • Rates โ€” Rate stats: AVG (batting average), OBP (on-base percentage), SLG (slugging), OPS (on-base plus slugging), OPS+ (league-adjusted OPS)
  • Advanced โ€” Advanced metrics: ISO (isolated power), BABIP (batting average on balls in play), wOBA (weighted on-base average), OPS+ (league-adjusted OPS)
  • Career Leaders โ€” All-time leaders aggregated across all tournaments. Each player shows their nationality flag, each team its country flag, and each edition its tournament host country flags.
Batting statistics page with player stats table

Filters

Click Show Filters to expand the filter panel. You can narrow results by Tournament Edition, Team, Gender, Phase (game type), Home/Away, Date Range, or minimum plate appearances (Min PA). When filters are active and the panel is collapsed, a badge shows the count. Active filter pills appear below the panel; click Clear All Filters to reset.

Sorting

Click any column header to sort the table by that stat in descending order. Click again to reverse the sort direction. You can also sort by player name, team name, or tournament name โ€” click those column headers the same way. Hold Shift and click another column to sort by multiple columns at the same time.

Player Detail

When viewing player-level statistics, click any player name to open a detail modal showing the player's profile, tournament stats (batting and pitching), game log, biography, and sanctions.

Stat Explainer

On the Statistics and Career Leaders pages, computed stats (AVG, OBP, SLG, OPS, OPS+, ISO, BABIP, wOBA, oWAR for batting; ERA, ERA+, RA, FIP, WHIP, K/9, BB/9, H/9, K/BB, pWAR for pitching) are clickable. A small gold dot below the number indicates it can be clicked. Clicking opens the Stat Explainer modal, which shows:

  • The stat name, description, and the player's name and tournament edition
  • The exact formula used to compute the stat
  • Color-coded variable cards showing the player's actual values (e.g., Hits, At Bats, Walks)
  • A step-by-step calculation substituting the player's numbers into the formula
  • For advanced stats: a league average context bar showing whether the player is above or below the league average

Close the modal by clicking the X button, pressing Escape, or clicking outside the modal.

Min PA Qualification

Use the Min PA filter to set a minimum number of plate appearances. This is useful for rate stats (AVG, OBP, etc.) where small sample sizes can be misleading.

When Stats Are Refreshed

Statistics are refreshed in two ways:

  • Automatically โ€” Every time a scoring sheet is finalized, all batting and pitching statistics are immediately recomputed from the play-by-play data of all finalized games.
  • Manually โ€” Administrators can click the "Refresh Stats" button at the top of the Statistics page to trigger an immediate refresh. This is useful if data corrections were made outside the normal workflow.

Statistics are computed from materialized views in the database. They always reflect the latest finalized game data.

Batting Charts

Below the statistics table, a charts dashboard provides visual summaries of the batting data. All charts respond to the same filters applied to the table above.

  • Top Batters by OPS โ€” Horizontal bar chart showing the top 15 batters ranked by OPS (On-base Plus Slugging), split into OBP and SLG components.
  • Team Batting Comparison โ€” Grouped bar chart comparing each team's AVG, OBP, and SLG side by side.
  • Hit Distribution โ€” Donut chart showing the breakdown of all hits by type: Singles, Doubles, Triples, and Home Runs.
  • Plate Discipline โ€” Bubble chart plotting each player's walk rate (BB%) against strikeout rate (K%), with bubble size proportional to plate appearances.
  • Runs vs Hits โ€” Combo chart with bars for Hits and RBI per team, and a line overlay for Runs scored.
  • Batting Average by Inning โ€” Line chart showing the team or league batting average for each inning, revealing when lineups tend to be hottest.
  • Outcome Heatmap โ€” Color-coded grid showing the count of each plate appearance outcome (Hit, Walk, Strikeout, Sacrifice, Other Out) per inning.

Charts adapt to dark and light mode automatically. If no data is available for a chart, a "No chart data available" message is displayed in its place.

Pitching Statistics

The Pitching Statistics page shows statistics from the pitcher's perspective. Pitcher attribution is computed automatically: for each plate appearance, the system identifies which pitcher was active for the opposing team at the time of the event.

Pitching Stat Tabs

  • Basic โ€” Counting stats: G, IP, BF, H, R, BB, IBB, K, HR, IHR
  • Rates โ€” Rate stats: RA (run average), WHIP, H/9, BB/9, K/9, K/BB
  • Advanced โ€” Advanced metrics: ERA, FIP (fielding independent pitching), RA, WHIP, H/9, K/9, BB/9, K/BB

Min IP Qualification

Use the Min IP filter to set a minimum number of innings pitched. This is useful for rate stats (RA, WHIP, etc.) where small sample sizes can be misleading. Options: No minimum, 1+ IP, 3+ IP, 7+ IP, 14+ IP.

Pitching Charts

Below the pitching statistics table, a charts dashboard provides visual summaries of the pitching data. All charts respond to the same filters applied to the table above.

  • Top Pitchers by RA โ€” Horizontal bar chart showing the top 15 pitchers ranked by lowest Run Average (min 3+ IP).
  • Team Pitching Comparison โ€” Grouped bar chart comparing each team's RA, WHIP, and K/9 side by side.
  • Pitch Outcomes โ€” Donut chart showing the breakdown of all plate appearance outcomes: Strikeouts, Walks, Hits, and Other Outs.
  • Pitcher Workload โ€” Bubble chart plotting each pitcher's IP against K/9, with bubble size proportional to batters faced.
  • RA by Inning โ€” Line chart showing the runs allowed rate per inning across all pitchers.
  • K/BB Rate โ€” Scatter chart plotting each pitcher's strikeout rate against walk rate per batter faced.

Stat Tooltips

Hover over any statistical column header (PA, AB, AVG, OBP, WHIP, etc.) to see a tooltip explaining what the abbreviation means. This works on the scoring sheet, box scores, statistics pages, standings, and player detail modals.

12. STANDINGS

Click Standings in the sidebar (or on the landing page) to view tournament standings. The page shows Win-Loss-Tie records computed in real time from game results.

Tournament standings page with phase tabs
Tournament standings page with phase filter tabs and per-pool standings cards

How Standings Are Computed

Standings are computed in real time every time you open the page โ€” there is no caching or delay. The system calculates Win-Loss-Tie records directly from game results, including games that are currently live. This means standings always reflect the very latest scores, even during an in-progress game.

Unlike statistics and rankings (which are refreshed when a game is finalized), standings do not require finalization to update.

Standings Table

Each tournament edition is displayed as a card with a standings table. The table columns are:

  • # — Rank position
  • Team — Club name with country flag. Click any team name to view its Rankings detail page, including Elo rating history and charts.
  • W-L-T — Wins, Losses, and Ties
  • Pts — Points (Win = 1, Tie = 0.5)
  • % — Winning percentage (Points / Games Played)
  • GB — Games behind the leader
  • RS / RA — Runs Scored and Runs Allowed
  • Diff — Run Differential (RS - RA)
  • L5 — Record over the last 5 games
  • Strk — Current streak (e.g., W4 = 4 consecutive wins)

By default, teams are ranked by winning percentage (descending), then head-to-head record among tied teams, then run differential. Administrators can change the primary sort order (see Standings Sort Method below).

Tiebreaker Rules

Administrators can configure a tiebreaker rule per tournament phase (in Setup > Phases). The available rules are:

  • Head-to-head, then run differential (default) — Teams are sorted by total points (Win = 1, Tie = 0.5). When teams have the same points, tiebreakers are applied in order: (1) head-to-head record among tied teams, (2) run differential (RS - RA).
  • Run differential only — Teams are sorted by total points. When tied, run differential is used directly (no head-to-head check).
  • WBC (World Baseball Classic rules) — Teams are sorted by winning percentage (wins / games played) instead of total points. This means a team with fewer games played but a better win rate ranks higher. When teams have the same winning percentage, tiebreakers are applied in order: (1) head-to-head record among tied teams, (2) fewest runs allowed in games among tied teams, (3) run differential in games among tied teams, (4) fewest runs allowed in all pool games, (5) run differential in all pool games, (6) pre-tournament seed number (lower seed = higher rank).
  • Custom — Administrators define their own tiebreaker order by selecting from these criteria and arranging them in priority order: head-to-head record, run differential (overall or among tied teams), runs allowed (overall or among tied teams), winning percentage, runs scored, TQB (Team Quality Balance โ€” net runs per inning, overall or among tied teams), ER-TQB (earned runs allowed per defensive inning, overall or among tied teams), and pre-tournament seed number. When "Custom" is selected, the form shows a list where you can add criteria, reorder them with arrow buttons, and remove them. The first criterion is tried first; if teams are still tied, the next criterion is applied, and so on.

Standings Sort Method

Administrators can also configure the primary sort order for pool standings, independently from the tiebreaker rule. Two options are available:

  • Winning Percentage (default) — Teams are ranked by their winning percentage (points divided by games played). This is the standard sort order for baseball and softball.
  • Points — Teams are ranked by total points (Win = 1, Tie = 0.5). This sort order is used for 360 softball.

Pool standings always show all columns: W, L, T, Pts, PCT, Diff, and GB. The active sort column is highlighted with a bold header and subtle background to make it easy to see which metric determines the ranking.

The sort method controls only the primary ranking order — it does not affect how ties are broken. For example, you can use Winning Percentage sorting with the WBC tiebreaker, or Points sorting with Head-to-head then run differential. The two settings are independent.

TQB and ER-TQB (WBSC Tiebreakers)

TQB stands for Team Quality Balance. It is a tiebreaker used by the WBSC (World Baseball Softball Confederation) when two or more teams have the same win-loss record. It answers the question: "How efficiently did each team score and prevent runs, inning by inning?"

Why not just use run differential?

Simple run differential (runs scored minus runs allowed) has a flaw: the home team often does not bat in the last inning when it is already winning. That means the home team played fewer offensive innings but is penalized in run differential because it had fewer chances to score. TQB fixes this by dividing by the actual number of innings each team played on offense and defense.

How TQB is calculated

TQB has two parts:

  1. Scoring rate = Runs Scored ÷ Offensive Innings (how many runs you score per inning you bat)
  2. Allowing rate = Runs Allowed ÷ Defensive Innings (how many runs you give up per inning you are in the field)

TQB = Scoring rate − Allowing rate. A higher TQB is better — it means the team scores more runs per inning than it allows.

Example

The Eagles and the Sox both finish a 5-game pool with 3 wins and 2 losses. Who ranks higher?

  • Eagles: Scored 30 runs in 33 offensive innings, allowed 20 runs in 35 defensive innings. TQB = (30 ÷ 33) − (20 ÷ 35) = 0.909 − 0.571 = +0.338
  • Sox: Scored 28 runs in 35 offensive innings, allowed 18 runs in 33 defensive innings. TQB = (28 ÷ 35) − (18 ÷ 33) = 0.800 − 0.545 = +0.255

The Eagles rank higher because their TQB (+0.338) is better than the Sox (+0.255). Even though the Sox allowed fewer total runs (18 vs 20), the Eagles were more efficient per inning on both offense and defense.

TQB among tied teams

There is also a variant that only counts games played between the tied teams, ignoring games against other opponents. This prevents a team from inflating its TQB by running up the score against a weak team that is not part of the tie. If a 3-way tie exists between the Eagles, Sox, and Bears, only the Eagles-Sox, Eagles-Bears, and Sox-Bears games count.

ER-TQB (Earned Run TQB)

ER-TQB stands for Earned Run Team Quality Balance. It is typically used as a secondary tiebreaker when TQB is also tied. It focuses only on the defensive side and uses earned runs instead of total runs. Earned runs are runs scored without the help of defensive errors — they represent "clean" runs that the pitcher and defense could not prevent even with perfect fielding.

ER-TQB = Earned Runs Allowed ÷ Defensive Innings. A lower ER-TQB is better — it means the team gives up fewer earned runs per inning. Like TQB, there is also an "among tied teams" variant.

Example

After TQB, the Eagles and the Sox are still tied. Now we check ER-TQB:

  • Eagles: 15 earned runs allowed in 35 defensive innings. ER-TQB = 15 ÷ 35 = 0.429
  • Sox: 16 earned runs allowed in 33 defensive innings. ER-TQB = 16 ÷ 33 = 0.485

The Eagles rank higher because their ER-TQB (0.429) is lower than the Sox (0.485) — the Eagles allowed fewer earned runs per inning they were in the field.

Earned Runs and ERA

Earned runs (ER) are runs scored without the aid of defensive errors. They are tracked per game and shown in the box score pitching table. ERA (Earned Run Average) measures a pitcher's effectiveness: the number of earned runs allowed per full game. The formula is ER × regulation innings / innings pitched (for softball: ER × 7 / IP; for baseball: ER × 9 / IP). A lower ERA is better.

Unresolvable Ties and Tiebreaker Games

When all tiebreaker criteria have been exhausted and teams remain tied at the advancement boundary (the cutoff between teams that advance and those that don't), the system detects the situation and alerts the administrator.

An alert banner appears on the pool games page in Setup showing which teams are tied and how many can advance. The administrator has two options to resolve the tie:

  • Tiebreaker Game — Create a special tiebreaker game between the tied teams. The game is marked with the "Tiebreaker" game type and does not affect the regular pool standings. Once finalized, the winner is placed ahead of the loser and advancement proceeds normally.
  • Manual Resolution — Resolve the tie without playing a game (e.g., coin toss, lot draw). The administrator selects the resolution method, orders the teams, and provides an optional note. The system records the resolution and proceeds with advancement.

Tiebreaker games are excluded from regular standings calculations โ€” they only serve to break the specific tie. Teams that are tied share the same rank number in the standings display (e.g., two teams at rank 2 instead of ranks 2 and 3).

Forfeit and Dropped Team Penalties

When Forfeit Rules are configured for a tournament (in Setup > Tournaments > Forfeit Rules), two additional penalties can affect how tied teams are ranked in the standings:

  • Forfeit Tiebreak Penalty — If two or more teams finish with the same record and remain tied after all normal tiebreaker criteria (head-to-head, run differential, etc.), any team that caused a forfeit loss during the season is placed at the bottom of that tied group. A small yellow F badge appears next to the team name in the standings table. For example: Team A, Team B, and Team C all finish 5-3. After tiebreakers, they are still tied. But Team C forfeited one game during the season, so Team C drops to the bottom of that three-way tie.
  • Dropped Team Tiebreak Penalty — A team that withdrew from the competition (was “dropped”) is always placed dead last within its tie group — even below teams that have a forfeit penalty. The dropped team's row is dimmed in the standings table and shows a red W badge (for “Withdrawn”). For example: if both Team C (forfeit) and Team D (withdrawn) are tied with others, Team D goes to the very bottom, then Team C, then the normal teams.

Important: These penalties only affect the order within a group of tied teams. They do not push a team below another team that has a clearly better record. A team with 6 wins will always be ranked above a team with 5 wins, regardless of forfeits. Both penalties can be turned on or off individually per tournament and overridden per edition.

Live Indicator

Teams with a game currently in progress show a red pulsing dot next to their name. Live game scores are included in the standings calculation.

Champion & Runner-up Badges

Tournament placements are generated automatically when the final phase of a tournament edition completes. This works for all phase types: bracket tournaments (single/double elimination), Best-of-N series, and round robin/super round (using final standings). A gold trophy icon appears next to the champion's name in both pool and overall standings tables. The runner-up receives a silver award icon. The Tournament Results section at the top of each edition card also shows gold, silver, and bronze medal badges for the top three finishers. Administrators can also enter or override placements manually in Setup > Rankings > Placements.

Default View

On a first visit, the page automatically shows tournaments that are currently playing or upcoming, soonest first, capped at 10 cards. If nothing is currently playing, it falls back to the 10 most-recently-finished tournaments. A short note at the top of the page reminds you of this default behavior so you know why past tournaments aren't visible until you filter.

Filters and Phases

Click Show Filters to expand the filter panel. You can narrow standings by tournament, edition, season (year), currently-playing tournaments, or club name. When filters are active and the panel is collapsed, a badge shows the number of active filters. Active filter pills appear below the panel; click Clear All Filters to reset.

Season is the simplest way to browse historical tournaments. Pick a year (e.g., 2024) and the page lists every tournament edition of that calendar year โ€” past, present, or future โ€” bypassing the "currently playing or upcoming" default.

Phase tabs (e.g., Round Robin, Medal Round) appear below the filters when game types are configured. Click a tab to see standings for only that phase of the tournament.

Game Type (Phase)

Administrators can set a game's phase (e.g., Round Robin, Medal Round) from the game detail page using the phase dropdown below the tournament name. This allows filtering standings by tournament phase.

Pool Standings

When a tournament edition uses the multi-phase system with round-robin pools, the standings page shows per-pool standings cards. Each pool card displays a compact table with W-L-T records, points, and run differential for teams in that pool.

Pool cards show a completion badge: "Complete" (green) when all round-robin games have been finalized, or "In Progress" (amber) when some games are still pending. A game count (e.g., 4/6) shows how many games are finalized out of the total expected.

When the phase has an advancing count configured, the top N teams in each pool are highlighted with a green marker indicating they qualify to advance to the next phase. A hint below the table shows "Top N advance".

While pool play is still in progress, teams that have mathematically clinched advancement display an amber outlined checkmark (โœ“) next to their name. A team has clinched when it is guaranteed to finish in the top N positions regardless of how remaining games play out. A legend at the bottom of the pool card explains the checkmark symbol. Once all games are complete, the clinch indicator is replaced by the standard advancing highlight.

Use the Pool filter dropdown (in the filter panel) to view standings for a single pool. The overall combined standings table appears below the pool cards.

13. PLAYOFF BRACKET

Click Bracket in the sidebar to view the playoff bracket tree for elimination phases. The bracket displays match cards organized by round in a left-to-right tree layout, making it easy to track the progression of playoff competition. The page title shows the currently selected phase name (e.g., "Playoff Bracket — Playoff") so you always know which phase you are viewing.

Playoff bracket showing elimination round matchups
Single elimination bracket visualization showing semifinals feeding into the final

Tournament Selection

Use the Tournament Edition dropdown to select which tournament you want to view. The bracket will automatically refresh to display the elimination bracket for that tournament.

Bracket Display

Matches are displayed as cards organized by round (Quarterfinals, Semifinals, Final). Each card shows:

  • Home Team — Country flag, team name, and score (or dash if not yet played)
  • Away Team — Country flag, team name, and score (or dash if not yet played)
  • Placeholder Labels — When teams are not yet determined, the card shows the source (e.g. "Winner of SF1")
  • Clinched Badge — Teams assigned to a bracket match display an amber outlined checkmark (โœ“) next to their name while the game has not yet been decided. A legend below the bracket explains the symbol. Once the match is decided, the badge is removed.
  • Winning Team — Highlighted in bold font
  • Status Badge — Final (green), Live (red with pulsing dot), Ready, or Scheduled
  • Match Code — Displayed in the card footer (e.g. SF1, F)
  • Clickable Card — Click the entire match card to view full game details (when a game is linked)

Phase Selector

When a tournament has multiple elimination phases, tab buttons appear at the top to switch between them. Click a tab to view that phase's bracket.

Double Elimination

Double elimination brackets are split into three sections: Winners Bracket, Losers Bracket, and Championship. Each section displays its own bracket tree with round headers and match cards.

Rescheduling Bracket Matches

Admins can reschedule bracket matches directly from both the bracket visualization page and the setup bracket page. On the bracket visualization, hover over a match card and click the pencil icon in the footer to open the reschedule modal. On the setup bracket page, click the calendar icon in the Date column.

The reschedule modal lets you change the date, time, and venue. If a game has already been created for the match, the game's schedule is automatically updated to stay in sync. Matches with live or finalized games cannot be rescheduled.

14. RANKINGS

Rankings show how teams compare across tournaments using an Elo-based rating system. Unlike Standings (which show Win-Loss-Tie records within a single tournament), Rankings track each team's overall competitive strength over time.

Rankings page with Elo-based team ratings

Viewing Rankings

Click Rankings in the sidebar or on the home page. The page shows one leaderboard per league (one card per tenant), so rankings stay encapsulated within their own organization and never mix teams from different leagues.

Geographic Scopes

Rankings are organized by geographic scope. Scopes form a hierarchy — for example, World > Europe > Spain > Canary Islands — but each scope has its own independent leaderboard with separate Elo points. A team can be ranked #1 in the Canary Islands and #5 in Europe at the same time.

The most commonly used scopes (such as World and Europe) appear as tabs at the top of the leaderboard page. Additional scopes are available in a dropdown menu next to the tabs.

Each tournament category defines which geographic scopes it contributes to. When a game is finalized, the rating is updated only in the scopes assigned to that category — there is no automatic roll-up from a child scope to a parent scope. For example, a local Canary Islands league updates the Canary Islands leaderboard but does not automatically affect the European or World leaderboard unless the administrator explicitly assigns those scopes to the category.

Filtering

Open the Filters panel to narrow the page. Pick a single League from the dropdown to show only that league's leaderboard, or use Club Search to find a specific team by name within each card.

How Rankings Work

Rankings use the Elo rating system, the same method used in chess, international football (FIFA), and many other sports. The core idea is simple: when you beat a strong opponent you gain more points, and when you lose to a weak opponent you lose more points. Over time, each team's rating settles at a number that reflects their true competitive strength.

Rankings are updated automatically every time a scoring sheet is finalized. A live or in-progress game does not affect rankings until the scoring sheet is finalized. Administrators can recalculate all rankings from the Setup page, which replays every finalized game in chronological order and recomputes all Elo points from scratch.

The Rating Formula โ€” Step by Step

Every time a game is finalized, the system calculates how many points each team gains or loses using this formula:

Point change = Game Weight (I) × Margin Factor (S) × (Actual Result − Expected Result)

There are three pieces that go into this calculation. Let's walk through each one.

1. Game Weight (I) โ€” How important is this game?

Every tournament is assigned a category by the administrator, and each category has a game weight number (called "I"). A higher number means games in that tournament move rankings more. For example:

  • A major international championship might have I = 60
  • A regional cup might have I = 40
  • A local friendly league might have I = 10

This means winning a championship game moves your rating 6 times more than winning a friendly.

2. Margin Factor (S) โ€” How big was the victory?

Winning by a large margin counts more than a narrow victory. The system uses the run difference (the absolute difference between the two teams' scores) to calculate a multiplier:

  • 0 or 1 run difference — Multiplier = 1.0 (base value, no bonus)
  • 2 run difference — Multiplier = 1.5 (50% bonus)
  • 3 or more runs — Multiplier = (11 + run difference) ÷ 8

Some examples of how margin affects the multiplier:

  • Win by 1 run (e.g., 3–2) → ×1.0
  • Win by 2 runs (e.g., 5–3) → ×1.5
  • Win by 3 runs (e.g., 7–4) → ×1.75
  • Win by 5 runs (e.g., 8–3) → ×2.0
  • Win by 10 runs (e.g., 12–2) → ×2.625

The multiplier grows gradually so a blowout counts more, but not overwhelmingly more. This rewards dominant performances without making a single lopsided game distort the rankings.

3. Expected Result โ€” Who was favored to win?

This is the heart of the Elo system. Before each game, the system calculates the probability of winning for each team based on their current ratings. A team with a higher rating is expected to win more often.

The formula uses a 400-point scale: if one team is rated 400 points higher than the other, that team is expected to win roughly 10 out of every 11 games (about 91% of the time). If both teams have the same rating, each is expected to win 50% of the time.

Here are some common rating gaps and what they mean:

  • 0 points apart — 50/50 chance (evenly matched)
  • 100 points apart — Higher-rated team expected to win ~64% of the time
  • 200 points apart — Higher-rated team expected to win ~76% of the time
  • 400 points apart — Higher-rated team expected to win ~91% of the time

The key insight: beating a team you were already expected to beat earns you fewer points, while beating a team above your rating earns you more. Similarly, losing to a much weaker team costs you more than losing to a stronger one.

Worked Example

Let's walk through a real calculation so you can see exactly how it works.

Setup: Team Alpha has 1,500 points. Team Bravo has 1,300 points. They play in a championship (game weight I = 60). Final score: Alpha wins 6–3 (a 3-run margin).

Step 1 โ€” Margin factor: The run difference is 3. Using the formula (11 + 3) ÷ 8 = 1.75.

Step 2 โ€” Expected result: Alpha is 200 points above Bravo. The system calculates that Alpha has about a 76% chance of winning (expected result = 0.76). This means Bravo has a 24% chance (expected result = 0.24).

Step 3 โ€” Actual result: Alpha won, so their actual result = 1.0. Bravo lost, so their actual result = 0.0. (A tie would give both teams 0.5.)

Step 4 โ€” Calculate point change for Alpha:

  • Point change = 60 × 1.75 × (1.0 − 0.76)
  • Point change = 60 × 1.75 × 0.24
  • Point change = +25.23 points

Step 5 โ€” Bravo's change: Rankings are zero-sum — the points that one team gains, the other loses. So Bravo loses 25.23 points.

Final ratings: Alpha goes from 1,500 to 1,525.23. Bravo goes from 1,300 to 1,274.77.

Notice that Alpha only gained 25 points despite winning by 3 runs in a major championship. That's because Alpha was already expected to win. If Bravo had pulled the upset and won 6–3 instead, Bravo would have gained about 79.80 points — a much larger swing, because the underdog defied expectations.

Upset Example

Same teams, same championship, but this time Bravo wins 6–3 (the upset):

  • Bravo's actual result = 1.0, expected result = 0.24
  • Point change = 60 × 1.75 × (1.0 − 0.24) = 60 × 1.75 × 0.76 = +79.80
  • Alpha loses 79.80 points

This is what makes Elo rankings fair: upsets are rewarded proportionally. The bigger the gap between the teams, the more the underdog gains (and the more the favorite loses) when the expected outcome doesn't happen.

Placement Bonuses

In addition to game-by-game point changes, teams can earn bonus points for their final finishing position in a tournament. Administrators configure how many bonus points each position gets (e.g., 1st place = +200, 2nd = +100, 3rd = +50). These bonuses are added on top of the game-by-game points when tournament placements are recorded.

Placements are generated automatically when the final phase of a tournament edition completes. This works for all formats: bracket tournaments (single/double elimination), Best-of-N series, and round robin/super round (using final standings). Administrators can also enter or override placements manually.

Starting Points and Auto-Enrollment

Teams do not need to be manually enrolled in the ranking system. The first time a team plays a ranked game, the system automatically gives them starting points (configured per tournament category, typically 1,500). From that point on, every finalized game adjusts their rating.

Ranking Seasons

Ranking seasons define date boundaries (e.g., "Season 2025: Jan – Dec 2025") for filtering the leaderboard and club history. Seasons are automatically assigned to ranking entries based on game dates — no manual tagging needed. Seasons within the same league cannot overlap.

When a season is selected on the leaderboard, a Season +/− column appears showing how much each team's rating changed during that period. The club detail page also supports season filtering to see only the ranking history within that period.

Elo ratings are continuous — they carry over from season to season. There is no reset. Seasons are a viewing tool, not a scoring boundary.

Setting Up Rankings in the Wizard

When creating a tournament through the Tournament Wizard (Setup > Tournament Wizard), Step 2 includes a complete Elo Rankings section. You can:

  • Enable rankings for the tournament with a checkbox
  • Select or create a ranking category (with game weight, start points, and geographic scopes)
  • Select or create a ranking season for date-based filtering
  • Configure placement bonuses (1st through 10th place) directly in the wizard

All ranking configuration is shown in the Review step before you create the tournament. When the tournament is created, the system automatically links the edition to the selected ranking category and saves any placement bonus configuration.

Table Columns

  • # — Rank position (top 3 shown with medal badges)
  • Team — Club name with country flag (click to view ranking history)
  • Points — Current Elo rating points
  • Chg — Point change since last update (green = gained, red = lost, NEW = first ranking)
  • Games — Number of ranked games played

Click any column header (Team, Points, Chg, Games) to sort the table by that column. Click again to reverse the sort direction. Hold Shift and click another column to sort by multiple columns at the same time.

Club Ranking Detail

Click any club name on the rankings leaderboard to view its full ranking history. The detail page shows three charts: a Rating Over Time line chart that plots the team's Elo points over time with color-coded data points for each type of change (gold for games, green for placements, gray for starting points, red for adjustments), a Point Changes by Type bar chart that shows total gains (green) and losses (red) grouped by entry type, and a Win/Loss Point Distribution histogram showing how game point changes are distributed across ranges (green for gains, red for losses). Hover over any point or bar to see details.

Below the chart, the history table shows the date, type of change (Game, Placement, Start, or Adjustment), context (opponent for games, tournament for placements), points before, point change, and points after. Game entries link to the game detail page. Use the scope tabs to switch between geographic scopes (e.g., Europe, World, Canary Islands). Click Back to Rankings to return to the leaderboard.

15. PLAYER DIRECTORY

The Player Directory is a searchable public list of all players in the system. Use it to find player profiles, view statistics, and see game history.

Player Directory page with search and filters

Filtering and Searching

The Players page uses the canonical filter panel that appears across the application. Click Show Filters to expand it. You can filter by:

  • Season — Year a player rostered in any tournament edition.
  • Tournament / Edition — Players who rostered in that tournament or specific edition.
  • Gender — Players who rostered in a tournament edition of that gender.
  • Country — Player nationality (primary).
  • Club — Players who have ever played for that club. When combined with an Edition filter, the result narrows to players who played for the club in that edition.
  • Player — A type-as-you-go dropdown showing each player's country flag plus “Last, First”. Combine with Last name, First name, and Nickname text fields for an AND-style narrow.
  • Position — Defensive position from the codebook (P, C, 1B, 2B, 3B, SS, LF, CF, RF).

Click Apply Filters to filter the list, or Clear All to reset all filters. When filters are active and the panel is collapsed, a badge shows how many filters are applied.

Sorting and Navigation

Click any column header (Player, Position, B/T, Country) to sort the table. Click again to reverse the sort order. Hold Shift and click another column to sort by multiple columns at the same time. Country flags are shown next to each player's nationality. Results are paginated with a configurable page size (25, 50, or 100 per page) and full navigation controls (First, Previous, Next, Last).

Player Detail

Click any row in the table to open a Player Detail modal. The modal has four tabs:

  • Tournament Stats — Per-tournament batting stats (PA, R, H, 2B, 3B, 4B, HR, IHR, RBI, BB, IBB, K, SF) and pitching stats (G, IP, BF, H, R, BB, IBB, K, HR, RA, WHIP) if the player has pitched. Columns are sortable by clicking the header.
  • Game Log — Per-game batting and pitching stats. Click any row to navigate to that game's detail page. Pitching columns appear only if the player has pitched in at least one game.
  • Biography — Player biography, notes, and external links (if available).
  • Sanctions — Sanction status with start date, end date, and reason. Shows "No sanctions on record" if the player is not sanctioned.

The modal also shows the player's photo (or colored initials), profile information (name, ID, position, license, nationality, etc.), and status.

Close the modal by clicking the × button, clicking outside the modal, or pressing the Escape key. Your filters and page position are preserved.

Player detail card with biographical information

Player Profile Page

Each player has a dedicated full-page profile at /players/<player_id>/. The profile page mirrors the player detail modal layout with three tabs:

  • Tournament Stats — Per-tournament batting and pitching statistics with sortable columns and pagination.
  • Game Log — Per-game stats with clickable rows that navigate to the game detail page.
  • Biography — Biography text, notes, and external links.

The profile page includes OpenGraph meta tags for social sharing (links shared on social media will display the player name and description). The player info card shows the avatar with nationality flag badge and key fields (ID, name, position, bats/throws, license, nationality, birth country).

Note: The profile page does not show the Sanctions tab, as sanction information is only visible in the player detail modal accessible from roster management views.

Player Cards (Admin)

Administrators can generate printable player ID cards in CR-80 credit card format (85.6 x 53.98 mm). Each card has a front (player photo, name, nationality, team, sport, ID) and back (QR code linking to the player profile page).

  • Single Player Card — On the player profile page, click the "Download Card" dropdown, select a team context, and choose PDF or PNG format.
  • Batch Roster Cards — On the Setup > Roster list page, click "Download All Cards" and choose: PDF Duplex (front + back per player), PDF Fronts Only, or PDF Backs Only.
  • Per-Player Card — In the roster list, each player row has a card icon in the Actions column for downloading that player's card individually.

Cards are designed for use with ID card printers. The QR code on the back links to the player's public profile page.

16. COMPARE TEAMS

The Compare Teams page lets you view head-to-head statistics between any two teams in your system. This is useful for analyzing matchups, understanding historical performance between rivals, and comparing team statistics side by side.

Compare Teams head-to-head selection page

Accessing Compare Teams

Click Compare in the sidebar under the RESULTS section, or use the Compare Teams button on the Standings or Rankings pages.

Selecting Teams

On the Compare Teams page, use the two dropdown selectors to choose:

  • Team 1 — The first team to compare
  • Team 2 — The second team to compare

Both dropdowns list all teams in your system. Once you select two different teams, click the Compare button to view the comparison results. You can also use Show Filters to apply optional filters before comparing. The URL will update to include the team IDs (e.g., /compare/?team1=5&team2=12) so you can bookmark or share the comparison.

Filtering the Comparison

Below the team selectors, click Show Filters to reveal optional filters that narrow the comparison data:

  • Season — Show only data from a specific year
  • Tournament — Limit to a specific tournament
  • Edition — Limit to a specific tournament edition
  • Phase — Filter by game type (pool play, bracket, semifinal, final)
  • Pool — Filter by a specific pool
  • Country — Filter by tournament host country
  • Venue — Filter by the field/venue where games were played
  • Player — Show only games where a specific player participated

When any filter is applied, all sections on the page (head-to-head record, batting and pitching comparisons, charts, and games list) show only data matching those filters. For example, selecting Season 2026 shows only 2026 statistics and games. The team selectors are preserved when you click Clear All to reset the optional filters.

Head-to-Head Record

The first section displays the teams' record against each other in a simple format:

  • Wins — How many games each team has won against the other
  • Draws — How many games ended in a tie

If the teams have never played each other, a message will appear stating this.

Batting Comparison

The Batting Comparison table shows aggregated batting statistics for each team. By default, this covers all games; when filters are applied, only matching games are included. This includes:

  • G — Number of games
  • PA — Total plate appearances
  • H — Total hits
  • HR — Home runs
  • RBI — Runs batted in
  • R — Runs scored
  • BB — Walks
  • K — Strikeouts
  • AVG — Batting average (hits / at-bats)
  • OBP — On-base percentage
  • SLG — Slugging percentage
  • OPS — On-base plus slugging

Pitching Comparison

The Pitching Comparison table shows aggregated pitching statistics for each team. By default, this covers all games; when filters are applied, only matching games are included. This includes:

  • G — Number of games
  • IP — Innings pitched
  • H — Hits allowed
  • R — Runs allowed
  • BB — Walks issued
  • K — Strikeouts
  • HR — Home runs allowed
  • RA — Run average (runs allowed per 9 innings)
  • WHIP — Walks plus hits per inning pitched
  • K/9 — Strikeouts per 9 innings
  • BB/9 — Walks per 9 innings

In both comparison tables, the leading value in each statistic is highlighted in gold to make it easy to see which team has the edge.

Comparison Charts

Below the stat tables, interactive Comparison Charts provide visual summaries of the data. All charts adapt to dark and light mode automatically. Each chart has a help (?) button explaining what it shows. The six charts are:

  • Team Profile Overlay — Radar chart comparing both teams across 6 key metrics (AVG, OBP, SLG, OPS, K/9, WHIP). Values are normalized so the team with the higher value fills the axis.
  • Head-to-Head Stat Duel — Back-to-back horizontal bars showing counting stats (PA, H, HR, RBI, R, BB, K) for both teams side by side.
  • Plate Outcome Breakdown — 100%% stacked bars showing the percentage of plate appearances resulting in hits, walks, strikeouts, or other outs for each team.
  • Stat Advantage — Lollipop chart showing which team has the advantage in each rate stat. Bars extend right (gold) when Team 1 is better, left (blue) when Team 2 is better.
  • Offensive vs Pitching Profile — Concentric donut charts showing batting outcomes (left) and pitching outcomes (right). Outer ring is Team 1, inner ring is Team 2.
  • Pitching Matchup — Grouped horizontal bars comparing all pitching stats side by side. Arrow indicators show whether higher or lower is better for each stat.

Games Between Teams

The Games Between Teams table lists all games played between the two selected teams, ordered by most recent first. For each game, you can see:

  • Date — When the game was played
  • Tournament — Which tournament edition the game was part of
  • Home / Away — The home and away teams with country flags (the winning team and score are shown in bold)
  • Score — The final score
  • Status — The game status (e.g. Final, Live, Scheduled)

If the teams have no games in common, this section will not appear.

17. ROSTERS

The Rosters page shows which players are eligible to play in each tournament edition.

Roster Eligibility page showing tournament roster entries

Use the filters to pick a tournament edition and club. The table shows each player's name, uniform number, position, batting/throwing preference, and eligibility dates.

Like the Games page, you can sort by clicking column headers (and Shift+click for multiple columns).

Additional Filters

Click Show Filters to expand the filter panel. In addition to Tournament Edition and Club, you can search by First Name, Last Name, Nickname, and Position. Type part of a name or position and click Apply Filters to narrow the results. When filters are active and the panel is collapsed, a badge shows the count. Active filter pills appear below the panel; click Clear All Filters to reset.

Player Detail

Click any row in the roster table to open a detail panel for that player. The panel shows the player's full profile (name, photo, nationality, license) and four tabs: Tournament Stats (batting and pitching), Game Log (per-game stats with clickable rows), Biography (bio text, notes, external links), and Sanctions (sanction status, dates, reason). You can sort tables by clicking column headers and page through the results. Press Esc, click the × button, or click outside the panel to close it.

The player avatar shows the uploaded photo if available. If no photo exists, colored initials are displayed (derived from the player's name). A country flag badge appears on the avatar corner when the player has a nationality set.

18. APPEARANCE

Dark and Light Mode

Diamond Core has two visual themes:

  • Dark mode — Dark background with light text. Easier on the eyes in low-light environments (night games, indoor venues).
  • Light mode — White background with dark text. Better for bright environments or personal preference.

Switch between them using the Dark / Light toggle in the top-right corner of any page. Your choice is saved and will be remembered next time you visit.

If you have never set a preference, the system uses your device's setting (if your phone or computer is set to dark mode, Diamond Core will start in dark mode too).

Language

Diamond Core is available in multiple languages: English, Spanish, Italian, and German. Use the language selector in the top navigation bar, next to the search icon, to switch languages. The selector displays flag emojis alongside language codes and is available whether you are signed in or not.

Your language preference is saved in a cookie and will be remembered when you return to the site.

19. FAVORITES / MY TEAM

The Favorites feature lets you mark your favorite teams as a quick reference. Use star buttons (โ˜…) across the app to save and manage your favorite clubs.

Marking Favorites

Look for the star icon (โ˜†) next to club names on standings, rankings, and other team pages. Click the star to add a club to your favorites. The star will turn gold (โ˜…) and fill in, indicating it is now a favorite. Click again to remove it from favorites.

Your Favorites Storage

  • For authenticated users: Favorites are saved in your account and persist across devices and sessions.
  • For guest users: Favorites are stored locally in your browser (no account needed). They will persist when you return to the site, but will be lost if you clear your browser cookies.

Accessing Your Favorites

Star icons appear on standings, rankings, team comparison pages, and other team listing pages. Click any star icon to toggle a favorite. The display updates instantly without requiring a page reload.

20. KEYBOARD SHORTCUTS

When recording plays on the scoring sheet, you can use keyboard shortcuts instead of clicking buttons. This is much faster during live games.

Ctrl+K Open global search
1 Single
2 Double
3 Triple
H Home Run
I Inside-the-Park HR
O Out
K Strikeout
F Fielder's Choice
B Walk (BB)
S Sacrifice Fly
E Error
L Lost Turn
Enter Save the play
Ctrl+Z Undo last event
Ctrl+Shift+Z Redo last undone event
Tip: Keyboard shortcuts only work when you are on the scoring sheet and a cell is ready for input. They do not work on other pages.
Tip: On Mac, use Cmd instead of Ctrl.

21. SESSION TIMEOUT

If your organization has configured a session timeout, your session will automatically end after a period of inactivity. This protects your account from unauthorized access on unattended devices.

How It Works

  • The system tracks your activity (mouse clicks, keyboard input, scrolling).
  • If no activity is detected for the configured timeout period, you will be automatically logged out and redirected to the login page.
  • If a warning period is configured, a countdown dialog will appear before the timeout expires. Click Stay Logged In to reset the timer and continue working.

Multiple Tabs

Activity in any open tab counts as activity for all tabs. If you are active in one tab, the timeout will not trigger in another tab.

Tip: If you see the "Session Expiring" warning, click Stay Logged In to continue. If the timer reaches zero, you will need to log in again.

22. NOTIFICATIONS

Diamond Core keeps you informed about important game events through an in-app notification system. The notification bell in the top bar shows you recent game updates.

The Notification Bell

The notification bell icon is located in the top bar (next to the search icon). A badge number on the bell shows how many unread notifications you have. Click the bell to open the notification panel and view recent updates.

Notification Types

You may receive notifications for these game events:

  • Game Started โ€” When a scheduled game transitions to live scoring.
  • Final Score โ€” When a live game is finalized with a score.
  • Score Update โ€” When the score changes during a live game.

Reading Notifications

Click the notification bell to open the panel. Each notification shows:

  • The event message (e.g., "Team A vs Team B has started!").
  • The date and time the notification was created.

Dismissing Notifications

Click any notification to mark it as read and navigate to the game detail page. Read notifications appear dimmed in the panel.

To dismiss all notifications at once, click the Mark all read link at the top of the notification panel. This clears the badge count and dims all notifications.

Automatic Updates

The notification badge updates automatically every 60 seconds. You do not need to refresh the page to see new notifications.

Notification History

Notifications are stored for up to 7 days. Older notifications are automatically removed from the system.

Tip: Click a notification to jump directly to the game detail page where you can see the full line score, box score, and other game information.

23. SHARING LINKS

Diamond Core makes it easy to share game information, box scores, and standings with other people. You can copy the page link or use your device's native sharing options.

Share Buttons

Pages for game details, box scores, and standings display two buttons:

  • Copy Link โ€” Copies the page URL to your clipboard. A confirmation message shows briefly after copying.
  • Share โ€” Opens your device's native share menu (if available) to share with messaging apps, email, or social media. On devices without native sharing support, this button falls back to copying the link.

Shared Content Information

When you share a game or box score link, the following information is included in the share preview:

  • Team names and matchup details (for example, "Team A vs Team B")
  • Final or current score (when available)
  • Automatic rich previews on social media and messaging apps
Tip: Share links work for any device or browser. The person you share with does not need a Diamond Core account to view the page.

24. PRIVACY & COOKIES

Privacy Policy

Diamond Core is committed to protecting your personal data. Our Privacy Policy explains what data we collect, why we collect it, and how it is used. You can read the full policy at any time by clicking Privacy in the footer of any page.

Cookie Policy

Our Cookie Policy describes the cookies used on the platform. You can read it by clicking Cookies in the footer.

Cookies We Use

  • Essential cookies โ€” Required for the site to function (session, security token, consent record). These cannot be disabled.
  • Functional cookies โ€” Used for language preferences and favorites. You can accept or decline these when the cookie banner appears.

Cookie Consent Banner

When you first visit Diamond Core, a banner appears at the bottom of the screen asking for your cookie preferences. You can choose Accept All to enable all cookies, or Essential Only to use only the cookies required for the site to work. Your choice is remembered and the banner will not appear again.

25. BROADCASTING

Diamond Core provides live broadcast overlays that can be embedded in streaming software like OBS Studio. These overlays update automatically as games are scored.

Live scorebug broadcast overlay

Scorebug Overlay

The scorebug is a broadcast-quality overlay inspired by Sportsnet. It shows the current pitcher with batters faced, the current batter with running batting average (recalculated including the current game), both team names with country flags and scores, a game timer (color-coded by remaining time), and the inning number with outs. The home team row is displayed in gold and the away team text is white for contrast. Outs are shown as red dots. Country flags are displayed next to each team name. If no lineup data is available, the pitcher and batter rows are hidden.

  • URL โ€” /embed/scorebug/<game_id>/
  • Clean mode โ€” Add ?clean=1 for a transparent background (ideal for OBS chroma key).
  • Theme โ€” Add ?theme=light or ?theme=dark (default is dark).
  • Poll interval โ€” Add ?interval=3000 to change the refresh rate in milliseconds (default 5000).
  • Hide timer โ€” Add ?timer=0 to hide the game timer column. This is useful when the timer is incorrect or there are delays that could cause confusion for teams.

Line Score Overlay

The line score overlay displays the inning-by-inning score table with R/H/E totals. It expands automatically for extra innings and shows "X" for unplayed home innings (walk-off games).

  • URL โ€” /embed/linescore/<game_id>/
  • Same query parameters โ€” ?clean=1, ?theme=, and ?interval= work the same as the scorebug.

Batter Info Overlay

The batter info overlay shows the current batting lineup for the team at bat, including uniform numbers and field positions, plus the opposing pitcher. It updates automatically as the game progresses.

  • URL โ€” /embed/batter/<game_id>/
  • Same query parameters โ€” ?clean=1, ?theme=, and ?interval= work the same as the scorebug.

Scoring Box Overlay

The scoring box overlay displays full batting and pitching statistics for both teams in a box score format. Shows AB, R, H, RBI, BB, K for batters and IP, H, R, BB, K for pitchers.

  • URL โ€” /embed/scorebox/<game_id>/
  • Same query parameters โ€” ?clean=1, ?theme=, and ?interval= work the same as the scorebug.

Big Play Overlay

The big play overlay monitors the game for significant scoring plays and displays a popup notification that automatically fades after 5 seconds. Ideal for adding excitement to your stream.

  • URL โ€” /embed/bigplay/<game_id>/
  • Same query parameters โ€” ?clean=1, ?theme=, and ?interval= work the same as the scorebug.

Using with OBS Studio

To add an overlay to your stream, add a Browser Source in OBS and paste the embed URL. Use ?clean=1 for a transparent background so the overlay appears on top of your game video. Set the width and height in OBS to match your desired overlay size.

Administrators can find all embed URLs and API endpoints for a specific game on the Game Detail page, in the "Broadcast Overlays" section. Each URL has a Copy button for easy pasting into OBS.

Ticker Overlay

The ticker overlay displays scrolling announcements at the bottom of the screen. Messages are created in Setup and can be scoped to all games, a specific edition, or a specific game. Each message has a severity level (info, warning, urgent) and a time window.

  • URL โ€” /embed/ticker/
  • Edition scope โ€” Add ?edition=<id> to show only messages for a specific edition.
  • Game scope โ€” Add ?game=<id> to show only messages for a specific game.
  • Same query parameters โ€” ?clean=1, ?theme=, and ?interval= work the same as the scorebug.

Broadcast Config (Admin)

Administrators can enable or disable broadcasts per tournament edition via Setup > Broadcast Config. When broadcasts are disabled for an edition, all overlay endpoints and API calls for games in that edition return a 403 error. An optional delay (in seconds) can be configured to serve data on a time delay.

  • Setup URL โ€” /setup/broadcast/config/
  • Setup home โ€” A "Broadcast Config" card on the Setup home page links directly to this page.
  • Default behavior โ€” If no config exists for an edition, broadcasts are enabled by default.
  • Show Timer โ€” Controls whether the timer column is visible in the scorebug overlay. Changes take effect within seconds (on the next poll cycle). The ?timer=0 and ?timer=1 URL parameters still override this setting.

Ticker Messages (Admin)

Administrators can create ticker messages via Setup > Ticker Messages. Each message has a severity (info, warning, urgent), a time window (active from/to), and a scope (all, edition, or game). Messages are automatically shown on ticker overlays during their active window and hidden when expired.

  • Setup URL โ€” /setup/broadcast/ticker/
  • Setup home โ€” A "Ticker Messages" card on the Setup home page links directly to this page.

Real-Time Updates

When Supabase Realtime is enabled, overlay embeds automatically subscribe to live game channels and update within one second of a scoring change โ€” no manual refresh needed. Polling continues as a fallback if the realtime connection drops.

An SSE (Server-Sent Events) endpoint is also available as an alternative real-time channel for clients that cannot use Supabase Realtime. Connect to /api/v1/broadcast/game/<id>/sse/ to receive game_update events whenever the game state changes.

Broadcast API

JSON endpoints are available for custom integrations. These are public and require no authentication:

  • /api/v1/broadcast/game/<id>/state/ โ€” Full game state
  • /api/v1/broadcast/game/<id>/scorebug/ โ€” Scorebug data
  • /api/v1/broadcast/game/<id>/linescore/ โ€” Line score data
  • /api/v1/broadcast/game/<id>/batter/ โ€” Batter info data
  • /api/v1/broadcast/game/<id>/scorebox/ โ€” Scoring box data
  • /api/v1/broadcast/games/live/ โ€” All live games
  • /api/v1/broadcast/game/<id>/sse/ โ€” Server-Sent Events stream (real-time fallback)
  • /api/v1/broadcast/ticker/ โ€” Active ticker messages (scope with ?edition= or ?game=)
Tip: All endpoints support ETag-based caching. Responses include Cache-Control and ETag headers. Send If-None-Match with the ETag value to receive a 304 response when data hasn't changed.

26. GRAPH ANALYTICS

Graph Analytics is found in the Intelligence section of the sidebar. It provides three interactive network visualizations that reveal relationships between clubs, tournaments, and players. Each tab features a force-directed graph on the left and contextual sidebar cards on the right.

Graph Analytics page with Elo Network visualization options

All three graphs support zoom (scroll wheel), pan (click-and-drag on background), and node dragging. Hover any node or edge for a tooltip with key statistics. Click a node to update the sidebar cards with detailed information. Toggle between dark and light mode โ€” graphs re-render automatically.

Tab 1: Elo Rating Network

The Elo Network answers the question: "Who has this club played, and how did those games affect their rating?" Select a team from the dropdown, choose the ranking scope (Europe or World), optionally filter by season, and click Apply.

Nodes represent clubs. Each node's size reflects the club's current Elo rating โ€” larger nodes have higher ratings. The focus club appears in gold with a white border and glow. Direct opponents are blue. When depth is set to "2nd Degree", opponents-of-opponents appear in muted grey.

Edges (lines between nodes) represent game history between two clubs. Green edges mean the focus club has a winning record against that opponent. Red means a losing record. Grey means an even or mixed record. Thicker edges indicate more meetings between the two clubs.

Sidebar cards: The Selected Team card updates when you click any node and shows the club's rating, games played, win rate, average opponent rating, and โ€” for opponents โ€” the head-to-head record (wins, losses, draws) plus the last 3 game results with Elo point changes. The Legend card explains the color coding. The Recent Changes card shows the focus club's last 5 Elo point changes with opponent name, delta, and running total.

Filters: Scope toggles between Europe and World rankings. Season limits data to a specific ranking season's date range. Tenant restricts data to a specific league or organization. Edition narrows data to a specific tournament edition. Depth controls whether only direct opponents (1st degree) or also their opponents (2nd degree) appear. On any club's Ranking History page, click View Elo Network to jump here with that club pre-selected.

Tab 2: Tournament Ecosystem

The Tournament Ecosystem answers the question: "How are tournaments connected through the teams that participate in them?" Click Apply to generate the graph. Each node is a tournament edition; each edge means two tournaments share one or more clubs.

Nodes represent tournament editions. Each node's size reflects how many teams participated โ€” larger nodes had more teams. Node color indicates the tournament's ranking weight: gold for high-weight tournaments (e.g., SuperCup, weight โ‰ฅ 40), blue for medium-weight (e.g., EuroCup, weight 20โ€“39), and grey for lower-weight tournaments (weight < 20).

Edges connect tournament editions that share clubs. Thicker, brighter (gold) edges indicate many shared teams, while thin grey edges indicate few. The edge tooltip shows the exact number of shared teams.

Sidebar cards: The Selected Tournament card updates when you click a node and shows the tournament name, edition, team count, game count, ranking category, game weight, date range, and its top 5 connections to other tournaments with shared team counts. The Legend card explains node colors (weight tiers) and edge thickness (shared teams). The Strongest Connections card shows the top 5 tournament pairs across the entire graph with the most shared teams.

Filters: Scope filters by All, Europe, or World (based on ranking category assignment). Season limits to editions overlapping a ranking season. Tenant restricts editions to a specific league or organization. Edition focuses on a single tournament edition. Min Shared Teams sets the threshold โ€” only edges with at least this many shared teams appear. Raising this value simplifies the graph by hiding weaker connections.

Tab 3: Player Career Paths

The Player Careers tab answers the question: "Where has this player been, and how does their career path compare to another player's?" Select a player from the dropdown and click Apply. Optionally select a second player in the "Compare with" dropdown to overlay both career paths.

Nodes come in two types. Player nodes are circles โ€” the focus player appears in gold, the comparison player (if any) in purple. Club nodes are rounded rectangles in blue. Each club the player has been rostered at appears once; edges from the player to each club represent roster memberships.

Edges connect players to clubs. Each edge represents a roster membership in a specific tournament edition. Edge labels show the year. The edge tooltip shows the tournament name, edition, playing position, and uniform number. Gold edges belong to the focus player; purple edges belong to the comparison player. When two players share a club, both paths converge on the same club node.

Sidebar cards: The Selected Player card shows the player's name, ID, position, batting side, and throwing hand โ€” updating when you click a player or club node. The Legend card explains node shapes and colors. The Club History card lists every club the player has been rostered at, organized chronologically with tournament and edition details. In compare mode, both players' histories appear in the same card, color-coded gold and purple.

Filters: Tenant restricts roster data to a specific league or organization. Edition narrows the career path to a specific tournament edition. The player search also respects these filters, showing only players with rosters matching the selected tenant or edition.

Tip: All three graphs use 10-minute server-side caching. If you have just added new data (games, roster assignments, ranking entries), wait a few minutes or clear your browser cache to see updated results.

27. MATCHUPS

The Matchups page is found in the Intelligence section of the sidebar and on the landing page. It shows how a batter performs against specific opponent teams and pitchers, and how a pitcher performs against teams and individual hitters. No login is required โ€” the page is public.

vs Teams

Search for a player and see their batting stats broken down by opponent team. The table shows the full batting line: G (games), PA, AB, H, 2B, 3B, HR, RBI, BB, K, AVG, OBP, SLG, and OPS. All rate stats use the standard baseball format (.000).

vs Pitchers

Switch to the vs Pitchers tab to see how the batter performs against each individual pitcher they have faced, including the pitcher's club. This helps coaches identify favorable and unfavorable matchups for lineup decisions. Pitcher names are clickable — click to open the Player Detail modal for that pitcher.

Pitching: vs Teams

Switch to the Pitching: vs Teams tab to see how a pitcher performs against each opponent team. The table shows the full pitching line: G, IP, BF, H, R, BB, K, HR, RA, WHIP, K/9, and BB/9.

Pitching: vs Hitters

The Pitching: vs Hitters tab shows how a pitcher performs against each individual batter they have faced, including the batter's club. This helps coaches decide pitching strategy against specific lineup threats. Hitter names are clickable — click to open the Player Detail modal for that hitter.

Sorting

Click any column header to sort the table. Click again to reverse the sort direction, and a third time to clear it. Hold Ctrl (or Cmd on Mac) and click additional columns to add secondary sort levels โ€” numbered badges show the sort priority.

Matchup Analysis Charts

Below the stats table, three visualizations help coaches make decisions at a glance:

  • OPS by Opponent/Pitcher โ€” Horizontal bar chart color-coded green (strong, .800+), gold (average), or red (weak). Instantly shows which matchups favor the batter.
  • Batting Rates Breakdown โ€” Grouped bars showing AVG, OBP, and SLG side by side. Reveals whether the batter relies on contact, patience, or power against each opponent.
  • Plate Discipline โ€” Bubble chart plotting Walk Rate vs Strikeout Rate. Bottom-right means a disciplined contact hitter; top-left means an aggressive swinger. Bubble size represents plate appearances.

Click the ? icon on each chart card for a quick explanation.

How It Works

Matchup stats are generated from games that have play-by-play data (imported TAS games or natively scored games). The system tracks which pitcher was on the mound for each plate appearance, enabling detailed batter-vs-pitcher breakdowns.

How to Use

  1. Go to Matchups in the sidebar (Intelligence section) or from the landing page.
  2. Type a player name in the search box โ€” suggestions appear as you type. Use the arrow keys to navigate and Enter to select.
  3. Click a name from the dropdown, then click Search (or press Enter).
  4. Use the vs Teams / vs Pitchers tabs to switch between views.

Matchup Splits in Player Profile

Matchup splits are also available on each player's profile page. Open the Player Detail modal from any game or roster page, and click Full Profile in the header to open the standalone profile page. The Matchup Splits tab shows the same vs Teams and vs Pitchers breakdowns.

Every page with a filter panel lets you narrow results using the dropdowns and text fields described below. Click Show Filters to expand the panel, choose your options, then click Apply Filters. The panel collapses and a badge shows how many filters are active. Click Clear All (in the header) to reset.

Games, Lineup, Live Scoring, Results

FilterWhat it does
SeasonShows only games from tournaments that started in the selected year.
TournamentShows only games from the selected tournament (all editions).
EditionShows only games from one specific edition of a tournament.
PhaseShows only games of a certain type (e.g. Round Robin, Medal Round, Placement).
PoolShows only games in the selected pool.
CountryShows only games from tournaments organized in the selected country.
VenueShows only games played at the selected ballpark/field.
GenderShows only games from Men's, Women's, or Mixed tournaments.
ClubShows only games where the selected team plays (home or away).
PlayerShows only games where the selected player appeared in a lineup.
Last / First / NicknameType part of a name to find games where a matching player appeared.
StatusCheck one or more statuses: Scheduled, Live, Final, Canceled, Postponed.

Standings

FilterWhat it does
SeasonShows standings for all tournament editions that started in the selected year.
TournamentShows standings for all editions of the selected tournament.
EditionShows standings for one specific edition.
PhaseCounts only games from the selected phase (e.g. only Round Robin games).
PoolCounts only games from the selected pool.
CountryShows only editions from tournaments organized in the selected country.
GenderShows only editions from Men's, Women's, or Mixed tournaments.
ClubShows only standings tables that include the selected team.
PlayerShows only editions where the selected player was on a roster.
Last / First / NicknameType part of a name to find editions where a matching player was rostered.
Currently PlayingShows only editions that are active today (started but not yet ended).

Statistics (Batting & Pitching)

FilterWhat it does
SeasonShows stats from games played in the selected year's tournaments.
TournamentShows stats from games in the selected tournament (all editions).
EditionShows stats from one specific edition only.
TeamShows stats only for players on the selected team.
GenderShows stats from Men's, Women's, or Mixed tournaments only.
CountryShows stats from tournaments organized in the selected country.
PhaseShows stats from games of the selected type only (e.g. only Medal Round).
Date From / Date ToShows stats from games played within the selected date range.
PlayerShows stats for one specific player.
Last / First / NicknameType part of a name to find matching players in the stats.
Min PA / Min IPOnly shows players with at least this many plate appearances (batting) or innings pitched (pitching).
Home/AwayShows stats from only home games or only away games.

Note: The charts (graphs) on the statistics page always reflect the same filters as the table. If you filter the table by season and country, the charts update too.

Rankings

FilterWhat it does
SeasonShows rankings calculated from games in the selected year only.
CountryShows only teams from the selected country.
ClubShows the ranking row for one specific team.
TenantShows only the ranking card for the selected league/organization.
European / WorldSwitches between the European ranking system and the World ranking system.

Bracket

FilterWhat it does
SeasonNarrows the edition list to tournaments from the selected year.
TournamentNarrows the edition list to the selected tournament.
EditionSelects which tournament edition's bracket to display.
PhaseSelects which elimination phase to display (if the edition has multiple).
GenderNarrows the edition list to Men's, Women's, or Mixed tournaments.
CountryNarrows the edition list to tournaments from the selected country.

Player Directory

FilterWhat it does
SeasonShows only players who were on a roster in the selected year.
TournamentShows only players who were rostered in the selected tournament.
EditionShows only players rostered in the selected edition.
CountryShows only players with the selected nationality.
GenderShows only players from Men's, Women's, or Mixed tournaments.
ClubShows only players who played for the selected team.
PlayerSelects one specific player.
Last / First / NicknameType part of a name to search for matching players.
PositionShows only players whose primary position matches (e.g. Pitcher, Catcher).

Rosters

FilterWhat it does
SeasonShows only roster entries from tournament editions in the selected year.
TournamentShows only roster entries from the selected tournament.
EditionShows roster entries for one specific edition.
GenderShows only rosters from Men's, Women's, or Mixed tournaments.
CountryShows only rosters for clubs from the selected country.
ClubShows the roster for the selected team.
PlayerShows roster entries for one specific player across all editions.
Last / First / NicknameType part of a name to find matching roster entries.
PositionShows only players whose position matches.
Show InactiveWhen checked, also shows players who have been deactivated from the roster.

Compare Teams

FilterWhat it does
Team 1The first team to compare.
Team 2The second team to compare. Shows their head-to-head record and stats.