Sacboyz Signals Guide
Every bet candidate runs through the Sacboyz Signals Engine before it appears in the report. The board separates model grade, betting tier, and handling notes so a strong signal, a derisked angle, and a watchlist item are easy to tell apart.
| Section | What it shows |
| Today's Signal Board | Grade A and Grade B signals with full card detail: Signal Breakdown, Signal Drivers & Flags, line context, risk notes, and market context. |
| Ranked Signals | Compact view of the strongest surfaced signals plus a link to the full audit. |
| Market Confidence | Settled tracker performance by market, including season and recent windows used to support confidence tiers. |
| Signal Promotion Criteria | The concrete blockers a market must clear before moving from paused to research, watch, or trusted. |
| Signal Source Matrix | Runtime source of truth for whether a signal is active, held, research-only, or configuration-needed. |
| Data Readiness | Input availability for the run, including lineups, active-roster hitter context, weather, BVP, pitch-type data, market health, and player context. |
| Today's Slate | DraftKings reference lines for all games. |
| Detail Sections | Market detail, diagnostics, and research sections below Today's Signal Board. |
Signal Breakdown
Each layer returns Supports, Mixed, Opposes, or No Data. No Data is treated as unavailable context rather than an automatic penalty.
| Layer | What it evaluates | Supports when |
| Line Fit | Line size, batter opportunity, run-line cushion | The available line falls within a model-friendly range. |
| Model Edge | Projection vs selected/displayed sportsbook line | Edge is at or above the threshold for that market type. |
| Market Alignment | Blended market direction and consensus lean across available books | The market agrees with the model side. |
| Matchup | Park factor, weather, opponent quality, and handedness/split context | Context is neutral or favorable for the signal side. |
| Availability | Lineup spot, injury flags, role, workload, and opportunity | Expected opportunity is intact and no major availability risk is present. |
| Game Context | Run environment, venue, weather, and script conditions | Game conditions support the signal direction. |
Grades & Recommendation Tiers
| Grade | Model strength | Tier | Meaning |
| A | Strongest model grade | Best Signal | Core playable recommendation when model strength and market posture align. |
| B | Strong model grade with caveats | Add Signal | Playable supporting recommendation. |
| C | Thin or lower-confidence model grade | No-Play | Audited but not a standard playable recommendation. |
| D | Weak signal | No-Play | Skip unless another trusted process overrides it. |
| F | Strong evidence against the evaluated side | Fade Signal | Consider whether the opposite side is more attractive. |
Grades and recommendation tiers are related but separate: grade describes model strength, while tier describes betting posture.
Final Signals
Final Signals combine model grade with market confidence and handling modifiers. Featured is placement, not a separate strength tier.
| Display | Meaning |
| ⭐ Featured | Special placement for the strongest qualifying signal on the board. |
| ✅ Best Signal | Trusted market with an A-grade model signal. |
| Watch Signal | Interesting setup that should be monitored or shopped before betting. |
| Research Only | Experimental or validation-stage output; useful for diagnostics but not a standard bet recommendation. |
| Paused | Market is intentionally withheld or unavailable for normal betting posture. |
Contradiction Flags ⚡
When two recommended plays on the same game send opposing run-environment signals, a
⚡ contradiction flag is added to both plays. The bet is not removed β it is flagged
so you can decide consciously whether the conflict makes sense.
| Pattern | Why it conflicts |
| Total Over + NRFI | High-run game expectation vs no runs in the 1st inning |
| Total Under + YRFI | Low-run game expectation vs runs scoring in the 1st |
| K Prop Over + YRFI | Pitcher dominates yet run scores early |
| Batter Overs + Total Under | Player production expected but game total is low |
| Outs Over + K Under (same SP) | Long outing projected but few strikeouts β projection inconsistency |
API Quota Bar
| Element | Meaning |
| Progress bar | Visual fill of monthly Odds API usage |
| used / total | Requests consumed vs. your monthly cap β each run costs ~1 request per game (combined market fetch) |
Today's Slate
| Column | Meaning |
| Away ML / Home ML | DraftKings moneyline. −150 = bet $150 to win $100 • +130 = bet $100 to win $130 |
| Away RL / Home RL | Run line (always ±1.5) with its odds. −1.5(−110) = team must win by 2+ |
| Total | Over/Under line (e.g. O/U 8.5) |
| Con ML | Consensus moneyline direction β which side the majority of other books (FanDuel, BetMGM, Caesars, etc.) favor |
Game Bets β Column Definitions
| Column | Meaning |
| Grade | Signal grade (A-D), driven by the Signal Breakdown scoring system. A/B rows are highlighted. |
| Type | Moneyline, Run Line, Total Over/Under, F5 ML, F5 Total |
| DK Odds | DraftKings price for that side |
| Implied | DK implied probability after vig removal |
| Model | Win probability our model calculates independently |
| Edge | Model% − Implied%. Min 15% to surface a game bet. |
| EV/$100 | Expected profit per $100 wagered: (win_prob × profit) − (loss_prob × $100) |
| Books | Number of consensus books with data for this market (ML/RL: directional lean; Total: line coverage). Three or more books is full support, two books is limited context, fewer than two means Market Alignment opposes. |
How the Model Works β The Simple Version
The model is asking one question: does DraftKings have the wrong price on this game?
It independently calculates how likely each team is to win by grading two things:
how good is today's starting pitcher (xFIP vs league average) and
how good is the opposing lineup (wRC+ vs league average). It adds a small home-field
bonus, blends in the pitcher's last 5 starts (35% weight), then converts the result to a win probability.
That probability is compared to what DraftKings implies. If the gap is ≥15%, it surfaces as a bet.
The model caps at ~68β70% win probability even in extreme mismatches β baseball is unpredictable and
overconfident models lose money. Missing data automatically reduces confidence and bet sizing.
How the Model Works β Win Probability (Technical)
For every game the model builds a score differential from three inputs, then converts it to a
win probability using a logistic (S-curve) function. Here is each step:
| Step | What it calculates | Data source | Weight |
| 1. Pitching edge |
How much better or worse each SP is vs. the league-average xFIP of 4.20.
home_pitch = (4.20 − home_xFIP) / 4.20
pitch_edge = home_pitch − away_pitch
A positive number means the home SP is above average relative to the away SP. |
FanGraphs xFIP (direct API call) β the best early-season ERA predictor because it removes defense and luck |
50% |
| 2. Offense edge |
How much stronger or weaker each lineup is vs. the league-average wRC+ of 100.
home_bat = (home_wRC+ − 100) / 100
off_edge = home_bat − away_bat
A team with wRC+ 110 contributes +0.10; one at 90 contributes −0.10. |
MLB Stats API team batting β OPS converted to wRC+ via (OPS / 0.720) × 100 |
35% |
| 3. Home field |
Fixed constant added to the home team's side every game. |
Historical MLB average home-field effect |
+4% |
| 4. Score diff |
score_diff = 0.50 × pitch_edge + 0.35 × off_edge + 0.04 |
Combined signal driving the probability below |
| 5. Win probability |
home_win_prob = logistic(1.5 × score_diff)
The logistic scale of 1.5 keeps the model from being overconfident β even an extreme mismatch caps out around 68–70%. |
Standard logistic sigmoid: 1 / (1 + e−x) |
Recent Form Blending
Season stats are stable but slow to react. Recent form can signal a pitcher heating up or falling apart.
The model blends both:
| Source | Weight | Stats blended |
| Season-to-date (FanGraphs) | 65% | xFIP, ERA, WHIP, K%, K/9 |
| Last 5 starts (MLB Stats API game logs) | 35% | ERA, WHIP, K%, K/9 β computed from raw game log totals |
xFIP is season-only (requires full-season HR data to normalize). ERA trend from recent starts adjusts the blended ERA implicitly.
How the Model Works β Expected Run Total
For Over/Under bets the model projects a total runs scored using a similar framework:
| Step | Calculation |
| Base | 2 × 4.5 league-average runs/game = 9.0 |
| SP factor | Average of (home xFIP / 4.20) and (away xFIP / 4.20). Uses xFIP for consistency with the win-probability model β ERA includes luck and inflates totals for pitchers who got unlucky. |
| Offense factor | Average of (home wRC+ / 100) and (away wRC+ / 100). |
| Raw total | 9.0 × (0.60 × SP factor + 0.40 × off_factor) |
| Park adjustment | Raw total × venue run factor (e.g. Coors 1.32, Oracle Park 0.92). Blended at 60% weight: 0.40 × raw + 0.60 × park_adjusted |
Weather adjustments layer on top: headwind (N/NW/NE) × 0.93 on run total • tailwind (S/SW/SE) × 1.08 • cold (≤45°F) × 0.96
Signal Usage Matrix
The Diagnostic vs Recommendation Impact table near the top of the report is the source of truth for whether
each market or diagnostic layer affects recommendations, only gates recommendations, is research-only, or needs
configuration. A signal being visible in diagnostics does not automatically mean it changes grades or picks.
| Usage type | Meaning |
| Active recommendation market | Trusted or watch-stage markets can appear in ranked signals according to the Sacboyz Signals Engine and market trust rules. |
| Held / gated market | Research markets can be scored for audit, but are held from actionable output until validation clears. |
| Shadow research | Paused markets such as HRR component research emit diagnostics only; they do not create recommendations. |
| Diagnostic-only source | Context layers such as player splits and AI review explain the run but do not change thresholds, grades, or tracker saves unless a future validation PR explicitly activates them. |
Runtime Diagnostic Components
| Component | Purpose | Recommendation impact today |
| PitcherAssessment | Starter-level hand, K%, innings, estimated pitch count, leash risk, Savant support, contact suppression, HR vulnerability, and data gaps. | Feeds pitcher and batter context. It is visible in diagnostics; individual fields affect picks only where the engine explicitly consumes them. |
| Savant Pitch Quality | Free public-data pitch-quality scores built from Savant summary and arsenal fields: whiff, put-away, xwOBA, run value, pitch mix depth, and top pitch. | Diagnostic-only. It replaces the retired premium PLV path for review visibility but does not change recommendations. |
| Pitcher Outs Research Gate | Shows pitcher outs candidates, projected gap, leash, expected K innings, pitch count, assessment quality, and hold reason. | Research/held. Pitcher Outs remains out of actionable output until the gate validates. |
| HRR Component Research | Breaks Batter H+R+RBI into hit, run, and RBI components with uncertainty and support notes. | Shadow-only. HRR remains paused and cannot become actionable from the old composite threshold. |
| Player Context | Home/away, day/night, recent-return, role, usage, workload diagnostics, and pre-lineup active-roster hitter pools. | Missing split data is neutral. Real role, injury, or workload concerns may surface as risk context. |
| AI Review | Optional post-run review of recent settled results and model behavior. | Advisory only. It cannot change picks, thresholds, tracker saves, or market status. |
Premium Pitcher List PLV
Premium Pitcher List PLV/PLA enrichment is intentionally retired from daily output because no free live 2026
aggregate export is available. The optional loader remains for local experiments only. The replacement path is
the Savant Pitch Quality diagnostic section, which uses public Statcast/Savant inputs.
Data Readiness States
| State | Impact | How to read it |
| READY | Available | The input loaded and is available to the relevant model or diagnostic section. |
| LATE DATA | Non-blocking | The feed usually appears later on game day, such as confirmed lineups or home-plate umpires. |
| PARTIAL | Non-blocking | The source returned usable rows, but one sub-market or optional slice is missing. Available pieces still support the run. |
| MARKET UNAVAILABLE | Non-blocking | The odds/source returned no usable rows for that market in this run. Other markets can still run normally. |
| SOURCE MISSING | Non-blocking unless marked otherwise | The configured source is unavailable, sparse, or missing. Treat as a data gap, not an automatic bet risk. |
| LIMITED | Non-blocking | The run uses a fallback, skips an optional layer, or intentionally keeps a diagnostic isolated. |
| BLOCKING | Action needed | A core source failed in a way that can invalidate a major part of the run, such as all props being empty. |
Pre-Lineup Hitter Context
The model does not wait for confirmed batting orders to use hitter-pool context. Before official lineups post,
it builds an active-roster view from known team rosters and player IDs, including batter handedness and a
PA-weighted active-roster K% profile for K props. Once confirmed lineups post, lineup order, top-six K%,
and confirmed platoon mix replace the roster estimate.
| State | How it is used |
| Pre-lineup | Active-roster batter handedness and active-roster K% feed K-prop opponent context. The report labels lineup order as late data, not missing data. |
| Confirmed lineup | Exact batting order upgrades the context with lineup K%, top-six K%, projected PA, and confirmed platoon concentration gates. |
| No roster coverage | The model falls back to team-level K%, handedness splits, recent team batting, BVP, and pitch-type matchup data. |
Report Artifacts
| Artifact | Use it for |
| Main HTML report | Daily human review: ranked plays, trust tiers, data readiness, diagnostics, and reference guide. |
| Full audit HTML | Candidate-level debugging across best signals, add signals, no-play results, fade signals, and research holds. |
| Audit JSON | Machine-readable evidence for settled review, AI review, market health, pitcher assessments, HR likelihood, HRR research, and pitcher outs gate candidates. |
| Performance report | Settled tracker analysis by grade, market, odds band, top-pick status, and prop/game grouping. |
| Tracker CSV | Single source for settled W/L/P, units, grades, bet type, final signal, and historical performance windows. |
NRFI β No Run First Inning
| Column | Meaning |
| Away SP / Home SP | Probable starter name (or TBD if not yet announced) |
| NRFI Score | Composite score out of 10. ≥7.7 = PLAY. SP quality (40%) blends xFIP + xwOBA allowed when Savant data is available; K-rate (35%); team offense (25%) |
Sizing Guide
| Label | Edge Required | Suggested Unit Size |
| FULL | ≥20% | Full unit |
| HALF | ≥15% | Half unit |
| QRTR | ≥15% | Quarter unit (data quality cap) |
| (none) | <15% | No bet β below threshold |
Confidence Guide
| Label | What it means |
| HIGH | Both pitchers and both offenses have full stat profiles |
| MED | One or more data sources are missing or incomplete |
| LOW | Model running mostly on league averages β proceed with caution |
Model Notes
| Term | Definition |
| xFIP | Expected Fielding Independent Pitching β ERA predictor that strips out defense and luck. Lower = better pitcher. League avg ~4.20 |
| wRC+ | Weighted Runs Created Plus β offensive quality. 100 = league average. 115+ = above average. Estimated from team OPS via MLB Stats API |
| Recent form | Last 5 starts blended at 35% weight, season stats at 65% |
| Park factor | Venue run/HR factor applied to expected total. Coors Field ~1.32, Oracle Park ~0.92 |
| Edge | Model win probability minus the book's implied probability (after vig removal) |
| EV/$100 | Expected value: (win_prob × profit) − (loss_prob × stake) |
| F5 bets | First 5 innings β pitching weight raised to 65% (starters matter more), scaled to 4.5/9.0 IP |
| DK note | The "Bet on DK" button opens DraftKings' MLB section. Game-specific deep links require DK's partner event ID, not included in the free Odds API tier |
Disclaimer: For informational and research purposes only.
Bet responsibly. Always verify probable pitchers and lineups before placing any bet.
Past model performance does not guarantee future results.