|
||||
|
|
OOTP 21 - Historical Simulations Discuss historical simulations and their results in this forum. |
![]() |
|
Thread Tools
![]() |
![]() |
#1 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
Fielding Formulas Guide for Historical Games
This is how we can make significant improvements to fielding in historical games. These formulas need to be programmed into OOTP by the development team so that we get realistic fielding results because OOTP currently produces very poor fielding results in historical games.
There is a teams fielding reference file that I have but I cannot attach it because it is over the 512k limit available for posting. Position Experience rating: Players should be given a full 200 experience rating at any position they are eligible to play. Currently the game makes any player who played at least 5% of their games at a position eligible to play there but it does not always provide the 200 experience rating, and without the full experience rating the rest of this system will not perform as it should because the experience rating will act as a secondary multiplier to the component fielding ratings and this is not something we want for players who we are already determining can play a given position. Primary Position: In order to create the component fielding ratings, we need to determine the player primary fielding position, and they can actually have up to 3 primary positions: Catcher, one primary infield position, and one primary outfield position. Most players will just have one or two primary positions. For example, if a player is eligible at 2B and SS we must determine which of those infield positions he played the most games or inningouts as this will be important for creating the component ratings. So, if a player is eligible at 2B and SS, but had more inningouts played as a SS, then we will only be using his SS historical fielding statistics and the SS fielding formulas for creating the fielding ratings. This player will still have the 200 experience rating at 2B and will get a rating at that position. This rating system is designed so that players can move between infield positions properly if they have eligibility at multiple positions while it also prevents players from being able to be moved out of position. This system will also provide the most accurate fielding ratings for the primary defensive positions of each player. Part of this design requires that a 120 baseline on the 250 scale be used for the Error rating. This 120 average error rating will allow a primary 2B who is eligible at 3B to play 3B without bringing with him a vastly different error rating than the rest of the 3Bmen in the league. By having one baseline average error rating we will see better results because we already have Error league totals modifiers for each position, so there is really no need to give 3Bmen a higher error rating than a 2Bmen in historical games, though this may still be true in fictional leagues. The recommendations here will not affect fictional leagues as this guide only focuses on translating historical statistics into player ratings and uses everything the game currently has in place to make it work without any internal changes to the engine or how the ratings get interpreted. In this example of moving a primary 2B to 3B, that player will already have a slight disadvantage playing 3B because the baseline average arm rating for 2B is different than 3B, and likewise moving a 3B to 2B will be a disadvantage because the baseline range rating for 3B is less than the average 2B range rating. In this way players will play their best at their primary position but can be moved to their other eligible positions if needed without having a set of ratings so vastly different than the other positions that they perform unreasonably poorly. There is an intentional overlap in this ratings design, so that a great 2B could be no more than an average SS, or a great LF will be no better than an average CF, and moving a LF to RF will be possible because their Range rating scales are the same but the baseline average arm rating for LF is lower than RF so they will not perform as well in RF as LF because of their arm rating. In addition to this, there are minimum and maximum values assigned for different ratings at different positions and this is there to prevent any player getting assigned a rating so low that they perform unreasonably poorly, and it will also prevent any player from importing without a position rating (that currently still is an issue). The only other thing that should be determined is what the minimum total chances or inningouts should be for a player to receive calculated fielding ratings. I think that if a player has fewer than 50 total chances at a given position that they should import with the minimum allowable ratings as specified for their primary position as given in this guide. Assigning Ratings: I am providing formulas as well as reference file that already has the necessary positional calculations that the formulas reference. There is a Fielding Totals Reference file that has major league fielding statistics broken down for each position for every season so that it is easy to reference Error rates, Assist rates, and Put Out rates. There is also a team file that includes a final infield assist factor and outfield put out factor in the last two columns for every team every season. To find the assist factor and put out factor for each team I accounted for Team Defensive Efficiency, Balls in Play, and Strikeout rates for each team so that players at each position can be properly compared to the league each season. For example, if a CF plays for a team that has an above average groundball rate, a pitching staff that strikes out more batters than the league average, and a team that has an above average defensive efficiency, those are all things that will reduce the number of opportunities for PO that CF has when playing for that team, and in this case the outfield put out factor will be above 1.00 to be able to compare the player to the league average conditions for CF that season. Without this team adjustment of these factors no legitimate comparison can be done for infielders and outfielders to assign proper ratings. As a side note, on the 100 scale the average player at any position will receive about a 64 overall positional rating which is approximately the middle of the green band of color ratings, players who are significantly below average will end up with a yellow rating and players who are significantly above average will have a blue rating for every position making it more intuitive for the user to understand the fielding ratings. The ratings formulas can work with 1yr, 3yr, or career too. New League Totals Modifier for LF Assists, CF Assists, and RF Assists: If the game can support this, we should include it in the game because we now have these assists totals for every season since 1871. When the current OF Assist modifier was created, we only had total outfield assists so we could only make one league totals modifier for total outfield assists. I have an updated era_stats file that has these values that I can provide. Catcher Catcher Ability: Average 120, minimum 64, maximum 250 This rating controls Passed Balls and Errors by catchers. These statistics are available for catchers every season in history as well as their inningouts. For catchers, passed balls and errors tend to be very similar totals so having one rating is enough to model both as we also have league totals modifiers for passed balls and catcher errors. The average rating should be set to 120, the minimum to 64, and the maximum to 250. The formula for assigning the rating is: [(League Expected Passed Balls + Expected Errors)/(Player Passed Balls + Player Errors + 0.01)]*120 = Catcher Ability The rate of (E + PB)/Inningouts for catchers has already been calculated or every season and is available in column “H” in the Fielding Totals Reference file. Note: that extra “+ 0.01” in the formula is there so that divide by zero errors will not occur and adding this small amount will not impact the outcome of the rating. For example, in 1955 Yogi Berra played 3701 inningouts as a catcher and allowed 3 passed balls and made 13 errors. That season the major league totals for catchers were 210 passed balls, 175 errors, and 66033 inningouts. (210+175)/66033 = 0.0058. To find the expected passed balls and expected errors we take the league rate per inning out and multiply this by the number of inning outs that Berra played: [(210+175)/66033]*3701 = 21.57. We now have everything we need for the Catcher Ability rating. [(21.57)/(3 + 13 + 0.01)]*120 = 162 So, in 1955 Yogi Berra receives a Catcher Ability rating of 162 and since the league average catcher will receive 120 this is significantly better. Berra will perform above average in preventing passed balls and making errors. Catcher Arm: This rating should be used to control caught stealing percentage. From looking over the results however, it seems that OOTP tries to use it for both influencing caught stealing and stolen base attempts. This causes some issues with the results. I suggest that this rating only be used for caught stealing and that the pitcher Holding Runners rating be used to influence stolen base attempts. There is available statistics for catcher caught stealing since 1890 (for seasons 1871-1889 I suggest setting catcher arm to the same value as catcher ability, or we can try to do something with catcher assist rate for those seasons), and even for some season before that too. The average rating should be set to 120, the minimum to 64, and the maximum to 250. The formula for assigning the rating is (Player Caught Stealing/Expected Caught Stealing + 0.01)*120 = Catcher Arm The league caught stealing rate is in column “K” in the Fielding Totals Reference file. Note: that extra “+ 0.01” in the formula is there so that divide by zero errors will not occur and adding this small amount will not impact the outcome of the rating. For example, in 1955 Yogi Berra had 26 stolen bases against and 28 caught stealing, so he had a total of 54 stolen base attempts against that season. For major league baseball that season there were 694 stolen bases and 536 caught stealing, for a total of 1230 stolen base attempts. To find the Expected Caught Stealing we take the league caught stealing rate (found in the reference file) and multiply it by the stolen base attempts against Berra that season: (536/1230)*54 = 23.53 We now have everything we need for the Catcher Arm rating. (28/23.53 + 0.01)*120 = 143 So, in 1955 Yogi Berra receives a 143 Catcher Arm rating. As a side note, for the 1955 season we have given Yogi Berra a catcher ability rating of 162 and a catcher arm rating of 143, and on the 100 scale this results in a catcher positional rating of 89 for that season. That season he had 5.57 fewer passed balls and errors than the average catcher per his innings played and he had 4.47 more caught stealing than the average catcher based on his stolen base attempts against that season. So, 5.57 + 4.47 is about 9 or 10 plays above average depending on whether you want to add those decimals, and each of those plays results in players advancing an extra base, which is approximately worth 0.5 runs per play, so he probably saved about 4 or 5 runs that season on these plays and baseball reference and fangraphs have him at +3 runs saved for the season and Davenport has him at +4 runs saved for the season. For catchers it seems that OOTP is applying a much lower value for runs saved from these plays. Second Base Infield Error: The error rating comes from comparing the League Expected Errors with the Player Errors at the position. The average rating should be set to 120, the minimum to 64, and the maximum to 250. The formula for assigning the rating is (League Expected Errors/Player Errors + 0.01)*120 = Infield Error rating The 2B Error rate is in column “AB” in the Fielding Totals Reference file. For example, in 1984 Ryne Sandberg had 870 total chances and made 6 errors. The major league 2B error rate that season was 0.0207. We find the league expected errors, 870*0.0207 = 18.009. We can now calculate the error rating. (18.009/6)*120 = 360.18. Since the maximum rating is 250, Sandberg will receive a 250 Error rating. Instances such as this are very rare since making fewer than half of the league average errors at any position is very rare. Infield Range: The range rating comes from comparing the Player Adjusted Assists to the League Expected Assists. The average rating should be set to 125, the minimum to 94, and the maximum to 173. The Player Adjusted Assists comes from multiplying the player assists by the team infield assists factor found in the reference file. This factor takes into account the team defensive efficiency, team groundball out rate, and balls in play against the team. In 1984, major league average assists per inningout at 2B was 0.1151. Ryne Sandberg played 4088 inningouts at 2B that season. 4088*0.1151 = 470.5 expected assists. Sandberg made 550 assists that season, the Cubs had a 0.9313 Infield Assist Factor, and he made 12 fewer errors than the league average (18 – 6 = 12) given his total chances that season. First, we subtract the 12 errors saved from the 550 assists to give us 538. Then take the 538 and multiply by 0.9313, 538*0.9313 = 501. Ryne Sandberg now has an adjusted 501 assists for the season and the league expected assists were 470.5. The Infield Range formula for 2B is {[(Player Adjusted Assists/League Expected Assists) – 1]*500} + 125 = 2B range rating The 2B assist rate is in column “AD” of the Fielding Totals Reference file. For Sandberg this is {[(501/470.5) – 1]*500} + 125 = 157 Infield Arm: For this rating we use the same calculation as for Infield Range for 2B, except the multiplier is 200 and the maximum is different. The average is 125, the minimum is 94, and the maximum is 143. The Infield Arm formula for 2B is {[(Player Adjusted Assists/League Expected Assists) – 1]*200} + 125 = 2B infield arm rating For Sandberg this is {[(501/470.5) – 1]*200} + 125 = 138 Turn Double Plays: The Turn Double Plays rating comes from comparing the Player Double Plays to the League Expected Double Plays. The League Expected Double Plays is the League Double Plays for 2B per inningout multiplied by the player inningouts that season. The average value is 120, the minimum is 74, and the maximum is 163. In 1984, major league average double plays per inningout at 2B was .0245. Sandberg 4088 inningouts at 2B that season, so the league expected value is 4088*0.0245 = 100.15 Sandberg had 102 double plays that season. Turn Double Plays: {[(Player Double Plays/League Expected Double Plays) – 1]*100} + 120 The 2B double play rate is in column “AF” of the Fielding Totals Reference file. For Sandberg this is {[(102/100.15) – 1]*100} + 120 = 122 As a side note, if Sandberg receives these infield ratings for the 1984 season, his resulting rating on the 100 scale at 2B for that season will be 100. Third Base In this example we will use a 3yr calculation for Graig Nettles 1970-1972. Infield Error Rating: (League Expected Errors/Player Errors + 0.01)*120 The 3B error rate is in column “AI” of the Fielding Totals Reference file. Graig Nettles made 17 errors in 509 total chances at 3B in the 1970 season. The major league error rate for 3B was 0.053. The expected errors are 509*0.053 = 26.9 Graig Nettles made 16 errors in 587 total chances at 3B in the 1971 season. The major league error rate for 3B was 0.047. The expected errors are 587*0.047 = 27.5 Graig Nettles made 21 errors in 473 total chances at 3B in the 1972 season. The major league error rate for 3B was 0.050. The expected errors are 473*0.050 = 23.6 (78/54.01)*120 = 173 He made 24 fewer errors than the average 3Bmen given his total chances those seasons. Infield Range: Average 104, Minimum 94, Maximum 114 The Infield Range formula for 3B is {[(Player Adjusted Assists/League Expected Assists) – 1]*100} + 104 = 3B range rating The 3B assist rate is in column “AK” of the Fielding Totals Reference file. For Nettles in 1970, he had 358 assists and made 10 fewer errors than average. 358 – 10 = 348 assists. His team had a 1.0304 infield assist factor, so his adjusted assists are 358*1.0304 = 369. The league assists per inningout at 3B in 1970 was 0.0768 and Nettles played 3939 inningouts at 3B that season. 3939*0.0768 = 302.5 expected assists. For Nettles in 1971, he had 412 assists and made 11 fewer errors than average. 412 – 11 = 401 assists. His team had a 1.0303 infield assist factor, so his adjusted assists are 401*1.0303 = 413. The league assists per inningout at 3B in 1971 was 0.0773 and Nettles played 4210 inningouts at 3B that season. 4210*0.0773 = 325.4 expected assists. For Nettles in 1972, he had 338 assists and made 2 fewer errors than average. 338 – 2 = 336 assists. His team had a 0.9896 infield assist factor, so his adjusted assists are 338*0.9896 = 334. The league assists per inningout at 3B in 1971 was 0.0774 and Nettles played 4054 inningouts at 3B that season. 4054*0.0774 = 313.7 expected assists. The sum of these seasons is {[(348+401+336)/(302.5+325.4+313.7) – 1]*100} + 104 = 119 Note: The maximum we are setting Range for 3B is 114 so he will receive a 114 instead of 119. It is possible we may be able to increase this maximum up to 125 and the minimum to 74. By keeping these limits on the Range for 3Bmen it prevents a good 3Bmen from being anything better than a below average SS and 2B since those positions have a higher baseline average for Range. Infield Arm: Average 159, Minimum 114, Maximum 203 The infield arm rating has the more impact on the fielding outcomes and the resulting rating for 3B than the range rating. The Infield Arm formula for 3B is {[(Player Adjusted Assists/League Expected Assists) – 1]*250} + 159 = 3B infield arm rating The 3B assist rate is in column “AK” of the Fielding Totals Reference file. For Nettles from 1970-1972 the calculation uses the same information as for calculating Range but with a different multiplier, baseline average, and minimum and maximum values. Infield Arm: {[(348+401+336)/(302.5+325.4+313.7) – 1]*250} + 154 = 192 Turn Double Plays Average 94, Minimum 74, Maximum 114 Turn Double Plays: {[(Player Double Plays/League Expected Double Plays) – 1]*50} + 94 The 3B double play rate is in column “AM” of the Fielding Totals Reference file. Note: The baseline average here is 94 instead of 120 as it is for 2B and SS positions. Nettles 1970: 40 DP in 3939 inningouts. Expected League DP 3939*0.0074 = 29.1 Nettles 1971: 54 DP in 4210 inningouts. Expected League DP 4210*0.0070 = 29.4 Nettles 1972: 27 DP in 4054 inningouts. Expected League DP 4054*0.0068 = 27.5 For these seasons Nettles had 121 double plays and the expected value was 86. {[(121/86) – 1]*50} + 94 = 114 If Nettles receives these ratings for a 3yr 1971 calculation his resulting rating on the 100 scale for those seasons is 84. Note that in these seasons this process puts Nettles at +143 plays made at 3B, if we value each play at about 0.5 runs as we have seen in OOTP, this results in about 72 runs saved those seasons and on baseball reference he has 71 runs saved across those 3 seasons. If we are getting results that are too restricted for 3B we can simply use a higher multiplier. To calibrate this is a fairly easy process. For example, if we are seeing that Nettles routinely performs at 1.08 Efficiency rating even though we have calculated him as being 1.15 for those seasons, we simply need to increase the modifier so that it makes the best defensive 3Bmen a bit stronger and the below average defensive 3Bmen a bit weaker. In this example 1.15 – 1 = 0.15 and 1.08 – 1 = 0.08. Take {[(0.15/0.08) – 1]*0.5} + 1 = 1.4375 So instead of an arm multiplier of 250, we should use 250 * 1.4375 = 359 This will increase the spread of the arm ratings for 3Bmen. The values that I am suggesting for these formulas are a good starting point, but it will only take a couple of tests to determine the best multipliers to use for each position. To calibrate the multiplier correctly we only need to see if the top performers are ending up with the correct defensive efficiency for their best seasons and career totals. If we calibrate the top end properly and use good minimum values every player should fall into place properly. We will not have players overperforming nor will we have players putting up impossibly poor metrics defensively. Shortstop Infield Error Rating: Average 120, minimum 64, maximum 250 (League Expected Errors/Player Errors + 0.01)*120 The SS error rate is in column “AP” of the Fielding Totals Reference file. For example, in 1975 Mark Belanger made 17 errors in 784 total chances at SS. That season shortstops had an error rate of 0.0386. We get aa league expected errors of 784*0.0386 = 30.28. Belanger made 13 fewer errors than the average shortstop given 784 total chances that season. We can now calculate the infield error rating for Belanger that season. (30.28/17.01)*120 = 214 Infield Range Rating: The infield range rating formula for SS uses a 500 multiplier but a 154 baseline average for range. The Infield Range formula for SS is {[(Player Adjusted Assists/League Expected Assists) – 1]*500} + 154 = SS range rating The SS assist rate is in column “AR” of the Fielding Totals Reference file. In 1975 Belanger made 508 assists and played 3787 inningouts at SS. We previously figure that Belanger made 13 fewer errors than expected so we subtract those 508 – 13 = 495, and we then use 495 assists when applying the team infield assists factor. That season his team had a .9801 infield assist factor, so his adjusted assists are 495*.9801 = 485. That season the major league average SS made 0.1191 assists per inningout, so the league expected assists for Belanger is 3787*0.1191 = 451. Belanger Infield Range rating: {[(485/451) – 1]*500} + 154 = 192 Infield Arm Rating: For SS the infield arm rating is the exact same formula as for the range rating. Average 154, Minimum 114, Maximum 203 The Infield Arm formula for SS is {[(Player Adjusted Assists/League Expected Assists) – 1]*500} + 154 = SS Arm rating Belanger Infield Arm rating: {[(485/451) – 1]*500} + 154 = 192 The SS assist rate is in column “AR” of the Fielding Totals Reference file. Turn Double Plays Rating: For SS the Turn Double Plays rating is the same formula as for 2B. Average 120, minimum 74, maximum 163 Turn Double Plays: {[(Player Double Plays/League Expected Double Plays) – 1]*100} + 120 The SS assist rate is in column “AT” of the Fielding Totals Reference file. For Belanger in 1975 he made 105 double plays in 3787 inningout. The major league average SS made 0.0228 double plays per inningout that season, so we expect 3787*0.0228 = 86. So Belanger made 19 more double plays that season than the average SS given the same amount of inningouts played. Belanger Turn Double Plays rating: {[(105/86) – 1]*100} + 120 = 142 Note: If we find that the double play formula is not strong enough we can increase the multiplier. As it is currently set, each percentage point is 1 point on the scale, so a player who makes 30% more double plays will get 30 points added to the baseline average of 120 for a total of 150. If we set the multiplier to 200 then they will receive 2 points on the scale for each percentage point. I think the 100 multiplier is correct as the minimum value of 74 specified is the lowest yellow rating and the 163 maximum value is a blue rating. If Belanger receives Error 214, Range 192, Arm 192, and Turn Double Plays 142, his resulting positional rating on the 100 scale will be 100 for the 1975 season. Pitcher The process for pitchers is the same as the other infield positions but with lower baseline averages. We should also create better Hold Runner Ratings for all pitchers. We have SB and CS for pitchers from 1916 to present on baseball reference. This should be added to the OOTP player database. From this we can take a pitcher stolen base attempts per H-HR+BB+HBP-WP against (essentially times reaching base against) and compare this to the league average to provide more accurate Hold Runner ratings. For 1871-1915 the player data does not exist, but we have team data that can be used. In this instance we can simply calculate the hold runner rating for entire teams and apply this rating to all pitchers on those teams. This will provide more accurate stolen base rates for historical teams. I think that currently OOTP uses a combination of the pitcher Holding Runners rating with the Catcher Arm rating to determine stolen base attempts. If a combination of these are used then I think 90% of the weight should be given to the pitcher Holding Runners rating and let the Cather Arm rating determine caught stealing. Infield Error Rating: Average 50, minimum 14, maximum 153 (League Expected Errors/Player Errors + 0.01)*50 The P error rate is in column “N” of the Fielding Totals Reference file. In 2004 Kenny Rogers made 1 error in 64 total chances. The league average rate for pitcher was 0.042, so the expected errors are 64*0.042 = 2.68 Kenny Rogers Error rating: (2.68.1.01)*50 = 132 Infield Range Rating: Average 59, Minimum 34, Maximum 93 The Infield Range formula for P is {[(Player Assists/League Expected Assists) – 1]*25} + 59 = Pitcher Range rating The P assist rate is in column “P” of the Fielding Totals Reference file. Kenny Rogers made 48 assists in 635 inningouts in the 2004 season and he saved 1 error, so his adjusted assists are 48 – 1 = 47. The league average pitcher made 0.044 assists per inningout, so the league expected value is 635*0.044 = 27.9. Kenny Rogers Range rating: {[(47/27.9) – 1]*25} + 59 = 76 Note, for convenience I did not multiply by the team infield assist factor. If we want to be more precise, we can adjust for the individual pitcher GB% against the league GB% to determine if the pitcher is getting more assists because he is generating more grounders, but perhaps the pitcher is actually fielding more bunts which has nothing to do with the GB rate of the pitcher. I think this extra precision is not worth the trouble for the pitcher fielding ratings. Infield Arm Rating: For pitchers this is the same as for Range. Kenny Rogers Range rating: {[(47/27.9) – 1]*25} + 59 = 76 The P assist rate is in column “P” of the Fielding Totals Reference file. Turn Double Plays rating: Average 20, minimum 7, maximum 33 Turn Double Plays: {[(Player Double Plays/League Expected Double Plays) – 1]*50} + 20 The P double play rate is in column “R” of the Fielding Totals Reference file. In 2004 Kenny Rogers had 2 double plays in 635 inningouts. The league average pitcher rate was 0.003, so the expected double plays are 635*0.003 = 1.9 Kenny Rogers Turn Double Plays rating: {[(2/1.9) – 1]*5} + 20 = 20 If Kenny Rogers receives Range 76, Error 132, Arm 76, and Turn Double Plays 20, he will receive a resulting rating of 105. Pitcher Hold Runners Rating: Average 100, minimum 34, maximum 250. This rating will compare the league expected stolen base attempts per H – HR + BB + HBP - WP to the player value. Hold Runners: (League Expected stolen base attempts/Pitcher stolen base attempts + 0.01)*100 In 2004 Kenny Rogers had 2 stolen bases and 5 caught stealing for a total of 7 stolen base attempts, and pitching he allowed 248 H – 24 HR + 66 BB + 9 HBP – 2 WP = 297 reached base against. In 2004 there were 3689 stolen base attempts 44522 H – 5451 HR + 16222 BB + 1850 HBP – 1478 WP = 55665, so the league rate was 3689/55665 = 0.0662. The league expected stolen base attempts for Kenny Rogers is 297*0.0662 = 19.66 Kenny Rogers Hold Runners: (19.66/7.01)*120 = 280 This is above the maximum of 250, so Kenny Rogers will receive a 250 Hold Runners rating. This method provides the relative rate the opponents were attempting to steal against Kenny Rogers that season. If there is a better formula for translating the relative rate of stolen bases per reached base then it should be used instead of this formula, but comparison of the league to the player still needs to be made as described in order to provide the basis for the rating. The league H-HR+HBP-WP per inningouts is not currently in the Fielding Totals Reference file but these individual values are in the era_stats file. If needed I can calculate this for all seasons for pitchers and add this value to the Fielding Reference file. For 1871-1915 we do not have pitcher stolen base attempts against, but we do have this value for teams. In 1903 the Boston Americans had 253 stolen base attempts against, and allowed 1276 H – 18 HR + 269 BB + 36 HBP – 18 WP = 1545 reached base against. The rate for the league was 4958 stolen base attempts and 25127 reached base, for a rate of 4958/25127 = 0.1973 For Boston we expect 1545*0.1973 = 305 stolen base attempts. The entire pitching staff of the Boston Americans should receive a Hold Runners rating of (305/253)*120 = 145 for the 1903 season. For players who played for multiple teams in these seasons we can calculate this value for each team they played for and then weight the ratings on their reached base against for each team. Pitcher Groundball Percentage: From what I can tell, OOTP does not currently import pitcher groundball percentage accurately. This data exists for pitchers since 1916 on baseball reference but I do not know if the database has been updated. For 1871-1915 we have estimated team GB% that can be assigned to all pitchers on a given team for those seasons so that team GB% is accurate in the game. In 2004 Kenny Rogers had a 1.07 GO:AO ratio, this is 1.07 groundouts per 1.00 airouts. Translating this to a groundball percentage is 1.07/(1.07 + 1.00) = 1.07/2.07 = .516 which rounds to 52%. He pitched 635 outs and struck out 126 batters, so 635 – 126 = 509 outs on balls in play. 509*.52 = 265 groundball outs and 509 – 265 = 244 airouts. It is important to calculate the groundball and airout totals when basing statistics on 3yrs and 5yrs, so that the seasons can be tallied and a proper weighted average found. I started a 2004 replay and Kenny Rogers imports at 56%. The 2004 GO:AO ratio for mlb was 1.09, which is 1.09/2.09 = .521, which rounds to 52%. Kenny Rogers and the league are both 52%. In the editor we get 56% for Rogers and the editor says (54% = average) as a standard for OOTP. Even if OOTP was translating everything to a 54% standard, then Rogers being league average should receive 54%, but he is not. I do not know why pitcher GB% is not being correctly imported, but it needs to be corrected. We have pitcher data since 1916 and we can use estimated team data that I have in the teams file for pitchers from 1871-1915 so that we can get better imports for any season. Left Field Outfield Range: The range rating is based on Put Outs per inningout played compared to the league average, an adjustment factor for each team is also made to account for team defensive efficiency, balls in play, and flyball rate. LF Outfield Range Rating: average 114, minimum 64, maximum 163, LF Outfield Range Rating: {[(Player Adjust PO/League Expected PO) – 1]*250} + 114 The LF putout rate is in column “AY” of the Fielding Totals Reference file. For Willie Wilson in 1979, he made 308 PO and played 3112 inningouts. His team outfield putouts factor is 0.912, so his adjusted PO are 308*0.902 = 278 The major league average LF that season made 0.0757 PO per inningout, so the league expected PO are 3112*0.0757 = 236. Willie Wilson Range Rating: {[(278/236) – 1]*250} + 114 = 158 Willie Wilson made 42 more PO than the league average leftfielder that season, if these are valued at 0.5 runs each we get 21 runs saved, and on baseball reference he has 21 runs saved in left field that season. Outfield Error: The error rating formula is the same for outfielders as for infielders LF Error Rating: Average 120, minimum 64, maximum 250 (League Expected Errors/Player Errors + 0.01)*120 = Error Rating The LF error rate is in column “AW” of the Fielding Totals Reference file. Willie Wilson made 4 errors in 322 total chances in the 1979 season. The league average error rate for LF that season was 0.024, so the league expected errors are 322*0.024 = 7.72 Willie Wilson Error rating (7.72/4.01)*120 = 231 Willie Wilson saved about 3 or 4 errors that season. Outfield Arm: The Outfield Arm rating compares the assists per inningouts of the player to the league average. The baseline average, minimum, and maximum for LF is different from CF and RF. Average 100, minimum 44, maximum 200 LF Arm rating: (Player Position OF Assists/League Expected Position OF Assists)*100 The LF assist rate is in column “BA” of the Fielding Totals Reference file. For Willie Wilson in 1979, he had 10 assists in 3112 inningouts played. The average LF made 0.0028 assist per ininngout that season, so the league expected assists are 3112*0.0028 = 8.71 Willie Wilson Arm rating: (10/8.71)*100 = 115 If Willie Wilson receives Range 158, Error 231, and Arm 115, his resulting LF rating will be 102 for the 1979 season. Centerfield CF Outfield Range Rating: average 154, minimum 114, maximum 250 CF Outfield Range Rating: {[(Player Adjust PO/League Expected PO) – 1]*250} + 154 The CF putout rate is in column “BF” of the Fielding Totals Reference file. Willie Mays in 1954 made 443 PO and played 4039 inningouts. His team has an outfield put out adjustment factor of 1.074, so his adjusted PO are 443*1.074 = 475. The league average CF that season made 0.1021 PO per inningout, so the league expected CF PO are 4039*0.1021 = 412. Willie Mays 1954 Outfield Range Rating: {[(475/412) – 1]*250} + 154 = 192 CF Outfield Error Rating: Average 120, minimum 64, maximum 250 (League Expected Errors/Player Errors + 0.01)*120 = Error Rating The CF error rate is in column “BD” of the Fielding Totals Reference file. In 1954 Willie Mays made 7 errors in 463 total chances in CF. The league average CF error rate was 0.017, so the league expected errors are 463*0.017 = 7.87 Willie Mays Outfield Error Rating: (7.87/7.01)*120 = 135 CF Outfield Arm Rating: Average 154, minimum 74, maximum 250 CF Arm rating: (Player Position OF Assists/League Expected Position OF Assists)*154 The CF assist rate is in column “BH” of the Fielding Totals Reference file. In 1954 Willie Mays made 13 assists and played 4039 inningouts, the league average assist rate that season was 0.003, so the expected assists are 4039*0.003 = 12.1 Willie Mays Arm rating = (13/12.1)*154 = 165 If Willie Mays receives Range 192, Error 135, and Arm 165, his resulting rating at CF will be 99 for the 1954 season. Rightfield Outfield Range: The RF Outfield Range Range is the same as for LF RF Outfield Range Rating: average 114, minimum 64, maximum 163 RF Outfield Range Rating: {[(Player Adjust PO/League Expected PO) – 1]*250} + 114 The RF putout rate is in column “BM” of the Fielding Totals Reference file. In 1958 Roberto Clemente playing RF had 311 PO and 3452 inningouts, and his team outfield PO adjustment factor was 0.9703, so his adjusted PO were 311*0.9703 = 302. The league PO rate was 0.0709, so the league expected PO was 3452*0.0709 = 248. Roberto Clemente Outfield Range rating: {[(302/248) – 1]*250} + 114 = 168 This is above the maximum of 163 specified, so he will receive a 163, however, upon testing we may determine that we can extend the maximum to 173 and that he will be able to receive the full 168 rating. Outfield Error: Average 120, minimum 64, maximum 250 (League Expected Errors/Player Errors + 0.01)*120 = Error Rating The RF error rate is in column “BK” of the Fielding Totals Reference file. In 1958 Roberto Clemente made 6 errors in 340 total chances and the league error rate was 0.0212 was RF that season which gives an expected error value of 340*0.0212 = 7.2 Roberto Clemente Error rating: (7.2/6.01)*120 = 144 Outfield Arm rating: Average 154, minimum 74, maximum 250 RF Arm rating: (Player Position OF Assists/League Expected Position OF Assists)*154 The RF assist rate is in column “BO” of the Fielding Totals Reference file. In 1958 Roberto Clemente made 22 assists in 3452 inningouts. The league average RF assist rate was 0.0034, so the expected assists are 3452*0.0034 = 11.7 Roberto Clemente Arm rating: (22/11.7)*154 = 289 This is above the maximum of 250, so he will receive a 250 Arm rating. If Roberto Clemente receives Range 163, Error 144, and Arm 250 his resulting rating will be 114 for the 1958 season. Formula Reference Guide Note: In order to determine player adjusted assists for infielders, the number of errors above or below the league average must first be subtracted then that value must be multiplied by the team infield assists factor found in column “CX” of the teams reference file. (Player Assists – (League Expected Errors – Player Errors))*Team Infield Assist Factor Note: In order to determine player adjusted putouts for outfielders the value must be multiplied by the team outfield putouts factor found in column “CY” of the teams reference file. Player Putouts*Team Outfield Putout Factor Note: The necessary league rates used for the formulas have already been calculated and can be found in the Fielding Totals Reference File. Catcher Catcher Ability (Average 120, Minimum 64, Maximum 250) [(League Expected Passed Balls + Expected Errors)/(Player Passed Balls + Player Errors + 0.01)]*120 Fielding Totals Reference Column H Catcher Arm (Average 120, Minimum 64, Maximum 250) (Player Caught Stealing/Expected Caught Stealing + 0.01)*120 = Catcher Arm Fielding Totals Reference Column K Second Base Infield Error (Average 120, Minimum 64, Maximum 250) (League Expected Errors/Player Errors + 0.01)*120 Fielding Totals Reference Column AB Infield Range (Average 125, Minimum 94, Maximum 173) {[(Player Adjusted Assists/League Expected Assists) – 1]*500} + 125 Fielding Totals Reference Column AD Infield Arm (Average 125, Minimum 94, Maximum 173) {[(Player Adjusted Assists/League Expected Assists) – 1]*200} + 125 Fielding Totals Reference Column AD Turn Double Plays (Average 120, Minimum 74, Maximum 163) {[(Player Double Plays/League Expected Double Plays) – 1]*100} + 120 Fielding Totals Reference Column AF Third Base Infield Error (Average 120, Minimum 64, Maximum 250) (League Expected Errors/Player Errors + 0.01)*120 Fielding Totals Reference Column AI Infield Range (Average 104, Minimum 94, Maximum 114) {[(Player Adjusted Assists/League Expected Assists) – 1]*100} + 104 Fielding Totals Reference Column AK Infield Arm (Average 159, Minimum 114, Maximum 203) {[(Player Adjusted Assists/League Expected Assists) – 1]*250} + 159 Fielding Totals Reference Column AK Turn Double Plays (Average 94, Minimum 74, Maximum 114) {[(Player Double Plays/League Expected Double Plays) – 1]*50} + 94 Fielding Totals Reference Column AM Shortstop Infield Error (Average 120, Minimum 64, Maximum 250) (League Expected Errors/Player Errors + 0.01)*120 Fielding Totals Reference Column AP Infield Range (Average 154, Minimum 114, Maximum 203) {[(Player Adjusted Assists/League Expected Assists) – 1]*500} + 154 Fielding Totals Reference Column AR Infield Arm (Average 154, Minimum 114, Maximum 203) {[(Player Adjusted Assists/League Expected Assists) – 1]*500} + 154 Fielding Totals Reference Column AR Turn Double Plays (Average 120, Minimum 74, Maximum 163) {[(Player Double Plays/League Expected Double Plays) – 1]*100} + 120 Fielding Totals Reference Column AT Pitcher Infield Error (Average 50, minimum 14, maximum 153) (League Expected Errors/Player Errors + 0.01)*50 Fielding Totals Reference Column N Infield Range (Average 59, minimum 34, maximum 93) {[(Player Assists/League Expected Assists) – 1]*25} + 59 Fielding Totals Reference Column P Infield Arm (Average 59, minimum 34, maximum 93) {[(Player Assists/League Expected Assists) – 1]*25} + 59 Fielding Totals Reference Column P Turn Double Plays (Average 20, minimum 7, maximum 33) Turn Double Plays: {[(Player Double Plays/League Expected Double Plays) – 1]*50} + 20 Fielding Totals Reference Column R Pitcher Hold Runners Rating: Average 100, minimum 34, maximum 250. Hold Runners: (League Expected stolen base attempts/Pitcher stolen base attempts + 0.01)*100 Pitcher Groundball Percentage This needs to be properly calculated from the pitcher GO:AO ratio. Example, a 1.35 GO:AO ratio becomes 1.35/(1.35 + 1.00) = 1.35/2.35 = .574 = 57% For 3yr and 5yr calculations season groundout and airouts need to be calculated as described previously. Left Field Outfield Range (average 114, minimum 64, maximum 163) {[(Player Adjust PO/League Expected PO) – 1]*250} + 114 Fielding Totals Reference Column AY Outfield Error (League Expected Errors/Player Errors + 0.01)*120 Fielding Totals Reference Column AW Outfield Arm Average 100, minimum 44, maximum 200 (Player Position OF Assists/League Expected Position OF Assists)*100 Fielding Totals Reference Column BA Center Field Outfield Range Average 154, minimum 74, maximum 250 (Player Position OF Assists/League Expected Position OF Assists)*154 Fielding Totals Reference Column BF Outfield Error (Average 120, Minimum 64, Maximum 250) (League Expected Errors/Player Errors + 0.01)*120 Fielding Totals Reference Column BD Outfield Arm (Average 154, minimum 74, maximum 250) (Player Position OF Assists/League Expected Position OF Assists)*154 Fielding Totals Reference Column BH Right Field Outfield Range (average 114, minimum 64, maximum 163) {[(Player Adjust PO/League Expected PO) – 1]*250} + 114 Fielding Totals Reference Column BM Outfield Error (Average 120, Minimum 64, Maximum 250) (League Expected Errors/Player Errors + 0.01)*120 Fielding Totals Reference Column BK Outfield Arm (Average 154, minimum 74, maximum 250) (Player Position OF Assists/League Expected Position OF Assists)*154 Fielding Totals Reference Column BO Last edited by Garlon; 12-27-2020 at 01:14 AM. |
![]() |
![]() |
![]() |
#2 | |
Hall Of Famer
Join Date: May 2016
Location: St Petersburg Florida USA
Posts: 6,638
Infractions: 0/2 (3)
|
Quote:
Garlon: First few sections would be more readable with short paragraphs. |
|
![]() |
![]() |
![]() |
#3 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
Thank you Brad, I copied and pasted this from Word and it took quite a while to get it to look as it does right now. I will adjust the sections at the beginning though as suggested. There are still some odd characters showing up that look like an A with ^ above them and I need to take those out too as those should not be in there.
The fielding issues can be solved with this process and all of the statistics we need to do it we currently have available. Unfortunately historical improvements to the game seem to get pushed aside in favor of spending time programming other new features. I hope we can get some momentum to convince Markus and the team to use the processes here to fix fielding. If this import process gets coded as specified it will probably only take a couple days of testing to get things on target. For example, if at SS we are still seeing impossible fielding rates then all we need to do is change that "500" modifier in the formula to something lower. If we are seeing that RF results are muted, we can raise the maximum Range rating above the "154" suggested. This can all be determined for every position after a couple full games from 1954-2019 to compare with the known values. If we get the best and worst players performing appropriately the rest of the league will fall into place. I did not post any formulas for 1B defensive ratings. This can be done though and there are a couple of options. The problem with 1B is sorting out how many plays above average they are making since unassisted PO are hidden within their overall PO totals and then there are some 1Bmen who are making many assists but are not making the unassisted plays. This can be sorted out to some extent but there may be a much easier way to assign 1B ratings too. I may be posting another thread regarding Ballpark Factors as I have a new file that will provide L/R discrete factors for BA/2B/3B/HR for all ballparks since 1904. Unfortunately OOTP only currently supports L/R factors for BA and HR and uses an overall factor for 2B and 3B. In addition to the new factors I have included import factors for player imports that will automatically adjust player rating upon import to account for playing half of their games in their home stadium and half on the road, in this way the ballpark effects are removed from player statistics and this is determined individually for Bats L, Bats R, or Bats Both. If we get the fielding processes implemented and the new ballpark factors with import process into the game we will be modeling everything we can from the historical statistics that the game can support. |
![]() |
![]() |
![]() |
#4 |
Hall Of Famer
Join Date: May 2016
Location: St Petersburg Florida USA
Posts: 6,638
Infractions: 0/2 (3)
|
Folks, Garlon has a lot of work in this and I think he's on the right track. So sign up here to support the program.*
*No donation required or accepted *We will never sell your personal information ![]() |
![]() |
![]() |
![]() |
#5 | |
Hall Of Famer
Join Date: May 2016
Location: St Petersburg Florida USA
Posts: 6,638
Infractions: 0/2 (3)
|
Quote:
Then just to mess with her mind I started Notepad from a command prompt! (I found out a long time ago that people think you're magic if you can do things on a computer without icons!!!) |
|
![]() |
![]() |
![]() |
#6 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
I updated the original post with information on pitcher groundball percentage rating.
Pitcher Groundball Percentage: From what I can tell, OOTP does not currently import pitcher groundball percentage accurately. This data exists for pitchers since 1916 on baseball reference but I do not know if the database has been updated. For 1871-1915 we have estimated team GB% that can be assigned to all pitchers on a given team for those seasons so that team GB% is accurate in the game. In 2004 Kenny Rogers had a 1.07 GO:AO ratio, this is 1.07 groundouts per 1.00 airouts. Translating this to a groundball percentage is 1.07/(1.07 + 1.00) = 1.07/2.07 = .516 which rounds to 52%. He pitched 635 outs and struck out 126 batters, so 635 – 126 = 509 outs on balls in play. 509*.52 = 265 groundball outs and 509 – 265 = 244 airouts. It is important to calculate the groundball and airout totals when basing statistics on 3yrs and 5yrs, so that the seasons can be tallied and a proper weighted average found. I started a 2004 replay and Kenny Rogers imports at 56%. The 2004 GO:AO ratio for mlb was 1.09, which is 1.09/2.09 = .521, which rounds to 52%. Kenny Rogers and the league are both 52%. In the editor we get 56% for Rogers and the editor says (54% = average) as a standard for OOTP. Even if OOTP was translating everything to a 54% standard, then Rogers being league average should receive 54%, but he is not. I do not know why pitcher GB% is not being correctly imported, but it needs to be corrected. We have pitcher data since 1916 and we can use estimated team data that I have in the teams file for pitchers from 1871-1915 so that we can get better imports for any season. |
![]() |
![]() |
![]() |
#7 | |
OOTP Developments
Join Date: Aug 2007
Location: Nice, Côte d'Azur, France
Posts: 21,227
|
Quote:
Anyway, that's just how the engine is designed, and the difference is expected. In fact if we were to change the GB% for individual players like you're suggesting, without also redesigning the engine, this would actually lead to more inaccurate results.
__________________
lukas@ootpdevelopments.com PreOrder Out of the Park Baseball 26! Need to upload files for us to check out? Instructions can be found here Last edited by Lukas Berger; 12-27-2020 at 08:55 AM. |
|
![]() |
![]() |
![]() |
#8 |
OOTP Developments
Join Date: Aug 2007
Location: Nice, Côte d'Azur, France
Posts: 21,227
|
As far as the Zone rating, chances/assists issue, we've actually looked into that and discussed it quite a bit and it seems the root of the problem is not in the spread of the ratings themselves, but rather an engine related issue that will need to be tweaked.
That's high on the list of things to work on and fix up for OOTP22. That being said, we're also looking at the idea of a complete revamp of the historical fielding ratings algorithm as well, to go along with that. So rest assured, all of this is very much on our radar. Exactly what will change and how for 22 I cannot say definitively at this point, but this is something we're looking at closely.
__________________
lukas@ootpdevelopments.com PreOrder Out of the Park Baseball 26! Need to upload files for us to check out? Instructions can be found here Last edited by Lukas Berger; 12-27-2020 at 08:49 AM. |
![]() |
![]() |
![]() |
#9 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
Thank You for the update.
If the game is actually using the GO:AO for pitchers and translating this in some way into the game rating uniformly that is fine since the league totals modifiers will keep the entire league on track anyway. I cannot say that I have seen this rating be consistently higher than the pitcher actual GO:AO ratio translated to GB% though. My concern is that either there is some randomness in the import process or that the GO:AO ratio was not being translated correctly. Someone needs to check the database to see if the historical pitcher GO:AO ratios are in there. For 1871-1915 where individual pitcher data does not exist we should apply the team value though. I really do hope you use my suggestions in this thread to revamp fielding. There is a problem with the spread of the ratings as well as the minimum and maximums that the game is using for different positions. Right now you get players who were great Leftfielders importing with higher range ratings than most of the CF in a season, or you have primary CF with such high Range ratings that when they move to LF they are so much better than the average LF that they dominate. My system alleviates these things by keeping the average LF and RF range ratings about 40 point lower than CF. So if an average CF does play LF they will indeed be good, but they will still be within the top end of the true leftfielders for Range. A great LF though will only have a maximum Range as good as a CF or perhaps even slightly above average because we start them at a lower baseline and in this way if they move to CF they will only be about average, but the average LF will be at a significant disadvantage trying to play CF if they are 40 points or more below the average range rating. The methodologies I have described for taking infielder assists and outfielder putouts and adjusting them for their team and comparing it to the position average for the league really needs to be used. I have compiled all of the necessary information in those files, and I can provide the teams file that exceeded the limits for posting. If we do this properly we can really have great fielding results in the game. While fielding improvements is perhaps not an exciting new feature, once it is done correctly it will never have to be redone and we can translate the fielding ratings directly from traditional fielding statistics too. Please keep me informed. I will assist with the process. Please review my other thread about new ballpark factors. |
![]() |
![]() |
![]() |
#10 | |
OOTP Developments
Join Date: Aug 2007
Location: Nice, Côte d'Azur, France
Posts: 21,227
|
Quote:
Have you looked at the fielding ratings for the minor leagues at all? If we're going to revamp things, we're going to need figure out the best way of incorporating changes to the minors as well (and even more so with the sad news of Spritze's passing). So if you would have a chance to look at things there at bit and figure a way to translate that into the above matrix as well, that would be super helpful in getting us to a good starting point.
__________________
lukas@ootpdevelopments.com PreOrder Out of the Park Baseball 26! Need to upload files for us to check out? Instructions can be found here Last edited by Lukas Berger; 12-27-2020 at 10:01 AM. |
|
![]() |
![]() |
![]() |
#11 |
OOTP Developments
Join Date: Aug 2007
Location: Nice, Côte d'Azur, France
Posts: 21,227
|
I've already taken a look. It looks interesting, and I'd like to look more deeply into it with you and Markus at some point.
I suspect with all we have on our plate this year though, this is more likely to be something we'll have to table for now and look at next year, or some point in the future.
__________________
lukas@ootpdevelopments.com PreOrder Out of the Park Baseball 26! Need to upload files for us to check out? Instructions can be found here |
![]() |
![]() |
![]() |
#12 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
Thank You. The ballpark factors and import process in that other thread are not nearly as important as the fielding ratings.
|
![]() |
![]() |
![]() |
#13 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
Note: I need to make an update to the Double Play Formulas. The Player DP need to be multiplied by the team infield assists factor. I need to update the original post.
|
![]() |
![]() |
![]() |
#14 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
Ivan Rodriguez is the Career Leader for catchers in ZR on baseball reference since 1954 with 169 runs saved.
We can find his Errors and Passed Balls saved by comparing this to the league rate per IPout during the seasons he played. He made a total of 142 Errors and allowed 127 Passed Balls, for total of 269 over 61044 inningouts played. The league average catcher those seasons playing the same amount of inningouts averaged 312 total Errors plus Passed Balls in those seasons. For his career he then saved 312 – 269 = 43 Errors and Passed Balls. We can find his Caught Stealing above average by finding the league average Caught Stealing for his stolen base attempts against. For his career, the league average catcher would have had 440 caught stealing, but Rodriguez had 661. For his career, Rodriguez was 661 – 440 = 221 caught stealing above average. If we value catcher plays at 0.62 runs saved, which is what I have found published in the Fielding Bible for caught stealing, then we take his 43 errors and passed balls saved plus 221 caught stealing = 264 plays above average and multiply this by 0.62, we get 264*0.62 = 164 runs saved. This is essentially the same as what baseball reference reports too. |
![]() |
![]() |
![]() |
#15 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
Bill Mazeroski is the career leader for 2B in ZR on baseball reference since 1954 with 148 runs saved.
We can find his expected assists and compare it to his adjusted assists. For his career he has 330 assists above average, and we will give 0.5 runs saved for these plays. He saved 70 errors and made 201 DP above average. Saving an error results in an assist generally, so we do not want to count those twice, and a DP above average contains an assist already, but we can apply about a 0.15 run value bonus to every DP above average. For Bill Mazeroski we then get (330*0.5) + (201*0.15) = 195. This is slightly higher than what baseball reference reports but is still a reasonable value. For his career he has an Efficiency value of 1.057, meaning he is making 5.7% more assists than the average 2B and we see that in his best 3 consecutive seasons that he fielded at 1.126. I believe that targeting a 0.90 to 1.10 efficiency in a single season for 2B in OOTP is appropriate. |
![]() |
![]() |
![]() |
#16 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
I went through each position and looked at the top players at each position after adjusting their fielding statistics to compare them to league average. I suggest that these be the targets for defensive efficiency for results in a single season. These minimums and maximums are based on the top players and their top 3 consecutive seasons.
2B: 0.88-1.12 3B: 0.84-1.16 SS: 0.88-1.12 OF: 0.84-1.16 From 1871-2019 2B with +200 career assists: 19 players 3B with +200 career assists: 18 players SS with +200 career assists: 33 players LF with +200 career putouts: 5 players CF with +200 career putouts: 19 players RF with +200 career putouts: 13 players |
![]() |
![]() |
![]() |
#17 |
OOTP Developments
Join Date: Aug 2007
Location: Nice, Côte d'Azur, France
Posts: 21,227
|
Have you had a chance to consider at all how we can fit MiLB players into the proposed matrix?
__________________
lukas@ootpdevelopments.com PreOrder Out of the Park Baseball 26! Need to upload files for us to check out? Instructions can be found here |
![]() |
![]() |
![]() |
#18 |
Hall Of Famer
Join Date: Jun 2004
Posts: 4,251
|
Getting the full process correct for major leagues required team and league defensive efficiency, which is not available for the minor leagues, GO:AO ratio which is not available for the minor leagues, and Outs in Play for teams (this actually could be calculated as IPouts - K - CS), so I think perhaps we need a more basic process.
For example, for 2B/3B/SS we use Assists per iningout (do inningouts even exist for minor league players?), we then would need OOTP to find the league average Assists per inningout for that position by tallying it up for all the players in the league (I did this for every season in major league history and put it into that reference file). Then we take Player Rate/League Rate to get their defensive efficiency. The limitation of this is that it does not account for team defense, team outs in play (which affect opportunities), and groundball out rates. Perhaps calculating this for the player's entire career would be the best option for minor leagues, but OOTP would need to generate these tallies because we do not have a reference file. If we do not have player defensive innings, and I suspect that we do not have that for minor league players, then we are down to using Assists per game played. Given that the actual difference between fielders is generally fairly small, with most of the player being between 0.95-1.05 relative to the league at 2B and SS, we do not have a really good solution for getting things accurate. I honestly do not think it would be that bad to simply have most of the minor league players import very close to average for their position. We do have what we need to make significant improvement with the major league players currently. I know that ideally having one import system is the best option, but the requisite statistics do not exist as far as I can tell. If they did exist it would take years for me to compile all of that information for all of those teams in all of those leagues for all of those seasons for all of those positions. If we calibrate the ratings to work properly for major leagues, maybe we can just assign the minor league players a random value that fits their position and keep the distribution even more limited than for major leagues. For example we know for major leagues 2B/SS are limited to about 0.88-1.12 in defensive efficiency, but most players will actually be 0.95-1.05 in the league with very few players further from the league average. So if a minor leaguer is a 2Bmen we could have OOTP generate some set of ratings that will make him between 0.95 and 1.05. It may be possible to figure out something in which we can compare entire team defense across the same teams in a given league, basically defensive efficiency, and then apply that value to all the players from a given team. I will need to see if that can be done from team statistics that are available. |
![]() |
![]() |
![]() |
#19 |
Hall Of Famer
Join Date: Oct 2013
Posts: 2,339
|
Garlon/Lukas
Just ]wanted to thank you for all your work. It is updates like this that makes OOTP a great game and gets me to buy the each year. Looking forward to 22. |
![]() |
![]() |
![]() |
#20 | |
Minors (Single A)
Join Date: Nov 2020
Posts: 91
|
Quote:
Executives at large development companies bang their noggins on desks trying to develop communities like this one with users so heavily invested in bettering products. I haven't been around here too long, but am amazed at the quality of user contributions to the board and game. |
|
![]() |
![]() |
![]() |
Bookmarks |
|
|