• 🇺🇸 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, edition, phase (e.g. Round Robin, Medal Round), teams (with country flags), and game status.

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.

Game detail page showing final score and recap

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.

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.

If a game has scoring data, a Show Box Score button lets you expand a compact box score right on the card — showing batting stats (AB, R, H, HR, BB, RBI) and pitching stats (IP, BF, H, R, BB, K) for both teams. Click the button again to collapse it. A View Full Box Score link takes you to the detailed box score page.

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.
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
  • Team Stats — Team-level aggregates per tournament edition. Each team shows its country flag. Click any team name to view its Global Rankings detail page.
  • Tournament Stats — Tournament-wide totals across all teams. Each tournament shows its host country flag.

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)
  • Advanced — Advanced metrics: ISO (isolated power), BABIP (batting average on balls in play), wOBA (weighted on-base average)
  • Career Leaders — All-time leaders aggregated across all tournaments
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.

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.

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, 7-inning base), WHIP, H/9, BB/9, K/9, K/BB
  • Advanced — Advanced metrics: 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 Global 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 points (descending), then head-to-head record among tied teams, then run differential. This is the "Head-to-head, then run differential" tiebreaker rule.

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), run differential (among tied teams), runs allowed (overall), runs allowed (among tied teams), winning percentage, runs scored (overall), 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.

When the WBC rule is active, the pool standings table shows a PCT column (winning percentage, shown as a three-decimal value like .667) instead of the Pts column.

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).

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.

Filters and Phases

Click Show Filters to expand the filter panel. You can narrow standings by tournament, edition, 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.

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.

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. GLOBAL RANKINGS

Global 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.

Global Rankings page with Elo-based team ratings

Viewing Rankings

Click Rankings in the sidebar or the Global Rankings card on the home page. The leaderboard shows all ranked teams ordered by their current Elo points.

Scope

Use the scope tabs to switch between Europe and World rankings. Europe rankings include only European tournaments. World rankings include all tournaments worldwide.

Searching for a Club

Use the Club Search filter to find a specific team by name. Type part of the club name and click Apply Filters to filter the leaderboard. Active filter pills appear below the panel; click Clear All Filters to reset.

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.

For bracket tournaments (single or double elimination), placements are generated automatically when the final match is completed. For other formats, administrators enter 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.

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.

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 Europe and World history. Click Back to Rankings to return to the leaderboard.

16. 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 includes a collapsible filter panel. Click Show Filters to expand it. You can filter by:

  • Search — Enter text to search by first name, last name, nickname, or player ID.
  • Position — Select a position from the dropdown to show only players at that position.
  • Country — Select a country to show only players of that nationality.

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. 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.

15. 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. The URL will update to include the team IDs (e.g., /compare/?team1=5&team2=12) so you can bookmark or share the comparison.

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 across all games. 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 across all games. 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.