How to run your scoreboard graphics from data (webhook, XML or Google Sheets)

Take your hands off the score: feed the graphics from a scoreboard reader, a stat system or a Google Sheet.

Updated 6 min readBy the Eighty Five Studios team

Hand scoring works, but it ties one person to the dashboard for the whole game, and a busy scorekeeper falls behind. If the venue scoreboard, a stat system or a spreadsheet already has the numbers, you can feed them straight into your graphics instead. This guide explains the three common ways to do that, a webhook, an XML feed and a Google Sheet, how to map the fields, and how to keep it reliable on game day.

Short versionPick the source that already has your data: a webhook for scoreboard readers and services, a local XML file for the fastest running clock, a cloud XML URL when the file lives elsewhere, or a shared Google Sheet for rosters and stats. Map its fields to your graphics, then test with live data before the game.

When data beats hand scoring

Feeding graphics from data makes sense when:

  • The clock has to be exact. A basketball game clock or a hockey penalty timer that's a second off is noticeable. Data from the scoreboard controller follows the real clock.
  • Someone is already entering the data. If the official scorer or stat crew types it into another system, typing it again for the stream is wasted work and a second chance for mistakes.
  • You have a lot of prepared content. Player bios, season stats and starting lineups are easier to keep in a spreadsheet than to type into graphics one by one.

It isn't always worth it. For a one-camera stream with a volunteer scorekeeper, hand scoring is simpler and has fewer parts to break. Start with data where the payoff is biggest, usually the clock.

In ScoreCastr, data feeds live in the Data Hub, on the Pro plan ($25 a month, up to 25 matches). It supports all three methods below and has automatic field mapping.

The three methods compared

MethodWhere the data comes fromBest for
HTTP webhookA service sends data to a unique URL for your matchScoreboard OCR readers and other services that can send data out
XML, local fileA file on the same computer, updated by your scoreboard or stat softwareRunning clocks, the fastest updates
XML, cloud URLAn XML file on the web, checked every few secondsScores and stats when the file isn't on your computer
Google SheetsA shared Google SheetRoster bios, player stats and starters

Webhook: let a service push the data

A webhook is a web address that accepts data. Instead of your graphics going to fetch the score, the other system sends each update to the address as it happens.

ScoreCastr gives each match its own unique webhook URL. Scoreboard OCR tools (which point a camera at the venue scoreboard and read the numbers) and other services can send to it.

  1. Open the Data Hub for the match and copy its webhook URL.
  2. Paste it into the sending service's output or webhook setting.
  3. Send a test update and check the field mapping (below).

Treat the webhook URL like a stream key. Anyone who has it can send data to your match, so share it only with whoever sets up the service. Because each match has its own URL, update the service when you set up a new match.

For scoreboard OCR, camera placement is everything. Mount the reading camera solidly, square to the scoreboard, and out of the way of people walking past. A glare spot or a fan's head blocking a digit means a wrong number on air.

XML: local file or cloud URL

Many scoreboard controllers and stat programs can write their data to an XML file that updates as the game goes on. Check your system's manual for an XML export or data output option.

Local file

If the XML file is written to a computer at the venue, open the ScoreCastr dashboard on that same computer in Chrome, Edge or Brave and point the file monitor at the file. The browser watches the file directly, so changes come through fastest. This is the method to use for running clocks.

  • Keep that browser window open all game. If it closes, the file stops being watched.
  • Don't move or rename the file during the game.
  • Use a supported browser. The local file monitor works in Chrome, Edge and Brave.

Cloud URL

If the XML file is published on the web, give the Data Hub its URL. It's polled every few seconds. That's fine for scores, periods and stats, but a running clock will step in jumps instead of ticking smoothly, so use a local file for the clock if you can.

Google Sheets: rosters, bios and stats

A Google Sheet is the easiest way to prepare content before the game and update it without touching the graphics. ScoreCastr can push roster bios, player stats and starters from a sheet to the graphics.

  1. Build the sheet with one row per player and a clear header row, such as number, name, position and the stats you want to show.
  2. Share the sheet so it can be read. In Google Sheets, click Share and set general access so anyone with the link can view. A private sheet can't be read, and this is the most common reason a sheet "doesn't connect".
  3. Paste the sheet link into the Data Hub and map the columns.

Because the sheet is viewable by anyone with the link, keep private information out of it: no phone numbers, birthdates or addresses. Put only what you'd show on air.

A sheet works well for season stats a coach or stat volunteer updates during the week. For play-by-play stats during the game, a stats app is a better fit; see our guide to putting live stats on your stream.

Map the fields

Every system names its data differently. One calls it "HomeScore", another "H_PTS". Field mapping tells the graphics which incoming field is which.

  • Start with automatic mapping. ScoreCastr matches common fields on its own.
  • Check every mapped field. Look at the field mapping table and confirm home and away aren't swapped. This is the mistake that's easiest to miss and most embarrassing on air.
  • Map only what you need. Score, clock and period first. Add timeouts, fouls and other fields once those are solid.
  • Test with moving data. A field can look right when everything is zero. Run the scoreboard or change the file and watch each value on the output.

Keep it reliable on game day

  • Test at the venue. Scoreboard controllers, OCR cameras and network setups behave differently in the building than at home.
  • Watch the output, not the source. Open the pop-out preview window and keep an eye on it through the game.
  • Have a fallback. If the feed stops, someone should be ready to take over scoring on the dashboard. A Stream Deck setup makes that handoff quicker.
  • Check the connection. Webhooks, cloud URLs and Google Sheets all need internet. If the venue's is weak, see streaming with bad internet.

Data feed checklist

  • Method chosen to match where your data already lives.
  • Webhook URL pasted into the sending service and kept private.
  • Local XML watched in Chrome, Edge or Brave, with the window left open.
  • Google Sheet shared so anyone with the link can view, with no private data in it.
  • Field mapping checked, especially home and away.
  • Tested with live, changing data at the venue.
  • A scorekeeper ready to take over if the feed drops.

Follow along as we build

New demos, launches and behind-the-scenes from the team.

Subscribe on YouTube