ProductEvidenceNotebookPricingFAQ
Sign inOpen the tool
ProductEvidencePricingFAQNotebookSign in
Resources

Where every number
comes from.

Our entire credibility is one promise: nothing on screen is invented. This page is that promise, written down — sources, process, and what happens when something's wrong.

Our projection against the closing line61%

of 6,546 AFL props, our number landed closer to the result than the closing line did. Average miss 1.92 against the market's 2.16.

How it's scored →
What we pay for2 of 6

sources cost us money: the WNBA and NBA box scores and the bookmakers' prices. No bookmaker pays us.

Every source →

Where it comes from

SourceWhat it gives usCodesFree or paidRefreshed
SquiggleFixtures, venues and final scores. A free community API run by footy-stats people.AFLFreeTwice a day
Public stat archivesEvery player's statistics for every game, kept by volunteers and archivists since long before us.AFLFreeTwice a day
Each league's own match dataFixtures, rosters and every player's stat line, from the league's own match centre.NRL, NBLFreeTwice a day
BALLDONTLIEFixtures, results, rosters and box scores, from a commercial basketball data service.WNBA, NBAPaidDaily, and every half hour once a game is due to finish
Open-MeteoHistorical and forecast weather at each venue: which past games were wet, and what Saturday looks like.AFL, NRLFreeWith each load; forecasts every three hours
Two odds providersBookmakers' lines and prices, so you can see what you're being offered.AFL, NRL, NBL, WNBA, NBAPaidEvery 15 minutes

Buying the prices is the point — it is how the site can show you what you're being offered without taking a cent from the bookmaker offering it. The full list, with links, is on the credits page.

The cycle

Every code's results are pulled automatically at least once a day — AFL, NRL and the NBL twice — and each run reads the completed games, attaches the weather each was actually played in, and loads the database. Bookmaker prices are separate and much faster: they are checked more often as a game gets closer, as often as every fifteen minutes in the last hours before it. Nothing on the site is ever more than a day behind the last siren.

The rule that runs everything: fail loud

If a source changes its format, the pipeline stops and shouts — it never quietly writes garbage. Missing data costs us a day. Wrong data would cost us the only thing we sell. Our failure mode by design is silence, never confident nonsense.

Nothing is pre-baked

There are no saved hit rates in the database. Every figure on your screen — the hit rate, the conceded rank, the wet-weather split — is computed from raw game rows when you ask. The one stored summary is each player's season average per stat, which ranks a player against the rest of the league, and it is rebuilt from those same rows after every load. So one corrected data error fixes itself everywhere at once, and every number can be traced back to specific games on specific days.

The quiet decision underneath it all

Every player-game row carries the opponent stamped onto it. That's what lets us answer "how many disposals does Hawthorn give up, and where does that rank?" — the most useful question in props research — in a single query instead of four websites.

What we don't do

  • No tips, selections, or advice of any kind — we publish numbers, the call is yours.
  • No black-box models. There is one projection. The player page doesn't display it. It is a base rate plus a stack of labelled adjustments in the stat's own units — every term visible, nothing weighted out of sight. No other "expected" stats.
  • No bookmaker money. We licence prices and display them; we earn nothing whether you bet or not, and we link to no operator.
  • No smoothing over small samples — under 4 games, the UI flags it as thin evidence.
  • No deleting inconvenient history. Corrections are logged and applied, not buried.

Does our projection actually beat the market?

A closing line — the last number a bookmaker offered before the bounce — is the sharpest public forecast there is. Thousands of people and a bookmaker's own model have pushed it to where it sits. So it is the fairest possible test of ours, and we run it against ourselves in public.

The test is not whether a bet won. That is one coin flip. It is whether our NUMBER landed closer to what the player actually did than the market's number did, measured in the stat's own units across every prop we can score. Each projection is rebuilt using only the games that had been played before that match — scoring a forecast against a log containing the game it was forecasting would be marking our own homework.

  • 6,546 props scored across 32 games — behinds, clearances, disposals, goals, handballs, kicks, marks, tackles.
  • Our number landed closer 61% of the time. 27 props tied and are excluded rather than counted as half.
  • Average miss: 1.92 for us against 2.16 for the market.

Our number is currently landing closer on average. That is worth something and it is not a guarantee — it is a measured result over a finite sample, and it can turn.

We grade our hit rates the same way

The projection is not the only number we check in public. The hit rate shown at the default line on each sport's featured stat gets replayed against what then happened — when we showed 70%, did it land near 70%? The running answer, per sport and per band, lives on the Self-grade page, thin samples flagged and all.

Found an error?

Tell us the player and the round at data@projectpunt.com.au (placeholder). Because everything derives from raw rows, one fix corrects every page that touches it.

AFL, NRL, NBL, WNBA, NBA and NFL player-props research: hit rates, game logs and matchups — so every prop is a decision, not a guess.

Product

Games tonightPricingSign in

Players

AFL playersNRL playersNBL playersWNBA playersNBA playersNFL players

Company

AboutBlogContact

Resources

GlossaryMethodologyAcknowledgements

Legal

TermsPrivacyResponsible gamblingAccessibility
© 2026 Project Punt Pty Ltd · ABN 99 701 641 698 · Sydney · 18+. Gamble responsibly. Every number is a count of what already happened, with what it is out of. Nothing here is a tip.