Hitting. At-Bat Quality. Velocity. Fielding. Four measurable dimensions of player performance, compressed into a single composite score that tells you what batting average and ERA alone never will.
HAV-F is BSI's proprietary player evaluation framework for college baseball scouting analytics. Every player is scored 0-100 on each component via percentile rank against their cohort, then the four components are weighted into a composite. No black boxes — every weight and every input is documented below.
MLB has Statcast — Hawk-Eye cameras in all 30 ballparks tracking every pitch, swing, and throw at 300 frames per second. FanGraphs, Baseball Savant, and Baseball Reference turn that data into consumer-grade analytics. College baseball has nothing equivalent.
TrackMan and Yakkertech are installed at many D1 programs, but that data stays behind closed doors. The public gets box scores and conference stats pages. If you want to evaluate a college player's actual profile — not just his batting average — you're on your own.
HAV-F fills that gap. It takes the publicly available statistical output and builds a structured evaluation framework around it. The limitation is real: without pitch-tracking data, HAV-F uses power metrics as a proxy for bat speed and exit velocity (the V component). The advantage is also real: HAV-F provides a consistent, documented, comparable player evaluation that doesn't exist anywhere else for college baseball.
HAV-F scores are percentile-based, not raw. A player with an 80 H-Score isn't “80% good at hitting” — he's better than 80% of the players in his cohort at hitting. This means scores automatically adjust as the cohort changes. A player who looks elite in a weak conference will score lower when ranked against the full D1 population.
The computation runs in three steps:
For each stat (AVG, OBP, SLG, etc.), sort all players in the cohort from lowest to highest. This sorted distribution becomes the lookup table for percentile ranking.
For each stat, binary search the sorted distribution to find where the player falls. The position in the distribution, adjusted for ties, becomes the percentile rank (0-100). A player at the median gets a 50.
Sub-stat percentiles are weighted within each component (e.g., AVG 25% + OBP 25% + SLG 20% + wOBA 20% + ISO 10% = H-Score). The four component scores are then weighted into the final composite: H 30% + A 25% + V 25% + F 20%.
HAV-F = (H × 0.30) + (A × 0.25) + (V × 0.25) + (F × 0.20) where H, A, V, F ∈ [0, 100] and HAV-F ∈ [0, 100]
Pure offensive production. How well does this player hit, measured against every other player in the cohort?
AVG25%Batting average — contact rate and ball-in-play quality
OBP25%On-base percentage — reaching base by any means
SLG20%Slugging percentage — total bases per at-bat
wOBA20%Weighted on-base average — assigns run values to each outcome
ISO10%Isolated power — extra-base hit ability (SLG minus AVG)
Plate discipline and process. A player who walks, avoids strikeouts, and drives the ball hard is winning at-bats even when the box score says otherwise.
BB%30%Walk rate — patience and pitch recognition
K% (inv)30%Inverted strikeout rate — fewer Ks means higher score
BABIP20%Batting average on balls in play — quality of contact
HR%20%Home run rate — damage per plate appearance
Power proxy. Without Hawk-Eye data at the college level, BSI uses power metrics as a proxy for bat speed and exit velocity — the physical tools that translate to the next level.
ISO40%Isolated power — the strongest proxy for raw bat speed
SLG35%Slugging — total bases reflect hard-hit frequency
HR%25%Home run rate — over-the-fence power
Defensive value. Fielding data at the college level is thin — BSI uses what exists and defaults to league-average (50) when data is unavailable rather than penalizing or rewarding blindly.
FPCT60%Fielding percentage — errors relative to chances
RF40%Range factor — putouts and assists per game
The composite tells you where a player sits overall. The component breakdown tells you why. A 70 composite could be a well-rounded-sm player (65/70/72/68) or a specialist (90/80/60/30). The shape of the radar chart matters as much as the number.
Scouts already think this way — they evaluate tools separately before forming an overall grade. HAV-F formalizes that process against a statistical cohort rather than relying on subjective comparisons.
Top of the cohort. Draft-board material.
Strong performer with standout dimensions.
Solid contributor. The shape of the radar matters more than the composite here.
Weaknesses outweigh strengths against this cohort.
Early-career or limited data. Not a death sentence — check the breakdown.
Player batting statistics from the Highlightly Pro API, supplemented by ESPN's college baseball endpoints where Highlightly coverage is thin. Advanced metrics (wOBA, ISO, BB%, K%, BABIP, HR%) are derived from basic batting lines using FanGraphs linear weights.
Fielding data comes from the same sources but is significantly less reliable at the college level. Many programs don't report range factor, and fielding percentage alone rewards immobility (a player who never reaches the ball never makes an error). HAV-F acknowledges this by defaulting to a neutral 50 when fielding data is unavailable.
Exit velocity, launch angle, and bat speed are unavailable for college baseball. The V component uses power metrics (ISO, SLG, HR%) as a proxy. This correlates with — but does not measure — actual bat speed.
Scores are relative to whoever is in the cohort. A 90 in a 30-player sample means something different than a 90 in a 300-player sample. Always check cohort size.
HAV-F v1.0 evaluates position players. Pitchers are not scored. A pitching-specific framework (K/9, BB/9, FIP, WHIP, velocity) is planned for v2.0.
Small sample sizes in the first 2-3 weeks of the season produce volatile scores. A player who goes 5-for-8 in opening weekend will look elite until the sample stabilizes.
Fielding percentage and range factor are blunt instruments. The F component is weighted lowest (20%) for this reason, and defaults to 50 when data is missing.
The computation engine lives in lib/analytics/havf.ts — pure math with no external dependencies. It takes an array of player stat objects, builds a percentile table from the cohort, and returns scored results.
Percentile ranking uses binary search for O(log n) lookup per stat per player. Ties are handled with midpoint averaging — if three players share the same OBP, they all receive the percentile at the middle of the tie range.
Computed scores are persisted to Cloudflare D1 (the havf_scores table) with raw input stats preserved for audit trail. The leaderboard API reads from D1 with KV caching (5-minute TTL) for production performance.
havf_scores ├── player_id TEXT (unique per league+season) ├── h_score REAL [0-100] ├── a_score REAL [0-100] ├── v_score REAL [0-100] ├── f_score REAL [0-100] ├── havf_composite REAL [0-100] ├── raw_avg, raw_obp, raw_slg, raw_woba, raw_iso ├── raw_bb_pct, raw_k_pct, raw_babip, raw_hr_rate ├── data_source TEXT └── computed_at TEXT (ISO 8601)
Austin Humphrey. (2026, February 24). HAV-F: College Baseball Player Evaluation Methodology. Blaze Sports Intel. https://blazesportsintel.com/models/havf