How We Track Results
Every number on this site comes from the same pipeline described on this page. No exceptions. No cherry-picks.
2 graded picks
Tracking since June 16, 2026
Win rate displayed after 30 verified picks — currently building sample.
The Grading Pipeline — Step by Step
Pick is logged before game start
When a pick is published it receives a UTC timestamp. Any pick published after the game's scheduled start time is rejected by the pipeline — it cannot count toward the record.
Game scores fetched from the Odds API
After a game ends, the grade-picks cron calls the Odds API /v4/scores endpoint for the sport and date. It reads the official home_score and away_score from the response and writes them to the pick row.
Grade computed from the real final score
Win/loss/push is determined by comparing the actual margin to the spread line embedded in the pick text. For moneylines, the winning team is compared directly. For totals, the combined score is compared to the published over/under.
Result written — only once a verified score exists
A pick's result field is set to W, L, or P only after home_score IS NOT NULL. A pick with no confirmed score stays in "pending" indefinitely — it never counts in any stat.
Stats views recalculate on every query
The pick_stats, sport_performance, and confidence_tier_performance database views filter on is_backfill=FALSE AND home_score IS NOT NULL AND result IN ('W','L','P') every time they are read. There is no cached or pre-computed win rate — it reflects the live table state.
What Counts — and What Does Not
Included in all stats
Real scored pick — published=TRUE, is_backfill=FALSE, home_score IS NOT NULL, result IN ('W','L','P').
Always excluded
Backfill / seed picks (is_backfill=TRUE) — historical rows inserted during development with SQL-generated random outcomes. Never published to members and never counted.
Scoreless picks — any pick where home_score IS NULL. This includes picks that are still pending, games that were postponed, and any pick that was erroneously given a result without a verified final score.
Unpublished picks (published=FALSE) — internal test picks or picks that failed the quality check before release.
Pending picks — picks where the game has not yet ended or the score endpoint has not yet returned a confirmed final score.
What We Will Not Do
No fabricated records. We will never hand-enter a result or count a pick that was not graded against a real, API-confirmed final score.
No cherry-picked samples. The record on /results includes every published live pick — wins and losses. We do not remove losing picks or retroactively exclude sports/bet types from the overall record.
No win rate shown below 30 real graded picks. Until the sample reaches 30 real scored picks, every stat surface shows "Building record" instead of a win rate. Percentages from small samples are statistically meaningless and misleading.
No AI/ML performance claims. SharpUnit does not deploy a trained machine-learning model in production. Picks are scored by a heuristic signal engine — see "Conviction Scoring" below. We will not claim otherwise.
No deleted losses. The pick log is append-only. Historical picks are never removed — even if a pick was wrong, poorly timed, or graded in a sport we no longer cover.
Conviction Scoring — What the Stars Mean
SharpUnit uses a signal-weighted heuristic engine, not a trained machine-learning model. Each signal is scored independently and combined with fixed weights. The confidence star rating reflects the size and consistency of the combined signal edge — it is not an ML output or a probability model.
Maximum conviction
Three or more strong signals align. Sharp-money indicator, meaningful line movement, and odds spread all point the same direction. These picks receive full unit sizing.
High conviction
Two strong signals agree. The edge is quantifiable and above the minimum threshold. Standard unit sizing.
Medium conviction
One strong signal supported by secondary indicators. Worth posting but sized conservatively.
Low conviction
Small edge detected. Posted for information; not recommended for aggressive sizing.
Marginal
Edge is at or near the minimum threshold. Informational only.
Signals scored (20+)
Closing Line Value (CLV)
Where available, we record the closing line at game time and compute Closing Line Value (CLV) — the difference between our posted odds and the closing market line. Positive CLV indicates the pick was published before the market moved in our direction. CLV is an independent signal of edge quality and is displayed on the /results page alongside standard win/loss data.
CLV is available only for picks where we captured an opening and closing line. It is never fabricated or back-filled.
The short version
A pick is real when it was published before the game started AND a real final score was confirmed by the Odds API. Everything else is excluded from every stat on this site — no exceptions, no overrides.