“Without records, we would have merely a series of exhibitions, meaningless after the game was over … They give permanency to the game which it could never otherwise enjoy.” – John Heydler, NL Secretary, 1909; NL President 1918-1934
Readers of my blog might know that starting last year I was fortunate enough to land a part-time job working as a “stringer” or Datacaster for MLB.com and its Gameday system. Last season I worked at Kauffman Stadium in Kansas City and this year at Coors Field in Denver. But for those who aren’t familiar either with what a stringer is or the Gameday system itself, this week I thought I’d take a break from graphs and tables and take you behind the scenes in order to share what a typical day in the life of a stringer is like.
MLB Advanced Media’s Data
But before running down what’s involved with scoring a game, a little background is in order.
MLB.com—actually Major League Baseball Advanced Media or MLBAM—employs a “stringer” (the term borrowed from the newspaper industry where stringer referred to a freelance journalist paid for each published piece of work) who uses a laptop and proprietary software to enter pitch-by-pitch data for every game from a vantage point in the press box. Yes, you can actually get paid to watch baseball games—a fact that to me confirms Providence superintends the universe. In most ballparks the stringer position is shared by three individuals, each of whom score between 25 and 30 games a season.
The data entered by the stringer is continuously transmitted during the game over a secure Internet connection, usually using a high speed connection in the press box to the MLBAM data center in New Jersey, although last season we used dial-up at Kauffman Stadium. The servers in the data center then manipulate the data for each of the possibly fifteen simultaneous games and make it available to each user logged into Gameday (a Macromedia Flash application), which requests data every six seconds. At any point in time more than 600,000 users may be using Gameday, which many of you may be familiar with.
During the game Gameday receives the real-time pitch-by-pitch updates in addition to pitch locations, spray charts for hits and outs by team, situation specific splits, bench and bullpen updates, and baserunner and fielder statistics. MLBAM makes the in-game data available to various subscribers, including Nokia, SportsTicker, and ESPN’s Baseball Tonight.
But once the game is over, that’s not the end of the story. The raw data that is captured is then stored in a massive database and made available online in the form of detailed career stats, splits, and spray charts which are accessed by hundreds of millions of visitors to MLB.com each season. This data is also shared with the clubs themselves, as two-thirds of the teams are delivered pitch-by-pitch data each day, in addition to ad hoc queries that are performed on request by MLBAM staff on topics that include bullpen usage and performance, spray charts used for defensive positioning, park-specific performance, and milestone tracking. The data is also used in preparation for arbitration cases and salary negotiations.
And even though the system as it stands today is impressive, MLBAM plans to expand its offerrings in the near term to include pitch-by-pitch data for the 2005 Arizona Fall League as well as all of Triple-A in 2006, as Cory Schwartz of MLBAM mentioned at The Society for American Baseball Research (SABR) convention in Toronto earlier this month. Also look for the integration of minor league statistics into the career player stats, which will allow for a start-to-finish view of a player’s career. In the long term, MLBAM is also developing new technology to capture defensive and baserunning data, a topic that was discussed briefly near the end of The Numbers Game by Alan Schwarz.
A Day in the Life
So what’s a typical day look like from the perspective of a stringer?
Well, on game day I typically arrive at the ballpark about an hour and a half before game time. All of the stringers are given media credentials and parking passes, so at Coors Field I enter through the media entrance behind right field and make my way through the bowels of the stadium under the stands, past the Rockies clubhouse and umpire room, to an elevator that leads up to the lower press box area. When I arrive there typically isn’t much happening other than batting practice on the field, a few beat reporters working on stories and ushers shooting the breeze.
After I collect the MLB.com laptop and printer from a storage cabinet, I make my way down to my seat in the first row, which is right between the Rockies PR staff and the Rocky Mountain News seat usually occupied by columnist Tracy Ringolsby. After setting up the laptop and connecting to the network, I retrieve the game notes published by each team and the starting lineups and rosters published by the home team’s PR staff, both of which are printed and placed on a counter in the back of the press box.
Using the client, I then retrieve the game file that’s already been prepared by the capable MLBAM staff headed up by Hank Widmer and Matt Bartlett. The first task is to make sure the rosters for tonight’s game as listed in the file match what the teams have published. Typically changes such as players being placed on the disabled list or players being released are noted in the game notes. If not, or if uniform numbers don’t match (last year in a Royals/Orioles game I discovered that Jason Grimsely had traded numbers with a teammate shortly before gametime; in another instance Lance Niekro had to switch numbers since his was being retired by the Giants in honor of Gaylord Perry) or haven’t yet been assigned, there is usually a PR person from each team somewhere in the press box to ask. If the roster provided by MLBAM isn’t correct I can get on AOL Instant Messenger and alert the game-night support person assigned to my game. These folks are a great help and are always available to clarify scoring codes and answer any questions that come up.
Once the rosters have been verified, I can enter the starting lineups, umpires, official scorer, and weather. I also keep a paper scoresheet and so I spend a few minutes filling it out as well. With that complete I notify the support person that I’m ready to go. When I get the okay, I use the client to connect to the MLBAM network which sends the initial file and readies the Gameday system.
All of this activity is typically complete about 50 minutes before game time. My next responsibility is to use the client to indicate when both starting pitchers are warming up. Since that doesn’t usually occur until about 20 minutes before game time, I take the opportunity to eat lunch or dinner in the press box cafeteria while reading over the game notes or watching a different game on TV. It’s also the place where I get the chance to rub elbows with beat writers, broadcasters, scouts, and even an occasional general manager from the visiting team.
About 20 minutes before the game I signal the warmups and then stretch one last time before the game starts, since once it begins there usually isn’t time to take any breaks. When I return, I’m ready to go from my vantage point on the first row.
With the first pitch, I enter the offical starting time and begin entering pitch location, pitch type (each pitch outcome using a different code), and about 40 different play codes into the client. The codes and the client itself were born out of the Project Scoresheet effort that began in the mid-1980s and effectively promoted by Bill James and John Dewan. It is also the scoring system reflected in the event files you can download from Retrosheet. The interesting aspect of the scoring system is that each play is broken down into pre-, primary-, and post-event phases that more accuratey reflect when an event happened than the traditional scoring system.
To illustrate the kinds of codes a stringer uses consider the following scenario: The batter singles to center on a ground ball and is thrown out by the center fielder trying to stretch the single into a double. The code for this play would be:
S8 = single to center
G = on the ground
BX2 = batter out advancing to second
(84) = thrown out by the centerfielder with a putout for the second baseman
As you can imagine the number of code combinations is large (in excess of 5,600) but the client software actually assists in entering the codes by not allowing certain codes in specific situations and by displaying a textual description of the play as the codes are entered. Even so there are lots of occasions where the coding can get a bit ugly. For example, here were the codes I entered during the top of the third inning of the May 14th game of this year.
During innings like the one above, the stringer will also need to wait for the official scorer to make a decision regarding errors before entering the correct code. This is where keeping the paper scoresheet is invaluable since, I’ll often have to record a few pitches or even a couple plate appearances on paper before being able to catch up once the official scorer has made his decision and broadcasts it to the entire press box over the loudspeaker.
Where this came in most handy for me was a play in last May 29th’s game between the Twins and Royals. With one out in the bottom of the 5th inning and the bases loaded (Desi Relaford on third, Angel Berroa on second, and Carlos Beltran on first) Mike Sweeney came to the plate. Sweeney hit a pop fly behind first base. First baseman Doug Mientkiewicz, second baseman Michael Cuddyer and right fielder Jacque Jones all converged while the first base umpire Jeff Kellogg signaled an infield fly. The ball hit Mientkiewicz’s glove with his back to the infield and it fell to the ground. The first base umpire signaled that the batter was still out because of the infield fly. Meanwhile Beltran on first had gone half way to second and seeing the ball drop continued to second. Berroa on second hadn’t moved and so Beltran and Berroa were then standing on second. Relaford on third sped toward home as soon as the ball hit the ground.
Mientkiewicz picked up the ball, whirls, and threw it in the direction of first base, which of course no one was covering since they’re all out in the outfield and the pitcher is standing on the mound. The throw however, hit Sweeney square in the back as he stood near first base watching Relaford score. Sweeney falls to the ground in pain as the ball rolled over towards the Royals dugout. By this time, Berroa was waving Beltran to get back to first and he started heading that way. Catcher Henry Blanco retrieved the ball by the Royals dugout and threw it to first where Jones alertly catches the ball and just beat a sliding Beltran, tagging him and touching the base for the second out of the play and the third of the inning. The home plate umpire signaled the press box to indicate that Relaford’s run counted and the Twins trotted off the field.
Immediately, the press box erupted in a frenzy of chatter, confused looks, and media trying to find their rule books to divine the correct scoring of the play. Meanwhile, the game continued on and I couldn’t keep entering pitch by pitch data until I entered something for that play. So I scored on paper. By the end of the next half inning there was a tentative decision by the official scorer, which I entered so that I ccould catch up and continue to score. However, in the subsequent innings the official scorer changed the decision several times, so I used the client software to back-edit the play. Ultimately, the decision was changed yet again with Mientkiewicz getting credited with an error, Sweeney not getting an RBI or sacrifice fly, and the Twins not getting a double play.
Thankfully, most innings aren’t like these; during the game I also record all pinch hitters and pitching changes along with injuries, delays, attendance, and ejections, all of which are usually announced by the home team’s PR staff.
When the game is over the client is usually good about determing the winning and losing pitchers along with saves, blown saves, and holds, although in some cases I need to override the software’s best guess since the official scorer has the final say.
As reporters rush out of the pressbox to get the quotes needed to finish and file their stories, the post-game responsibilities for a stringer include printing out the box score, play-by-play account, and updated team stats, which are then copied and distributed along with the post-game notes by the home team’s PR staff. The official scorer then completes his paper copy of the box score and then he and I double check them to ensure that they match. If there are any discrepencies, they must be resolved before faxing the official scorer’s sheets to the Elias Sports Buerau and sending the final data file from the client to the data center in New Jersey, where it is also double and triple checked before being integrated with the season and career stats.
If everything checks out, I can send my file and wait a few minutes for the support person to verify that the data has been saved. All of this usually takes about 45 minutes. When the okay is given, I can pack up the laptop, store it in the cabinet, and make my way out through the now empty and usually dark stadium to the parking lot. Another game safely recorded for posterity.
I’m often asked, “How did you get that sweet gig?” For me, this was another great benefit of being a member of SABR. Someone who works for MLBAM posted a “help wanted” message on the SABR listserv (they also post on Monster.com) in the winter of 2003-2004 mentioning that Kansas City needed a third stringer. After a few phone interviews and a rules/scoring quiz I landed the job and was luckily able to keep it when we moved to Colorado last spring. As my wife jokingly remarked, “All your training [by day I'm a software developer] and experience has culminated in this”—and I’ve loved every minute of it.
References & Resources
Major Leage Baseball beats rivals with real-time stats – a TIBCO success story
MLB.com – Running Major League Baseball’s All-in-One Website – Web Site Expert
MLB.com Stats and Data Capture – a presentation given by Cory Schawrtz at SABR 35, 8/4/2005