{
 "status": "ok",
 "sport": "mlb",
 "label": "DESCRIPTIVE_ONLY",
 "caveat": "DESCRIPTIVE_ONLY pitch-sequencing showcase over the local 2025 statcast pull: P(next pitch type | previous pitch type) within a plate appearance, one matrix per count-leverage class (leverage taken on the NEXT pitch). pitch_type is statcast's auto-classified code; matrix axes are the top-N league types (per-class coverage reported). Not a predictor; no advantage/return/money claim.",
 "source": "data/cache/statcast/statcast_fuller__2025.parquet",
 "as_of": "2026-07-25T11:13:31.944905+00:00",
 "n_pitches_total": 693037,
 "n_pitches_kept": 690493,
 "n_transitions": 512289,
 "floors": {
  "top_n_pitch_types": 8,
  "row_min_n": 200,
  "class_min_transitions": 2000,
  "adjacency": "strict pitch_number diff == 1 within (game_pk, at_bat_number, pitcher)",
  "leverage_basis": "count on the NEXT (to) pitch",
  "prob_note": "each P(next|prev) is over ALL transitions from that prev type (row_n_from); rows sum to <=1, remainder = next types off the top-N axis"
 },
 "leverage_definitions": {
  "all": "every transition (unconditional; charted matrix)",
  "behind": "balls > strikes on the next pitch (pitcher behind)",
  "even": "balls == strikes on the next pitch",
  "ahead": "strikes > balls on the next pitch (pitcher ahead)",
  "two_strike": "strikes == 2 on the next pitch (putaway lens -- OVERLAPS partition)",
  "three_ball": "balls == 3 on the next pitch (must-throw lens -- OVERLAPS partition)",
  "partition_note": "behind/even/ahead is a mutually-exclusive partition; two_strike/three_ball are overlapping lenses (NOT additive); 'all' is the union."
 },
 "pitch_types": [
  "FF",
  "SI",
  "SL",
  "CH",
  "ST",
  "FC",
  "CU",
  "FS"
 ],
 "chart_class": "all",
 "by_class": [
  {
   "class": "all",
   "overlapping": false,
   "definition": "every transition (unconditional; charted matrix)",
   "n_transitions_in_class": 512289,
   "n_in_matrix": 489035,
   "coverage": 0.9546,
   "row_n_from": [
    165179,
    77127,
    73567,
    51941,
    39607,
    39125,
    35596,
    16141
   ],
   "row_below_floor": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
   ],
   "count_matrix": [
    [
     71414,
     10013,
     24350,
     18472,
     10076,
     8744,
     11094,
     6359
    ],
    [
     10440,
     27764,
     10126,
     7491,
     8070,
     5870,
     4163,
     1634
    ],
    [
     22878,
     9626,
     26004,
     5726,
     1955,
     1988,
     2857,
     1698
    ],
    [
     17477,
     5699,
     4382,
     15117,
     2221,
     3532,
     2683,
     57
    ],
    [
     10169,
     7731,
     1643,
     3051,
     12587,
     2398,
     980,
     745
    ],
    [
     8655,
     5968,
     2783,
     4199,
     3132,
     9845,
     2618,
     1131
    ],
    [
     11214,
     4164,
     2981,
     4510,
     954,
     2509,
     7755,
     1408
    ],
    [
     5377,
     1098,
     1295,
     48,
     523,
     937,
     726,
     5921
    ]
   ],
   "prob_matrix": [
    [
     0.4323,
     0.0606,
     0.1474,
     0.1118,
     0.061,
     0.0529,
     0.0672,
     0.0385
    ],
    [
     0.1354,
     0.36,
     0.1313,
     0.0971,
     0.1046,
     0.0761,
     0.054,
     0.0212
    ],
    [
     0.311,
     0.1308,
     0.3535,
     0.0778,
     0.0266,
     0.027,
     0.0388,
     0.0231
    ],
    [
     0.3365,
     0.1097,
     0.0844,
     0.291,
     0.0428,
     0.068,
     0.0517,
     0.0011
    ],
    [
     0.2567,
     0.1952,
     0.0415,
     0.077,
     0.3178,
     0.0605,
     0.0247,
     0.0188
    ],
    [
     0.2212,
     0.1525,
     0.0711,
     0.1073,
     0.0801,
     0.2516,
     0.0669,
     0.0289
    ],
    [
     0.315,
     0.117,
     0.0837,
     0.1267,
     0.0268,
     0.0705,
     0.2179,
     0.0396
    ],
    [
     0.3331,
     0.068,
     0.0802,
     0.003,
     0.0324,
     0.0581,
     0.045,
     0.3668
    ]
   ],
   "top_transition": {
    "from": "FF",
    "to": "FF",
    "n": 71414,
    "p_given_from": 0.4323
   }
  },
  {
   "class": "behind",
   "overlapping": false,
   "definition": "balls > strikes on the next pitch (pitcher behind)",
   "n_transitions_in_class": 181178,
   "n_in_matrix": 174318,
   "coverage": 0.9621,
   "row_n_from": [
    59116,
    30297,
    24519,
    17860,
    12560,
    15105,
    11976,
    4986
   ],
   "row_below_floor": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
   ],
   "count_matrix": [
    [
     30400,
     4584,
     7820,
     5079,
     2341,
     3941,
     2555,
     1352
    ],
    [
     4202,
     14528,
     3121,
     1957,
     1975,
     2727,
     1050,
     306
    ],
    [
     8638,
     3998,
     8193,
     1396,
     401,
     916,
     497,
     318
    ],
    [
     6227,
     2677,
     1458,
     4281,
     691,
     1546,
     740,
     23
    ],
    [
     3325,
     3161,
     563,
     798,
     3248,
     1114,
     165,
     152
    ],
    [
     3600,
     2872,
     785,
     1216,
     735,
     4828,
     628,
     266
    ],
    [
     4077,
     1932,
     1016,
     1256,
     231,
     1105,
     2010,
     329
    ],
    [
     1869,
     519,
     499,
     14,
     143,
     430,
     173,
     1321
    ]
   ],
   "prob_matrix": [
    [
     0.5142,
     0.0775,
     0.1323,
     0.0859,
     0.0396,
     0.0667,
     0.0432,
     0.0229
    ],
    [
     0.1387,
     0.4795,
     0.103,
     0.0646,
     0.0652,
     0.09,
     0.0347,
     0.0101
    ],
    [
     0.3523,
     0.1631,
     0.3341,
     0.0569,
     0.0164,
     0.0374,
     0.0203,
     0.013
    ],
    [
     0.3487,
     0.1499,
     0.0816,
     0.2397,
     0.0387,
     0.0866,
     0.0414,
     0.0013
    ],
    [
     0.2647,
     0.2517,
     0.0448,
     0.0635,
     0.2586,
     0.0887,
     0.0131,
     0.0121
    ],
    [
     0.2383,
     0.1901,
     0.052,
     0.0805,
     0.0487,
     0.3196,
     0.0416,
     0.0176
    ],
    [
     0.3404,
     0.1613,
     0.0848,
     0.1049,
     0.0193,
     0.0923,
     0.1678,
     0.0275
    ],
    [
     0.3748,
     0.1041,
     0.1001,
     0.0028,
     0.0287,
     0.0862,
     0.0347,
     0.2649
    ]
   ],
   "top_transition": {
    "from": "FF",
    "to": "FF",
    "n": 30400,
    "p_given_from": 0.5142
   }
  },
  {
   "class": "even",
   "overlapping": false,
   "definition": "balls == strikes on the next pitch",
   "n_transitions_in_class": 127115,
   "n_in_matrix": 120965,
   "coverage": 0.9516,
   "row_n_from": [
    38880,
    16955,
    19068,
    15568,
    10167,
    9444,
    8537,
    4959
   ],
   "row_below_floor": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
   ],
   "count_matrix": [
    [
     14514,
     2290,
     6117,
     5104,
     2789,
     1982,
     3040,
     1789
    ],
    [
     2112,
     5063,
     2490,
     2039,
     2040,
     1195,
     1116,
     470
    ],
    [
     5870,
     2671,
     6205,
     1651,
     508,
     490,
     900,
     512
    ],
    [
     4971,
     1580,
     1356,
     4728,
     749,
     1093,
     813,
     12
    ],
    [
     2569,
     2138,
     412,
     825,
     3059,
     589,
     270,
     208
    ],
    [
     1916,
     1402,
     716,
     1192,
     863,
     2037,
     777,
     330
    ],
    [
     2597,
     1040,
     733,
     1111,
     250,
     591,
     1851,
     340
    ],
    [
     1602,
     329,
     410,
     18,
     185,
     294,
     260,
     1792
    ]
   ],
   "prob_matrix": [
    [
     0.3733,
     0.0589,
     0.1573,
     0.1313,
     0.0717,
     0.051,
     0.0782,
     0.046
    ],
    [
     0.1246,
     0.2986,
     0.1469,
     0.1203,
     0.1203,
     0.0705,
     0.0658,
     0.0277
    ],
    [
     0.3078,
     0.1401,
     0.3254,
     0.0866,
     0.0266,
     0.0257,
     0.0472,
     0.0269
    ],
    [
     0.3193,
     0.1015,
     0.0871,
     0.3037,
     0.0481,
     0.0702,
     0.0522,
     0.0008
    ],
    [
     0.2527,
     0.2103,
     0.0405,
     0.0811,
     0.3009,
     0.0579,
     0.0266,
     0.0205
    ],
    [
     0.2029,
     0.1485,
     0.0758,
     0.1262,
     0.0914,
     0.2157,
     0.0823,
     0.0349
    ],
    [
     0.3042,
     0.1218,
     0.0859,
     0.1301,
     0.0293,
     0.0692,
     0.2168,
     0.0398
    ],
    [
     0.323,
     0.0663,
     0.0827,
     0.0036,
     0.0373,
     0.0593,
     0.0524,
     0.3614
    ]
   ],
   "top_transition": {
    "from": "FF",
    "to": "FF",
    "n": 14514,
    "p_given_from": 0.3733
   }
  },
  {
   "class": "ahead",
   "overlapping": false,
   "definition": "strikes > balls on the next pitch (pitcher ahead)",
   "n_transitions_in_class": 203996,
   "n_in_matrix": 193752,
   "coverage": 0.9498,
   "row_n_from": [
    67183,
    29875,
    29980,
    18513,
    16880,
    14576,
    15083,
    6196
   ],
   "row_below_floor": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
   ],
   "count_matrix": [
    [
     26500,
     3139,
     10413,
     8289,
     4946,
     2821,
     5499,
     3218
    ],
    [
     4126,
     8173,
     4515,
     3495,
     4055,
     1948,
     1997,
     858
    ],
    [
     8370,
     2957,
     11606,
     2679,
     1046,
     582,
     1460,
     868
    ],
    [
     6279,
     1442,
     1568,
     6108,
     781,
     893,
     1130,
     22
    ],
    [
     4275,
     2432,
     668,
     1428,
     6280,
     695,
     545,
     385
    ],
    [
     3139,
     1694,
     1282,
     1791,
     1534,
     2980,
     1213,
     535
    ],
    [
     4540,
     1192,
     1232,
     2143,
     473,
     813,
     3894,
     739
    ],
    [
     1906,
     250,
     386,
     16,
     195,
     213,
     293,
     2808
    ]
   ],
   "prob_matrix": [
    [
     0.3944,
     0.0467,
     0.155,
     0.1234,
     0.0736,
     0.042,
     0.0819,
     0.0479
    ],
    [
     0.1381,
     0.2736,
     0.1511,
     0.117,
     0.1357,
     0.0652,
     0.0668,
     0.0287
    ],
    [
     0.2792,
     0.0986,
     0.3871,
     0.0894,
     0.0349,
     0.0194,
     0.0487,
     0.029
    ],
    [
     0.3392,
     0.0779,
     0.0847,
     0.3299,
     0.0422,
     0.0482,
     0.061,
     0.0012
    ],
    [
     0.2533,
     0.1441,
     0.0396,
     0.0846,
     0.372,
     0.0412,
     0.0323,
     0.0228
    ],
    [
     0.2154,
     0.1162,
     0.088,
     0.1229,
     0.1052,
     0.2044,
     0.0832,
     0.0367
    ],
    [
     0.301,
     0.079,
     0.0817,
     0.1421,
     0.0314,
     0.0539,
     0.2582,
     0.049
    ],
    [
     0.3076,
     0.0403,
     0.0623,
     0.0026,
     0.0315,
     0.0344,
     0.0473,
     0.4532
    ]
   ],
   "top_transition": {
    "from": "FF",
    "to": "FF",
    "n": 26500,
    "p_given_from": 0.3944
   }
  },
  {
   "class": "two_strike",
   "overlapping": true,
   "definition": "strikes == 2 on the next pitch (putaway lens -- OVERLAPS partition)",
   "n_transitions_in_class": 206724,
   "n_in_matrix": 195987,
   "coverage": 0.9481,
   "row_n_from": [
    67351,
    24616,
    31115,
    23758,
    17595,
    13126,
    14724,
    8357
   ],
   "row_below_floor": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
   ],
   "count_matrix": [
    [
     26152,
     3301,
     11108,
     7884,
     5327,
     2535,
     5573,
     3036
    ],
    [
     4227,
     5979,
     3837,
     2639,
     3347,
     1509,
     1707,
     726
    ],
    [
     9909,
     3222,
     11252,
     2452,
     840,
     657,
     1587,
     742
    ],
    [
     8328,
     2238,
     2303,
     6674,
     1196,
     1187,
     1417,
     21
    ],
    [
     4985,
     2768,
     694,
     1275,
     6044,
     732,
     582,
     346
    ],
    [
     3218,
     1733,
     1045,
     1378,
     1208,
     2544,
     1181,
     460
    ],
    [
     4625,
     1449,
     1323,
     1563,
     535,
     806,
     3793,
     588
    ],
    [
     2726,
     488,
     652,
     22,
     315,
     376,
     427,
     3194
    ]
   ],
   "prob_matrix": [
    [
     0.3883,
     0.049,
     0.1649,
     0.1171,
     0.0791,
     0.0376,
     0.0827,
     0.0451
    ],
    [
     0.1717,
     0.2429,
     0.1559,
     0.1072,
     0.136,
     0.0613,
     0.0693,
     0.0295
    ],
    [
     0.3185,
     0.1036,
     0.3616,
     0.0788,
     0.027,
     0.0211,
     0.051,
     0.0238
    ],
    [
     0.3505,
     0.0942,
     0.0969,
     0.2809,
     0.0503,
     0.05,
     0.0596,
     0.0009
    ],
    [
     0.2833,
     0.1573,
     0.0394,
     0.0725,
     0.3435,
     0.0416,
     0.0331,
     0.0197
    ],
    [
     0.2452,
     0.132,
     0.0796,
     0.105,
     0.092,
     0.1938,
     0.09,
     0.035
    ],
    [
     0.3141,
     0.0984,
     0.0899,
     0.1062,
     0.0363,
     0.0547,
     0.2576,
     0.0399
    ],
    [
     0.3262,
     0.0584,
     0.078,
     0.0026,
     0.0377,
     0.045,
     0.0511,
     0.3822
    ]
   ],
   "top_transition": {
    "from": "FF",
    "to": "FF",
    "n": 26152,
    "p_given_from": 0.3883
   }
  },
  {
   "class": "three_ball",
   "overlapping": true,
   "definition": "balls == 3 on the next pitch (must-throw lens -- OVERLAPS partition)",
   "n_transitions_in_class": 56148,
   "n_in_matrix": 54271,
   "coverage": 0.9666,
   "row_n_from": [
    20541,
    9213,
    7372,
    5437,
    3460,
    4360,
    2892,
    1581
   ],
   "row_below_floor": [
    false,
    false,
    false,
    false,
    false,
    false,
    false,
    false
   ],
   "count_matrix": [
    [
     11882,
     1753,
     2351,
     1311,
     754,
     1153,
     645,
     378
    ],
    [
     1809,
     4475,
     744,
     444,
     485,
     789,
     274,
     95
    ],
    [
     3050,
     1124,
     2221,
     335,
     97,
     265,
     164,
     71
    ],
    [
     2213,
     913,
     451,
     961,
     222,
     442,
     173,
     6
    ],
    [
     1093,
     872,
     145,
     181,
     802,
     277,
     51,
     29
    ],
    [
     1292,
     902,
     191,
     202,
     198,
     1307,
     159,
     64
    ],
    [
     1064,
     514,
     290,
     202,
     63,
     250,
     451,
     50
    ],
    [
     632,
     175,
     155,
     3,
     54,
     144,
     49,
     360
    ]
   ],
   "prob_matrix": [
    [
     0.5785,
     0.0853,
     0.1145,
     0.0638,
     0.0367,
     0.0561,
     0.0314,
     0.0184
    ],
    [
     0.1964,
     0.4857,
     0.0808,
     0.0482,
     0.0526,
     0.0856,
     0.0297,
     0.0103
    ],
    [
     0.4137,
     0.1525,
     0.3013,
     0.0454,
     0.0132,
     0.0359,
     0.0222,
     0.0096
    ],
    [
     0.407,
     0.1679,
     0.083,
     0.1768,
     0.0408,
     0.0813,
     0.0318,
     0.0011
    ],
    [
     0.3159,
     0.252,
     0.0419,
     0.0523,
     0.2318,
     0.0801,
     0.0147,
     0.0084
    ],
    [
     0.2963,
     0.2069,
     0.0438,
     0.0463,
     0.0454,
     0.2998,
     0.0365,
     0.0147
    ],
    [
     0.3679,
     0.1777,
     0.1003,
     0.0698,
     0.0218,
     0.0864,
     0.1559,
     0.0173
    ],
    [
     0.3997,
     0.1107,
     0.098,
     0.0019,
     0.0342,
     0.0911,
     0.031,
     0.2277
    ]
   ],
   "top_transition": {
    "from": "FF",
    "to": "FF",
    "n": 11882,
    "p_given_from": 0.5785
   }
  }
 ],
 "chart": "docs/img/pitch_sequencing.png"
}