2026-09-26 · NRFI Edge

New on the board: click a hitter, see his last five against today's pitcher

Every game card on the board carries a Top 3 row: the first three names in today’s posted lineup, with season on-base percentage and bat side. Those three are the first inning. Most nights nobody else on the team gets a plate appearance before the pitcher has a chance to put up a zero.

As of today, each of those names is a link. Click one and a panel opens with that hitter’s last five plate appearances against the pitcher he is about to face, newest first:

Above the table is the career line for the pair: hits, at-bats, plate appearances, walks, strikeouts. First-inning matchups are bolded in the inning column, because that is the inning we care about.

If a hitter has never faced today’s probable, his name is plain text. No link, no empty panel. About half the names on a typical slate stay plain, which is itself a useful signal: a lineup full of first-timers is a lineup with no book on the pitcher, and the pitcher has no book on them.

What it looks like

Today’s slate has Ketel Marte leading off for Arizona against Walker Buehler. Marte’s line against Buehler is 10-for-31 over 35 plate appearances. His last five:

DateInnResult
08/06/26B3Single
08/06/26B1Walk
07/06/26T4Groundout
07/06/26T2Strikeout
07/06/26T1Triple

Two first-inning meetings in those five trips, a triple and a walk. That is the kind of thing a first-inning bettor wants to know and had no easy way to find.

Bobby Witt Jr. against Tanner Bibee, same slate: 10-for-27 with 3 home runs across 32 plate appearances, but his last two first-inning trips against Bibee were both strikeouts. The career line says one thing and the first-inning history says another. You get both.

What it is not

Batter-versus-pitcher history is the most over-sold number in baseball commentary. Five plate appearances is five plate appearances. Thirty-five is still a small sample. A hitter who is 1-for-12 against someone is not “owned” by him; a hitter who is 6-for-12 does not “own” him. The spread you would expect from a coin flip covers both of those lines comfortably.

We built this anyway, for two reasons.

First, the first inning is short enough that the specific three hitters matter more than they do for a full-game bet. A full-game total washes out over 35 plate appearances a side. A first-inning total is three to six plate appearances, and they belong to the names on that row.

Second, the history carries information that is not in the sample size. Whether a pitcher has faced a hitter at all tells you about familiarity. The pitch count on each trip tells you whether the hitter is working him. A string of first-pitch groundouts and a string of eight-pitch walks are both “0-for-2,” and they are not the same 0-for-2. The panel shows the play, not just the outcome, so you can see which one you are looking at.

How it fits the models

The Full Count and The Heater do not use batter-versus-pitcher history, and this feature does not change either model’s number. The models are built on samples that are large enough to trust: the pitcher’s recent first innings, the offense’s recent first innings, season on-base rates for the top of the order, park and weather. Head-to-head history is not one of those inputs, and we are not going to pretend that clicking a name should move your read of the game by more than a little.

Think of it the way you would think of the umpire or the wind: context you check after the model has given you a number, to decide whether the number is missing something. If the model likes an NRFI and the top three have combined for one hit in fifteen trips against the pitcher, with short at-bats, that is agreement. If the model likes an NRFI and two of the three have taken him deep this year, you might want a better price.

Where the data comes from

Everything on the panel is the MLB Stats API, the same public source as the rest of the board. The play log is regular-season only. Spring training and exhibition games are excluded. The panel walks back through seasons until it finds five plate appearances, so a veteran matchup may reach back several years and a rookie matchup may show only this summer.

As with everything else on NRFI Edge, if the data is not there, we show nothing rather than a guess. A plain-text name means no history. An empty inning column would mean the API did not report one. We would rather leave a cell blank than fill it.

Go click some names. The board is at app.nrfiedge.com.