Game strategy / PNC Park Fit
Game strategy / PNC Park Fit

Who will hit better, or worse, in Pittsburgh?

PNC Park is the hardest park in baseball for right-handed home runs (Savant index 70, 77 once the noise in 209 home runs is taken out) and 2nd of 29 for left-handed doubles (130). The Winter Plan’s one acquisition, Isaac Paredes, pulls more balls in the air than any other right-handed bat on our lists, the profile PNC punishes (the batted-ball model has PNC turning right-handed hitters’ pulled balls into home runs at ×0.76 the league’s rate, ×0.97 up the middle). At PNC he loses 3.6 runs per 600 PA against an average park (−0.35 wins over his 562 plan PA). The plan’s 81.7 wins leave that out, because its WAR is park-adjusted. Counting park fit on both sides, the trade’s edge over the in-house option moves from +2.60 to +2.26 wins: the call holds.
For general manager, pro scouting Model card Savant park factors 2024–26 · by batting side
RHH home runs at PNC 70 29th of 29 · 30% below average · 77 after noise
LHH doubles at PNC 130 2nd of 29 · 121 after noise
Isaac Paredes at PNC −3.6 runs/600 PA vs. an average park · pull-air 32.2%, 1st of 47 RHH
The plan’s net park fit −0.15 wins hitters −1.5 runs, pitchers +0.1 runs saved · an average team nets about 0

The Winter Plan at PNC

Each branch’s 2027 hitters at their plan plate appearances, plus the runs the staff saves (or minus what it gives up) at its plan innings, in runs against an average park. Not in the plan’s wins, which use park-adjusted WAR. The plan’s other 620 PA and 236 IP go to replacement players, counted as average for park (about 0 runs).

BranchPlan winsHittersPitchers (runs saved)Net≈ WinsWins with park
Lowe leaves; third base in-house *79.1+1.8+0.1+1.9+0.1979.3
The plan: Lowe leaves; Isaac Paredes at third, Gonzales to second *81.7−1.5+0.1−1.4−0.1581.5
Lowe accepts the qualifying offer; Isaac Paredes too83.5+1.3+0.1+1.4+0.1483.6
Lowe accepts; no acquisition *80.8+3.9+0.1+4.0+0.4181.2

Park fit moves no branch by more than 0.41 wins, and it doesn’t change their order. Keeping Lowe (the accept branch) is worth +2.8 park runs a season over the plan, about +0.29 wins, not counted in its 83.5. * Termarr Johnson has no MLB record, so he counts as an average hitter of his side.

Leaves if he declines the QO Brandon Lowe Bats L · pull-air 26.2% · home runs at PNC ×1.01 (side-level ×0.99) +2.3 runs per 600 PA vs. an average park +2.3 runs, +0.23 wins a season at 583 PA; worth about $6.0M over a 3-year re-sign at $9.0M a win
The plan’s acquisition Isaac Paredes Bats R · pull-air 32.2% · home runs at PNC ×0.68 (side-level ×0.77) −3.6 runs per 600 PA vs. an average park −3.4 runs, −0.35 wins a season at 562 PA; −$3.1M at $9.0M a win

Pittsburgh’s 2027 hitters at PNC

The plan’s lineup, bench and call-ups (decisions feed), runs per 600 PA against an average park, and over each one’s plan PA

  1. Spencer Horwitz DH · L +2.2 +1.7
  2. Oneil Cruz CF · L +1.8 +1.3
  3. Ryan O'Hearn 1B · L +1.7 +1.3
  4. Bryan Reynolds LF · S +1.1 +1.1
  5. Nick Gonzales 2B · R −0.4 −0.3
  6. Konnor Griffin SS · R −1.2 −0.7
  7. Rafael Flores Jr. C · R −2.7 −1.2
  8. Isaac Paredes 3B · R · acquired −3.6 −3.4
  9. Esmerlyn Valdez RF · R −3.7 −2.1
  10. Jake Mangum CF · S · bench +1.4 +1.1
  11. Ronny Simon RF · S · bench +1.1 +0.1
  12. Endy Rodríguez C · S · bench +0.3 +0.1
  13. Jared Triolo SS · R · bench −1.0 −0.7
  14. Termarr Johnson L · call-up +1.6 +0.3*
  15. Nick Yorke 3B · R · call-up −1.9 0.0
  16. Jack Brannigan SS · R · call-up −2.3 −0.2
  17. Total 5,482 PA −1.5

Columns: per 600 PA, then runs over his plan PA. An average lineup at the same PA would get −0.3 (an average left-handed hitter +1.8 per 600, right-handed −1.8). The plan’s other 620 PA (of 6,102) go to replacement players, counted as an average hitter: 0.0 runs. * No MLB record: counted as an average hitter of his side.

Leaving this winter Brandon Lowe L · free agent if he declines the QO +2.3Henry Davis R · non-tender −2.3

Pittsburgh’s 2027 pitchers at PNC

The plan’s rotation, bullpen and call-ups (decisions feed). Runs allowed per 600 batters against an average park, from the hitters each one faces, then over his plan innings. Negative: PNC helps him.

  1. Mason Montgomery RP · 36% LHH −0.7 −0.3
  2. Noah Murdock call-up · 29% LHH −0.5 −0.1
  3. Lake Bachar call-up · 53% LHH −0.4 −0.1
  4. Brandon Eisert RP · 46% LHH −0.3 −0.1
  5. Evan Sisk RP · 47% LHH −0.3 −0.1
  6. Antwone Kelly call-up · 52% LHH −0.3 0.0
  7. Wilber Dotel RP · 53% LHH −0.2 −0.1
  8. Jared Jones SP · 55% LHH −0.1 −0.1
  9. Yohan Ramírez RP · 44% LHH −0.1 0.0
  10. Isaac Mattson RP · 49% LHH −0.1 0.0
  11. Khristian Curtis call-up · 59% LHH 0.0 0.0
  12. Luke Weaver RP · 51% LHH 0.0 0.0
  13. Braxton Ashcraft SP · 53% LHH 0.0 0.0
  14. Mitch Keller SP · 55% LHH +0.2 +0.2
  15. Bubba Chandler SP · 55% LHH +0.2 +0.2
  16. Paul Skenes SP · 55% LHH +0.3 +0.3
  17. Carmen Mlodzinski RP · 55% LHH +0.4 +0.2
  18. Runs allowed 1,200 IP · +0.1 to the team’s net −0.1

Runs allowed here; the branch table counts the same runs from the team’s side (runs saved), so the sign flips there. An average staff gives up 0.0 per 600 batters at PNC, the mirror of an average lineup: opponents play the same park. Side-level factors only for pitchers (no spray), and each pitcher’s rates are regressed to the league. The plan’s other 236 IP (of 1,436) go to replacement pitchers, counted as average for park. Outside arms are in the last table.

PNC Park by batting side

Savant index vs. an average park (100). Bar from 40 to 160 with a 95% band; warm is good for hitters. Ranks run from the most hitter-friendly park (1st; for strikeouts, the fewest); grey ranks can’t be told apart from average.

Left-handed hittersRight-handed hitters
Home runs 9814th 7029th
Doubles 1302nd 1087th
Triples 7022nd 7521st
Singles 9915th 1064th
Walks 10011th 9818th
Strikeouts 9911th 9914th
wOBA 1042nd 9821st
Runs 1082nd 9621st

Baseball Savant Statcast park factors, 3-year rolling (2024–26), by batting side. Statcast has 7,948 left-handed and 10,369 right-handed plate appearances at PNC in 2024–26; Savant’s own n (56,380) also counts the road games it compares them with. The calculations use each index after shrinking it toward 100 by its noise (right-handed home runs: 77).

If he played here: outside bats

Roster Builder candidates and the plan’s acquisition. Sorted by the effect against an average park; click a header to sort.

FromPath
Isaac Paredes 3B · RHOUWinter Plan −3.6−5.20.6832.2% ▲3.3 plan−0.353.0$13.3M
Riley Greene OF · LDETTrade · At a price +2.9+4.51.0019.7%2.9+0.283.2$9.3M
Kyle Stowers OF · LMIATrade · At a price +2.3+1.71.0022.8%1.8+0.202.0$4.0M
Dominic Canzone DH/OF · LSEATrade · At a price +2.3+6.90.9917.2%1.9+0.192.1$3.9M
Luis Arraez 2B · LPHIFree agent +2.1+3.50.9614.0%1.6+0.211.8$16.3M
CJ Abrams SS · LWSHTrade · Likely +2.0+0.70.9921.4%2.7+0.202.9$8.8M
Alec Burleson 1B/OF · LSTLTrade · At a price +2.0+5.40.9717.3%1.9+0.202.1$6.1M
Michael Massey 2B · LKCTrade · At a price +1.9+1.30.9822.1%1.2+0.151.4$4.1M
Spencer Jones OF · LNYYTrade · At a price +1.9+1.00.9921.8%0.8+0.110.9$780K
J.P. Crawford SS · LSEAFree agent +1.9+5.31.0014.5%1.2+0.161.4$9.1M
Jake Bauers 1B · LMILFree agent +1.8+3.20.9918.5%1.7+0.161.9$17.7M
Jazz Chisholm Jr. 2B · LNYYFree agent +1.6−0.31.0122.1%3.2+0.153.3$32.6M
Ian Happ LF · SCHCFree agent +1.6+3.10.9423.0%1.9+0.162.1$19.0M
Griffin Conine OF · LMIATrade · At a price +1.6+1.50.9819.9%1.3+0.101.4$780K
Nathaniel Lowe 1B · LCLEFree agent +1.6+1.70.9715.3%0.4+0.130.5$3.0M
Trent Grisham CF · LNYYFree agent +1.6−1.41.0021.4%1.2+0.131.4$7.9M
Cedric Mullins CF · LTBFree agent +1.5+1.80.9924.7%0.9+0.131.0$6.7M
Edouard Julien 2B · LCOLTrade · Likely +1.4−0.40.9512.2%−0.6+0.08−0.5$1.3M
Daulton Varsho CF · LHOUFree agent +1.1+1.50.9720.3%1.6+0.101.7$10.8M
Patrick Bailey C · SCLETrade · At a price +0.9+2.10.9216.7%1.8+0.071.9$2.7M
Angel Martínez OF · SCLETrade · At a price +0.9+2.20.9222.5%1.0+0.071.1$780K
Ben Williamson 2B/3B · RTBTrade · At a price +0.2+2.50.749.0%0.5+0.010.5$780K
Otto Lopez 2B/SS · RMIATrade · At a price −0.5+0.60.7611.0%3.5−0.063.5$6.6M
Alec Bohm 3B · RPHIFree agent −0.6−1.20.788.0%1.0−0.061.0$5.5M
Gleyber Torres 2B · RDETFree agent −0.7−0.60.7711.9%1.1−0.061.0$7.5M
Mauricio Dubón LF · RATLFree agent −0.9−0.80.6814.2%1.6−0.081.5$14.4M
Miguel Andujar 3B/DH/OF · RSD *Free agent −0.9−0.50.7215.6%0.2−0.050.1$1.7M
Ty France 1B · RSDFree agent −0.9−0.20.8015.2%1.0−0.081.0$10.8M
Yandy Díaz 1B/3B/DH · RTB *Trade · At a price −1.0−1.00.796.1%1.1−0.081.0$13.0M
Josh Jung 3B · RTEXTrade · Likely −1.1+2.00.7814.5%2.0−0.091.9$7.1M
Amed Rosario SS · RNYYFree agent −1.1−0.60.7715.2%0.0−0.06−0.1$1.0M
Yainer Diaz C · RHOUTrade · At a price −1.1−0.10.7913.7%1.7−0.081.6$6.1M
Carlos Narváez C · RBALTrade · At a price −1.3−1.50.7813.9%0.8−0.080.7$780K
Matt Vierling OF · RDETTrade · At a price −1.4−0.90.7510.0%0.3−0.090.2$3.3M
Tyrone Taylor LF · RCHCFree agent −1.6+0.20.7124.2% ▲0.8−0.100.7$7.0M
Agustín Ramírez C/DH · RMIATrade · At a price −1.6+0.10.7915.3%0.2−0.110.1$780K
Tyler Stephenson C · RCINFree agent −1.6−2.40.7919.0%1.5−0.131.4$11.4M
Jordan Walker OF · RSTLTrade · At a price −1.7−0.80.8013.6%0.9−0.160.8$2.7M
Carson Kelly C · RCHCFree agent −1.8−0.50.7618.5%1.7−0.141.6$14.5M
Ryan Vilade OF · RTBTrade · At a price −1.8−1.80.7916.2%0.5−0.110.4$780K
Randy Arozarena LF · RSEAFree agent −1.9+2.90.7914.8%2.6−0.202.4$32.3M
Austin Riley 3B · RATLTrade · At a price −1.9−2.10.7920.8% ▲1.3−0.181.1$22.0M
Edmundo Sosa LF · RPHIFree agent −1.9−2.50.7815.0%1.3−0.111.2$8.5M
Max Muncy 3B · RATH *Trade · At a price −1.9−1.90.7917.6%−0.1−0.12−0.2$780K
Luis Robert Jr. OF · RBALFree agent −1.9−1.20.7918.4%0.7−0.120.5$4.1M
Jorge Soler DH/OF · RLAAFree agent −1.9−0.70.8021.3% ▲−0.5−0.11−0.6$1.2M
Taylor Ward DH · RSEAFree agent −2.0−1.70.7815.1%1.2−0.191.0$9.2M
Christian Encarnacion-Strand 1B/3B · RBALTrade · At a price −2.0−2.30.7924.0% ▲0.7−0.110.6$780K
Ryan Jeffers C · RMINFree agent −2.0−4.60.7717.2%1.8−0.151.7$15.8M
Jose Siri OF · RLAATrade · Likely −2.0−2.00.7919.9% ▲0.5−0.110.4$5.6M
Jeremy Peña SS · RHOUTrade · At a price −2.0−1.70.7420.0% ▲3.2−0.173.0$18.2M
Matt Chapman 3B · RSFTrade · At a price −2.2+0.30.7915.2%1.8−0.151.7$25.2M
Curtis Mead 1B/3B · RBOS *Trade · At a price −2.2−2.50.7517.0%0.9−0.150.8$780K
Jo Adell OF · RCLETrade · At a price −2.3−1.60.8216.7%0.7−0.230.4$5.2M
Dillon Dingler C · RDETTrade · At a price −2.3−1.90.7720.2% ▲3.7−0.223.5$780K
Randal Grichuk OF · RCWSFree agent −2.5−3.70.7819.5%0.5−0.130.4$5.2M
Ramón Laureano LF · RSDFree agent −2.5−2.60.7818.4%1.0−0.150.8$5.5M
Royce Lewis 3B · RMINTrade · At a price −2.5−4.90.7424.8% ▲0.9−0.220.6$3.7M
Seiya Suzuki RF · RCHCFree agent −2.8−1.60.7821.6% ▲2.6−0.282.3$31.3M
Casey Schmitt 2B/3B · RSFTrade · At a price −2.8−0.30.7923.8% ▲1.4−0.211.2$2.9M
Christian Walker 1B · RHOUTrade · At a price −2.8−3.30.7918.0%0.5−0.200.3$20.0M
Spencer Steer 1B/OF · RCINTrade · Likely −2.9−3.10.7423.0% ▲0.9−0.220.7$4.3M
Heriberto Hernández OF · RMIATrade · At a price −2.9−0.30.8022.0% ▲1.6−0.241.4$780K
Jake Burger 1B/3B · RTEXTrade · Likely −3.2+0.20.7817.1%0.6−0.300.3$4.2M
Andrés Chaparro 1B/DH · RWSHTrade · At a price −3.2−3.90.7423.4% ▲0.5−0.180.3$780K
Shea Langeliers C · RATH *Trade · At a price −3.3−3.30.8019.7% ▲2.4−0.272.1$7.5M
Eugenio Suárez DH · RCINFree agent −4.7−6.00.7725.3% ▲1.0−0.330.7$6.7M

“vs. avg park” is the part of PNC a hitter’s park-adjusted WAR leaves out: it is the number to add to the Roster Builder’s and the Winter Plan’s WAR, and “Park wins” does that at his 2027 projected PA. “vs. his parks” is how his stat line would change from the parks he played in (2024–26, weighted like his rates); it is what raw rates such as the Lineup Lab’s would see. ▲ marks right-handed hitters in the top quarter for pulling the ball in the air (19.6%+ of batted balls); their home-run factor already reflects their spray. * Part of his home games came in a park with no Savant factor (the Rays’ 2025 season, the Athletics), counted as average. Park fit is a tiebreaker of a few runs for most bats; the largest effect here is 0.35 wins a season. Price a bat in the Roster Builder or the Trade Builder; both, the Free-Agent Board and the Lineup Lab show his park fit beside him.

If he pitched here: outside arms

Roster Builder starters and relievers, sorted by runs allowed per 600 batters at PNC against an average park (negative: PNC helps him). Park wins are to the team, at his 2027 projected innings.

PitcherFromPathvs. avg parkvs. his parksLHH2027 WARPark winsWAR + park2027 cost
Shota Imanaga SP · LCHCFree agent −1.8−0.625%1.3+0.221.5$9.7M
Kyle Freeland SP · LCOLTrade · Likely −1.6−8.522%0.9+0.161.1$17.0M
Jacob Lopez SP · LATHTrade · At a price −1.6−1.625%1.1+0.161.3$780K
Nick Lodolo SP · LCINTrade · Likely −1.4−1.722%1.2+0.141.3$5.9M
Matthew Liberatore SP · LSTLTrade · At a price −1.3+0.326%1.4+0.161.6$4.1M
Sean Manaea SP · LNYMTrade · At a price −1.3−0.126%0.7+0.120.8$25.0M
Cole Ragans SP · LKCTrade · At a price −1.1−2.125%1.5+0.081.6$7.6M
Andrew Abbott SP · LCINTrade · At a price −1.1−1.425%2.0+0.132.2$3.7M
Yusei Kikuchi SP · LLAATrade · Likely −1.0−0.522%1.0+0.071.0$21.0M
Mitchell Parker RP · LWSHTrade · At a price −1.0−1.827%0.6+0.080.7$1.1M
Joey Cantillo SP · LCLETrade · At a price −0.9+0.126%2.0+0.112.1$780K
Matthew Boyd SP · LCHCFree agent −0.8+0.625%1.3+0.071.3$9.9M
Trevor Rogers SP · LBALFree agent −0.8−1.223%3.3+0.103.4$25.9M
Cade Povich SP · LBALTrade · At a price −0.8−1.527%0.9+0.060.9$780K
Foster Griffin SP · LCLEFree agent −0.7−0.927%1.8+0.081.8$13.2M
Tarik Skubal SP · LLADFree agent −0.7−0.720%4.8+0.084.9$40.2M
Connor Prielipp SP · LMINTrade · At a price −0.7−1.929%1.8+0.071.9$780K
MacKenzie Gore SP · LTEXTrade · Likely −0.6+0.326%2.8+0.072.8$11.7M
Patrick Sandoval SP · LBOSFree agent −0.5−0.623%1.3+0.041.3$8.0M
Ian Seymour RP · LTBTrade · At a price −0.5+0.134%1.1+0.041.2$780K
Dylan Lee RP · LATLTrade · At a price −0.4−0.240%1.0+0.021.0$4.3M
Kris Bubic SP · LLADFree agent −0.4−1.624%2.1+0.032.1$11.4M
Nick Pivetta SP · RSDFree agent −0.3+0.250%1.5+0.021.6$10.5M
Alex Vesia RP · LLADFree agent −0.3−0.940%0.9+0.010.9$9.7M
Michael Wacha SP · RKCTrade · At a price −0.1−1.355%1.9+0.011.9$14.0M
Sean Newcomb RP · LCWSFree agent −0.10.035%0.9+0.010.9$12.6M
Ryne Nelson SP · RAZTrade · At a price −0.1−1.649%1.0+0.011.0$3.8M
Gregory Soto RP · LPITRe-sign −0.1−0.239%0.80.000.8$9.2M
Samy Natera Jr. RP · LLAATrade · At a price 0.0+1.443%0.80.000.8$780K
Grant Holmes SP · RATLTrade · At a price 0.0+0.354%0.90.000.9$780K
Andrés Muñoz RP · RSEATrade · At a price 0.0+4.750%1.00.000.9$8.0M
José A. Ferrer RP · LSEATrade · At a price 0.0+1.941%0.60.000.6$1.7M
David Peterson SP · LCHCFree agent 0.0+1.626%1.90.001.9$12.7M
Kirby Yates RP · RPITRe-sign +0.1+1.243%0.20.000.2$3.3M
Jack Perkins RP · RATHTrade · At a price +0.1+0.154%0.7−0.010.7$780K
Kevin Gausman SP · RCHCFree agent +0.1−0.352%1.8−0.011.8$16.6M
Sonny Gray SP · RBOSFree agent +0.1+1.056%1.7−0.011.7$16.7M
David Bednar RP · RNYYFree agent +0.1−0.150%1.2−0.011.2$16.9M
Jack Leiter SP · RTEXTrade · At a price +0.1+3.153%1.2−0.011.2$780K
Edward Cabrera SP · RCHCTrade · At a price +0.1+0.955%0.8−0.010.8$4.5M
Jack Flaherty SP · RDETFree agent +0.1+0.354%1.7−0.011.7$10.8M
Tanner Bibee SP · RCLETrade · At a price +0.2+1.556%1.8−0.021.7$7.4M
Grant Wolfram RP · LBALTrade · Likely +0.2−0.649%0.7−0.010.7$780K
Brandon Sproat SP · RMILTrade · At a price +0.2+1.553%0.7−0.020.7$780K
Jacob deGrom SP · RTEXTrade · Likely +0.2+3.055%1.6−0.011.6$37.0M
Brandon Woodruff SP · RMILFree agent +0.2+1.752%1.5−0.011.5$9.8M
Orion Kerkering RP · RPHITrade · At a price +0.2−0.844%0.7−0.010.7$1.6M
Casey Mize SP · RSDFree agent +0.2+0.754%2.1−0.022.1$14.2M
Hunter Greene SP · RCINTrade · At a price +0.2−0.451%1.9−0.021.9$15.3M
Adrian Morejon RP · LSDFree agent +0.2+1.741%1.9−0.011.9$23.2M
Chad Patrick RP · RMILTrade · At a price +0.2+1.748%1.1−0.021.1$780K
Freddy Peralta SP · RTBFree agent +0.3+1.556%2.1−0.032.0$13.8M
Grayson Rodriguez SP · RLAATrade · At a price +0.3+0.855%0.8−0.020.8$1.2M
Aaron Civale RP · RCHCFree agent +0.3+1.251%0.7−0.030.7$7.5M
Tyler Mahle SP · RATLFree agent +0.3+2.151%1.9−0.031.8$13.5M
Will Vest RP · RDETTrade · At a price +0.3+0.744%0.7−0.010.6$4.9M
Luis Castillo SP · RCWSTrade · At a price +0.3+5.152%0.9−0.030.8$24.1M
Trevor McDonald SP · RSFTrade · At a price +0.3+2.255%1.1−0.031.1$780K
David Sandlin SP · RCWSTrade · At a price +0.3+1.060%0.7−0.020.7$780K
Michael Soroka SP · RAZFree agent +0.3−0.457%2.0−0.032.0$14.5M
Andrew Morris RP · RMINTrade · At a price +0.3−0.450%0.8−0.020.8$780K
Cade Smith RP · RCLETrade · At a price +0.3+1.352%2.1−0.022.0$4.2M
Dustin May SP · RMILFree agent +0.4+1.459%1.9−0.041.8$13.3M
Jhoan Duran RP · RPHITrade · At a price +0.4−0.653%1.8−0.021.8$9.7M
George Kirby SP · RSEATrade · At a price +0.4+5.551%2.6−0.052.5$9.6M
Nick Martinez SP · RTBFree agent +0.4+0.851%1.5−0.041.5$13.7M
Seth Lugo SP · RKCTrade · At a price +0.5−0.559%0.8−0.040.8$21.5M
Brady Singer SP · RCINFree agent +0.6−0.360%1.2−0.071.1$5.1M
Sandy Alcantara SP · RMIAFree agent +0.6+1.156%2.1−0.092.0$16.4M

“vs. avg park” is runs allowed per 600 batters against an average park, the part of PNC his park-adjusted WAR leaves out; “Park wins” turns it into wins to the team at his 2027 projected innings (4.31 batters an inning, 9.7 runs a win). “vs. his parks” is how his runs allowed would change from the parks he pitched in. Side-level factors only (no spray), and his rates are regressed to the league. As for bats, park fit is a tiebreaker: the largest effect here is 0.22 wins a season. The Free-Agent Board and the Roster Builder show the same park wins beside each player.

Does it work?

Hitters who changed home parks, and the spray model’s own checks

Change in home-minus-road wOBA for 38 hitters who changed home parks (2024→25, 2025→26, 150+ PA each side)
Error (RMSE) 74 pts with no park, 70 side-level, 70 spray-aware; r = 0.41 / 0.42 The factors predict the direction of the change (r = 0.41). The change in a hitter’s home-minus-road split varies by 74 wOBA points from one season to the next, so the error barely moves. Spray awareness changes the error by 0.2 pts, well inside what 38 hitters can detect: this test can’t judge the spray model, the held-out balls below can. The factors cover the same seasons, so this is not fully out of sample.
Spray model
Held-out 2026 balls: park-specific home-run rates beat the league’s by 208 log-likelihood points, against 96 for the earlier model that shrank every bin straight toward the league. Each park’s rate in a region (pull direction × launch angle) is shrunk toward the league’s (prior worth 10 expected home runs), and each bin toward its region (40 balls), on the log-odds scale. Check: the model puts PNC at ×0.82 for right-handed home runs (×0.78 before shrinking, on 209 home runs), against Savant’s 70 (77 after shrinking); left-handed ×0.91 against 98 (99). Both measure the same park with different methods and noise.
A hitter’s PNC adjustment
Repeats at r = 0.66 between odd and even games (391 hitter-sides), and 89% of its consistent spread is not park noise (40 bootstrap redraws of every park’s balls: SD 0.017 of 0.050). It is shrunk toward ×1.00 by both.
Keystone is an independent portfolio project. It is not affiliated with Major League Baseball or any club. Data: MLB Stats API, Baseball Savant, FanGraphs. Used under their terms for individual, non-commercial use.