Model Deep-Dive

Location+
Pure Command Grading

Location+ grades where the pitch crosses the plate and how that interacts with count. It is intentionally blind to velocity, movement, and spin — isolating command as a standalone skill.

11
Features
400
Max Trees
4
Max Depth
6
Sub-Models

Location+ is the first model in the pipeline. It establishes the command baseline, and its predictions become the foundation for Stuff+ — which trains on xRV residuals after removing Location+ predictions. This separation ensures Stuff+ measures pure nastiness, decorrelated from command.

What Makes Good Command?

Not all locations are equal — and the "right" spot changes dramatically by pitch type and batter handedness. Location+ learns these value surfaces from millions of pitch outcomes. Toggle between pitch types to see how the model values different zones.

CATCHER'S VIEW Strike Zone RHB RHP Release Horizontal Location (plate_x) Vertical Location (plate_z) Runs prevented (neg xRV) Runs allowed (pos xRV) Elevated Fastball Up in zone = whiffs + weak contact Inside edge Outside edge Low & Center Belt-high = line drives Simple surface: good up, bad down-center. Gradient is mostly vertical.

Arm-Plane Decomposition

Raw plate coordinates treat all pitchers the same. But a pitch at the same (x, z) location means something very different from a high-three-quarters arm slot versus a sidearm slot. Location+ decomposes plate_x and plate_z into coordinates relative to the pitcher's release point.

Same Plate Location, Different Arm Angles along_arm and across_arm capture where the pitch went relative to the pitcher's natural delivery path High Three-Quarters Release: (-1.8, 6.0) Release arm plane along_arm across_arm zone Pitch Low Sidearm Release: (-3.0, 4.5) Release arm plane along_arm across_arm zone Pitch Same plate location, different arm-plane coordinates High Three-Quarters along_arm: moderate extension down the plane across_arm: small deviation from natural path Interpretation: pitch followed delivery naturally Low Sidearm along_arm: shorter extension across_arm: large deviation against arm plane Interpretation: pitch fought delivery angle The same raw location implies different command stories depending on arm slot.

Why this matters: Without arm-plane decomposition, Location+ would systematically misgrade pitchers with unusual release points. A sidearm pitcher who consistently hits the outside corner is exercising elite command relative to their delivery — but raw plate_x alone cannot capture that. The decomposition lets the model see command as relative precision.

Against-Break Location

Every pitch has natural movement from its spin. against_break_location and against_break_vertical measure how much the final plate location differs from where spin alone would have taken the ball. High against-break means the pitcher placed the pitch against its natural tendency — a sign of active command, not passive delivery.

Pitch Placement vs. Natural Movement LOW AGAINST-BREAK Pitch follows its spin Strike Zone Spin pulls ball here HERE Pitch ended up where spin naturally takes it against_break = low Passive placement HIGH AGAINST-BREAK Pitch fights its spin Strike Zone Spin pulls this way Expected HERE against_break Pitch ended up far from where spin would have taken it against_break = high Active command / precise intent Location+ uses against-break as a proxy for intentional placement vs. accidental location.

The 11 Features

Hover over each feature to learn what it measures and why it matters for grading command. Notice: no velocity, no movement, no spin — purely location and situation.

plate_x
Horizontal plate location
Horizontal position where pitch crosses the plate, in feet from center. Negative = arm side (for RHP), positive = glove side. The most fundamental command measure.
plate_z
Vertical plate location
Height at which the pitch crosses the plate, in feet above ground. Combined with plate_x, this defines the raw location. But without adjustment for batter height, it is incomplete.
zone_z_normalized
Height relative to batter
Plate_z normalized by the batter's strike zone height. A pitch at 0.5 is mid-zone regardless of whether the batter is 5'8" or 6'5". Critical for making vertical location comparable across matchups.
along_arm
Extension along arm plane
How far the pitch traveled along the pitcher's arm-plane axis from release to plate. Captures the natural extension of the delivery. Differs by arm slot, making it pitcher-aware.
across_arm
Deviation from arm plane
Perpendicular distance from the arm plane. High across_arm means the pitch deviated significantly from the natural arm-slot trajectory. A key indicator of intentional placement vs. following delivery inertia.
against_break_location
Horizontal fight against spin
How much the horizontal plate location deviates from where the pitch's spin would naturally carry it. High values suggest the pitcher placed the pitch against its movement tendency — evidence of active command.
against_break_vertical
Vertical fight against spin
The vertical component of against-break. Measures whether the pitch ended up higher or lower than its spin profile would predict. A high changeup with high vertical against-break means the pitcher was fighting to keep it elevated — unusual and informative.
balls
Ball count (0-3)
Current ball count in the at-bat. The value of a pitch location changes with count — a fastball up in the zone on 0-2 is a great approach, the same pitch on 3-1 is a mistake. Context feature, not a location measure.
strikes
Strike count (0-2)
Current strike count. Pitcher's ahead counts allow more aggressive waste pitches; behind counts demand more zone contact. The model learns that a slider off the plate is good on 0-2 but harmful on 3-0.
is_two_strike
Binary: 2-strike count?
Boolean flag for 2-strike counts. Gives the model a strong signal for putaway situations where off-plate locations become valuable. The nonlinear jump from 1-strike to 2-strike situations is important enough to get its own feature.
is_three_ball
Binary: 3-ball count?
Boolean flag for 3-ball counts. In these situations, walks are imminent and the pitcher must throw strikes. The model heavily penalizes off-plate locations with 3 balls — command means throwing strikes when you must.

What Location+ Captures vs. Ignores

The model's strength is its discipline. By refusing to look at physics, it produces a command grade that is independent of stuff — making it the perfect baseline for the Stuff+ residual target.

Captures

1
Edge-painting ability — Can the pitcher hit the corners and edges consistently? Measured through plate_x/plate_z patterns over many pitches.
2
Count-dependent execution — Does the pitcher waste correctly on 0-2? Hit the zone on 3-1? Count features let the model reward situational command.
3
Arm-relative precision — Via arm-plane decomposition, the model evaluates placement relative to the pitcher's natural delivery path, not absolute coordinates.
4
Intentional placement — Against-break features detect pitches placed against their spin tendency, indicating active command rather than accidental location.

Intentionally Ignores

1
Velocity — A 98 mph fastball on the corner and an 88 mph fastball on the same corner have equal Location+ grades. Velocity belongs to Stuff+.
2
Movement — Vertical and horizontal break, induced spin — all invisible. A devastating slider and a flat slider at the same location score the same.
3
Spin rate & axis — Raw spin, active spin, spin axis — all ignored. These define "stuff," not "command."
4
Tunneling & deception — How the pitch looks out of the hand, release similarity to other pitches — Pitching+ territory, not Location+.
5
Batter quality & pitcher identity — No adjustment for who is batting or who is throwing. Pure location merit, no reputation bias.

Why Separating Command Matters

Consider two pitcher archetypes. Their overall results might be similar, but the underlying skills are opposite. Location+ sees the difference that aggregate stats miss.

The Command Artist

Kyle Hendricks type — paints corners, below-average velocity

Lives on the edges of the zone. Every pitch is precisely placed relative to the count and batter. But the stuff won't fool anyone by itself — batters just can't hit what they can't square up.

122
Location+
85
Stuff+
104
Pitching+
VS

The Stuff Beast

Early-career Hunter Greene type — elite velocity, wild command

Throws 100 mph with nasty movement. But leaves pitches over the middle, can't hit the zone in 3-ball counts, and doesn't vary approach by count. Raw arm talent carrying undeveloped control.

82
Location+
125
Stuff+
106
Pitching+

Pitching+ combines both skills, which is why these pitchers score similarly overall. But the separated grades reveal entirely different profiles — useful for scouting, development, and projection. A pitcher with elite stuff and poor command has more room to grow than one who has already maxed out on location.

The 100 Scale

Raw xRV predictions are converted to a 100-centered grade where 100 is league average for that pitch type. The distribution follows a roughly normal shape — most pitches cluster near average, with tails for truly elite or poor command.

70 85 100 League Average 115 130 Poor command Most pitches Elite command Reading the scale: 110 = top ~30% command for that pitch type. 120+ = elite (top ~10%). Below 90 = notably poor placement.

Per-pitch, not per-pitcher

Each individual pitch gets a Location+ grade. A pitcher's season grade is the average across all their pitches — meaning one bad pitch doesn't tank a whole outing, but consistent misses will.

Separate by pitch type & hand

Scaling is done within each of the 6 sub-models (fastball/breaking/offspeed crossed with batter hand). A 110 changeup and a 110 fastball both represent the same percentile of command quality within their category.

Location+ in the Model Pipeline

Location+ is trained first. Its predictions then serve as the subtraction baseline for Stuff+, ensuring the two grades measure independent skills.

Location+ Train on raw xRV 11 location features STEP 1 predictions become target Stuff+ Train on xRV residuals 24 physics features STEP 2 both feed into Pitching+ Train on raw xRV 40 combined features STEP 3 Stuff+ target = xRV - Location+ prediction

Location+ at a Glance

Pure Command

11 features, zero physics. Grades where the pitch goes, not what it does when it gets there.

Arm-Plane Aware

Decomposes location relative to each pitcher's release point. A sidearm corner-painter gets proper credit.

Pipeline Foundation

First model trained. Its predictions become the baseline that Stuff+ removes, ensuring decorrelated grades.