> For the complete documentation index, see [llms.txt](https://captivatehelp.newbluelive.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://captivatehelp.newbluelive.com/play-and-update-graphics/chapter-index-1/leaderboard-controller.md).

# Leaderboard Controller

The **Leaderboard Controller** connects standings, rankings, race results, or other sports data to a leaderboard graphic that shows the top entries one page at a time.

A leaderboard graphic usually uses a **Leaderboard Conductor** to control how many rows appear on each page.

## Add a Leaderboard input

1. Add or select a leaderboard graphic in the **Project List** and, in its **Data Controller** column, choose **Sports → Leaderboards: Leaderboard → New Input**.
2. The controller panel opens to the **Load New Data** screen.

You can also create the input on its own from **Add new item** in the playout window.

## Load data

You can load data three ways. Captivate also keeps a list of recent sources:

* **Browse** — pick a local file. Supported: CSV, Excel (`.xlsx`), JSON, XML, plain text, SQLite (`.db`/`.db3`).
* **Create CSV** — start a new CSV file from inside Captivate.
* **Open URL** — fetch a web URL. Captivate detects the content type from the file extension and recognizes Google Sheets URLs.

For **Google Sheets** or **Microsoft Excel** cloud sources, Captivate prompts you to sign in when needed. Follow the prompt to authorize the account. You can manage saved accounts from **Settings → Internet Accounts** (the Service Accounts panel).

{% hint style="info" %}
A Google Sheets source must be a **native Google Sheet**, not an Excel workbook stored in Google Drive. If you upload an `.xlsx` file to Google Drive it stays an Excel file, so it can’t be loaded as a Google Sheet here — even if you can still open it from Captivate. To use it, open the file in Google Sheets and choose **File > Save as Google Sheets**, then load the new Google Sheet.
{% endhint %}

{% hint style="info" %}
**Availability:** Some data sources require license support. If your license doesn’t include a source, Captivate shows *"Your license does not include … support"* when you try to load it.
{% endhint %}

## How rows are grouped into leaderboard pages

The Leaderboard Controller uses the connected graphic’s **Leaderboard Conductor** to decide how many rows appear on each page. The controller always uses **Synchronize with Leaderboard**, so the page size follows the row count set in the graphic, and the **Block Detection Style** dropdown is hidden.

As you change the conductor’s row count in the Designer, the controller follows. The panel shows *"Note: The conductor currently has N rows out of a maximum M."* next to the row-count field.

For **Tables: Block**, the controller can group rows in other ways — blank rows, fixed row count, or column groups. See [Tables: Block Controller](/play-and-update-graphics/chapter-index-1/tables-block-controller.md) for those options.

## Working with the loaded data

After loading a sheet, the panel shows it in a familiar grid layout. The top bar:

* **Back** — return to Load New Data
* Sheet title and current sheet name
* **Edit** pencil (cloud sources) — opens the sheet in your browser
* **Refresh** icon (web sources) — fetch the latest data from the source
* **Settings** cog

Below:

* **Find...** search box (highlights matching cells)
* **Block Mode** switch and row count — the page grouping, which follows the connected Leaderboard Conductor
* **Start Auto Play** / **Stop Auto Play** — advance to the next leaderboard page on a timer
* **Start Auto Refresh** / **Stop Auto Refresh** (web sources)

## Settings

Click the cog. Common settings:

* **Autoplay interval (seconds):** — how often Auto Play advances to the next leaderboard page.
* **Auto Refresh Interval (seconds):** — how often Captivate reloads the source.
* **Loop Table Playback:** — return to the first page after the last.
* **Allow Text Wrap in Cells:**
* **Rows Per Block:** — follows the connected graphic’s Leaderboard Conductor row count.
* **Select titles to use for playback** — pick which connected graphics Auto Play actually advances.

## Sort order

Sort the loaded leaderboard from the **Leaderboard Controller** grid itself: right-click a column header and choose **Sort Ascending**, **Sort Descending**, or **Clear Sort**. The chosen sort persists in the controller settings, applies to the data sent to the connected graphic, and remains in effect after reloads. Use this to sort by score, time, place, or any other column without editing the source.

You can still pre-sort the source sheet (or, for cloud sources, sort in Google Sheets / Excel) when the source needs to remain ordered for other tools — Captivate picks up the source order on refresh and then applies any in-controller sort on top.

Animation order is controlled separately in the graphic, via the Leaderboard Conductor’s `Order` variable — see [Leaderboard Conductor](/design-and-customize-graphics/chapter-index-5/leaderboard-conductor.md).

## Connect data to a leaderboard graphic

The Leaderboard Controller works with graphics designed to display multiple ranked records. Many leaderboard graphics use a **Leaderboard Conductor** in the Designer to define the repeated row layout.

Captivate connects matching source fields to matching graphic values when it can. To check or change the connections, use **Link Data** in the **Preview** panel.

If you’re building the leaderboard graphic yourself, configure the repeated row layout in the Designer with the Leaderboard Conductor — see [Leaderboard Conductor](/design-and-customize-graphics/chapter-index-5/leaderboard-conductor.md) for Designer setup.

## Multiple windows

If the Leaderboard Controller panel is open in more than one place, only one window controls playback and editing. The others show a **Take Control** banner with their controls dimmed. Click **Take Control** to make that window active.

## See also

* [Leaderboard Conductor](/design-and-customize-graphics/chapter-index-5/leaderboard-conductor.md) — the Designer-side companion that drives the leaderboard layout
* [Tables: Block Controller](/play-and-update-graphics/chapter-index-1/tables-block-controller.md) — for non-sports graphics that show several records at once
* [Drive a graphic with Tables: Row](/play-and-update-graphics/chapter-index-1/drive-a-graphic-with-tables-row.md) — for one-record-at-a-time graphics
* [Tables overview](/play-and-update-graphics/chapter-index-1/tables-overview.md) — Row vs Block and source options


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://captivatehelp.newbluelive.com/play-and-update-graphics/chapter-index-1/leaderboard-controller.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
