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:
- the date of the game
- the inning and the number of outs when he stepped in
- the result: single, strikeout, walk, fly out, home run
- the play as MLB scored it, and how many pitches it took
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:
| Date | Inn | Result |
|---|---|---|
| 08/06/26 | B3 | Single |
| 08/06/26 | B1 | Walk |
| 07/06/26 | T4 | Groundout |
| 07/06/26 | T2 | Strikeout |
| 07/06/26 | T1 | Triple |
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.