MLB matchup analysis
Royals vs Pirates Prediction, Odds and Model Pick
Friday, September 18, 2026 at PNC Park · 6:40 PM ET
Leo decision: Pass on Royals vs Pirates
The case for Pittsburgh Pirates
The case for Kansas City Royals
Why it is not official
Why the setup score is what it is
Why the price is what it is
Read the full model output
The combined Lab Rating did not clear the official threshold.
Final result
Royals 5, Pirates 8
How the analysis held up
Pittsburgh Pirates won, the side Leo's model favored.
Leo's two internal reads disagreed pregame by 18.6 points — the team-strength model favored Pittsburgh Pirates, the run-projection model favored Kansas City Royals. The team-strength model had the winner here.
Paul Skenes (Pittsburgh Pirates), the starter Leo's pitcher score favored, actually outpitched Randy Dobnak: 6.0 IP, 5 ER (7.50 ERA) against 3.2 IP, 4 ER (9.82 ERA). The edge held up. Neither starter actually pitched well tonight, though — this is a smaller-of-two-bads comparison, not a starter who dealt.
The Kansas City Royals bullpen was not flagged pregame, but it had a night worth noting: 4 earned runs allowed over 4.1 relief innings (8.31 ERA) — quietly worse than the pregame read implied.
The Pittsburgh Pirates bullpen was flagged as elevated risk pregame (High risk). In relief it actually allowed 0 earned runs over 3.0 innings (0.00 ERA) — the risk read did not show up on the scoreboard tonight.
Pittsburgh Pirates scored 8, 4.7 more than the 3.3 pregame projection.
Game information
| Matchup | Kansas City Royals at Pittsburgh Pirates |
|---|---|
| Date | Friday, September 18, 2026 |
| First pitch | 6:40 PM ET |
| Venue | PNC Park |
| Starting pitchers | Randy Dobnak vs Paul Skenes |
| Weather | Game-time forecast: 70°F, 0% precipitation chance, 2 mph wind from NW. |
Starting pitcher matchup
Full Pitcher Matchup Tool →| Metric | Royals | Pirates |
|---|---|---|
| Pitching plan | Traditional starter | Traditional starter |
| Expected innings | 5⅓ | 5⅓ |
| Throws | R | R |
| Leo pitcher score (higher is better) | 66 | 71 |
| ERA (lower is better) | 3.08 | 3.91 |
| WHIP (lower is better) | 1.33 | 1.13 |
| K/9 (higher is better) | 5.9 | 10.3 |
| K-BB% (higher is better) | 7.5% | 21.0% |
| K% (higher is better) | 15.6% | 27.9% |
| BB% (lower is better) | 8.1% | 6.8% |
| BB/9 (lower is better) | 3.1 | 2.5 |
| HR/9 (lower is better) | 0.9 | 1.0 |
| Ground-ball rate | 58.1% | 44.1% |
| Fly-ball rate | 41.9% | 55.9% |
Pitcher edge: Leo gives Paul Skenes a 5-point edge over Randy Dobnak, driven mainly by K/9 (10.3 vs 5.9) and K-BB% (21.0% vs 7.5%).
How to read this: the scorecards above name the starters; every number lives in this table.
Strikeout Projections Full strikeout projections →
Same data source as the Pitcher Matchup Tool, where every starter on the slate is compared side by side.
Recent form
Full Stats page →Royals are 4-6 in their last 10 and averaging 3.4 runs per game over the last 15 days; Pirates are 6-4 in their last 10 and averaging 3.4 runs per game over the last 15 days. On the season Pirates carry the better run differential per game (+0.18 against -0.65).
| Metric | Royals | Pirates |
|---|---|---|
| Last 10 | 4-6 | 6-4 |
| Last 10 by venue (away team on the road, home team at home) | 4-6 on the road | 6-4 at home |
| OPS, last 15 days | 0.650 | 0.713 |
| wOBA, last 15 days (hot/cold read) | 0.289 | 0.318 |
| Runs per game, last 15 days | 3.4 | 3.4 |
| K% last 15 days (lower is better) | 21.6% | 19.8% |
Last 15 days only. Hot and cold streaks for all 30 teams live on the Stats page.
30-day offense
Full offense tool →| Last 30 days | Royals | Pirates |
|---|---|---|
| OPS | 0.743 (+0.031 vs szn) | 0.701 (-0.034 vs szn) |
| Runs per game | 4.52 (+0.311 vs szn) | 3.69 (-1.100 vs szn) |
| wOBA (model offense input) | 0.326 (+0.012 vs szn) | 0.313 (-0.013 vs szn) |
| K% (lower is better) | 19.7% (-1.2% vs szn) | 23.7% |
Over the last 30 days the Royals have been the better offense, 0.326 wOBA to 0.313. They are running hot against their own season line (+0.012 wOBA).
Season profile
Full Stats page →| Metric | Royals | Pirates |
|---|---|---|
| Record | 67-86 | 76-77 |
| Run differential / game (team quality) | -0.65 | +0.18 |
| Runs scored / game (offense, season) | 4.21 | 4.79 |
| Runs allowed / game (defense, season, lower better) | 4.86 | 4.62 |
| Season OPS | 0.711 | 0.732 |
| K% season (lower is better) | 20.9% | 24.1% |
| OPS vs opposing hand (season) | 0.721 | 0.751 |
Season-long team quality, not recent form. Run differential and run environment come from the season standings; splits for all 30 teams live on the Stats page, including the run environment table.
The Map
Full interactive map →Every team on today's slate, on any two axes you pick. Royals and Pirates are highlighted.
Bullpen matchup
Full Bullpen Fatigue Index →Risk is what the model actually uses: fatigue blended with how well the pen has pitched. High fatigue with high efficiency is a tired pen that is still getting outs.
| Metric | Royals | Pirates |
|---|---|---|
| Fatigue | 4.7/10, Normal | 10.0/10, High risk |
| Efficiency | 4.4/10, Below average | 3.1/10, Below average |
| Combined risk | 5.0/10, Normal | 10.0/10, High risk |
| Relief innings, last 7 days | 17.3 | 34.7 |
| Back-to-back arms | 6 | 5 |
| 7-day ERA | 4.67 | 6.49 |
| 7-day WHIP | 1.50 | 1.64 |
Fatigue measures workload. Efficiency measures recent run prevention. Combined risk is what the moneyline and totals systems use.
Run total projection
Full Totals Projections →The model and market are close. Team totals remain research-only until their graded sample is established.
More games today
All matchups →Every Leo pick, graded in public
Free daily model card by email, or open today's full slate. Membership adds delivery before first pitch.
Model outputs are not guarantees. Leo provides analysis and education only. Every official pick remains visible on the Results page. 21+. If you or someone you know has a gambling problem, call 1-800-GAMBLER.