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.
