Home

Cricket Manager

Turning ball-by-ball data into insights that help every young cricketer get a fair go.

Built for youth cricket coaches and managers at Lindfield Cricket Club, Sydney.

Why Cricket Manager Exists

Youth cricket is not about winning at all costs. It is about giving every kid the chance to bat, bowl, and field in different positions. It is about development, fairness, and making sure that quiet kid who bats at number 10 every week gets a turn opening.

The NSJCA (North Shore Junior Cricket Association) understands this. Their "Blue Book" lays out rules: batting rotation for the top 4, minimum bowling overs for nearly everyone, mandatory retirement so one player does not hog the crease all day. Good rules. Hard to track manually across a full season.

Cricket Manager automates all of it. Add your team, ingest the match data, and instantly see who has been missed, who is overdue for a promotion up the order, and whether you are meeting every compliance requirement.

🏏

Every Kid Gets a Go

Track batting and bowling rotation across the whole season, not just one match.

📊

Data-Driven Fairness

Shannon entropy and Gini coefficients measure rotation equity objectively.

✅

Blue Book Compliance

Automatic checking of NSJCA rules so you never miss a requirement.

Ball-by-Ball: The Source of Truth

The Problem with Scorecards

Official scorecards often list batting positions incorrectly. A player shown at #3 might have actually batted at #7. If you rely on scorecard order for rotation compliance, you are working from bad data.

Scorecard batting order: unreliable

➡
The Ball-by-Ball Advantage

Cricket Manager derives the actual batting order from ball-by-ball data. Every delivery tells us who was on strike, who came in next, who retired. No guessing, no errors.

Ball-by-ball derived order: ground truth

All analysis in Cricket Manager is built from 9,400+ individual ball records across 45+ matches and 330+ players.

How It Works

1

Add Team

Register your team with its Cricket Australia team ID and grade. Takes 10 seconds via the CLI.

2

Ingest Data

Pull match data from Cricket Australia's grassroots API. Ball-by-ball records, scorecards, and match metadata all flow in.

3

Analyse

Batting, bowling, fielding, dismissals, rotation fairness, wicket-keeping, partnerships, compliance, and more. All computed automatically.

4

Report

Interactive dashboards, player profiles, compliance reports, and a print-ready season summary with awards and leaderboards.

What You Get

🏏

Batting Analysis

  • Runs, averages, strike rates per player
  • Per-innings breakdown with ball-by-ball detail
  • Batting position matrix across the season
  • Retirement tracking (30 runs or 30 balls)
  • High-score leaderboards
⚾

Bowling Analysis

  • Wickets, economy, averages
  • Bowling position matrix (who bowls when)
  • Bowling Opportunity Equity analysis
  • Spell tracking and over sequencing
  • Extras and wide/no-ball rates
🧤

Fielding & Dismissals

  • Dismissal quality ratings (competition percentiles)
  • Fielding involvement stats
  • Run-out partner analysis
  • Bad caller / slow runner detection
  • Wicket keeper rotation tracking
📋

NSJCA Compliance

  • Batting retirement enforcement
  • Bowling minimum/maximum over checks
  • Top-4 batting rotation across matches
  • Third-over bowling rule validation
  • Grade-aware rules (Stage 1/2/3)
🏆

Season Summary

  • 9 season awards (Golden Bat, Golden Ball, etc.)
  • Partnership Kings & Dot Ball Survivor
  • Extras Machine fun stats
  • Team of the Season XI selection
  • Print-friendly report for presentation night
⚖

Rotation Fairness

  • Rotation Fairness Index per match
  • Shannon entropy (evenness of distribution)
  • Gini coefficient (inequality measure)
  • Season-long rotation trends
  • Position diversity tracking

The Blue Book, Automated

The NSJCA Blue Book governs how youth cricket is played across Sydney's North Shore. Different stages and grades have different rules. Cricket Manager encodes them all in a structured YAML file and checks every match automatically.

Batting Retirement

Batters must retire at 30 runs or 30 balls faced. Exception: the last two batters remaining not-out can continue.

Top 4 Rotation

The top 4 batting positions must rotate across matches so every player gets a chance to bat early in the innings.

Bowling Minimums

All players except two must bowl at least 2 overs per match, ensuring everyone participates.

Third-Over Rule

Bowlers cannot bowl three consecutive overs. This forces variety and gives more players bowling opportunities.

Where the Data Comes From

Cricket Australia Grassroots API

All match data is pulled from play.cricket.com.au, Cricket Australia's official grassroots cricket platform. This is the same system that scorers use on match day.

Cricket Manager ingests ball-by-ball records, batting and bowling scorecards, match metadata, competition standings, and player registrations. The API's isBallByBall flag cannot always be trusted, so Cricket Manager checks for actual ball data regardless of what the flag says.

45+ Matches
9,400+ Balls Recorded
330+ Players Tracked
3 Teams Monitored

Under the Hood

Python / FastAPI Async web framework
Jinja2 Server-side templates
SQLite / SQLAlchemy Local database
Pico CSS Classless styling
Zero JavaScript HTML & CSS only
149 Tests Fully tested

"The best cricket managers do not just pick the strongest team. They develop every player, rotate fairly, and make sure every kid walks off the field knowing they contributed."

Cricket Manager helps you do exactly that. One ball at a time.

Send Feedback

What the stats mean

Batting
Runs
Total runs scored off the bat. Extras (wides, byes, etc.) go to the team, not the batter.
Inn — innings
Times the player batted. "Did not bat" isn't an innings.
NO — not out
Innings where the batter was never dismissed: still batting when the overs ran out or the target was reached, or retired. In junior cricket batters usually have to retire at a set score (often 25 or 30), and that counts as not out. Scores marked * are not outs.
HS — high score
Most runs in a single innings.
Avg — batting average
Runs ÷ times out. Not-out innings add runs but don't add an out, so a batter who often retires or is not out can average more than their high score.
Example: scores of 30*, 25*, 20 and 15 = 90 runs, out twice → average 45, even though the high score is 30.
A batter who has never been out has no average (shown as —).
SR — strike rate
Runs per 100 balls faced. 100 means a run a ball.
Bowling
Wkts — wickets
Dismissals credited to the bowler. Run outs don't count for the bowler.
O — overs
Overs bowled. 3.4 means 3 overs and 4 balls, not 3.4 overs.
Econ — economy rate
Runs conceded per over. Lower is better.
Avg — bowling average
Runs conceded ÷ wickets taken, i.e. the runs each wicket cost. Lower is better.
Team
NRR — net run rate
The team's runs per over minus its opponents' runs per over, across the season. Positive means scoring faster than conceding. Separates teams level on points. A team that is bowled out counts as having faced its full overs.
Pts — competition points
Ladder points awarded by the competition for wins, draws, and abandoned or washed-out matches.