Skip to article
The Sporting Page Real Analysis. Not Corporate
The Sporting Page
Loading scores…
Connecting to scores…

MLB · Pitching Data

Kannon Kemp Hits 99.3 MPH in Four Hitless Arizona Fall League Innings

Kemp’s 58-pitch AFL outing combined high velocity, misses and soft contact, with two walks and a longer early workload.

Kannon Kemp in a Fort Wayne uniform beside an illustrative analysis panel
Kannon Kemp with Fort Wayne on August 18, 2026, before his Arizona Fall League stint. Frame: MiLB / MLB.com broadcast. Illustrative analytical panel: TSP. · Credit: MiLB / MLB.com broadcast

Kannon Kemp’s four hitless innings on October 17 paired a 99.3 mph fastball maximum with nine misses on 22 swings. The complete 58-pitch record shows why the result involved more than his hardest pitch: seven balls put in play all stayed below 95 mph.

The Peoria right-hander struck out five Scottsdale hitters and walked two. His four-seamer accounted for 21 pitches, 36.2% of the total, with 16 sinkers, 15 sliders, five changeups and one sweeper. The two fastball classifications together represented 63.8% of the outing.

His four-seamer averaged 97.2 mph. The 99.3 reading came in the second inning, when that classification averaged 97.4 across eight pitches. The fourth-inning average was 97.7 on four pitches. Those are small samples, but the inning sequence does not show a steady loss of four-seam speed.

The scoreless line also required work around his control. Kemp threw 26 balls among the 58 physical pitches, issued two walks and had a wild pitch. The first two innings required 35 pitches; the final two took 23. Hitless did not mean every count was comfortable.

Jett Williams’ third-inning strikeout illustrates that workload. Kemp used eight pitches, moving between sinkers, sliders and a changeup. Williams fouled three consecutive full-count pitches before a 96.0 mph sinker produced a caught foul tip for strike three. That foul tip is included among misses under the stated event definition.

Across the outing, Kemp’s nine misses in 22 swings produced a 40.9% rate. His previous AFL start, October 10, yielded five misses in 19 swings, or 26.3%, across 38 physical pitches. That comparison is limited to recorded calls and outcomes: the earlier game has no usable tracking measurements, so it cannot establish a velocity gain or repertoire change.

The contact in the October 17 outing was also favorable. All seven balls put in play had measured exit speeds, averaging 81.0 mph; the hardest was 92.9. A seven-ball sample does not establish a lasting ability to suppress hard contact, but it does describe a different route to outs from strikeouts alone.

The current outing therefore supplies a concrete combination of speed, misses and soft contact. The complete pitch record preserves the walks and extended counts alongside those strengths, with the missing measurements from the comparison start left unavailable.

Current outing pitch selection

Four-seam fastball: 36.2% (21 pitches)

Sinker: 27.6% (16 pitches)

Slider: 25.9% (15 pitches)

Changeup: 8.6% (5 pitches)

Sweeper: 1.7% (1 pitch)

Common 0–100% scale. October 10 had no classified tracking, so no pitch-type comparison is available. Outcome comparison: target 9 misses/22 swings; prior 5/19.
Cumulative physical pitches68014.0Inning 135.0Inning 247.0Inning 358.0Inning 4
Mean four-seam speed (mph); axis 80–1051058097.0Inning 197.4Inning 296.0Inning 397.7Inning 4

Four-seam inning sample sizes: inning 1: 7, inning 2: 8, inning 3: 2, inning 4: 4. Velocity and workload use separate axes; they do not establish causation.

A revealing plate appearance

Catcher view; pitch centers, not ball size12345678

  1. Sinker, 96.4 mph; 0–0; Ball
  2. Slider, 88.6 mph; 1–0; Called Strike
  3. Slider, 87.1 mph; 1–1; Ball
  4. Sinker, 97.1 mph; 2–1; Foul
  5. Changeup, 90.1 mph; 2–2; Ball
  6. Slider, 87.6 mph; 3–2; Foul
  7. Sinker, 96.3 mph; 3–2; Foul
  8. Sinker, 96.0 mph; 3–2; Foul Tip

The rectangle uses the first pitch’s recorded strike-zone bounds. Individual bounds remain in the ledger. Numbered markers preserve exact centers and may overlap.

Sources and method

The target ledger contains all 58 physical pitches from Baseball Savant’s gamefeed, matched by play ID, sequence, classification and pre-pitch count to the official final MLB record. Counts reconcile with official pitches, batters faced and strikeouts. Automatic calls and other nonpitch actions are excluded. Innings are calculated from outs.

The comparison is Kemp’s complete October 10 AFL start, game 867705: 38 physical pitches and 13 batters. Both official sequence and box score reconcile. It has no recorded pitch classifications, speeds, movement or contact measurements. Only observed calls, swing counts and official outcomes are comparable; no season baseline or velocity increase is asserted. All physical pitches remain in pitch-share denominators, including unclassified ones. Swinging strikes, blocked swinging strikes, foul tips and missed bunts count as misses; swings also include fouls and balls put in play. Hard contact is at least 95 mph on measured balls in play. Missing measurements remain unavailable.

The target pitch classifications and velocities are complete. All 38 pitches in the October 10 comparison lack speed, spin, extension, movement and pitch-location measurements, so those fields cannot support a between-start comparison. Different opponents, small inning samples and game situations limit comparisons.

Complete pitch explorer

58 pitches

Download the complete pitch ledger (CSV)

Every physical pitch in the declared target sample; missing measurements are shown as unavailable.
Date Inning Pitch Hitter Balls before Strikes before Type mph Call rpm Extension ft IVB in Horizontal in Plate x ft Plate z ft Zone bottom ft Zone top ft Exit mph Launch deg
2026-10-17 1 1 Jett Williams 0 0 FF 97.2 Ball 2222.0 6.273 12.8 2.6 -0.679 3.553 1.502 2.977 Unavailable Unavailable
2026-10-17 1 2 Jett Williams 1 0 FF 96.6 Foul 2172.0 6.337 13.9 5.8 0.565 2.338 1.502 2.977 Unavailable Unavailable
2026-10-17 1 3 Jett Williams 1 1 SI 98.4 Ball 2198.0 6.269 4.6 10.4 0.275 1.312 1.502 2.977 Unavailable Unavailable
2026-10-17 1 4 Jett Williams 2 1 FF 97.4 Ball 2162.0 6.219 12.6 0.8 0.087 4.084 1.502 2.977 Unavailable Unavailable
2026-10-17 1 5 Jett Williams 3 1 SI 96.6 Called Strike 2139.0 6.247 4.1 9.7 0.258 3.127 1.502 2.977 Unavailable Unavailable
2026-10-17 1 6 Jett Williams 3 2 SI 97.6 Ball 2170.0 6.308 4.7 12.4 0.082 3.189 1.502 2.977 Unavailable Unavailable
2026-10-17 1 7 Nathan Flewelling 0 0 FF 95.9 In play, out(s) 2132.0 6.297 13.0 2.4 0.459 2.881 1.665 3.299 82.0 29.0
2026-10-17 1 8 Zyhir Hope 0 0 SL 88.9 Ball In Dirt 2550.0 6.438 1.6 -4.7 1.042 0.344 1.579 3.13 Unavailable Unavailable
2026-10-17 1 9 Zyhir Hope 1 0 FF 97.8 Swinging Strike 2312.0 6.455 11.5 7.9 -0.407 2.841 1.579 3.13 Unavailable Unavailable
2026-10-17 1 10 Zyhir Hope 1 1 FF 96.6 Ball 2259.0 6.321 12.5 2.4 -0.573 3.641 1.579 3.13 Unavailable Unavailable
2026-10-17 1 11 Zyhir Hope 2 1 SL 88.3 Ball 2592.0 6.414 2.6 -3.0 2.03 1.467 1.579 3.13 Unavailable Unavailable
2026-10-17 1 12 Zyhir Hope 3 1 FF 97.3 In play, out(s) 2232.0 6.379 11.2 2.5 0.654 2.219 1.579 3.13 69.5 59.0
2026-10-17 1 13 Nehomar Ochoa Jr. 0 0 SL 88.6 Called Strike 2615.0 6.322 0.8 -5.3 0.221 2.084 1.71 3.388 Unavailable Unavailable
2026-10-17 1 14 Nehomar Ochoa Jr. 0 1 SI 97.3 In play, out(s) 2268.0 6.314 6.2 9.7 0.049 2.674 1.71 3.388 90.0 -29.0
2026-10-17 2 15 John Peck 0 0 SI 96.6 Swinging Strike 2128.0 6.23 4.9 12.6 -0.536 3.275 1.61 3.191 Unavailable Unavailable
2026-10-17 2 16 John Peck 0 1 FF 97.3 Ball 2363.0 6.355 14.2 2.8 0.261 4.118 1.61 3.191 Unavailable Unavailable
2026-10-17 2 17 John Peck 1 1 SI 97.6 Ball 2311.0 6.274 6.0 10.3 0.792 3.911 1.61 3.191 Unavailable Unavailable
2026-10-17 2 18 John Peck 2 1 SL 88.7 Called Strike 2598.0 6.239 3.7 -3.6 0.046 2.14 1.61 3.191 Unavailable Unavailable
2026-10-17 2 19 John Peck 2 2 FF 97.6 Swinging Strike 2368.0 6.279 14.4 1.0 -0.562 3.637 1.61 3.191 Unavailable Unavailable
2026-10-17 2 20 Eric Bitonti 0 0 FF 97.7 Called Strike 2446.0 6.344 14.2 6.2 -0.182 3.159 1.739 3.446 Unavailable Unavailable
2026-10-17 2 21 Eric Bitonti 0 1 CH 91.2 Ball 1975.0 6.311 9.6 15.6 0.428 1.197 1.739 3.446 Unavailable Unavailable
2026-10-17 2 22 Eric Bitonti 1 1 SL 88.2 Called Strike 2682.0 6.4 1.2 -5.6 -0.054 2.181 1.739 3.446 Unavailable Unavailable
2026-10-17 2 23 Eric Bitonti 1 2 FF 99.3 Ball 2409.0 6.381 14.5 3.1 -1.256 3.445 1.739 3.446 Unavailable Unavailable
2026-10-17 2 24 Eric Bitonti 2 2 FF 97.4 Ball 2351.0 6.375 14.9 4.8 -1.468 3.206 1.739 3.446 Unavailable Unavailable
2026-10-17 2 25 Eric Bitonti 3 2 SL 87.9 Ball 2621.0 6.154 -1.1 -5.0 -0.059 1.343 1.739 3.446 Unavailable Unavailable
2026-10-17 2 26 Waner Luciano 0 0 SL 88.1 Ball In Dirt 2581.0 6.362 4.4 -5.6 0.05 0.034 1.643 3.255 Unavailable Unavailable
2026-10-17 2 27 Waner Luciano 1 0 SI 96.6 Called Strike 2342.0 6.315 5.0 12.5 0.352 2.207 1.643 3.255 Unavailable Unavailable
2026-10-17 2 28 Waner Luciano 1 1 SI 96.0 Ball 2330.0 6.594 8.0 12.7 1.412 2.511 1.643 3.255 Unavailable Unavailable
2026-10-17 2 29 Waner Luciano 2 1 FF 96.4 In play, out(s) 2451.0 6.437 12.5 2.3 0.535 3.034 1.643 3.255 92.9 49.0
2026-10-17 2 30 Luke Davis 0 0 FF 97.0 Called Strike 2499.0 6.354 13.1 4.4 0.03 3.107 1.62 3.21 Unavailable Unavailable
2026-10-17 2 31 Luke Davis 0 1 FF 96.3 Foul 2368.0 6.435 14.8 5.2 -0.169 2.802 1.62 3.21 Unavailable Unavailable
2026-10-17 2 32 Luke Davis 0 2 SL 87.8 Ball 2504.0 6.538 1.4 -4.2 -0.269 0.413 1.62 3.21 Unavailable Unavailable
2026-10-17 2 33 Luke Davis 1 2 CH 91.1 Ball In Dirt 1984.0 6.506 3.4 15.2 1.351 -0.064 1.62 3.21 Unavailable Unavailable
2026-10-17 2 34 Luke Davis 2 2 CH 90.4 Ball 1911.0 6.402 5.6 16.3 0.707 0.856 1.62 3.21 Unavailable Unavailable
2026-10-17 2 35 Luke Davis 3 2 SL 88.7 Swinging Strike 2585.0 6.341 4.7 -4.7 0.227 1.56 1.62 3.21 Unavailable Unavailable
2026-10-17 3 36 Nick Monistere 0 0 SI 95.1 In play, out(s) 2329.0 6.423 5.0 13.2 -0.602 2.59 1.611 3.193 53.4 34.0
2026-10-17 3 37 Jett Williams 0 0 SI 96.4 Ball 2132.0 6.213 8.0 11.9 -0.687 4.166 1.502 2.977 Unavailable Unavailable
2026-10-17 3 38 Jett Williams 1 0 SL 88.6 Called Strike 2495.0 6.253 2.0 -7.1 0.718 2.27 1.502 2.977 Unavailable Unavailable
2026-10-17 3 39 Jett Williams 1 1 SL 87.1 Ball 2393.0 6.12 1.2 -5.8 0.112 1.121 1.502 2.977 Unavailable Unavailable
2026-10-17 3 40 Jett Williams 2 1 SI 97.1 Foul 2186.0 6.266 4.8 13.3 -0.776 2.592 1.502 2.977 Unavailable Unavailable
2026-10-17 3 41 Jett Williams 2 2 CH 90.1 Ball 1811.0 6.58 7.4 14.4 1.722 0.191 1.502 2.977 Unavailable Unavailable
2026-10-17 3 42 Jett Williams 3 2 SL 87.6 Foul 2552.0 6.237 2.3 -4.3 0.563 2.195 1.502 2.977 Unavailable Unavailable
2026-10-17 3 43 Jett Williams 3 2 SI 96.3 Foul 2247.0 6.326 6.1 13.7 -1.306 2.766 1.502 2.977 Unavailable Unavailable
2026-10-17 3 44 Jett Williams 3 2 SI 96.0 Foul Tip 2351.0 6.377 6.2 13.7 -0.451 2.513 1.502 2.977 Unavailable Unavailable
2026-10-17 3 45 Nathan Flewelling 0 0 SL 88.1 Ball 2573.0 6.59 1.4 -5.8 1.723 -0.081 1.665 3.299 Unavailable Unavailable
2026-10-17 3 46 Nathan Flewelling 1 0 FF 96.5 Ball 2371.0 6.615 15.4 2.8 2.165 2.282 1.665 3.299 Unavailable Unavailable
2026-10-17 3 47 Nathan Flewelling 2 0 FF 95.6 In play, out(s) 2358.0 6.399 11.0 6.0 0.257 2.783 1.665 3.299 90.1 62.0
2026-10-17 4 48 Zyhir Hope 0 0 SL 86.0 Called Strike 2402.0 6.178 2.3 -4.4 -0.728 3.059 1.579 3.13 Unavailable Unavailable
2026-10-17 4 49 Zyhir Hope 0 1 CH 88.5 Foul 1754.0 6.189 9.6 17.0 -0.736 1.481 1.579 3.13 Unavailable Unavailable
2026-10-17 4 50 Zyhir Hope 0 2 FF 97.3 Ball 2319.0 6.257 13.4 4.9 -0.227 3.995 1.579 3.13 Unavailable Unavailable
2026-10-17 4 51 Zyhir Hope 1 2 FF 98.2 Ball 2206.0 6.407 14.8 7.3 -1.442 2.168 1.579 3.13 Unavailable Unavailable
2026-10-17 4 52 Zyhir Hope 2 2 SL 88.2 Swinging Strike 2462.0 6.175 1.9 -4.8 -0.901 3.273 1.579 3.13 Unavailable Unavailable
2026-10-17 4 53 Nehomar Ochoa Jr. 0 0 SI 96.7 Called Strike 2253.0 6.306 5.4 13.8 0.497 2.255 1.71 3.388 Unavailable Unavailable
2026-10-17 4 54 Nehomar Ochoa Jr. 0 1 SI 95.7 In play, out(s) 2233.0 6.403 6.1 13.3 0.56 2.365 1.71 3.388 88.8 26.0
2026-10-17 4 55 John Peck 0 0 ST 81.7 Ball 2912.0 6.477 2.4 -13.7 -0.554 3.765 1.61 3.191 Unavailable Unavailable
2026-10-17 4 56 John Peck 1 0 FF 97.5 Swinging Strike 2261.0 6.548 14.5 5.9 0.624 2.077 1.61 3.191 Unavailable Unavailable
2026-10-17 4 57 John Peck 1 1 SI 96.0 Foul Tip 2216.0 6.224 5.9 12.1 -0.861 3.529 1.61 3.191 Unavailable Unavailable
2026-10-17 4 58 John Peck 1 2 FF 97.8 Swinging Strike 2224.0 6.485 15.8 5.9 -0.257 3.158 1.61 3.191 Unavailable Unavailable

Sources and notes

  1. MLB official final record: https://statsapi.mlb.com/api/v1.1/game/867693/feed/live
  2. Baseball Savant complete pitch data: https://baseballsavant.mlb.com/gf?game_pk=867693
  3. October 10 comparison tracking measurements are unavailable. Recorded pitch calls and outcomes remain available.