MLB Betting — Performance Report

Generated 2026-05-20 | Date range: all → 2026-05-20 | 984 settled bets (104 sized)

📊 Interpretive Summary

984 settled bets | 104 sized | 5+ bet threshold for grade/type breakdowns

All tracked (984 bets): -72.70 units  |  ROI -7.6%

Sized only (104 bets): +6.30 units  |  ROI +8.6%

▲ Sizing discipline: sized bets outperform all tracked bets


Grade ROIs (5+ bet threshold):

   Grade A: -0.2% (189 bets)

   Grade B: -9.3% (795 bets)

✓ Grade hierarchy A>B>C ordering confirmed


Bet type performance (5+ bet threshold):

   Moneyline: +81.6% ROI  |  6 bets  |  +2.85 units

   Batter Hits: +20.2% ROI  |  14 bets  |  +2.82 units

   F5 ML: +19.3% ROI  |  28 bets  |  +4.55 units

   Pitcher Hits Allowed: +9.0% ROI  |  112 bets  |  +10.10 units

   Run Line: +5.0% ROI  |  77 bets  |  +3.04 units

   K Prop: -3.7% ROI  |  189 bets  |  -6.99 units

   Batter H+R+RBI: -14.2% ROI  |  407 bets  |  -57.64 units  ★ HIGH VOLUME LOSER

   Batter Total Bases: -16.1% ROI  |  20 bets  |  -3.23 units  ★ HIGH VOLUME LOSER

   Pitcher Outs: -18.3% ROI  |  75 bets  |  -13.74 units  ★ HIGH VOLUME LOSER

   Total: -26.9% ROI  |  42 bets  |  -9.29 units  ★ HIGH VOLUME LOSER

   No HR U1.5: -57.6% ROI  |  9 bets  |  -5.18 units


⚠ Red flags:

   Batter Total Bases: 20 bets, ROI -16.1% — strongly negative

   No HR U1.5: 9 bets, ROI -57.6% — strongly negative

   Pitcher Outs: 75 bets, ROI -18.3% — strongly negative

   Total: 42 bets, ROI -26.9% — strongly negative

Section T — ⭐ Top Pick Performance

Top Pick = Grade A + 100% book consensus (≥3 books) + raw_diff ≥ 1.5 units. Run backfill_top_picks.py to populate historical rows.

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
⭐ Top Pick231310056.5%-13657.6%-0.56-2.4%
Grade A (all)18910881057.1%-12154.8%-0.39-0.2%

Section T2 — Top Pick by Bet Type

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
⭐ Batter H+R+RBI514020.0%-13457.2%-3.23-64.6%
⭐ K Prop18126066.7%-13757.7%+2.6714.8%

Section A — Headline Summary

Sized only = FULL/HALF/QRTR game bets; All tracked includes unsized props.

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
All tracked984500477751.2%-10350.7%-72.70-7.6%
Sized only1045150350.5%-2721.3%+6.308.6%

Section B — Bet Type (all tracked)

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
Pitcher Hits Allowed1126844060.7%-10150.3%+10.109.0%
F5 ML281112547.8%+15439.3%+4.5519.3%
Run Line774334055.8%-7543.0%+3.045.0%
Moneyline633050.0%+20133.2%+2.8581.6%
Batter Hits14122085.7%-25071.4%+2.8220.2%
Batter Total Bases20911045.0%-11252.9%-3.23-16.1%
No HR U1.5927022.2%-11052.4%-5.18-57.6%
K Prop18910485055.0%-12555.6%-6.99-3.7%
Total421525237.5%-9047.3%-9.29-26.9%
Pitcher Outs753144041.3%-109.5%-13.74-18.3%
Batter H+R+RBI407199208048.9%-13357.1%-57.64-14.2%
NRFI *312033.3%
YRFI *2200100.0%

Section B — Bet Type (sized only)

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
Run Line442717061.4%-4933.1%+8.3930.0%
F5 ML1265154.5%+16138.4%+4.3457.9%
Moneyline633050.0%+20133.2%+2.8581.6%
Total421525237.5%-9047.3%-9.29-26.9%

Section C — Bet Type × Grade (all tracked)

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
Batter H+R+RBI | A552530045.5%-13657.6%-11.69-21.3%
Batter H+R+RBI | B352174178049.4%-13257.0%-45.95-13.1%
Batter Hits | B14122085.7%-25071.4%+2.8220.2%
Batter Total Bases | B20911045.0%-11252.9%-3.23-16.1%
F5 ML | B281112547.8%+15439.3%+4.5519.3%
K Prop | A1026141059.8%-13857.9%+3.313.2%
K Prop | B874344049.4%-11152.6%-10.31-11.8%
Moneyline | B633050.0%+20133.2%+2.8581.6%
NRFI | B *312033.3%
No HR U1.5 | B927022.2%-11052.4%-5.18-57.6%
Pitcher Hits Allowed | B1126844060.7%-10150.3%+10.109.0%
Pitcher Outs | A *10100.0%-14358.8%-1.00-100.0%
Pitcher Outs | B743143041.9%-98.0%-12.74-17.2%
Run Line | A30219070.0%-4028.8%+8.4939.5%
Run Line | B472225046.8%-9849.4%-5.45-13.8%
Total | A *1100100.0%-10150.2%+0.4999.0%
Total | B411425235.9%-9047.2%-9.78-28.8%
YRFI | B *2200100.0%

Section C — Bet Type × Grade (sized only)

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
F5 ML | B1265154.5%+16138.4%+4.3457.9%
Moneyline | B633050.0%+20133.2%+2.8581.6%
Run Line | A28208071.4%-4229.6%+8.8545.4%
Run Line | B1679043.8%-6338.5%-0.46-5.4%
Total | A *1100100.0%-10150.2%+0.4999.0%
Total | B411425235.9%-9047.2%-9.78-28.8%

Section D — Odds Band Summary

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
≤ -1501609763060.6%-16662.4%-4.51-2.8%
-149 to -125392210182053.6%-13657.7%-27.32-7.1%
-124 to -105293127164243.6%-11653.8%-51.80-18.4%
-104 to +104351916054.3%-33.2%+1.474.4%
+105 to +124462026043.5%+11446.6%-3.34-7.6%
+125 to +149281314148.1%+13642.3%+3.8014.9%
≥ +150251110452.4%+17736.1%+9.0043.9%

Section E — Grade × Odds Band

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
A | ≤ -150332013060.6%-15661.0%-0.13-0.4%
A | -149 to -1251056342060.0%-13657.6%+3.693.7%
A | -124 to -105401822045.0%-11954.3%-7.77-21.3%
A | -104 to +104 *321066.7%+3474.8%+0.4919.8%
A | +105 to +124 *211050.0%+11646.3%+0.136.5%
A | +125 to +149 *321066.7%+14141.5%+1.8260.7%
A | ≥ +150 *321066.7%+15738.9%+1.3855.0%
B | ≤ -1501277750060.6%-16962.8%-4.38-3.5%
B | -149 to -125287147140051.2%-13657.7%-31.01-11.0%
B | -124 to -105253109142243.4%-11653.7%-44.03-18.0%
B | -104 to +104321715053.1%-76.3%+0.973.1%
B | +105 to +124441925043.2%+11446.6%-3.47-8.3%
B | +125 to +149251113145.8%+13642.4%+1.998.8%
B | ≥ +1502299450.0%+17935.8%+7.6242.4%

Section F — Bet Type × Odds Band

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
Batter H+R+RBI | ≤ -150623329053.2%-15761.1%-8.06-13.0%
Batter H+R+RBI | -149 to -125212107105050.5%-13557.5%-25.42-12.0%
Batter H+R+RBI | -124 to -1051315972045.0%-11854.1%-22.16-16.9%
Batter H+R+RBI | -104 to +104 *20200.0%-10450.9%-2.00-100.0%
Batter Hits | ≤ -15014122085.7%-25071.4%+2.8220.2%
Batter Total Bases | -149 to -125954055.6%-13457.3%-0.33-3.6%
Batter Total Bases | -124 to -1051037030.0%-12054.5%-4.53-45.3%
Batter Total Bases | ≥ +150 *1100100.0%+16338.0%+1.63163.0%
F5 ML | +105 to +124 *422050.0%+12344.8%+0.3210.7%
F5 ML | +125 to +1491054155.6%+14041.6%+2.6733.4%
F5 ML | ≥ +1501446440.0%+17336.7%+1.5512.4%
K Prop | ≤ -150412615063.4%-15560.8%+1.774.3%
K Prop | -149 to -125945539058.5%-13757.8%+1.321.4%
K Prop | -124 to -105461927041.3%-11854.1%-10.86-23.6%
K Prop | -104 to +104 *1100100.0%+10149.8%+1.01101.0%
K Prop | +105 to +124 *312033.3%+12045.5%-0.76-25.3%
K Prop | +125 to +149 *422050.0%+12943.7%+0.5313.2%
Moneyline | ≥ +150633050.0%+20133.2%+2.8581.6%
No HR U1.5 | -124 to -105927022.2%-11052.4%-5.18-57.6%
Pitcher Hits Allowed | ≤ -150311912061.3%-16161.7%-0.32-1.0%
Pitcher Hits Allowed | -149 to -125301911063.3%-13958.2%+2.739.1%
Pitcher Hits Allowed | -124 to -105311912061.3%-11453.3%+4.8015.5%
Pitcher Hits Allowed | -104 to +104752071.4%-1412.6%+2.9642.3%
Pitcher Hits Allowed | +105 to +1241257041.7%+11347.0%-1.33-11.1%
Pitcher Hits Allowed | +125 to +149 *1100100.0%+12744.1%+1.27127.0%
Pitcher Outs | ≤ -150523040.0%-17663.8%-1.92-38.4%
Pitcher Outs | -149 to -1251147036.4%-13958.2%-4.10-37.2%
Pitcher Outs | -124 to -10518711038.9%-11453.3%-4.90-27.2%
Pitcher Outs | -104 to +1041266050.0%+1785.7%+0.040.4%
Pitcher Outs | +105 to +12420911045.0%+11446.7%-0.88-4.4%
Pitcher Outs | +125 to +149936033.3%+13342.9%-1.99-22.1%
Run Line | ≤ -150752071.4%-15661.0%+1.2017.2%
Run Line | -149 to -125362016055.6%-13757.8%-1.52-5.5%
Run Line | -124 to -1051798052.9%-11553.5%-0.24-2.1%
Run Line | -104 to +104 *211050.0%+10149.8%+0.000.0%
Run Line | +105 to +124734042.9%+11247.1%-0.70-11.6%
Run Line | +125 to +149 *422050.0%+14241.4%+1.3237.7%
Run Line | ≥ +150 *431075.0%+15838.8%+2.9684.7%
Total | -124 to -10531920231.0%-11252.8%-8.74-35.0%
Total | -104 to +1041165054.5%-2821.9%-0.55-5.7%

Section H1 — Game Bets vs Props

Props are always unsized. This section is unaffected by --sized-only.

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
Game bets (ML/RL/Total/F5)1627481747.7%-3123.7%-4.03-3.1%
All props combined822426396051.8%-11753.9%-68.67-8.4%

Section H2 — Prop Type Breakdown

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
Pitcher Hits Allowed1126844060.7%-10150.3%+10.109.0%
Batter Hits14122085.7%-25071.4%+2.8220.2%
Batter Total Bases20911045.0%-11252.9%-3.23-16.1%
K Prop18910485055.0%-12555.6%-6.99-3.7%
Pitcher Outs753144041.3%-109.5%-13.74-18.3%
Batter H+R+RBI407199208048.9%-13357.1%-57.64-14.2%
NRFI *312033.3%
YRFI *2200100.0%

Section H3 — Prop Type × Grade

Grades only populate from the run that fixed the tracker bug onward.

GroupBetsWLPWin%AvgOddsBE%Net UnitsROI
Batter H+R+RBI | A552530045.5%-13657.6%-11.69-21.3%
Batter H+R+RBI | B352174178049.4%-13257.0%-45.95-13.1%
Batter Hits | B14122085.7%-25071.4%+2.8220.2%
Batter Total Bases | B20911045.0%-11252.9%-3.23-16.1%
K Prop | A1026141059.8%-13857.9%+3.313.2%
K Prop | B874344049.4%-11152.6%-10.31-11.8%
NRFI | B *312033.3%
Pitcher Hits Allowed | B1126844060.7%-10150.3%+10.109.0%
Pitcher Outs | A *10100.0%-14358.8%-1.00-100.0%
Pitcher Outs | B743143041.9%-98.0%-12.74-17.2%
YRFI | B *2200100.0%

Codebook & Documentation

Reference guide for all columns, grades, sizing values, odds bands, and section descriptions used in this report.

Metric Columns

ColumnDescription
BetsNumber of settled bets in the bucket (result ≠ blank)
W / L / PWins, Losses, Pushes
Win%Wins ÷ (Wins + Losses) — pushes excluded from denominator
AvgOddsMean American odds across all bets in the bucket
BE%Break-even win rate implied by AvgOdds: 100/(100+odds) for + odds; |odds|/(|odds|+100) for − odds
Net UnitsSum of profit_loss_units across all bets; positive = profitable
ROI%Net Units ÷ Total Units Risked × 100. Sized bets use actual sizing (FULL=1.0, HALF=0.5, QRTR=0.25); unsized bets treated as 1.0 unit risked.
*Caution flag: bucket has fewer bets than the --min-sample threshold. Results may be noise.

Grade Scale

GradeScore ThresholdConditionsRecommendation
A≥ 10 pts0 FAILs, 0 WARNs, 0 risk flags, no contradictionBEST_PLAY
B≥ 8 pts0 FAILs — or Grade A capped by a WARN, risk flag, or ⚡ contradictionGOOD_ADD
C≥ 4 ptsIncluding B capped by ⚡ contradiction, or Books Agree FAILPASS
D≥ 2 ptsIncluding Model Edge hard-FAIL overridePASS
F< 2 ptsNegative or near-zero edge across checksHARD_FADE

Hard overrides: a Model Edge FAIL caps the grade at D regardless of other checks. A Books Agree FAIL caps at C (or D if model edge is also weak). C and D both map to PASS in v2_rec — Grade is strictly more informative for performance analysis.

Final Signal Layer

FieldDescription
Model GradeThe model-strength grade before market trust is interpreted for display.
Trust TierMarket lifecycle stage: trusted, watch, research, or paused.
Final SignalThe user-facing recommendation after combining model grade and trust tier. Examples: Top Pick, Best Play, Strong Watch, Research Lead, Paused Signal.
Promotion CriteriaEvidence gates showing what a market needs before it can move to the next trust stage.

Top Pick remains unchanged: Grade A + 100% book consensus across ≥ 3 books + raw_diff ≥ 1.5. Other final signals use the same badge-style presentation without changing the Top Pick rule.

Market Lifecycle / Trust Stages

StagePerformance-report interpretation
trustedMarket is allowed to produce normal actionable recommendations. Continue watching recent windows for drawdown.
watchMarket is visible and can be useful, but sample size or recent performance has not fully cleared trusted criteria.
researchMarket should be evaluated in settled results, but not treated as actionable until validation clears.
pausedMarket is shadow-only. Settled tracker rows are useful for diagnostics, but not for live bet approval.

Use market lifecycle beside grade. A Grade A in a research or paused market is not the same thing as a Grade A in a trusted market.

Diagnostic / Research Components

ComponentHow to use it in performance review
PitcherAssessmentExplains pitcher prop and batter prop context: hand, K%, innings, pitch-count proxy, leash risk, Savant support, contact suppression, HR vulnerability, and data gaps.
Pitcher Outs Research GateEvaluate held pitcher-outs candidates separately. The goal is to prove when assessment-driven overs/unders should leave research status.
HRR Component ResearchReview hit, run, and RBI component quality rather than judging HRR as one composite stat.
Player ContextReview whether home/away, day/night, recent-return, role, and workload diagnostics explain prop results. Missing split data should stay neutral.
PLV/PLADiagnostic-only until validated. Compare PLV-supported plays vs non-PLV plays before allowing any projection adjustment.
AI ReviewAdvisory summary only. It can highlight patterns but should not be counted as a model signal.

V2 Framework - Six Checks

CheckNameWhat it evaluates
1Baby LineIs the line large enough to bet? Very low lines (e.g., HR at 0.5) fail — the juice exceeds any realistic edge.
2Model EdgeDoes our model project positive expected value vs the posted line? Primary scoring signal. FAIL hard-caps grade at D.
3Books AgreeDo ≥ 3 non-DK consensus books lean our direction? Requires ≥ 2 books to be actionable; ≥ 3 for A/B eligibility. FAIL caps grade at C/D.
4MatchupContext factors: pitcher handedness vs opposing lineup wRC+, park factors, platoon splits, head-to-head history.
5Role / InjuryIs the pitcher confirmed as the starter? Are there injury designations or lineup changes that undermine the bet premise?
6Game ScriptTotal-line alignment, weather, bullpen depth, and any flags that could affect scoring pace or game environment.

Each check returns PASS (+2 pts), WARN (0–+1 pts, may cap grade), FAIL (−2 pts), or N/A (0 pts, not applicable for this bet type). A ⭐ Top Pick badge requires Grade A + 100% consensus across ≥ 3 books + raw model edge ≥ 1.5 units above the line. A ⚡ contradiction flag is set when NRFI + Over (or YRFI + Under) are both Grade A/B in the same game — a logical conflict. Contradicted plays are demoted one grade tier.

Sizing Values

SizingUnits RiskedIncluded in "Sized Only"?
FULL1.00Yes
HALF0.50Yes
QRTR0.25Yes
(blank)1.00 (implicit)No — unsized

Props are always unsized and will not appear in sections A–F when --sized-only is active. Section H always shows full prop data regardless of the --sized-only flag.

Odds Bands

BandAmerican Odds Range
≤ −150Heavy favorites — high implied probability, low payout
−149 to −125Moderate favorites
−124 to −105Slight favorites
−104 to +104Near pick-em
+105 to +124Slight underdogs
+125 to +149Moderate underdogs
≥ +150Heavy underdogs — low implied probability, high payout

Section Descriptions

SectionWhat it answers
A — Headline SummaryOverall model performance: all tracked bets vs. sized-only bets side by side.
B — Bet TypePerformance split by bet type (NRFI, ML, Run Line, K prop, etc.), both all tracked and sized only.
C — Bet Type × GradeWithin each bet type, how each grade tier performs. Reveals whether A plays are actually better than B plays.
D — Odds Band SummaryPerformance across price buckets. Reveals if edge is concentrated at certain prices.
E — Grade × Odds BandDo A plays outperform at all prices, or only in a specific range?
F — Bet Type × Odds BandAre certain markets only working at certain prices?
H1 — Game Bets vs PropsSide-by-side headline for game bets vs all props combined. Always shows full data — unaffected by --sized-only.
H2 — Prop Type BreakdownPer-prop-type performance (K Props, H+R+RBI, Pitcher Outs, etc.) across all settled bets.
H3 — Prop Type × GradeWithin each prop type, how grade tiers compare. Use to validate that A props genuinely outperform B/C props.

ROI Denominator Rules