Caught Looking?
This project was born of my love for the numbers behind the game of baseball. I wanted to create a tool that would allow me to follow the game in real-time and see the data that goes into making the game happen. That sounds romantic, but it was mostly so I could keep my scorecard in sync with the game.
I hope you can find some use for it as well, even if it's just watching the game unfold as it happens. Please remember that this is a fan project and not affiliated with the MLB or any other professional sports organization. The data is provided by the MLB Stats API, and is subject to their terms of use and reflects the decisions made by the official game scorer, some of which we may not agree with.
Please feel free to reach out to me with any feedback, questions, or suggestions. And as always, go Jays.
If you've ever kept score during a baseball game, this should look at least a little familiar. Our layout follows a traditional format, heavily inspired by the beautiful work of the folks at Numbers Game, particularly their #22 Scorebook, which started using recently and fell in love with very quickly.
Each game's scorecard view provides a detailed inning-by-inning breakdown, where each slot in the batting order gets a row and each inning gets a column. The visiting team is laid out in the top section with the home team at the bottom. Within each is a batter's table, a pitcher's table, and a diamond diagram showing defensive assignments. In the footer of each table are inning or pitcher totals, while supplemental game details are displayed in the section headers, just like in a traditional scorebook.
The batting order
Each batter's row shows the starting player's name, jersey number, and position. Next to the player's name is their handedness and slash line, which updates during games.
Substitute players like pinch-runners, pinch-hitters, and defensive replacements are shown in a secondary row on a darker background, with a footnote below.
Position changes are shown with a slashed line (showing only the first and last position a player plays in a game for now).


The batter's box
In an almost direct rip-off of Numbers Game's #22 Scorebook, each at-bat cell is laid out with the following information:
- At-bat result in the upper left box, using standard shorthand notation.
- Pitch sequence on the right, using pitch number to indicate balls in the left-most column and strikes in the right two columns. Foul-offs are indicated with a box. An X means the ball was put into play.
- RBIs as dots in the lower left.
- Outs as circled numbers in the lower right. These are shown in the at-bat cell for the player who made the out, not who was at-bat when the out occurred.
- Basepath movements are indicated in the diamond diagram, with the at-bat result that allowed the movement labeled on the edge. Solid bases indicate where a player reached in their at-bat, while outlined bases indicate they advanced there in a subsequent at-bat. An orange base indicates a player was out on the basepaths.
- Hit locations as an orange line.
- Substitutions as cell borders. A top border indicates a pitching change, a left-border a pinch-hitter, a right-border a pinch-runner, and a left or right border a defensive replacement.
Hover over any at-bat cell to see a full description. Click an at-bat cell to see more details, like the score, the count, and pitch types and locations.


Inning totals
Total runs, hits, errors, and men left on base are displayed in the footer row of each inning, laid out in quadrants (just like I do in my scorebook!).


Batter stats
Each batter's in-game stats are shown in the last few columns of their table. Total at-bats (AB), runs (R), hits (H), RBIs (RBI), walks (BB) and strikeouts (SO) are shown. Substitute players stats are shown on a darker background.
Totals update live during in-progress games.


Pitcher stats
Each pitcher's in-game stats are shown in the pitcher's table at the bottom of each scorecard section. Innings pitched (IP), total pitches/strikes (P(S)), batters faced (BF), hits allowed (H), runs allowed (R), earned runs allowed (ER), walks (BB) and strikeouts (SO) are shown, along with pitcher handedness, ERA, jersey number, and if they are credited with a win, loss, hold, or save.
Totals update live during in-progress games.


Offensive shorthand
- 1B - Single
- 2B - Double
- 3B - Triple
- HR - Home Run
- K - Strikeout
- BB - Walk
- IBB - Intentional Walk
- SAC - Sacrifice Fly or Bunt
- FC - Fielders Choice
- K - Strikeout swinging
- K- Strikeout looking
- HBP - Hit by Pitch
- RBI - Runs Batted In
- SB - Stolen Base
Defensive shorthand
- WP - Wild Pitch
- PB - Passed Ball
- E# - Error
- CS - Caught Stealing
- F# - Fly Out
- L# - Lineout
- P# - Pop Out
- G# - Ground Out
- DP - Double Play
- TP - Triple Play
- BF - Batters Faced
- ERA - Earned Run Average
- IP - Innings Pitched
Tap or click any player's at-bat cell to open the at-bat card. Assuming it's working properly, it displays the score, number of outs, and bases before this at-bat resolved itself. It also includes all details of the at-bat, like the play-by-play description, detailed pitch sequence and location, and the player's subsequent basepath movements.
Game status
The game status section displays the current inning, number of outs, and which bases are occupied up until the selected at-bat resolves itself. It also includes the current score.
Below the player's name is their performance so far this game, the result of their last plate appearance, and their slash line for the season. In the first column below that is displayed the play-by-play description for this at-bat, when complete, as well as the player's subsequent movements around the basepaths.


Navigation
Use the next and previous buttons to navigate between at-bats. Use the "last at-bat" button to jump to the most recent at-bat.
On mobile devices, swipe left or right to navigate between at-bats. Pull down on the navigation bar to close. On desktop, use the arrow keys to navigate between at-bats, pressing "shift" + the right arrow key to jump to the most recent at-bat.


When a game is in progress, you can enable live updates to automatically refresh the scorecard:
- WiFi Icon: The status icon in the control panel shows whether live updates are active (green animated WiFi) or disabled (gray WiFi Off).
- Update Live Toggle: Turn live updates on or off. This is only available for games that are currently in progress.
- Delay Settings: You can set a delay from 5 seconds up to 10 minutes. This is useful if you're watching the game on TV and want to sync the updates with your broadcast.
- Automatic Shutoff: Live updates automatically turn off when the game ends to save resources.
Don't want to see the final score? Use the Spoilers toggle to hide scores and other sensitive information:
- Off: When spoilers are hidden, inning-by-inning scores, totals, hits, and errors are not displayed.
- On: All game information is visible, including scores, player statistics, and detailed scorecard data.
- Your preference is saved to your browser and will be remembered for future visits.
Before the game starts, get all the information you need:
- Starting pitchers for both teams
- Lineups and batting orders
- Starting defensive positions
- Starting pitchers' season statistics
- Game time and location
- Expected weather conditions
View detailed player information and statistics:
- Batters: See all players who have appeared at the plate, including positions played, at-bats, runs, hits, RBIs, walks, strikeouts, and batting average.
- Pitchers: View pitching statistics including innings pitched, hits allowed, runs, earned runs, walks, and strikeouts.
- Season Stats: Current season statistics are displayed alongside game performance.
All game data is sourced directly from the official MLB Stats API, providing you with the most accurate and up-to-date information available. Data includes:
- Real-time play-by-play information
- Detailed box scores and statistics
- Player rosters and season statistics
- Game schedules and start times
- Stadium and weather information
- Umpire and manager assignments
- Uniform and equipment details
- Keyboard Navigation: Use tab navigation to move between controls on the page.
- Mobile Friendly: The interface is fully responsive and optimized for mobile devices, tablets, and desktop screens.
- Dark Mode: Toggle between light and dark themes using the theme toggle in the header.
- Score Bug: Keep an eye on the floating score bug in the bottom right corner. Click on it to jump to the latest at-bat in the scorecard.
- Multiple Games: You can open multiple games in separate tabs to follow different matchups simultaneously.
- Connection Indicator: The status icon shows your connection status and whether updates are being received.
If you encounter any issues or have questions about using Baseball Scorecard, please refer to the README file in the project repository or reach out through the project's support channels.