📖 COMPLETE USER GUIDE

K Model User Manual

A step-by-step guide to using the Propulation K Model from login to projections — covering every section, every field, and every workflow.

01

What Is the K Model?

The Propulation K Model is an advanced pitcher strikeout and fantasy projection system. It takes pitcher-specific data, an opposing batting lineup, real-time Vegas lines, weather, park factors, and head-to-head history, then runs a multi-model ensemble to project how many strikeouts a pitcher is likely to record on a given day.

The model blends four sub-models — LightGBM, Poisson regression, Logistic regression, and Vegas line anchoring — with a default 60% weight on Vegas to produce calibrated projections with confidence intervals.

What the Model Outputs

Proj K — Expected strikeouts for the start

80% CI — The range you should expect 80% of outcomes to fall within (e.g., 4.2 – 7.8 K)

xIP — Expected innings pitched

xER / xBB / xH — Expected earned runs, walks, hits

Fantasy Points — Projected DFS score (K×3, Out×1, ER×−3, Win+6, QS+4)

Risk Flags — Bullish/bearish signals (tough lineup, poor rest, unfavorable park, etc.)

02

Daily Workflow

Here is the recommended end-to-end process each day, from logging in to having a full slate of projections ready.

1. Log In

Visit propulation.tech/kmodel and enter your username and password. The login overlay disappears once authenticated.

2. Import Today's Starters AUTO

Click the ⚡ Today's Starters button in the import bar on the Dashboard. This pulls today's MLB starting pitchers and auto-fills each pitcher's name, team, opponent, and stats from the database.

3. Fetch Vegas Lines AUTO

Click ⟳ PP Lines on the Dashboard. This pulls each pitcher's K line, over/under odds, outs line, hits allowed, and earned runs lines from OddsAPI + PrizePicks.

4. Import Batting Lineups AUTO

Click 📋 Today's Lineups in the import bar. Once confirmed lineups are posted, click 🔄 Refresh Lineups to update with the official batting orders.

5. Review the Dashboard

Check the slate overview table. Confirm each pitcher has a ✓ lineup status. Review Proj K, CI, umpire adjustments, and risk flags before diving deeper.

6. Inspect Individual Results

Navigate to the Results page for full per-pitcher projection cards with confidence intervals, per-batter K probabilities, and signal contributions.

03

Dashboard

The Dashboard is your home base. It shows a summary of all pitchers in today's slate and gives you quick access to import starters, fetch lines, and scan the day at a glance.

Summary Tiles

Four metric tiles appear at the top of the Dashboard:

TileWhat It Shows
Max Proj KThe highest single projected strikeout total across all pitchers in the slate, and who it belongs to.
Avg Proj KAverage projected strikeouts across all slate pitchers.
Ceiling KThe pitcher whose upper CI bound is the highest — best upside play.
Risk FlagsTotal number of bearish/risk signals across the entire slate (e.g., tough lineup, bad park, short rest).

Slate Projection Table

Each row in the table represents one pitcher. Columns explained:

ColumnDescription
PitcherStarting pitcher name and team.
OppOpposing team abbreviation.
LineupGreen ✓ means a lineup has been assigned. Gray — means no lineup yet. Affects projection accuracy.
xIPExpected innings pitched based on pitch limit and historical hook patterns.
Proj KThe model's projected strikeout total for this start.
80% CIThe 80% confidence interval (e.g., 4.1 – 7.9). Tighter = higher confidence.
Umpire AdjThe K-rate adjustment applied based on today's home plate umpire's historical K tendency.
ParkPark factor adjustment — stadiums like Coors Field suppress K rates; pitcher's parks boost them.
RestDays since the pitcher's last start. More rest can slightly reduce sharpness.
FlagsNumber of risk signals (bullish = green, bearish = red). Click to see the full results card.

Action Buttons

ButtonWhat It Does
⟳ StartersFetches today's confirmed starters from the server and loads them into the slate.
⟳ PP LinesFetches current Vegas K lines and prop odds from OddsAPI + PrizePicks.
Clear All ADMINRemoves all pitchers from the slate. Use with caution.
CopyCopies the projection table to your clipboard for pasting into a spreadsheet.
💡

Viewer Import Bar: Viewers see a green bar at the top of the Dashboard with three one-click buttons: ⚡ Today's Starters, 📋 Today's Lineups, and 🔄 Refresh Lineups. These are the only actions viewers need to load a complete slate.

04

Pitcher Input ADMIN

The Pitcher Input page is where you configure each starting pitcher. Most fields are auto-filled when you import starters, but you can review and adjust anything here.

Basic Info

FieldDescription
Pitcher NameStart typing to search the database. Selecting from the autocomplete will auto-fill all stats fields.
TeamThe pitcher's team. Used to look up park factor and lineup data.
OpponentThe opposing team. Used to look up opposing lineup K% and historical matchup data.
ThrowsRight or Left-handed. Determines which platoon split stats are used against the lineup.

Vegas Lines

These fields track the sportsbook lines for the pitcher. The model uses the K line as one of its four sub-model inputs (with a 60% default weight). Lines are auto-fetched but can be manually entered.

FieldDescription
K LineThe over/under strikeout line (e.g., 6.5). Primary Vegas input to the model.
K Open LineThe opening line before market movement. Used to detect sharp action.
Over / Under OddsJuice on each side (e.g., -115 / -105). Used for expected value calculations.
Outs LineOver/under for recorded outs (outs = IP × 3).
Hits LineHits allowed over/under.
BB LineWalks (bases on balls) line, sourced from PrizePicks when available.
ER LineEarned runs allowed over/under.
Team MoneylineOptional. Used for Win probability in fantasy scoring.

Historical Context

FieldDescription
Previous K ActualsPitcher's actual K totals from recent starts (most recent first, up to 8). Auto-filled from game logs. Used to detect form trends.
Prev K Vegas LinesThe Vegas K line from the pitcher's last 5 starts. Auto-pulled from K-line history. Helps contextualize if today's line is high or low relative to recent markets.
1st Inn Pitches O/UOptional. First inning pitch count line for Pitches Thrown Lab analysis.
Fantasy Pts O/UOptional. Fantasy points over/under if available.

Game Environment

These factors adjust the projection for the specific conditions of today's game.

FieldDescription
UmpireSelect today's home plate umpire. Each umpire has a calibrated K% adjustment based on historical tendencies (e.g., Angel Hernandez suppresses Ks, CB Bucknor inflates them).
Days RestDays since last start. Standard is 4-5 days. Fewer days = fatigue flag; many more = rust flag.
Catcher FramingThe catcher receiving pitches. Elite framers (e.g., Patrick Bailey) expand the strike zone, boosting K rates. Below-average framers shrink it.
TemperatureGame-time temperature in °F. Cold weather (under 50°F) reduces pitch grip and movement, lowering K rates slightly.
Wind DirectionWind direction relative to the field. "In" (blowing toward batter) is pitcher-friendly. "Out" slightly aids hitters.
Wind SpeedWind speed in mph. Only meaningfully affects projection at 15+ mph.
Day GameCheck if it's an afternoon game. Day games historically reduce K rates ~1.5% vs night games.
Expected IPHow many innings you expect the starter to pitch. Drag the slider. Hit OPENER to quickly set 2.0 IP for an opener role.
Pitch LimitThe expected hook threshold (default 95 pitches). The model uses this alongside IP to estimate the pitcher's K opportunity window.

Pitch Arsenal

Define the pitcher's pitch mix. Click + Add Pitch to add rows. Select the pitch type (Fastball, Slider, Curveball, Changeup, Cutter, etc.) and enter the usage percentage. Percentages should total 100%. Each pitch type has its own whiff/K rate profile that multiplies against batter vulnerability.

Pitcher Rate Stats

These sliders are auto-filled from the database and represent the pitcher's 2025 season stats. Adjust only if you have reason to (e.g., recent injury affecting velocity).

StatDescriptionDefault
K%The pitcher's overall strikeout rate — % of PA ending in strikeout.22.4%
Whiff%Swing-and-miss rate on swings taken. Higher = more dominant stuff.24.5%
Zone%% of pitches thrown in the strike zone.46.2%
Chase%% of pitches outside the zone that batters swing at.29.9%
Zone Contact%Contact rate on pitches in the zone (lower = better for pitcher).84%
Chase Contact%Contact rate on pitches outside the zone (lower = better).63%
GB%Ground ball rate. Less relevant to Ks but affects baserunner/ER model.44%

Opponent Lineup Profile

These sliders describe the opposing lineup's aggregate tendencies. Auto-filled when a lineup is assigned. You can adjust manually to account for lineup stacks or missing players.

StatDescription
Opp K%The lineup's average strikeout rate. Higher = more K-prone lineup (good for pitcher).
Opp Chase%How often lineup batters chase pitches outside the zone. Higher = more exploitable.
Opp Whiff%The lineup's swing-and-miss rate. Higher = more vulnerable to breaking balls.
Opp Zone Contact%How often lineup batters make contact on pitches in the zone.

Notes

Free-text field for anything relevant to this start — injury reports, pitch count concerns, recent mechanical changes, etc. Notes appear on the result card and in CSV exports.

💡

Editing a pitcher won't reset its data. When you open a pitcher and make changes, only the fields you modify are updated — all enriched data (stats, profile picture, H2H history, lines) is preserved.

05

Lineup Builder

The Lineup Builder is where you enter the opposing batting order. Assigning a lineup to a pitcher significantly improves projection accuracy because the model computes a per-batter K probability for each of the 9 slots and weights them by expected plate appearances.

Entering a Lineup

Select or type batter names

Each of the 9 lineup slots has a name field with autocomplete from the batter database. Type a name and select the correct player. K%, handedness (L/R), and batter stats auto-fill.

Verify K% and handedness

Each batter row shows their K% and L/R hand. You can adjust the K% slider manually if you have updated info. Handedness determines which platoon split the model applies.

Assign the lineup to a pitcher

Use the Assign Lineup to Pitcher dropdown to select which pitcher this batting order faces. Click Assign Lineup. The Dashboard will show a green ✓ for that pitcher.

Save for reuse (optional)

Click Save Lineup to store this order under a team name. Load it again next time that team is in the opposing slot.

Import Options

OptionDescription
Import Projected LineupsPulls RotoWire's projected batting orders for all games today. Best used before confirmed lineups are posted (typically 3-4 hours before first pitch).
📋 Today's LineupsLoads the lineup file that was last fetched by the server's daily refresh. Fastest option when lineups are confirmed.
🔄 Refresh LineupsTriggers a fresh scrape from the lineup source and reloads. Use this once confirmed lineups are officially posted.
Import Lineup JSONUpload a lineup JSON file manually. Useful for historical backtesting or custom lineup scenarios.
Get TemplateDownload a blank JSON template to fill in manually.

Lineup K Vulnerability Chart

Once a lineup is entered, a bar chart appears showing each slot's K vulnerability score. Spots 7-9 in the order are typically more K-prone. High vulnerability across the lineup is a bullish signal for the pitcher.

06

Game Lines

The Game Lines page projects run totals, team win probabilities, and F5/full game lines using a Monte Carlo simulation engine. This is useful for betting game totals alongside pitcher strikeout props.

Setting Up Games

Auto-Build from Slate

Click Auto-Build from Slate to automatically populate all today's games using the pitchers already in your slate. This is the fastest way to get started.

Fetch Live Odds

Click Fetch Odds to pull current moneylines and run totals from the OddsAPI. Select your preferred bookmaker (DraftKings, FanDuel, BetMGM, etc.).

Configure Simulation

Choose the number of simulations (1K for speed, 10K for accuracy, 50K for maximum precision). Set Home Field Advantage % (default 3.5%) and League Avg ERA values.

Run Simulation

Click Simulate. The model runs Monte Carlo simulations across all games and outputs projected run totals, F5 lines, and win probabilities for each team.

💡

Bullpen Overrides: Each game card lets you override the default bullpen ERA for either team. Use this if a key reliever is unavailable or a team's bullpen is unusually depleted.

07

View Matchups

The Matchups page gives a batter-by-batter breakdown of how each hitter in the opposing lineup fares against the pitcher's arsenal. This is where you see the per-batter K probabilities before looking at the aggregate projection.

For each batter you'll see their K%, Whiff%, Chase%, handedness, and the model's estimated K probability for their plate appearances. Batters highlighted in red are low K-probability matchups (harder outs); those in green are high K-probability targets.

H2H history (head-to-head) is shown when available — if this pitcher has faced this batter in prior seasons, the Bayesian blend of that history is applied and noted here.

08

Projection Results

The Results page is the heart of the app. Each pitcher gets a full projection card with a complete breakdown of the model's output.

Reading a Result Card

FieldWhat It Means
Proj KThe final blended projection — your primary number.
80% CIConfidence interval. "4.2 – 7.8" means 80% of simulated outcomes landed here.
xIPExpected innings. Drives the K opportunity ceiling.
xK_inn1_2Projected Ks in just the 1st and 2nd innings — useful for first-inning props.
xK_inn1_3Projected Ks through the first 3 innings.
xER / xBB / xHExpected earned runs, walks, and hits. Used in fantasy scoring.
Fantasy PtsFull DFS fantasy point projection with breakdown (K×3, Out×1, ER×−3).
vs VegasModel projection vs. the current Vegas line. Shows if model is over or under the market.
Per-Batter GridA 9-slot grid showing K probability for each lineup spot. Deeper red = lower K prob; deeper green = higher K prob.
Signal ContributionsA transparency breakdown showing how much each feature (H2H, umpire, park, rest, etc.) moved the projection from the baseline.
Risk FlagsBullish (green) and bearish (red) signals. Examples: "Elite lineup — tough matchup", "Strong umpire +4.2%", "Short rest — fatigue flag".
Sub-Model OutputsThe individual outputs from LightGBM, Poisson, Logistic, and Vegas before blending. Useful for seeing model agreement/disagreement.
💡

Wider CI = more uncertainty. A CI of 3.0 – 9.0 means this is a volatile start. A CI of 5.5 – 7.5 is high confidence. Use the CI width to size positions accordingly.

⚠️

No lineup assigned? Projections without a confirmed lineup are less accurate. The model uses team-level K% averages as a fallback, which is less precise than slot-by-slot analysis. Always try to assign lineups before making final decisions.

09

Results Tracker ADMIN

The Tracker is your performance log. After games, record actual K totals here to build a historical record of model accuracy. This data also feeds the Backtester.

Logging a Result

Auto-Import (recommended)

Set the date and click Auto-Import. The app pulls actual game results from the MLB Stats API and fills in K totals, IP, and pitches automatically.

Manual Entry (if auto fails)

Select pitcher, enter the date, actual Ks, Vegas K line, IP, opponent, and actual pitches. Fantasy points and projected values auto-calculate.

Export

Click Export CSV to download your full results log as a spreadsheet. Filename format: propulation_results_[date].csv.

10

Backtester ADMIN

The Backtester runs a walk-forward validation of the model on historical data to measure accuracy. It shows you how well the model would have performed on past starts.

Configuration

SettingDescription
N StartsHow many starts to include in the backtest (100, 300, or 500).
Train SeasonsHow many seasons of data to train on (2 or 3). More seasons = more stable, but slower to adapt to current-year trends.
Vegas Noise σSimulated noise added to Vegas lines during backtest to prevent overfitting. Higher = more conservative accuracy estimate. Default 1.8.
Use Tracker ResultsClick this to run the backtest on your real logged results from the Tracker instead of synthetic data. Most accurate reflection of actual performance.

Output Metrics

MetricWhat It Means
MAEMean Absolute Error — average projection error in Ks (e.g., 1.2 means off by 1.2 Ks on average).
RMSERoot Mean Square Error — penalizes large misses more heavily than MAE.
BiasSystematic over/under-projection. Positive = model projects too high; negative = too low.
Within ±1K% of projections that landed within 1 strikeout of actual.
Within ±2K% of projections that landed within 2 strikeouts of actual.
CI Coverage% of actual outcomes that fell within the stated confidence interval. Should be ~80% for an 80% CI.
vs Vegas MAEHow the model's error compares to simply using the Vegas line. If model MAE < Vegas MAE, the model adds value.
Coefficient of determination. 1.0 = perfect prediction; 0 = no better than guessing the mean.
11

🔬 Pitches Thrown Lab

The Pitches Thrown Lab analyzes first-inning pitch counts using Baseball Reference data. It's useful for projecting first-inning pitch count props and understanding how quickly pitchers work through lineups early.

Select a pitcher

Use the dropdown to choose any pitcher in your slate or database.

Fetch BBRef Data

Click Fetch BBRef Data to pull the pitcher's game log from Baseball Reference. The page loads their historical inning-by-inning pitch counts.

Review the output

The page shows average pitch counts by inning, first-inning pitch sequences, and the distribution of first-inning totals. Use this to contextualize a first-inning pitches O/U line.

12

Model Config ADMIN

The Model Config page lets you tune the ensemble weights, feature parameters, and toggle which signals the model uses. Changes here affect every projection in the slate.

Ensemble Weights

The model blends four sub-models. You control the weight of each:

ModelDefaultWhat It Does
Vegas Line60%Anchors the projection to the current sportsbook K line. High weight because Vegas aggregates enormous information efficiently.
Logistic17%Per-batter logistic regression using pitch mix × batter vulnerability. Good at identifying lineup-specific edges.
LightGBM15%Gradient boosted tree model trained on pitcher rate stats and context variables. Captures non-linear interactions.
Poisson8%Statistical baseline based on expected plate appearances × K rate. Simple but robust.
⚠️

Weights must total 100%. The app normalizes them automatically when you adjust — if you raise one, others scale down proportionally.

Feature Parameters

ParameterDescription
Prior PABayesian H2H blending strength. Higher = more weight on season-level K% vs. small-sample H2H history. Default 50 PA.
Recency Half-LifeHow many starts back before a pitcher's past performance is half-weighted. Default 10 starts. Lower = model reacts faster to recent form changes.
Batter Recent Form WeightHow much weight to give batters' last 14 days K% vs. season K%. Default 50%.
Confidence IntervalWidth of the CI band shown in results. 80% (default), 90%, or 95%. Wider = more conservative.

Active Features

Toggle individual signals on or off. All are enabled by default:

FeatureWhat It Adjusts
Pitch ArsenalMultiplies pitch type whiff rates against batter vulnerability profiles.
Bayesian H2HBlends historical batter vs. pitcher matchup K data with the prior.
Umpire FactorApplies the home plate umpire's K% deviation from league average.
Park FactorScales projection by stadium-specific strikeout suppression or boost.
Days RestApplies minor adjustments for extra rest or quick turnarounds.
Recency WeightingWeights the pitcher's recent starts more heavily than older ones.
Chase/Zone InteractionsModels the interaction between pitcher zone control and batter chase tendencies.

User Management

The bottom of the Model Config page contains the Users panel for adding and managing accounts.

ActionDescription
Create UserEnter a username, password (min 8 characters), and role (User or Admin). Click Create User.
Change PasswordAdmins can update their own password from the Change My Password card.
Delete UserClick the delete icon next to any user in the users table to remove their account.
13

Import & Export

Import Options

ImportFormatDescription
Slate JSON.jsonImport a full set of pitcher configurations exported from a previous session.
Pitcher CSV.csvFanGraphs pitcher stats CSV (pitchers.csv). Updates the pitcher stats database.
Batter CSV.csvFanGraphs batter stats CSV (batters.csv). Updates the batter stats database.
Lineup JSON.jsonManual batting lineup upload for a specific team/game.
Backtest CSV.csvHistorical pitcher start data for running the backtester on real results.

Export Options

ExportFormatDescription
Slate JSON.jsonDownload all current pitcher configurations. Filename: starters_[date].json.
Projections HTML.htmlA fully standalone HTML report of all projection cards — shareable without needing the app. Filename: ko_projections_[date].html.
Game Lines.htmlStandalone report of game line projections and Monte Carlo results.
Tracker CSV.csvFull results log with actual vs projected Ks, IP, fantasy points. Filename: propulation_results_[date].csv.
Results CSV ADMIN.csvRaw projection data for all pitchers in the slate for further analysis.
14

Glossary

Key terms and abbreviations used throughout the app.

K%
Strikeout percentage — the rate at which a pitcher (or batter) records strikeouts per plate appearance.
Whiff%
Swing-and-miss rate on swings taken. High whiff % = dominant stuff that hitters can't make contact with.
Zone%
Percentage of pitches thrown inside the strike zone. Pitchers balance zone% to generate both called strikes and chases.
Chase%
Rate at which batters swing at pitches outside the strike zone. Higher batter chase% = more exploitable by pitchers with elite breaking balls.
xIP
Expected Innings Pitched — the model's estimate of how deep the pitcher goes, based on pitch limit and historical hook patterns.
xFIP
Expected Fielding Independent Pitching — an ERA estimator that normalizes home runs using league-average HR/FB rates. More predictive than ERA.
SIERA
Skill-Interactive ERA — an advanced ERA estimator that accounts for strikeout rate, walk rate, and ground ball tendencies. Best single-number predictor of pitcher ERA.
Proj K
Projected strikeouts — the model's blended output from all four sub-models for this specific start.
80% CI
80% Confidence Interval — the range of outcomes the model expects 80% of the time. E.g., "4.5 – 8.0" means 8 in 10 starts should land in this range.
H2H
Head-to-Head history — prior matchup data between a specific pitcher and batter. Bayesian-blended with season K% based on sample size.
Bayesian Blend
A statistical technique that weights H2H history vs. prior (season-level) data based on sample size. Small H2H samples are pulled toward the season average.
MAE
Mean Absolute Error — average magnitude of projection error in strikeouts. Lower is better. A MAE of 1.2 means the model is off by 1.2 Ks on average.
RMSE
Root Mean Square Error — like MAE but penalizes large misses more heavily. Better for measuring consistency.
FPTS
Fantasy Points — DFS scoring: K×3, Out×1, ER×−3, Win+6, QS+4.
Park Factor
A multiplier that adjusts projections based on the stadium. Hitter-friendly parks (Coors Field, Great American Ball Park) suppress K projections; pitcher parks boost them.
LightGBM
A gradient-boosted tree machine learning model trained on pitcher and context features. One of four sub-models in the ensemble.
Prior PA
The Bayesian prior plate appearance parameter. Controls how aggressively the model trusts H2H sample data vs. season-level rates.
TTO
Three True Outcomes — events that don't require fielding: strikeout, walk, or home run. TTO-heavy pitchers (high K%, high BB%, high HR risk) have more volatile outings.
QS
Quality Start — 6+ innings pitched with 3 or fewer earned runs. Worth +4 FPTS in standard DFS scoring.