Skip to main content

Understanding the LIGR Data Hierarchy

FUSE provides access to a structured data hierarchy: League → Competition → Match → Teams/Players/Stats/Events. You can bind graphic elements to any level of this hierarchy using expressions, allowing

Written by Julian Rodrigues
Updated today

Overview

The LIGR data hierarchy is a structured system that organises all data within the platform — from the highest level (league and competition information) down to detailed match events and player statistics. When building graphics in FUSE, you access this hierarchy through expressions, allowing you to display live match data, team information, player statistics, and match events dynamically.


The hierarchy follows this structure: League → Competition → Match → Teams/Players/Stats/Events. Each level contains specific data that can be bound to graphic elements.


The Data Hierarchy Structure

At the top level, you have league and competition data — the broadest organisational categories in the platform.


Below that, match data includes teams, scores, and match status information.


At deeper levels, you can access player statistics, lineups, and detailed match events.


Accessing Competition Data

Competition-level data includes the competition name, graphics display name, age group, gender, division, and competition logo. This data is defined in the Assets section when you create competitions.


When you assign a graphic to a competition through a theme, the graphic can access all competition-level data through FUSE expressions.


Accessing Match Data

Match-level data includes:


* Home and away team information


* Current score


* Match time and period


* Match status (live, scheduled, finished)


* Venue information


Match data flows from matches created in the Matches section. When a match is live, the data updates in real-time.


Accessing Team Data

Team-level data includes:


* Team name and graphics display names (full, medium, short)


* Team logo


* Team colors (primary, secondary, primary text, secondary text)


* Default venue


* Club assignment (if the team belongs to a club)


Team data is defined in the Assets section under Clubs and Teams.


Accessing Player Data

Player-level data includes:


* First name and last name


* Player number


* Position type and graphics position name


* Player photo URL


* Team assignment


* Starter status


Player data comes from the Assets section under Players, or from team rosters configured in Clubs and Teams.


Accessing Player Statistics

FUSE provides access to detailed player statistics through the player.data object. Common statistics include goals, tackles, shots on target, passes, and more. Use expressions like player.data.stats.goals to display specific statistics.


Player statistics data comes from the LIGR platform roster. When match events are logged (via the LiveScore app or external data providers), player statistics update accordingly.


Using Player Variables

Player variables provide a way to display player-specific statistics and information in FUSE graphics. When you add a Player control variable in FUSE, it creates a dropdown in the Control Room listing all available players from the team roster.


Use player.data expressions to access player names, team logos, and detailed statistics. These expressions automatically update when a different player is selected from the dropdown.


Accessing Match Events

Match events are actions logged during a match — goals, penalties, cards, substitutions. Events are recorded either manually by a live scorer using the LiveScore app or automatically by an external data provider.


Match events appear in the match timeline and can trigger graphics automatically when configured in Auto Mode or Automated Game Plans.


Using External Data

For data not available in the LIGR platform (tournament brackets, custom statistics, sponsor information), you can connect an external data source. FUSE supports spreadsheets and API endpoints.


External data from spreadsheets updates dynamically. Changes to the spreadsheet are reflected in the graphic without re-publishing.


The spreadsheet must include a header row. FUSE reads the header row and creates named fields for each column. You can then reference these fields in expressions.


Binding Data in FUSE

When you import a Rive file into FUSE, the editor automatically detects the Rive file's exposed inputs — text fields, image slots, colour inputs, and number values. These become the elements you can bind data to.


For each exposed Rive input, you can either enter values manually (static text, fixed colours) or create FUSE expressions for dynamic data binding. Manual entry is useful for fixed labels, while expressions connect to live data.


External data fields can be mixed with LIGR data expressions in the same graphic.


Control Variables and the Data Hierarchy

Control variables give operators real-time control over graphic elements from the Control Room. Boolean variables create toggle switches, String variables allow text entry, and Player variables create roster dropdowns.


Player variables are particularly powerful because they provide access to the full player data hierarchy. When an operator selects a player from the dropdown, all player-related expressions (name, number, statistics, team information) automatically update to reflect the selected player.


Team Information Through Player Variables

When using player variables, you can access the selected player's team data using player.data.team expressions. This includes team name, abbreviation, and logo URL. Use player.data.team.logo_url to display the team logo alongside the player's statistics.


Handling Missing Data

When a player has no data for a particular statistic, the expression returns 0 by default. Design your graphic to handle this gracefully — either by displaying 0 or by hiding the element when data is unavailable.


Missing statistics return 0 by default, which is generally appropriate for numerical stats displays.

Did this answer your question?