Chadwick Documentation Release 0.9.0

T. L. Turocy

Jan 04, 2021

Contents

1 Introduction 1

2 Command-line tools 3

i ii CHAPTER 1

Introduction

Chadwick is a collection of command-line utility programs for extracting information from play-by-play and boxscore files in the DiamondWare format, as used by Retrosheet (http://www.retrosheet.org).

1.1 Author

Chadwick is written, maintained, and Copyright 2002-2020 by Dr T. L. Turocy (ted.turocy gmail com) at Chadwick Baseball Bureau (http://www.chadwick-bureau.com).

1.2 License

Chadwick is licensed under the terms of the GNU General Public License. If the GPL doesn’t meet your needs, contact the author for other licensing possibilities.

1.3 Development

The Chadwick source code is managed using git, at https://github.com/chadwickbureau/chadwick. Bugs in Chadwick should be reported to the issue tracker on github at https://github.com/chadwickbureau/chadwick/ issues. Please be as specific as possible in reporting a bug, including the version of Chadwick you are using, the operating system(s) you’re using, and a detailed list of steps to reproduce the issue.

1.4 Community

To get the latest news on the Chadwick tool suite, you can: • Subscribe to the Chadwick Baseball Bureau’s twitter feed (@chadwickbureau);

1 Chadwick Documentation, Release 0.9.0

• Like the Chadwick Baseball Bureau on Facebook; • Read the Chadwick Baseball Bureau’s blog at (http://www.chadwick-bureau.com/blog/)

1.5 Acknowledgments

The author thanks Sports Reference, LLC, the Society for American Baseball Research, and XMLTeam, Inc. for support in the development of portions of Chadwick. The author also thanks David Smith of Retrosheet for his always-gracious assistance and guidance.

2 Chapter 1. Introduction CHAPTER 2

Command-line tools

Chadwick provides the following command-line programs for extracting information from Retrosheet play-by-play event files: • cwevent, an expanded event descriptor, which replaces and extends the DiamondWare program BEVENT. • cwgame, a game information extractor, which replaces and extends the DiamondWare program BGAME. • cwbox, a boxscore generator, which replaces and extends the DiamondWare program BOX. • cwdaily, which produces day-by-day player statistical totals. This program is unique to Chadwick. • cwsub, which extracts information about in-game player substitutions. This program is unique to Chadwick. • cwcomment, which extracts comment fields from event files. This program is unique to Chadwick. This documentation is intended to be read in conjunction with the materials provided by Retrosheet (see https://www. retrosheet.org/game.htm) summarizing the contents of play-by-play files and operation of the DiamondWare versions of these tools. The Chadwick documentation focuses on filling in gaps in the Retrosheet documentation, and on detailing Chadwick-specific extensions the toolset.

2.1 Command-line options

Each of the command-line tools shares a common set of options controlling their behavior. These are detailed in the following table.

3 Chadwick Documentation, Release 0.9.0

Table 1: Common command-line options and their effects Switch Description -a Generate ASCII comma-delimited files (default) -d Print a list of the available fields and descriptions (for use with -f) -e mmdd The latest date to process (inclusive) -f flist List of fields to output. The default list can be viewed with -h; the list of available fields can be viewed with -d -ft Generate FORTRAN format files. -h Prints description and usage information for the tool. -i *gameid* Only process the game with ID gameid -n If in ASCII mode (the default), the first row of the output is a comma-separated list of column headers. -s mmdd The earliest date to process (inclusive) -y Specifies the year to use (four digits)

2.2 Documentation of individual tools

2.2.1 cwevent: Expanded event descriptor

cwevent is a command-line tool which extracts detailed information about individual events (plays) in the data file. These are grouped into two categories. There are 97 fields which are compatible with the Retrosheet BEVENT event descriptor tool. These are specified using the -f command-line flag. In addition, cwevent offers a number “extended” fields which expand upon or give more detailed information not easily accessed via the standard fields. These are are specified using the -x command-line flag.

Note: cwevent guarantees that the standard field numbers will match those used by BEVENT. Standard field numbers therefore can be treated as stable, and it should be safe to write scripts referring to them. Extended fields are provisional, and extended fields may be added or withdrawn in future versions. Extended fields are assigned numbers to maintain a logical cohesion, with related fields being grouped. Therefore, extended field numbers are not promised to be stable. It is recommended to use the field labels instead in writing scripts to process the output of cwevent extended fields.

Table 2: cwevent standard field numbers Field num- Description Header ber 0 Game ID GAME_ID 1 Visiting team AWAY_TEAM_ID 2 Inning INN_CT 3 Batting team BAT_HOME_ID 4 Outs OUTS_CT 5 Balls BALLS_CT 6 Strikes STRIKES_CT 7 Pitch sequence PITCH_SEQ_TX 8 Visitor score AWAY_SCORE_CT 9 Home score HOME_SCORE_CT 10 Batter BAT_ID 11 Batter hand BAT_HAND_CD Continued on next page

4 Chapter 2. Command-line tools Chadwick Documentation, Release 0.9.0

Table 2 – continued from previous page Field num- Description Header ber 12 Result batter RESP_BAT_ID 13 Result batter hand RESP_BAT_HAND_CD 14 Pitcher PIT_ID 15 Pitcher hand PIT_HAND_CD 16 Result pitcher RESP_PIT_ID 17 Result pitcher hand RESP_PIT_HAND_CD 18 Catcher POS2_FLD_ID 19 First baseman POS3_FLD_ID 20 Second baseman POS4_FLD_ID 21 Third baseman POS5_FLD_ID 22 Shortstop POS6_FLD_ID 23 Left fielder POS7_FLD_ID 24 Center fielder POS8_FLD_ID 25 Right fielder POS9_FLD_ID 26 Runner on first BASE1_RUN_ID 27 Runner on second BASE2_RUN_ID 28 Runner on third BASE3_RUN_ID 29 Event text EVENT_TX 30 Leadoff flag LEADOFF_FL 31 Pinch-hit flag PH_FL 32 Defensive position BAT_FLD_CD 33 Lineup position BAT_LINEUP_ID 34 Event type EVENT_CD 35 Batter event flag BAT_EVENT_FL 36 Official time at bat flag AB_FL 37 Hit value H_CD 38 Sacrifice hit flag SH_FL 39 Sacrifice fly flag SF_FL 40 Outs on play EVENT_OUTS_CT 41 Double play flag DP_FL 42 flag TP_FL 43 RBI on play RBI_CT 44 Wild pitch flag WP_FL 45 Passed ball flag PB_FL 46 Fielded by FLD_CD 47 Batted ball type BATTEDBALL_CD 48 Bunt flag BUNT_FL 49 Foul flag FOUL_FL 50 Hit location BATTEDBALL_LOC_TX 51 Number of errors ERR_CT 52 1st error player ERR1_FLD_CD 53 1st error type ERR1_CD 54 2nd error player ERR2_FLD_CD 55 2nd error type ERR2_CD 56 3rd error player ERR3_FLD_CD 57 3rd error type ERR3_CD 58 Batter destination BAT_DEST_ID 59 Runner on first destination RUN1_DEST_ID Continued on next page

2.2. Documentation of individual tools 5 Chadwick Documentation, Release 0.9.0

Table 2 – continued from previous page Field num- Description Header ber 60 Runner on second destination RUN2_DEST_ID 61 Runner on third destination RUN3_DEST_ID 62 Play on batter BAT_PLAY_TX 63 Play on runner on first RUN1_PLAY_TX 64 Play on runner on second RUN2_PLAY_TX 65 Play on runner on third RUN3_PLAY_TX 66 Stolen base for runner on first RUN1_SB_FL 67 Stolen base for runner on second RUN2_SB_FL 68 Stolen base for runner on third RUN3_SB_FL 69 Caught stealing for runner on first RUN1_CS_FL 70 Caught stealing for runner on second RUN2_CS_FL 71 Caught stealing for runner on third RUN3_CS_FL 72 Pickoff of runner on first RUN1_PK_FL 73 Pickoff of runner on second RUN2_PK_FL 74 Pickoff of runner on third RUN3_PK_FL 75 Pitcher charged with runner on first RUN1_RESP_PIT_ID 76 Pitcher charged with runner on second RUN2_RESP_PIT_ID 77 Pitcher charged with runner on third RUN3_RESP_PIT_ID 78 New game flag GAME_NEW_FL 79 End game flag GAME_END_FL 80 Pinch-runner on first PR_RUN1_FL 81 Pinch-runner on second PR_RUN2_FL 82 Pinch-runner on third PR_RUN3_FL 83 Runner removed for pinch-runner on first REMOVED_FOR_PR_RUN1_ID 84 Runner removed for pinch-runner on second REMOVED_FOR_PR_RUN2_ID 85 Runner removed for pinch-runner on third REMOVED_FOR_PR_RUN3_ID 86 Batter removed for pinch-hitter REMOVED_FOR_PH_BAT_ID 87 Position of batter removed for pinch-hitter REMOVED_FOR_PH_BAT_FLD_CD 88 Fielder with first putout PO1_FLD_CD 89 Fielder with second putout PO2_FLD_CD 90 Fielder with third putout PO3_FLD_CD 91 Fielder with first assist ASS1_FLD_CD 92 Fielder with second assist ASS2_FLD_CD 93 Fielder with third assist ASS3_FLD_CD 94 Fielder with fourth assist ASS4_FLD_CD 95 Fielder with fifth assist ASS5_FLD_CD 96 Event number EVENT_ID

Table 3: cwevent extended field numbers Field num- Description Header ber 0 home team id HOME_TEAM_ID 1 batting team id BAT_TEAM_ID 2 fielding team id FLD_TEAM_ID 3 half inning (differs from batting team if home team bats first) BAT_LAST_ID 4 start of half inning flag INN_NEW_FL 5 end of half inning flag INN_END_FL Continued on next page

6 Chapter 2. Command-line tools Chadwick Documentation, Release 0.9.0

Table 3 – continued from previous page Field num- Description Header ber 6 score for team on offense START_BAT_SCORE_CT 7 score for team on defense START_FLD_SCORE_CT 8 runs scored in this half inning INN_RUNS_CT 9 number of plate appearances in game for team on offense GAME_PA_CT 10 number of plate appearances in inning for team on offense INN_PA_CT 11 start of plate appearance flag PA_NEW_FL 12 truncated plate appearance flag PA_TRUNC_FL 13 base state at start of play START_BASES_CD 14 base state at end of play END_BASES_CD 15 batter is starter flag BAT_START_FL 16 result batter is starter flag RESP_BAT_START_FL 17 ID of the batter on deck BAT_ON_DECK_ID 18 ID of the batter in the hold BAT_IN_HOLD_ID 19 pitcher is starter flag PIT_START_FL 20 result pitcher is starter flag RESP_PIT_START_FL 21 defensive position of runner on first RUN1_FLD_CD 22 lineup position of runner on first RUN1_LINEUP_CD 23 event number on which runner on first reached base RUN1_ORIGIN_EVENT_ID 24 defensive position of runner on second RUN2_FLD_CD 25 lineup position of runner on second RUN2_LINEUP_CD 26 event number on which runner on second reached base RUN2_ORIGIN_EVENT_ID 27 defensive position of runner on third RUN3_FLD_CD 28 lineup position of runner on third RUN3_LINEUP_CD 29 event number on which runner on third reached base RUN3_ORIGIN_EVENT_ID 30 responsible catcher for runner on first RUN1_RESP_CAT_ID 31 responsible catcher for runner on second RUN2_RESP_CAT_ID 32 responsible catcher for runner on third RUN3_RESP_CAT_ID 33 number of balls in plate appearance PA_BALL_CT 34 number of called balls in plate appearance PA_CALLED_BALL_CT 35 number of intentional balls in plate appearance PA_INTENT_BALL_CT 36 number of pitchouts in plate appearance PA_PITCHOUT_BALL_CT 37 number of pitches hitting batter in plate appearance PA_HITBATTER_BALL_CT 38 number of other balls in plate appearance PA_OTHER_BALL_CT 39 number of strikes in plate appearance PA_STRIKE_CT 40 number of called strikes in plate appearance PA_CALLED_STRIKE_CT 41 number of swinging strikes in plate appearance PA_SWINGMISS_STRIKE_CT 42 number of foul balls in plate appearance PA_FOUL_STRIKE_CT 43 number of balls in play in plate appearance PA_INPLAY_STRIKE_CT 44 number of other strikes in plate appearance PA_OTHER_STRIKE_CT 45 number of runs on play EVENT_RUNS_CT 46 id of player fielding batted ball FLD_ID 47 force play at second flag BASE2_FORCE_FL 48 force play at third flag BASE3_FORCE_FL 49 force play at home flag BASE4_FORCE_FL 50 batter safe on error flag BAT_SAFE_ERR_FL 51 fate of batter (base ultimately advanced to) BAT_FATE_ID 52 fate of runner on first RUN1_FATE_ID 53 fate of runner on second RUN2_FATE_ID Continued on next page

2.2. Documentation of individual tools 7 Chadwick Documentation, Release 0.9.0

Table 3 – continued from previous page Field num- Description Header ber 54 fate of runner on third RUN3_FATE_ID 55 runs scored in half inning after this event FATE_RUNS_CT 56 fielder with sixth assist ASS6_FLD_CD 57 fielder with seventh assist ASS7_FLD_CD 58 fielder with eighth assist ASS8_FLD_CD 59 fielder with ninth assist ASS9_FLD_CD 60 fielder with tenth assist ASS10_FLD_CD 61 unknown fielding credit flag UNKNOWN_OUT_EXC_FL 62 uncertain play flag UNCERTAIN_PLAY_EXC_FL

Result batters and pitchers (fields 10-17)

In most cases, the pitcher and batter charged or credited with the event (when a batter event) are the ones in the game when the event occurs. However, Rules 10.17 and 10.18 have special clauses discussing how to charge walks to pitchers when a relief pitcher enters in the middle of the plate appearance, and how to charge to batters when a pinch hitter enters in the middle of the plate appearance. The batter and pitcher fields always give the identity of the batter and pitcher in the game at the time of the event; the result batter and result pitcher give the batter and pitcher credited or charged with the event. There is one known bug in the Retrosheet-provided tools regarding the result pitcher. When a relief pitcher enters the game, and then the next batter is retired on a fielder’s choice, the pitcher responsible for the runner put out is shown in the result pitcher field. While it is correct that the batter reaching base in this case would be charged to the former pitcher should he score, the purpose of the result pitcher field is to indicate the pitcher charged with the outcome of this particular event. In this case, for example, the relief pitcher is awarded one-third of an inning pitched; therefore, he should be the result pitcher, and then the previous pitcher should be (and is) listed in the responsible pitcher field for the batter in subsequent events. In the case of switch-hitters, the batter hand and result batter hand fields are set to L or R, as appropriate, based upon the hand with which the pitcher throws. If the pitcher’s throwing hand is unknown, or if the batter’s batting hand is unknown, a question mark appears in these fields.

Pinch-hit flag (field 31)

This field is T if the batter is a pinch-hitter, and F if he is not. If a player enters the game as a pinch-hitter, and then bats again in the same inning because his team bats around, this field will be F for the player’s second plate appearance. To identify the cases where this occurs, consult the defensive position field (field 32), which will continue to be equal to 11 (or 12 for a pinch-runner) until that player assumes a defensive position.

Event type code (field 34)

All plays are categorized by their primary event type. Here is a list of all types and the corresponding codes used in this field. Codes marked “obsolete” are no longer used, or no longer appear in Retrosheet-produced play-by-play files.

8 Chapter 2. Command-line tools Chadwick Documentation, Release 0.9.0

Table 4: cwevent extended field numbers Code Primary event 0 Unknown (obsolete) 1 None (obsolete) 2 Generic out 3 4 Stolen base 5 Defensive indifference 6 Caught stealing 7 Pickoff error (obsolete) 8 Pickoff 9 Wild pitch 10 Passed ball 11 Balk 12 Other advance/out advancing 13 Foul error 14 Walk 15 Intentional walk 16 Hit by pitch 17 Interference 18 Error 19 Fielder’s choice 20 Single 21 Double 22 Triple 23 24 Missing play (obsolete)

Sacrifice flags and eras (fields 36, 38, 39)

Chadwick in all cases applies the modern rules concerning the awarding of sacrifice hits, sacrifice flies, and official times at bat, regardless of the year indicated with the -y flag.

Plays on runners (fields 58-65)

Fields 58 through 65 give the destination of all runners, including the batter, as well as the fielding play made on them, if any. For the purposes of the destination fields, a code of 5 indicates the runner scored, and is charged as unearned, and a code of 6 indicates the runner scored, and is charged as unearned to the team, but earned to the pitcher. These codes only appear when the (NR) or (TUR) modifiers are explicitly used on the advancement code. There is no internal logic in Chadwick to ferret out which runs should be earned or unearned, as in many cases there is insufficient information, or the situation requires the judgment of the official scorer. Runners which are put out are reported as having an advancement of 0. New in 0.8.1: With the introduction of the automatic runner placement in as a tiebreaker for the 2020 season in MLB (and earlier in the minor leagues and other leagues), a new code 7 is used for runner advancement in the case in which an automatic runner scores. The scoring rule for automatic runners is that they are charged to the pitcher who starts the inning, as an unearned run. For the purposes of determining whether a run scored is due to the automatic runner, Chadwick follows the same convention as is used for assigning responsibility for runners to pitchers: in the event that an automatic runner is put out by batter action, then the subsequent runner becomes marked as an automatic runner.

2.2. Documentation of individual tools 9 Chadwick Documentation, Release 0.9.0

In most cases, the play on a runner indicates the fielding credits involved in putting him out. Chadwick also reports a fielding play on a runner when the runner is safe on a dropped throw, such as 3E1 or FC6.1X2(6E4).

Fielding errors (fields 51-57)

Up to three errors can be indicated in cwevent output. Supported error types are F for generic fielding errors, and T for throwing errors; no distinction is made between bobbled batted balls, muffed throws or fly balls, and so forth.

Pitcher responsibility for runs (fields 75-77)

The Official Rules for charging runs to pitchers stipulate that if a pitcher is relieved in the middle of an inning with runners left on base, he is charged with runs if those runners (or the ones who replace them in the event of fielder’s choices) subsequently score in the inning. The current rule is Rule 10.16(g), the comment on which in the rules states: It is the intent of Rule 10.16(g) to charge each pitcher with the number of runners he put on base, rather than with the individual runners. When a pitcher puts runners on base and is relieved, such pitcher shall be charged with all runs subsequently scored up to and including the number of runners such pitcher left on base when such pitcher left the game, unless such runners are put out without action by the batter. Chadwick implements this by assigning “responsibility” for runners, and shifting those runners after fielder’s choices as appropriate to implement the rule. Fields 75 through 77 report the pitcher currently “charged” with runners on base using this method. There is one special case to note in reporting these fields. As noted, a fielder’s choice does not absolve a departed pitcher for responsibility for a potential run. Ordinarily it is good enough to report the shift in responsibility at the start of the next play. However, consider the following scenario: The bases are loaded, with the runner on third (R3) the responsibility of Pitcher A and runners on second and first (R2 and R1) the responsibility of Pitcher B. The batter hits a ground ball and R3 is forced at home. Then, the catcher throws wildly trying to complete the double play, and as a result R2 scores. In this case, the run scored by R2 is charged to Pitcher A, not Pitcher B, i.e., the responsibility shifts in the middle of the play. In order to facilitate calculation of runs and earned runs allowed correctly from cwevent output, in this case, the record for the play will report R2 as being the responsibility of Pitcher A, i.e., it will report the responsibility after the mid-play shift. This convention will not affect most applications. Indeed, the Official Rules technically do not have a concept of assigning responsibility to particular runners, and the contents of fields 75-77 only have meaning on plays in which the corresponding runners score. This convention may confuse certain calculations, however, including those which try to track what happens to inherited runners, if one does not take appropriate care to handle this very unusual case.

Fielding credits (fields 88-95)

The order in which Chadwick and the Retrosheet-provided tools list putouts and assists may vary. The number of plays on which this occurs is quite few, and generally in cases where there is a putout in the primary event as well as one in the baserunning modifiers. The words “first”, “second” and so on do not necessarily indicate chronological order of the credits, though in most cases they do.

2.2.2 cwgame: Game information extractor cwgame is a command-line tool which extracts summary information about each game in the data file. These fields are grouped into two categories. There are 83 fields which are compatible with the Retrosheet BGAME game descriptor tool. These are specified using the -f command-line flag. In addition, cwgame offers a number “extended” fields which expand upon or give more detailed information not easily accessed via the standard fields. These are are specified using the -x command-line flag. Many of these extended fields are defined to match fields which appear in the Retrosheet gamelogs.

10 Chapter 2. Command-line tools Chadwick Documentation, Release 0.9.0

Note: cwgame guarantees that the standard field numbers will match those used by BGAME. Standard field numbers therefore can be treated as stable, and it should be safe to write scripts referring to them. Extended fields are provi- sional, and extended fields may be added or withdrawn in future versions. Extended fields are assigned numbers to maintain a logical cohesion, with related fields being grouped. Therefore, extended field numbers are not promised to be stable. It is recommended to use the field labels instead in writing scripts to process the output of cwgame extended fields.

The following table gives the contents of each of the 84 fields cwgame outputs.

Table 5: cwgame standard field numbers Field num- Description Header ber 0 Game ID GAME_ID 1 Date GAME_DT 2 Game number GAME_CT 3 Day of week GAME_DY 4 Start time START_GAME_TM 5 DH used flag DH_FL 6 Day/night flag DAYNIGHT_PARK_CD 7 Visiting team AWAY_TEAM_ID 8 Home team HOME_TEAM_ID 9 Game site PARK_ID 10 Visitors starting pitcher AWAY_START_PIT_ID 11 Home starting pitcher HOME_START_PIT_ID 12 Home plate umpire BASE4_UMP_ID 13 First base umpire BASE1_UMP_ID 14 Second base umpire BASE2_UMP_ID 15 Third base umpire BASE3_UMP_ID 16 Left field umpire LF_UMP_ID 17 Right field umpire RF_UMP_ID 18 Attendance ATTEND_PARK_CT 19 PS scorer SCORER_RECORD_ID 20 Translator TRANSLATOR_RECORD_ID 21 Inputter INPUTTER_RECORD_ID 22 Input time INPUT_RECORD_TS 23 Edit time EDIT_RECORD_TS 24 How scored METHOD_RECORD_CD 25 Pitches entered PITCHES_RECORD_CD 26 Temperature TEMP_PARK_CT 27 Wind direction WIND_DIRECTION_PARK_CD 28 Wind speed WIND_SPEED_PARK_CT 29 Field condition FIELD_PARK_CD 30 Precipitation PRECIP_PARK_CD 31 Sky SKY_PARK_CD 32 Time of game MINUTES_GAME_CT 33 Number of innings INN_CT 34 Visitor final score AWAY_SCORE_CT 35 Home final score HOME_SCORE_CT 36 Visitor hits AWAY_HITS_CT 37 Home hits HOME_HITS_CT Continued on next page

2.2. Documentation of individual tools 11 Chadwick Documentation, Release 0.9.0

Table 5 – continued from previous page Field num- Description Header ber 38 Visitor errors AWAY_ERR_CT 39 Home errors HOME_ERR_CT 40 Visitor left on base AWAY_LOB_CT 41 Home left on base HOME_LOB_CT 42 Winning pitcher WIN_PIT_ID 43 Losing pitcher LOSE_PIT_ID 44 SAVE_PIT_ID 45 Game-winning RBI GWRBI_BAT_ID 46 Visitor batter 1 AWAY_LINEUP1_BAT_ID 47 Visitor batter 1 position AWAY_LINEUP1_FLD_CD 48 Visitor batter 2 AWAY_LINEUP2_BAT_ID 49 Visitor batter 2 position AWAY_LINEUP2_FLD_CD 50 Visitor batter 3 AWAY_LINEUP3_BAT_ID 51 Visitor batter 3 position AWAY_LINEUP3_FLD_CD 52 Visitor batter 4 AWAY_LINEUP4_BAT_ID 53 Visitor batter 4 position AWAY_LINEUP4_FLD_CD 54 Visitor batter 5 AWAY_LINEUP5_BAT_ID 55 Visitor batter 5 position AWAY_LINEUP5_FLD_CD 56 Visitor batter 6 AWAY_LINEUP6_BAT_ID 57 Visitor batter 6 position AWAY_LINEUP6_FLD_CD 58 Visitor batter 7 AWAY_LINEUP7_BAT_ID 59 Visitor batter 7 position AWAY_LINEUP7_FLD_CD 60 Visitor batter 8 AWAY_LINEUP8_BAT_ID 61 Visitor batter 8 position AWAY_LINEUP8_FLD_CD 62 Visitor batter 9 AWAY_LINEUP9_BAT_ID 63 Visitor batter 9 position AWAY_LINEUP9_FLD_CD 64 Home batter 1 HOME_LINEUP1_BAT_ID 65 Home batter 1 position HOME_LINEUP1_FLD_CD 66 Home batter 2 HOME_LINEUP2_BAT_ID 67 Home batter 2 position HOME_LINEUP2_FLD_CD 68 Home batter 3 HOME_LINEUP3_BAT_ID 69 Home batter 3 position HOME_LINEUP3_FLD_CD 70 Home batter 4 HOME_LINEUP4_BAT_ID 71 Home batter 4 position HOME_LINEUP4_FLD_CD 72 Home batter 5 HOME_LINEUP5_BAT_ID 73 Home batter 5 position HOME_LINEUP5_FLD_CD 74 Home batter 6 HOME_LINEUP6_BAT_ID 75 Home batter 6 position HOME_LINEUP6_FLD_CD 76 Home batter 7 HOME_LINEUP7_BAT_ID 77 Home batter 7 position HOME_LINEUP7_FLD_CD 78 Home batter 8 HOME_LINEUP8_BAT_ID 79 Home batter 8 position HOME_LINEUP8_FLD_CD 80 Home batter 9 HOME_LINEUP9_BAT_ID 81 Home batter 9 position HOME_LINEUP9_FLD_CD 82 Visitor finishing pitcher AWAY_FINISH_PIT_ID 83 Home finishing pitcher HOME_FINISH_PIT_ID

12 Chapter 2. Command-line tools Chadwick Documentation, Release 0.9.0

Table 6: cwgame extended field numbers Field num- Description Header ber 0 visiting team league AWAY_TEAM_LEAGUE_ID 1 home team league HOME_TEAM_LEAGUE_ID 2 visiting team game number AWAY_TEAM_GAME_CT 3 home team game number HOME_TEAM_GAME_CT 4 length of game in outs OUTS_CT 5 information on completion of game COMPLETION_TX 6 information on forfeit of game FORFEIT_TX 7 information on protest of game PROTEST_TX 8 visiting team linescore AWAY_LINE_TX 9 home team linescore HOME_LINE_TX 10 visiting team AB AWAY_AB_CT 11 visiting team 2B AWAY_2B_CT 12 visiting team 3B AWAY_3B_CT 13 visiting team HR AWAY_HR_CT 14 visiting team RBI AWAY_BI_CT 15 visiting team SH AWAY_SH_CT 16 visiting team SF AWAY_SF_CT 17 visiting team HP AWAY_HP_CT 18 visiting team BB AWAY_BB_CT 19 visiting team IBB AWAY_IBB_CT 20 visiting team SO AWAY_SO_CT 21 visiting team SB AWAY_SB_CT 22 visiting team CS AWAY_CS_CT 23 visiting team GDP AWAY_GDP_CT 24 visiting team reach on interference AWAY_XI_CT 25 number of pitchers used by visiting team AWAY_PITCHER_CT 26 visiting team individual ER allowed AWAY_ER_CT 27 visiting team team ER allowed AWAY_TER_CT 28 visiting team WP AWAY_WP_CT 29 visiting team BK AWAY_BK_CT 30 visiting team PO AWAY_PO_CT 31 visiting team A AWAY_A_CT 32 visiting team PB AWAY_PB_CT 33 visiting team DP AWAY_DP_CT 34 visiting team TP AWAY_TP_CT 35 home team AB HOME_AB_CT 36 home team 2B HOME_2B_CT 37 home team 3B HOME_3B_CT 38 home team HR HOME_HR_CT 39 home team RBI HOME_RBI_CT 40 home team SH HOME_SH_CT 41 home team SF HOME_SF_CT 42 home team HP HOME_HP_CT 43 home team BB HOME_BB_CT 44 home team IBB HOME_IBB_CT 45 home team SO HOME_SO_CT 46 home team SB HOME_SB_CT 47 home team CS HOME_CS_CT Continued on next page

2.2. Documentation of individual tools 13 Chadwick Documentation, Release 0.9.0

Table 6 – continued from previous page Field num- Description Header ber 48 home team GDP HOME_GDP_CT 49 home team reach on interference HOME_XI_CT 50 number of pitchers used by home team HOME_PITCHER_CT 51 home team individual ER allowed HOME_ER_CT 52 home team team ER allowed HOME_TER_CT 53 home team WP HOME_WP_CT 54 home team BK HOME_BK_CT 55 home team PO HOME_PO_CT 56 home team A HOME_A_CT 57 home team PB HOME_PB_CT 58 home team DP HOME_DP_CT 59 home team TP HOME_TP_CT 60 home plate umpire name UMP_HOME_NAME_TX 61 first base umpire name UMP_1B_NAME_TX 62 second base umpire name UMP_2B_NAME_TX 63 third base umpire name UMP_3B_NAME_TX 64 left field umpire name UMP_LF_NAME_TX 65 right field umpire name UMP_RF_NAME_TX 66 visitors manager ID AWAY_MANAGER_ID 67 visitors manager name AWAY_MANAGER_NAME_TX 68 home manager ID HOME_MANAGER_ID 69 home manager name HOME_MANAGER_NAME_TX 70 winning pitcher name WIN_PIT_NAME_TX 71 losing pitcher name LOSE_PIT_NAME_TX 72 save pitcher name SAVE_PIT_NAME_TX 73 batter with goahead RBI ID GOAHEAD_RBI_ID 74 batter with goahead RBI GOAHEAD_RBI_NAME_TX 75 visitor batter 1 name AWAY_LINEUP1_BAT_NAME_TX 76 visitor batter 2 name AWAY_LINEUP2_BAT_NAME_TX 77 visitor batter 3 name AWAY_LINEUP3_BAT_NAME_TX 78 visitor batter 4 name AWAY_LINEUP4_BAT_NAME_TX 79 visitor batter 5 name AWAY_LINEUP5_BAT_NAME_TX 80 visitor batter 6 name AWAY_LINEUP6_BAT_NAME_TX 81 visitor batter 7 name AWAY_LINEUP7_BAT_NAME_TX 82 visitor batter 8 name AWAY_LINEUP8_BAT_NAME_TX 83 visitor batter 9 name AWAY_LINEUP9_BAT_NAME_TX 84 home batter 1 name HOME_LINEUP1_BAT_NAME_TX 85 home batter 2 name HOME_LINEUP2_BAT_NAME_TX 86 home batter 3 name HOME_LINEUP3_BAT_NAME_TX 87 home batter 4 name HOME_LINEUP4_BAT_NAME_TX 88 home batter 5 name HOME_LINEUP5_BAT_NAME_TX 89 home batter 6 name HOME_LINEUP6_BAT_NAME_TX 90 home batter 7 name HOME_LINEUP7_BAT_NAME_TX 91 home batter 8 name HOME_LINEUP8_BAT_NAME_TX 92 home batter 9 name HOME_LINEUP9_BAT_NAME_TX 93 additional information ADD_INFO_TX 94 acquisition information ACQ_INFO_TX

14 Chapter 2. Command-line tools Chadwick Documentation, Release 0.9.0

How scored (field 24)

This field outputs a numeric code corresponding to the medium by which the play-by-play account was recorded.

Table 7: Numeric codes for how scored field Code Description 0 unknown 1 park 2 tv 3 radio

Pitches entered (field 25)

This field outputs a numeric code corresponding to the level of pitch detail in the file.

Table 8: Numeric codes for pitches entered field Code Description 0 unknown 1 pitches 2 count 3 none

Note: This field reports the contents of the info,pitches field in the game file. Some games with partial pitch information will have this field set to none or count.

Temperature (field 26)

The game-time temperature, in degrees Fahrenheit. The value 0 is used when the temperature is unknown.

Wind direction (field 27)

This field outputs a numeric code corresponding to the direction of the wind.

Table 9: Numeric codes for wind direction field Code Description 0 unknown 1 tolf 2 tocf 3 torf 4 ltor 5 fromlf 6 fromcf 7 fromrf 8 rtol

2.2. Documentation of individual tools 15 Chadwick Documentation, Release 0.9.0

Wind speed (field 28)

The game time wind speed, in miles per hour. The value -1 is used when the wind speed is unknown.

Field condition (field 29)

This field outputs a numeric code corresponding to the condition of the field.

Table 10: Numeric codes for field condition field Code Description 0 unknown 1 soaked 2 wet 3 damp 4 dry

Precipitation (field 30)

This field outputs a numeric code corresponding to the precipitation level.

Table 11: Numeric codes for precipitation field Code Description 0 unknown 1 none 2 drizzle 3 showers 4 rain 5 snow

Sky (field 31)

This field outputs a numeric code corresponding to the sky conditions.

Numeric codes for sky field.

Table 12: Numeric codes for sky field Code Description 0 unknown 1 sunny 2 cloudy 3 overcast 4 night 5 dome

16 Chapter 2. Command-line tools Chadwick Documentation, Release 0.9.0

2.2.3 cwsub: Player substitution descriptor cwsub extracts information about in-game player substitutions. It is designed to be used in conjunction with cwevent to mitigate a blind spot in the existing tools. cwsub outputs up to ten pieces of information about each substitution. All are included by default; which ones are generated is controlled by the -f switch.

Table 13: cwevent standard field numbers Field num- Description Header ber 0 Game ID GAME_ID 1 Inning INN_CT 2 Batting team BAT_HOME_ID 3 Substitute SUB_ID 4 Team SUB_HOME_ID 5 Lineup position SUB_LINEUP_ID 6 Fielding position SUB_FLD_CD 7 Removed player REMOVED_ID 8 Position of removed player REMOVED_FLD_CD 9 Event number EVENT_ID

2.2. Documentation of individual tools 17