NBA ANALYSIS // OCT 12
The Death of the Mid-Range is Exaggerated
Why elite playoff offenses still rely on inefficient shots when defenses compress in the fourth quarter.
We strip away the noise. Rigorous analytics, brutal honesty, and the strategic deep dives that television networks refuse to air.
LIVE DATA FEED // 2024
The average sports broadcast treats you like an idiot. They feed you meaningless counting stats, cliché narratives, and manufactured drama.
SportXFan was built for the obsessive. We care about expected points added (EPA), defensive win shares, true shooting percentage, and the underlying math that dictates who wins championships.
No fluff. Just the numbers.
NBA ANALYSIS // OCT 12
Why elite playoff offenses still rely on inefficient shots when defenses compress in the fourth quarter.
EPL TACTICS // OCT 10
Analyzing the correlation between inverted fullbacks and central progression metrics across Europe's top five leagues.
Don't take our word for it. Use our open-source, client-side tools to calculate the metrics that matter.
Stop relying on gut feeling. Learn the statistical foundation of modern sports analysis through our rigorous guides.
/vɔːrp/ • Value Over Replacement Player
An estimate of the points per 100 TEAM possessions that a player contributed above a replacement-level (-2.0) player, translated to an average team and prorated to an 82-game season.
View Full GlossaryMichael Lewis
The book that brought sabermetrics to the mainstream. Essential history for any sports analyst.
Kirk Goldsberry
A visual mapping of how the three-point line fundamentally broke and remade basketball geometry.
James Tippett
A comprehensive breakdown of how xG transformed football tactics and betting markets.
Join 15,000+ analysts who receive our weekly breakdown of the most significant statistical anomalies in global sports.
No spam. Just spreadsheets.
def calculate_epa(ep_pre, ep_post, turnover, score_diff):
"""
Calculate Expected Points Added.
"""
if turnover:
return -ep_pre - ep_post_opp
raw_epa = ep_post - ep_pre
# Garbage time adjustment
if abs(score_diff) > 16 and time_remaining < 300:
return raw_epa * 0.1
return raw_epa
We don't hide behind black boxes. Every metric we publish is backed by public models hosted on our GitHub. Transparency is the only way to build trust in sports analytics.
Long-form interviews with data scientists, front-office personnel, and the quants changing the game.
How Brighton & Hove Albion use proprietary data to exploit the transfer market.
A statistical autopsy of why NFL rushing value plummeted over the last decade.
Analyzing the immediate impact of the pitch clock and shift bans on BABIP.
| 1 | Boston Celtics | 123.2 |
| 2 | Indiana Pacers | 121.0 |
| 3 | Oklahoma City Thunder | 119.5 |
| 4 | Los Angeles Clippers | 118.8 |
| 1 | Brock Purdy (SF) | +168.3 |
| 2 | Dak Prescott (DAL) | +154.2 |
| 3 | Josh Allen (BUF) | +148.9 |
| 4 | Patrick Mahomes (KC) | +132.5 |
HEAD OF MLB ANALYTICS
Former data engineer for a AL East front office. Specializes in pitch-tracking data and biomechanical efficiency.
DIRECTOR OF FOOTBALL EPA
Creator of the open-source GridironModels library. Focuses on offensive line win rates and defensive spacing.
LEAD SOCCER QUANT
Pioneer in non-shot expected threat (xT) models. Covers European top five leagues and international tournaments.
NBA SYSTEMS ARCHITECT
Builds spatial models tracking off-ball gravity and defensive rotation timing using optical tracking data.