Hoops Nightly
+ Pick your team
Newsroom · how Hoops Nightly is made · last refresh just now

Thirty desks,
one method

19data jobs
running now

Hoops Nightly is a newsroom built around a database. Thirty team desks work from the same live data under the same written rules, with a writing system doing the volume and a human editor owning the rules, the review and the corrections. Nothing here carries an individual byline, and nothing here pretends to: the desk is the author, the publisher is accountable, and every page shows its data and its timestamp so you can check it yourself. This page is the whole method, including the parts we would rather you knew than assumed.

587
player pages
1,265
2026-27 game pages
25
trade reports logged
73
injury changes tracked
378
videos indexed
332,263
words on the site

The desk model

the 30 desks →

Each team section is a desk: Lakers Nightly Desk, Celtics Nightly Desk, and so on to thirty. A desk owns its club's data, its morning briefing, its show and its pages, and it signs everything it publishes as a desk. There are no individual bylines on Hoops Nightly, and there are no invented ones either: no pen names, no stock-photo faces, no biographies written for people who do not exist.

We chose this over personas because a byline is a promise about who answers for the words. Here the answer is the same on every page: the desk produced it under the rules on this page, and the publisher, CR OU OÜ, answers for it. Wire services and several major titles sign as staff or desk for the same reason; the difference is that we also show you the data the words came from.

What a desk is not is a local reporter. No desk attends practice, sits in a press room or has sources of its own. When a club's beat writers report something, the desk logs it as a report with its source and confidence, and says so.

How a desk signs
Pages and briefings · "By the Lakers Nightly Desk", dated, with the data on the page
League pages · "By the Hoops Nightly Desk"
Shows · the host and the analyst, two voices that are roles, not people, named as such on every episode page
Structured data · author is the desk as an organization, publisher is Hoops Nightly, policies linked
Accountable · the publisher, reachable on the contact page; corrections at [email protected]

From a feed to a sentence

five steps, in order
01

Sources

Official league feeds for scores, box scores, standings, injuries, rosters, lineups and schedules; stats.nba.com for ratings and player stats; public salary data for contracts; league and team YouTube channels for video; named insiders' public posts and HoopsRumors for trade reports; Wikimedia Commons for photos. Nothing is lifted from another outlet's articles.

02

Database

Every source lands in our own database with a timestamp and a fetch log. Pages render from the database only, never from a live call to a source: if a feed dies, the page shows how old its data is instead of breaking or guessing.

03

Rules

Before a word is written, the data is checked: a rumor needs a source and gets a confidence score; a roundup is not a rumor; a player page exists only for a rostered player or one with a season of stats; a number carries its season label; a game page needs a real game.

04

Words and voice

The desk's writing system turns the checked data into briefings, recaps, player and team pages and show scripts, under a written brief that allows nothing the data does not say. A fact gate rejects a script that names a player who is not on this roster or in this club's rumor ledger. Two voices, the host and the analyst, read the shows.

05

Review and corrections

A human editor owns the rules, reads a daily sample of everything published, reviews every rejection the system logs and every reader report, and signs off corrections on the corrections page. No page waits for the editor before publishing: that trade-off is what makes 30 desks possible, and it is why every page shows its data and its timestamp.

The data desk, live

what refreshes, how often, last success

This is the ingestion schedule as it runs, with the last successful run of each job read from the newsroom's own log. If a line goes stale, the pages it feeds say so too.

JobFeedsCadenceSourceLast success
scoreboardScores, game status, tonight's slateevery 60 s during games, 15 min otherwiseofficial league scoreboard feed14 min ago
boxscoreBox scores, player and team game statsevery 2 min during games, 10 min otherwiseofficial league box score feed14 min ago
injuriesInjury report, status changes, return datesevery 15 minofficial injury report6 min ago
rumorsTrade rumors with source and confidenceevery 10 minnamed insiders' public posts, HoopsRumors4 min ago
standingsStandings, seeds, streaks, last tenevery 30 minofficial league standingsjust now
videosHighlights, press conferences, interviewsevery 30 minleague and team YouTube channels4 min ago
radarTrade radar: who needs whatevery 30 minour own rumor and cap tables14 min ago
officiatingReferee assignmentsevery 2 hofficial assignments4 min ago
l2mLast Two Minute reportsafter close gamesofficial L2M reports18 min ago
team_statsTeam ratings, pace, shootingevery 6 hstats.nba.com6 min ago
player_statsPlayer season stats, base and advancedevery 6 hstats.nba.com6 min ago
scheduleSchedule, tip-off times, broadcastersevery 6 hofficial schedule feed2 min ago
rostersRosters, jerseys, positions, biosevery 24 hofficial rostersjust now
lineupsMost-used lineupsevery 24 hstats.nba.com5 min ago
teamsTeams, arenas, colorsevery 24 hofficial team data2 min ago
capContracts, cap hits, thresholdsweeklypublic salary data14 min ago
headshotsPlayer photos with creditweeklyWikimedia Commons only10 min ago
gamelogsGame logs for splits and compare pagesweekly (nightly box scores in between)stats.nba.com10 min ago
watchdogChecks that every job above is aliveevery 10 minthis table14 min ago

Text is rewritten on its own schedule: game previews and recaps within 20 minutes of the data, team and player pages every three hours when their data has changed, the morning briefing at 7:00 ET.

What the writing system does, and never does

the whole list
It does
  • Turns checked data into plain-English briefings, recaps, team and player pages, FAQs and show scripts
  • Links every name in the prose to its page and every number to the table it came from
  • Reads the shows in two voices, the host and the analyst
  • Rewrites a page when the data behind it changes, and dates it
It never
  • Invent a quote, a source, an injury, a trade or a number that is not in the database
  • Use a fact from outside the brief it was given for that page
  • Portray a real person: the voices are roles, with no names, faces or biographies
  • Publish a page that fails its own contract: too little data, no source, no season label
  • Touch scores, standings, injury statuses or contracts: those are data, shown as received, never rewritten

Every text starts from a brief: the tables on the page, the club's last events, the roster, the rumor ledger, and the rules below. Nothing from outside the brief goes in. A draft that is too short is sent back; a draft that names a player who is not in the brief is thrown away; a draft is never patched by hand, because a hand-patched page would not rewrite itself honestly when the data moves.

The writing rules

full editorial policy →
Only what is on the page

Every claim in a text is traceable to a table on the same page or the page it links to. If the number is not in the brief, the sentence is not written.

Seasons are labelled

The current season is 2026-27. Anything from 2025-26 is called last season, in the text and in the table headers.

Rumors are reports, not news

A trade rumor is published with its source, its date and a confidence score, and closes when it is confirmed, denied or expires. Roundups and notebooks are excluded from the ledger.

Data outranks prose

When a table and a sentence disagree, the table is right and the sentence is rewritten from it. Scores, statuses and contracts are never edited by hand.

No mini pages

A page exists only if it can carry its full contract: the data blocks, the prose, the links. Otherwise its content is a section of its parent page.

Every page says when

Every data block shows its last refresh; every text shows when it was written. Stale is labelled stale.

Names link, logos don't appear

Player and team names in the prose link to their pages. The site uses its own marks in club colors and no official logo, no agency photo, no broadcast frame.

Corrections are public

A substantive error is fixed within 24 hours of a report and listed on the corrections page with the date, the page and what changed.

The shows

two voices, no characters

Every desk has a morning show, eight to twelve minutes, and a four-minute post-game show once the season is on. The script is written from the same brief as the club's pages, as a conversation between two roles: the host, who runs the show and believes in the team until the numbers say otherwise, and the analyst, who brings the numbers and only the numbers in the brief. They are roles, not people: no names, no faces, no biographies, and they never address each other by name.

The shows launch club by club, as each club's own channels open. Every episode page carries the transcript and the chapters, so anything said on air can be checked against the page it came from. A show that fails the fact gate is not produced that day.

A show, step by step
  1. The desk's brief is assembled from the database: last game, next game, injuries, rumors, standings, roster, last season's numbers
  2. The script is written under the show rules: 1,200 to 1,500 words, cold open, five to seven chapters, every number from the brief
  3. The fact gate checks every player name against the roster and the rumor ledger
  4. The host and the analyst read it; the episode page gets the transcript and the chapters
  5. Listens are counted per platform, without cookies

Review, corrections, accountability

corrections page →

We would like to tell you that a person reads every page before it goes out. That is not how a thirty-desk newsroom that refreshes every few minutes can work, so here is what actually happens. The rules on this page are written and maintained by a human editor. Every day that editor reads a sample of what was published, every rejection the system logged (short drafts, fact-gate failures, dead sources), and every message that reaches [email protected]. A substantive error is fixed within 24 hours and logged publicly. A rule that let an error through is changed, and the change applies to all thirty desks at once.

Hoops Nightly is published by CR OU OÜ, registry code 16778262. It is independent: not affiliated with, endorsed by or sponsored by the league, any team or any broadcaster, and it carries no advertising today. Team names identify what the desks cover. The site uses its own marks, in club colors, and no official logo.

Reach the newsroom
Corrections · [email protected]
Everything else · contact page