How AskScores works

Every number on AskScores comes from ESPN’s public statistics feeds, is stored in our own database and is recomputed once a day. No number is written or estimated by a language model.

Where the numbers come from

ESPN’s public JSON endpoints supply rosters, season lines, game logs, box scores, schedules and standings. Nothing is fetched when you ask a question: a daily job copies the data into a PostgreSQL database, and every answer is a query against that copy.

The full update runs every day at 09:00 UTC, after the previous day’s games have finished. Scores and schedules refresh every 20 minutes. Once the update lands, every stored answer is recomputed against the new rows, and pages whose numbers changed are rebuilt. Each answer prints the date its numbers were computed and links to the matching ESPN page, so any figure can be checked in one click.

When each league was last ingested
LeagueSeasons on filePlayersGame-by-game logs from
NBA1947-48 to now2,510December 2020
NFL1978 to now11,076September 2021
MLB1876 to now19,275April 2022

“On file” in a rank, as in “1st among 2,400 NBA players on file”, counts the players in this database, not everyone who has ever played. ESPN’s records are thinnest in the earliest decades.

How a question becomes an answer

  1. A parser reads the question into a query: which player or team, which statistic, which season or span, regular season or playoffs. It works from rules and from a catalog of the words people actually type, so “dingers” means home runs.
  2. The query runs against the stored rows. Totals are regular season unless the question asks about the playoffs, and a season still being played says so, with the date the numbers are from.
  3. The sentence is filled in from the result. The context under it (rank in the league, place in the player’s own career, change from the season before) comes from the same rows, and the page shows the season-by-season table the number was taken from.

A language model is never asked for a number. At most it reads an unusual phrasing into the same kind of query, and the database supplies the figure.

Leaderboards and rates

Counting stats such as points, home runs and yards rank everyone. A rate needs volume behind it, or a player with four shots tops the board, so rate leaders use each league’s own full-season qualifiers, pro-rated while a season is in progress:

  • NBA: 300 field goals made for FG%, 82 threes for 3P%, 125 free throws for FT%, and 300 field-goal attempts for TS% and eFG%.
  • MLB: 3.1 plate appearances per team game for batting rates (502 over 162 games) and one inning per team game for pitching rates. ESPN’s season line has no plate-appearance column, so at-bats, walks and hit-by-pitches stand in for it, a few sacrifices short.
  • NFL: 14 pass attempts, 6.25 carries or 1.875 catches per team game. Kickers need one field-goal attempt per team game.
  • Any other rate: 20 NBA, 30 MLB or 4 NFL games over a full season.

Rates print at the precision the league uses, .313 rather than 0.3. The glossary shows every formula, worked on the current leader’s numbers.

Checks, and the gaps we know about

  • MLB lines are checked against MLB’s official totals (statsapi.mlb.com) at the end of every daily update. A line that differs is flagged and investigated, and a regular MLB lists that we lack is added. On September 15, 2026 this comparison found 155 hitters whose 2026 lines counted one game twice, after ESPN’s season feed came back before its game logs did. They were corrected the same day.
  • When ESPN’s per-player feed stalls, as it did for MLB from September 12, 2026, each day’s lines are rebuilt from the official box scores until it resumes.
  • A season split between clubs is one row naming each of them, such as LAD/DET.
  • ESPN lists some long careers only in part. Kareem Abdul-Jabbar’s season rows cover his Lakers years, 24,176 of his 38,387 points, so career totals use ESPN’s own career line rather than a sum of seasons.
  • Our NBA files before 1993-94 hold far fewer qualified players, 12 to 312 a season, so a rank in those years is against a smaller field than the league had.
  • NFL tackles are credited by each home team’s statisticians and are not an official league statistic, so they compare poorly from stadium to stadium.

Reporting a wrong number

Use “Spotted a wrong number?” at the bottom of any page. The report is stored with the address of the page you were on. A confirmed error is fixed in the stored row, and every answer built on that row is recomputed in the next daily update.

Who runs AskScores

AskScores is an independent project. It is not affiliated with, endorsed by or licensed by the NBA, the NFL, MLB or ESPN. Team names and logos belong to their owners.