Kansas City Royals vs Baltimore Orioles prediction — July 12, 2026
The Oracle has locked its pick for this game.
Its winner, run total and first-inning call, plus the full reasoning, are ready to read.
What the AIs predict
The AI Index →Starting Pitchers
park ×1.03 · temp ×1.024 · expected total 10.3Each starter's baseline (shrunk to league by sample) blended with the bullpen over the park's typical starter innings, then scaled by park run factor and game-time temperature. Descriptive, not a market edge.
Head to Head 2026 season
Team Data (season)
| KC | BAL | |
|---|---|---|
| 38-58 | Record | 45-51 |
| 4.26 | Runs / g | 4.57 |
| 5.11 | Runs allowed / g | 4.83 |
| 43% | Scored first | 46% |
| 30% | Cover -1.5 | 40% |
| 54% | Cover +1.5 | 61% |
Form & Market Trends
| L10 | Szn | Prev | |
|---|---|---|---|
| Win | 30% | 40% | 51% |
| Cover -1.5 | 30% | 30% | 36% |
| Cover +1.5 | 30% | 54% | 63% |
| Lead after 5 (F5 spread) | 20% | 34% | 43% |
| L10 | Szn | Prev | |
|---|---|---|---|
| Over 8.5 (game) | 30% | 46% | 42% |
| Team over 4.5 | 30% | 39% | 33% |
| Team F5 over 2.5 | 30% | 36% | 38% |
| Run in 1st (RFI) | 70% | 52% | 46% |
| Extra innings | 0% | 7% | 7% |
| L10 | Szn | Prev | |
|---|---|---|---|
| Race to 3 | 20% | 38% | 43% |
| Race to 4 | 20% | 32% | 35% |
| Race to 5 | 20% | 24% | 26% |
| Race to 6 | 10% | 19% | 25% |
| Race to 7 | 10% | 13% | 19% |
| L10 | Szn | Prev | |
|---|---|---|---|
| Win | 60% | 47% | 46% |
| Cover -1.5 | 50% | 40% | 30% |
| Cover +1.5 | 70% | 61% | 61% |
| Lead after 5 (F5 spread) | 60% | 36% | 40% |
| L10 | Szn | Prev | |
|---|---|---|---|
| Over 8.5 (game) | 30% | 53% | 44% |
| Team over 4.5 | 50% | 47% | 36% |
| Team F5 over 2.5 | 70% | 41% | 39% |
| Run in 1st (RFI) | 40% | 47% | 51% |
| Extra innings | 0% | 6% | 7% |
| L10 | Szn | Prev | |
|---|---|---|---|
| Race to 3 | 70% | 41% | 46% |
| Race to 4 | 30% | 36% | 38% |
| Race to 5 | 40% | 38% | 31% |
| Race to 6 | 30% | 30% | 20% |
| Race to 7 | 10% | 21% | 14% |
Cover -1.5 = won by 2+; Cover +1.5 = lost by ≤1 or won. F5 = first five innings. RFI = a run scored in the 1st. Race to N = team first to N runs. Descriptive; low-n splits are noisy.
Confirmed Lineups
Tap a batter for tonight's matchup splits — vs the opposing starter's hand, in the game's temperature, and at this park (vs their overall).
KC Kansas City Royals Confirmed
1 Carter Jensen L 0.772
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.251 | 0.802 | 14 | 82g |
| Hot (80°+) | 0.258 | 0.808 | 6 | 34g |
| at Oriole Park at Camden Yards | 0.000 | 0.125 | 0 | 2g |
| Overall | 0.250 | 0.772 | 16 | 108g |
2 Bobby Witt Jr. R 0.883
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.316 | 0.919 | 61 | 315g |
| Hot (80°+) | 0.325 | 0.972 | 35 | 147g |
| at Oriole Park at Camden Yards | 0.227 | 0.659 | 2 | 10g |
| Overall | 0.305 | 0.883 | 68 | 414g |
3 Jac Caglianone L 0.674
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.215 | 0.679 | 17 | 115g |
| Hot (80°+) | 0.198 | 0.606 | 9 | 57g |
| at Oriole Park at Camden Yards | 0.375 | 1.125 | 1 | 2g |
| Overall | 0.219 | 0.674 | 22 | 151g |
4 Lane Thomas R 0.679
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.206 | 0.630 | 15 | 179g |
| Hot (80°+) | 0.266 | 0.830 | 17 | 102g |
| at Oriole Park at Camden Yards | 0.000 | 0.000 | 0 | 5g |
| Overall | 0.222 | 0.679 | 28 | 260g |
5 Vinnie Pasquantino L 0.751
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.254 | 0.752 | 45 | 292g |
| Hot (80°+) | 0.268 | 0.819 | 26 | 128g |
| at Oriole Park at Camden Yards | 0.242 | 0.797 | 2 | 9g |
| Overall | 0.253 | 0.751 | 57 | 366g |
6 Salvador Perez R 0.707
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.242 | 0.719 | 56 | 310g |
| Hot (80°+) | 0.270 | 0.792 | 29 | 140g |
| at Oriole Park at Camden Yards | 0.355 | 0.806 | 1 | 8g |
| Overall | 0.243 | 0.707 | 69 | 407g |
7 Michael Massey L 0.692
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.256 | 0.695 | 24 | 208g |
| Hot (80°+) | 0.260 | 0.738 | 9 | 82g |
| at Oriole Park at Camden Yards | 0.333 | 0.913 | 1 | 7g |
| Overall | 0.257 | 0.692 | 24 | 259g |
8 Josh Rojas L 0.599
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.219 | 0.616 | 9 | 180g |
| Hot (80°+) | 0.163 | 0.452 | 1 | 46g |
| at Oriole Park at Camden Yards | 0.160 | 0.450 | 0 | 7g |
| Overall | 0.211 | 0.599 | 11 | 225g |
9 Isaac Collins S 0.721
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.257 | 0.746 | 10 | 160g |
| Hot (80°+) | 0.268 | 0.818 | 6 | 56g |
| at Oriole Park at Camden Yards | 0.333 | 1.167 | 1 | 2g |
| Overall | 0.247 | 0.721 | 14 | 232g |
BAL Baltimore Orioles Confirmed
1 Gunnar Henderson L 0.798
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.267 | 0.816 | 53 | 295g |
| Hot (80°+) | 0.288 | 0.879 | 29 | 154g |
| at Oriole Park at Camden Yards | 0.264 | 0.812 | 43 | 211g |
| Overall | 0.262 | 0.798 | 71 | 410g |
2 Taylor Ward R 0.763
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.232 | 0.743 | 54 | 318g |
| Hot (80°+) | 0.284 | 0.842 | 17 | 103g |
| at Oriole Park at Camden Yards | 0.257 | 0.713 | 3 | 57g |
| Overall | 0.242 | 0.763 | 67 | 408g |
3 Dylan Beavers L 0.721
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.247 | 0.753 | 5 | 66g |
| Hot (80°+) | 0.250 | 0.683 | 1 | 18g |
| at Oriole Park at Camden Yards | 0.240 | 0.761 | 4 | 41g |
| Overall | 0.230 | 0.721 | 6 | 77g |
4 Pete Alonso R 0.826
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.254 | 0.830 | 72 | 309g |
| Hot (80°+) | 0.265 | 0.871 | 31 | 121g |
| at Oriole Park at Camden Yards | 0.241 | 0.811 | 13 | 55g |
| Overall | 0.256 | 0.826 | 97 | 433g |
5 Samuel Basallo L 0.704
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.222 | 0.709 | 16 | 89g |
| Hot (80°+) | 0.239 | 0.891 | 12 | 32g |
| at Oriole Park at Camden Yards | 0.228 | 0.699 | 11 | 61g |
| Overall | 0.225 | 0.704 | 19 | 113g |
6 Blaze Alexander R 0.710
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.241 | 0.636 | 6 | 138g |
| Hot (80°+) | 0.255 | 0.685 | 3 | 52g |
| at Oriole Park at Camden Yards | 0.315 | 0.783 | 2 | 45g |
| Overall | 0.262 | 0.710 | 14 | 216g |
7 Colton Cowser L 0.701
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.226 | 0.710 | 35 | 239g |
| Hot (80°+) | 0.213 | 0.655 | 20 | 129g |
| at Oriole Park at Camden Yards | 0.236 | 0.718 | 21 | 163g |
| Overall | 0.222 | 0.701 | 48 | 330g |
8 Leody Taveras S 0.627
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.231 | 0.643 | 14 | 221g |
| Hot (80°+) | 0.229 | 0.660 | 3 | 44g |
| at Oriole Park at Camden Yards | 0.252 | 0.688 | 1 | 47g |
| Overall | 0.226 | 0.627 | 18 | 290g |
9 Jackson Holliday L 0.661
| Split | AVG | OPS | HR | n |
|---|---|---|---|---|
| vs RHP | 0.222 | 0.656 | 23 | 188g |
| Hot (80°+) | 0.257 | 0.722 | 10 | 108g |
| at Oriole Park at Camden Yards | 0.235 | 0.672 | 15 | 125g |
| Overall | 0.227 | 0.661 | 27 | 253g |
Injured List
- Cole Ragans P Injured 60-Day
- James McArthur P Injured 60-Day
- Kyle Isbel CF Injured 10-Day
- Maikel Garcia 3B Injured 10-Day
- Alec Marsh P Injured 60-Day
- Carlos Estévez P Injured 60-Day
- Nick Mears P Injured 15-Day
- Jonathan India 2B Injured 60-Day
- Kris Bubic P Injured 60-Day
- Connor Seabold P Injured 15-Day
- Keegan Akin P Injured 15-Day
- Ryan Helsley P Injured 15-Day
- Colin Selby P Injured 60-Day
- Zach Eflin P Injured 60-Day
- Ryan Mountcastle 1B Injured 60-Day
- Jordan Westburg 3B Injured 60-Day
- Chris Bassitt P Injured 15-Day
- Félix Bautista P Injured 60-Day
See the whole board, not just the score.
A membership unlocks every model's confidence, the Oracle's full read, and the tools below on every game and every sport.
Run this exact matchup through our Explore engine: each lineup vs the opposing hand, in tonight's weather, at this park.
The hand-curated Edge Board, plus an email the moment a qualifying pick lands on the slate.
The full leaderboard field: each model's win probability, projected total and first-inning call, not just the pick.
MLB, UFC and soccer today, with NFL and college football next. One membership covers them all.
Don't want to go Pro?
Get extra free daily picks in the newsletter — the model's calls plus what the AI field is seeing. No card, unsubscribe anytime.