Brooks Baseball collects real-time data on pitches, all data, including balls and strikes. Their PitchFX Tool is pretty much the gold standard for this stuff. It’s accuracy is ridiculous. Every pitch thrown in every game. Every speed, rotation, release spot. You name it, they graph it. You can’t think of a name, they graph it. To say this site is awesome doesn’t do it justice. It’s way beyond awesome.
The above chart shows the four pitches thrown by Sean Marshall to Angel Pagan in the ninth inning of today’s game in relation to the strike zone. The strike zone is represented by the black box inside the graph. You see all four pitches are helpfully numbered. Note that pitch #3 is well inside the box. The box is the strike zone. Pitch #3 was a strike.
Pitch One: 84-mph slider, called a strike (the little red square, right next to the little green square)
Pitch Two: 75-mph curveball, fouled (the maroon square in the bottom left corner of the strike box)
Pitch Three: 90-mph fastball (the little green square). Called a ball. Clearly strike three.
Pitch Four: There shouldn’t have been a pitch four. There should have been “Have a seat, Angel” and one out to go. Instead, umpire Tim Welke gave us “In play (runs).” No kidding.