Skip to content
BrowseNovel Pitch Repeat Excess
Descriptive only - a measured pattern, not a forecast.
Analytics module · Source as of 2026-09-16

Repeat-pitch excess: the same pitch comes back more often than the mix implies

Across 511,807 adjacent pitch pairs in the 2025 Statcast season a pitcher throws the same pitch type twice in a row 0.3533 of the time against the 0.3166 his own count-conditioned mix implies, an excess of 0.0367 (95 percent interval 0.0...

confirmednull (a finding)not testabledescriptivepending

How to read this figure

Every row reports n_pairs first, then the observed repeat rate, the leave-one-out expected rate and their difference with a game-cluster interval. A row below the floor is masked and keeps its count. In the outcome panels the difference is repeat minus switch inside the same cell, taken inside every resample, so the interval is paired.

Published panels

Measured population: 511,807 adjacent pitch pairs over 2,364 games and 864 pitchers. A pair is two pitches in a row inside one plate appearance thrown by the same pitcher. The baseline is that same pitcher's own mix at that same count with this pitch left out, so a pitch can never predict itself.

Coverage: 693,037 pitches in the source table, 514,630 adjacent pairs, 61 dropped for a pitcher change mid plate appearance, 2,384 dropped for a null or non-pitch type code, 378 dropped for having no leave-one-out baseline, 511,807 measured, of which 5,023 carry no per-pitch outcome code and sit out the outcome tables.

1. The three preregistered claims, decided only by whether the interval excludes zero
ClaimPreregistered directionMeasured value95 percent intervalVerdict
1. The repeat excess is positive overall.positive+0.03670.0348 to 0.0385CONFIRMED
2. The repeat excess is larger in pitcher-ahead counts than in counts where the pitcher is behind.positive-0.0081-0.0113 to -0.0049CONTRADICTED
3. Repeated pitches draw a lower rate of swings and misses than switched pitches at the same count.negative+0.00980.0079 to 0.0120CONTRADICTED

Scroll horizontally for all columns

Written into the producer before the first number was computed. A CONTRADICTED row is published at full size; it is the result, not a failure.

2. Repeat-pitch excess by count class -- 511,807 pairs
CellPairs (n)Repeat rateExpected by own mixExcess95 percent intervalExcludes zero
pitcher behind180,8710.38710.3394+0.04760.0451 to 0.0502yes
even127,0540.31760.3011+0.01650.0137 to 0.0195yes
pitcher ahead203,8820.34550.3059+0.03950.0370 to 0.0420yes
all pairs511,8070.35330.3166+0.03670.0348 to 0.0385yes

Scroll horizontally for all columns

Pitcher-ahead minus pitcher-behind is -0.0081 with interval -0.0113 to -0.0049, taken inside the same resample, which is the second preregistered claim.

3. Repeat-pitch excess by the raw pre-pitch count
CellPairs (n)Repeat rateExpected by own mixExcess95 percent intervalExcludes zero
0-189,6800.35940.2952+0.06430.0605 to 0.0679yes
0-246,5490.36560.3145+0.05110.0467 to 0.0556yes
1-066,8490.41040.3167+0.09370.0898 to 0.0975yes
1-169,3580.34370.2920+0.05170.0478 to 0.0558yes
1-267,6530.31310.3143-0.0012-0.0047 to 0.0024no
2-022,4960.37050.3436+0.02700.0211 to 0.0327yes
2-135,5610.32560.3148+0.01080.0060 to 0.0157yes
2-257,6960.28630.3121-0.0258-0.0295 to -0.0218yes
3-06,8410.50800.4663+0.04170.0339 to 0.0495yes
3-114,4390.42840.4055+0.02290.0159 to 0.0297yes
3-234,6850.37480.3534+0.02140.0168 to 0.0261yes

Scroll horizontally for all columns

the 0-0 count opens a plate appearance, so it is never the destination of an adjacent pair

4. Repeat-pitch excess by the family of the previous pitch
CellPairs (n)Repeat rateExpected by own mixExcess95 percent intervalExcludes zero
fastball281,8010.38810.3596+0.02850.0260 to 0.0308yes
breaking160,8610.30890.2654+0.04350.0408 to 0.0464yes
offspeed69,1450.31430.2601+0.05410.0504 to 0.0578yes

Scroll horizontally for all columns

A repeat means the same pitch_type code, not the same family; the family here labels the pitch that came first.

5. Swings and misses, repeat against switch at the same count -- 506,784 pairs
CellRepeat (n)Switch (n)Repeat rateSwitch rateDifference95 percent intervalExcludes zero
pitcher behind69,379109,7990.09970.1047-0.0051-0.0079 to -0.0021yes
even39,94985,8590.14640.1265+0.01990.0160 to 0.0242yes
pitcher ahead69,748132,0500.14190.1251+0.01680.0137 to 0.0202yes
standardized over the cells above+0.00980.0079 to 0.0120yes

Scroll horizontally for all columns

A swing and miss is the outcome code swinging_strike or swinging_strike_blocked. A foul tip is contact and is not counted here. The last row weights each count class by its share of pairs.

6. Called strikes plus swings and misses, and weak contact in play
CellRepeat (n)Switch (n)Repeat rateSwitch rateDifference95 percent intervalExcludes zero
called plus missed -- pitcher behind69,379109,7990.30360.2920+0.01160.0071 to 0.0159yes
called plus missed -- even39,94985,8590.23240.2049+0.02750.0227 to 0.0324yes
called plus missed -- pitcher ahead69,748132,0500.21320.1898+0.02340.0197 to 0.0273yes
weak contact -- pitcher behind13,43521,7660.54130.5436-0.0023-0.0132 to 0.0085no
weak contact -- even8,21119,1830.60670.6014+0.0053-0.0074 to 0.0184no
weak contact -- pitcher ahead12,34124,5640.63870.6350+0.0037-0.0063 to 0.0142no

Scroll horizontally for all columns

Weak contact is the share of tracked in-play pitches below 95 mph, over 99,500 in-play pairs. Standardized differences: +0.0203 (0.0179 to 0.0228) and +0.0020 (-0.0043 to 0.0085).

7. The same swing-and-miss difference inside destination pitch family
CellRepeat (n)Switch (n)Repeat rateSwitch rateDifference95 percent intervalExcludes zero
pitcher behind / fastball49,49665,2660.07540.0775-0.0021-0.0050 to 0.0010no
pitcher behind / breaking14,09029,7350.15610.1385+0.01760.0109 to 0.0246yes
pitcher behind / offspeed5,79314,7980.16950.1570+0.01250.0006 to 0.0235yes
even / fastball21,46540,5430.11330.0968+0.01650.0112 to 0.0218yes
even / breaking11,86929,3520.18420.1541+0.03010.0223 to 0.0382yes
even / offspeed6,61515,9640.18610.1514+0.03470.0239 to 0.0459yes
pitcher ahead / fastball37,39455,4030.10780.0968+0.01100.0071 to 0.0152yes
pitcher ahead / breaking23,25949,6130.18360.1464+0.03720.0314 to 0.0429yes
pitcher ahead / offspeed9,09527,0340.17520.1440+0.03110.0222 to 0.0401yes

Scroll horizontally for all columns

Holding the destination pitch family fixed, so the comparison is not a type-mix artifact. Standardized over these nine cells: +0.0172 (0.0152 to 0.0193).

Truncation check: rebuilt on the 1,191 games through 2025-06-29 (256,929 pairs), the overall excess is +0.0360 and the standardized swing-and-miss difference is +0.0091. Per-pitcher rows for the 389 pitchers at or above 500 pairs are published in the artifact, top +0.2185 and bottom -0.1024.

Verdict

Preregistered directions that survive the interval test: 1 of 3. (1) The repeat excess is 0.0367 overall, interval [0.0348, 0.0385] -- CONFIRMED. (2) Pitcher-ahead minus pitcher-behind is -0.0081, interval [-0.0113, -0.0049], so the excess is smaller in ahead counts than behind -- CONTRADICTED. (3) The count-class-standardized swing-and-miss difference is +0.0098, interval [0.0079, 0.012], so the repeated pitch draws more swings and misses -- CONTRADICTED; inside destination pitch family the same difference is +0.0172 (interval [0.0152, 0.0193]), so it is not only a type-mix artifact. Truncation check: on the first half of the season the overall excess is 0.0360 and the standardized swing-and-miss difference is +0.0091, both the same sign as the full season. Dropped from 514,630 adjacent pairs: 61 where the pitcher changed mid plate appearance, 2,384 carrying a null or non-pitch type code (a null code or one of PO, IN, UN), and 378 where the pitcher threw only one pitch at that count all season so no leave-one-out baseline exists, leaving 511,807 measured pairs.

This source has no chart. Its cited measurements appear below.

What it means

A pitcher returns to the pitch he just threw more often than his own selection rate at that count would produce by chance, and that is not a league-mix artifact because the mix it is measured against is his own. The outcome half then contradicts the intuition that a hitter who has just seen a pitch handles it better.

Caveats and confounds

Descriptive conditional frequencies, not a forecast and not a causal estimate. pitch_type is Statcast's automatic classification, so a misclassified pitch becomes a spurious switch. The repeat and switch groups differ in their destination type mix, which is why the outcome difference is published inside destination pitch family as well. Sequence choice is confounded with the count path that produced it, the hitter, the catcher and the score state, none of which are controlled here. One season, one league.