PocketStats
A native iOS scorekeeper for pool nights that matter — team rounds, races, brackets and round robins, scored frame by frame with live activities, deep statistics and AI match summaries. Built, shipped and running in production by slickfive.
League night deserves
better than a chalkboard
Somebody always claims they won the last frame. PocketStats ends the argument: every frame is scored the moment it ends, timestamped, attributed and charted — while the score sits live on your lock screen and the stats write themselves.
- 1Score in one tap. Tap the winner, the app does the rest — frames, streaks, match points, undo included.
- 2Stats that accumulate. Win rates, head-to-heads, monthly form — every game feeds a player's career record.
- 3Yours everywhere. Core Data synced through CloudKit; themes from felt green to classic wood.


Rack · Score · Shake hands

Set the lineup
Pick who plays each frame — or let the app carry your usual pairings through the round.

The live scoreboard
Turn the phone sideways and it becomes the table's scoreboard — giant digits, one tap per frame, a Dish button for the clean-ups.

Match complete
A full result card — every frame, every pairing, quality badge, share image, quick rematch.
Watch a quick race
Recorded live from the simulator, driven end-to-end by an automated UI test: launch, into the Races hall, one tap on Quick Race and the scoreboard is up — points tapped in, race completed, straight into the winner's summary and score-progression chart.
- QZero setup. Quick Race needs no players, no teams — hand the phone to the table and play.
- ±Forgiving by design. Plus and minus on both panels, rename players mid-game, reopen a race after completing it.
Five ways to run the table
From a casual head-to-head to a full tournament bracket — every format your pool hall plays.
Team Rounds
Two teams, frame-by-frame scoring with per-frame lineups, best-of formats, skips and undo.
The league nightRaces
1v1, first to a target — or open-ended. Tap to score, with streaks and frame times tracked.
Race to 3–15Brackets
Single-elimination tournaments, randomly seeded, race-to-X per round, champion crowned.
4–16 playersRound Robins
Everyone plays everyone; standings compute themselves as results come in.
Fair fixturesQuick Race
No names, no setup — a scoreboard in two taps for casual tables. Rename players on the fly.
Zero frictionRaces: first to the post,
every frame on record
Player cards fill toward the target as frames land. When the race is won, the app writes the story for you — an AI match summary that reads like a commentator's notebook, on top of the raw numbers.
- 1Race to 3 through 15 — or open-ended; best-of formats supported.
- 2Every frame timestamped — average frame time, longest streak, momentum swings.
- 3Not over till it's over — reopen a completed race and keep playing.




Tournament night,
run from one phone
Pick the field, set the race length, and the bracket seeds itself with a secure shuffle. Matches run through the same live scoreboard; the bracket advances winners automatically, into a final and an AI tournament recap.
- 1Single elimination — semi-finals to final, each round race-to-X.
- 2Round robins too — everyone plays everyone, with live standings.
- 3The recap — "Slickfive triumphs in thrilling 4-player bracket" — written the moment the final ball drops.
Fixtures & the house roster
Round robins list every fixture as an open game — play them in any order, and standings settle themselves. Behind it all sits a proper roster: players and teams with searchable lists, home-team stars, and careers that span every mode.
- 1Open games queue — any table can pick up any remaining fixture.
- 2Home team & home player — pin your own for a dashboard the moment the app opens.
- 3Archives — finished rounds, races and tournaments filed away, never lost.




Statistics with
real table manners
Every frame you score becomes a data point. Swift Charts turns a match into a score-progression curve, a stats grid, and a frame-by-frame timeline with running scores — momentum you can point at.
- ◔Match analytics — average frame time, longest streak, biggest lead, deciding frames.
- ◑Momentum chart — watch the race unfold hop by hop after the handshake.
- ◕The timeline — who beat whom in frame 7, at 9:42pm, with the score at 4–3.
Every player gets
a career
Profiles accumulate across every mode: win-rate donuts, monthly form charts, head-to-head records against regular rivals, recent-form dots for the last ten results. Bragging rights, with citations.
- WWin rates that mean something — frames and matches, split by mode, trending against career average.
- HHead-to-head — the record against the one opponent who matters.
- FRecent form — the last ten results at a glance, green and red.


The score follows you —
the felt is your choice
- ◉Live Activities — the score sits in the Dynamic Island and on the lock screen for the whole match; no unlocking mid-frame.
- ▣Home screen widget — your home team's form, one glance from the springboard.
- ✎Notes & photos — attach the table-side story to any round; share results as a generated image.
- ☁CloudKit sync — every frame on every device, no accounts to invent.
Four themes, tuned to where you play:
SwiftUI · Core Data + CloudKit · MVVM
Nine Core Data entities under an @Observable MVVM layer, Swift Charts for the visuals, ActivityKit and WidgetKit at the edges — one codebase from quick race to championship bracket.