Help build the future of open source observability software Open positions

Check out the open source projects we support Downloads

How to build the ultimate March Madness dashboard in Grafana

How to build the ultimate March Madness dashboard in Grafana

2025-03-17 6 min

March Madness is here! Time for buzzer beaters, Cinderellas, and, of course, brackets. But with all that excitement, the last thing you need is to miss out on a crucial moment because you’re too busy refreshing ESPN for the hundredth time.

Instead, why not build your own real-time March Madness dashboard in Grafana? With live NCAA game data, real-time player stats, and a jumbotron-style scoreboard, you’ll stay on top of all the action—no refresh needed. 

In this guide, I’ll walk you through how to create the ultimate tracking experience. You’ll learn how to:

🏀 Pull live game schedules dynamically with a date selector

🏀 Track real-time player stats for selected games

🏀 Design a jumbotron-style scoreboard that looks like it’s straight out of an arena

Let’s tip off!

Getting started: Install the Infinity plugin

To get started, log into your Grafana Cloud account and navigate to the Connections panel. (If you aren’t using Grafana Cloud already, sign up for a forever-free account today!) From there, search for the Infinity plugin and click the corresponding card.

Once installed, create a data source. Unlike many other Grafana plugins, the Infinity data source plugin doesn’t require any configuration at this stage. You can easily perform those configurations later, when you start using the data source, in Explore mode or while editing a dashboard.

Creating our March Madness scoreboard

Now that you have the Infinity data source plugin configured, you can start building our dashboard. 

Step 1: Create a date selection variable

You want your dashboard to dynamically pull game schedules, so let’s create date selection variables for “Month” and “Day.”

To create the variables:

  1. Go to Dashboard Settings > Variables.
  2. Click Add Variable.
  3. Configure:
    • Type: Custom
    • Name: Day
    • Values: 01, 02, 03, ..., 31
  4. Click Save.

Repeat the process for Month (Values: 01-12).

This allows users to select a date from the dropdown and fetch the schedule dynamically!

Day variables in Grafana

Step 2: Fetch live NCAA game data with Infinity plugin

You’ll now configure the Infinity Plugin to fetch real-time NCAA game data for the selected date.

  1. Create a new panel by clicking Add visualization.
  2. Select the Infinity plugin as your data source.
  3. Change the URL to your JSON, which can be pulled from the NCAA website, and by adding in your date variables from Step 1: 
    • https://data.ncaa.com/casablanca/scoreboard/basketball-men/d1/2025/${Month}/${Day}/scoreboard.json
  4. Change the visualization of the panel to a table. 
  5. Add a new transformation to extract the fields you need to display:
    • Extract fields
      1. Source: game
      2. Format: JSON
      3. Add path: 
      • away.names.short
      • away.score
      • home.score
      • home.names.short
      • currentPeriod
      • contestClock
      • url
  • Change the alias to your chosen column names.
  • Toggle on “Replace all fields.”

Now, whenever you change the date in your variables, the game schedule updates automatically!

Transformation fields in Grafana

Step 3: Pull player stats for the selected game

Now that you’ve created your scoreboard, you can create a panel that displays the player stats for your selected game. The API returns detailed player statistics such as:

  • Points scored
  • Assists
  • Rebounds
  • Turnovers
  • Minutes played

First, you’ll need to create a new variable to fetch box score data in Grafana.

  1. Go to Dashboard Settings > Variables.
  2. Click Add Variable.
  3. Configure:
    • Type: Textbox
    • Name: GameID
  4. Click Save.
  5. Add in the game ID from the URL column in your game schedule panel
    • Example: /game/6442188

Next, configure the Infinity plugin to fetch real-time player game data for the selected game.

  1. Create a new panel by clicking Add visualization.
  2. Select your Infinity data source.
  3. Change the URL to your JSON, which can be pulled from the NCAA website, and by adding in your GameID variable from above: 
  4. Change the panel visualization to a table. 
  5. Add a new transformation to organize the fields you need to display:
    • Organize fields by name
      1. Change the order
      2. Label the columns 
      3. Hide the stat columns you don’t want to see

 Now, select a date and game—player stats update instantly!

Player stats in a chart in Grafana

Step 4: Build the ultimate jumbotron scoreboard

Time to bring this to life! Use Grafana’s canvas panel to design a fully customized, dynamic scoreboard.

First, install the canvas panel:

  1. Go to Configuration > Plugins in Grafana.
  2. Search for “canvas panel” and install it.

Next, create a custom jumbotron scoreboard:

  1. Add a new canvas panel to your dashboard.
  2. Bring in the data using the same method as Step 2 using the Infinity plugin.
  3. Add another transformation to filter by the game selected 
    • Filter data by values
      • Add condition
        1. Field: url
        2. March: is equal
        3. Value: $GameID
  4. Under panel options, change the background to your image of choice for your jumbotron:
    • Image source: Fixed
    • Image size: Original
  5. Lets now bring in all the elements you want to display:
    • Elements: Add item: Metric Value
      1. Select field: away.names.short
      2. Continue for all the fields you want to see on your jumbotron

Tip: Get started quickly with this example canvas background image.

BOOM! And that’s it. Your March Madness jumbotron scoreboard is live!

A scoreboard with the home and away team and Grafana icons for March Madness

Final March Madness dashboard features

With Grafana’s Infinity plugin and canvas panel, you now have a fully interactive, real-time March Madness dashboard. No more boring score tracking—just select a date, pick a game, and watch the stats roll in!

You can even add dynamic elements such as:

  • Color-code scores (e.g., winning team in green, losing team in red).
  • Animate score updates using conditional formatting.
  • Highlight the top scorer in each game dynamically.

Here’s an example of the dashboard I created with the added visual customizations:

A screenshot of a full Grafana dashboard for tracking March Madness

Now go show off your tech-powered March Madness setup to your friends and enjoy the games!

Advance to the next round

Ready to keep dancing? You have so many ways to visualize data in Grafana, so why not take it even further? Here are just a few more ideas to make your dashboard a favorite to win it all:

🏀 Track historical team performance over multiple seasons. 

🏀 Enable notifications in Grafana for close games. 

🏀 Embed the dashboard on a big screen for the ultimate sports bar experience!

And if you’re looking for a way to enjoy all the excitement with others in the Grafana community, register for our local Sweet 16 watch parties on March 27 for an evening of basketball, networking, and observability. We’re hosting events in Hoboken, Philadelphia, Atlanta, and the Bay Area, and as a special bonus, all guests will be entered into an exclusive raffle for a chance to win two tickets to a local Regional Final game. Don’t miss your shot!  

Grafana Cloud is the easiest way to get started with metrics, logs, traces, dashboards, and more. We have a generous forever-free tier and plans for every use case. Sign up for free now!

Grafana Cloud
Grafana Cloud
  • Grafana, of course
  • 10k series Prometheus metrics
  • 50 GB logs
  • 50 GB traces
  • 2,232 app o11y host hours
  • ...and more
Create free account

No credit card needed, ever.