Hoops Analytics
Mini-hoop shooting sessions, shot by shot
Last session Thu, Apr 16 · 2 sessions · 68 shots
over 2 sessions · 49 of 68 shots went in · 10.2% of 49 recorded makes were swishes · 27 of 95 stored rows are hidden
Every number on this page is computed from the 68 shots stored in the database for the 2 sessions below. Shots are sent to the ingest API by the capture device; the page re-reads them while you watch. Source and API on GitHub
27 further rows are stored but excluded from every number here, and they are never deleted: 23 real shot, device clock was wrong (stamped 1970); awaiting a decision on re-dating; 4 synthetic: created by a platform smoke test, not a real shot.
Every shot, in order
One mark per stored row. Nothing here is smoothed, averaged or inferred.
One mark per stored shot, oldest first. Filled marks went in; outlined marks did not. A run of filled marks is a run of makes.
Where the ball crossed the rim
Shown only for shots whose position was measured against a rim the tracker had located.
No shots recorded with rim positions yet.
The camera tracker records these: it finds the rim in the frame and measures where the ball crossed the plane of the rim, in rim widths left or right and short or long. Until a session is recorded that way there is nothing here that could honestly be drawn on a picture of a hoop.
The 68 earlier shots on this page were stored as positions in the camera frame, which say nothing about where the ball was relative to the rim, so they are not plotted here.
Progress
One bar per session, oldest first. Bar height is attempts; the filled part is makes.
Streaks
Makes in a row. A run never carries from one session into the next.
The record is 30 makes in a row. Each column is one session's best run; the filled part is the run it finished on. A run never carries from one session into the next.
Consistency
100 minus twice the spread of the sessions' field-goal percentages.
Not reported yet. A spread needs a sample: this figure is withheld until there are at least 3 sessions to compare, and there are 2.
Session history
| # | Date | Session | Attempts | Made | FG% | Best streak |
|---|---|---|---|---|---|---|
| 02 | Thu, Apr 16 | shootit-ios-manual-test | 12 | 7 | 58.3% | 7× |
| 01 | Wed, Apr 15 | shootit-ios-manual-test | 56 | 42 | 75.0% | 30× |
How these are calculated
- Field goal percentage (FG%)
- Made shots divided by attempts, over the rows shown. Nothing is weighted.
- Best streak
- The longest run of makes inside a single session. A make at the end of one session and a make at the start of the next are not a run of two, so streaks are never chained across sessions.
- Swish rate
- Swishes divided by the makes that actually recorded whether they were a swish. A missed shot stores no swish value at all, which means unknown rather than “not a swish”, so misses are in neither the numerator nor the denominator.
- Consistency
- 100 minus twice the sample standard deviation of the sessions' FG%. Withheld below 3 sessions, because the spread of one or two numbers is not a measure of consistency.
- Hidden rows
- Rows the database keeps but no statistic uses. Nothing is ever deleted: a row is flagged with the reason it cannot be trusted, and the counts above say how many and why.
- Rim positions
- Only shots recorded with a measured rim-relative crossing point can be drawn on a picture of a rim. Earlier shots stored a position in the camera frame, which carries no information about where the ball was relative to the hoop.