← Back to Showcase
SUBS

SUBS

Smarter subs. Better second halves.

Why I Built This

In soccer, substitutions are one of the most impactful decisions a manager makes — yet they're often based on gut feel. SUBS was built to bring a data-informed lens to that decision, analyzing player performance during a match and recommending who should come off and who should come on.

How I Built It

Written entirely in Rust, SUBS is a modular CLI tool with clear separation of concerns. It ingests StatsBomb open football match event data (JSON) and team lineups, then pipes that through a fatigue-scoring module (decay.rs) that computes per-player tiredness using activity decay metrics. A tactical analysis module (matcher.rs) detects performance gaps and positional vulnerabilities, and the recommendation engine maps bench players to the weakest on-field roles. Output is available as plain CLI text or a full-screen interactive terminal dashboard built with ratatui.

Tech Stack

Rust ratatui clap StatsBomb JSON

What It Does

Takes in match data and player performance metrics, then surfaces substitution recommendations to help a manager make better in-game decisions. Fatigue scores are computed per player, tactical vulnerabilities are identified, and the best available bench option is matched to each gap.

What's Next

Could integrate real-time match data feeds, expand to factor in opponent tactics, and build a visual dashboard for live match management.