Data Hierarchy
SportsPress organizes sports data in a layered structure. Understanding this hierarchy makes it easier to set up the plugin correctly and avoid common configuration mistakes.
The Five Levels
Competition (League / Cup / Tournament)
└── Season (2024–25, Season 1, etc.)
└── Team ──────────────────┐
└── Player │
└── Staff │
└── Event ←──────────┘
└── Results / Performance1. Competition
A Competition (also called a League in some contexts) is the top-level grouping. It represents the tournament, cup, or league that a set of teams is playing in. One site can have multiple competitions running at the same time — a club site might run a domestic league, a cup, and a reserve league simultaneously.
Competitions are managed under SportsPress > Competitions.
2. Season
A Season divides a competition across time — usually a year or a split period. Every piece of data in SportsPress is linked to one or more seasons so that historical data stays separate from the current campaign.
Common season naming conventions: 2024–25, Spring 2025, Season 3.
Seasons are managed under SportsPress > Seasons.
3. Team
Teams are the clubs, franchises, or competitors taking part in a competition. Each team is assigned to one or more competitions and seasons.
A team holds:
Its name, logo, and colors
A squad of players
A home venue
Association with a league table
4. Player and Staff
Players are the athletes on a team's roster. Staff are the coaches, managers, and other personnel. Both are assigned to a team and optionally to a competition and season.
Player data (statistics, metrics) is always calculated within the scope of a specific competition and season, so the same player can have different stats for different campaigns.
5. Event
An Event is a single fixture or match. Every event is linked to:
A competition and season
Two or more teams (home and away, or multiple participants)
Optionally a venue and a calendar
When you publish results for an event, SportsPress automatically recalculates all affected league tables, player statistics, and career totals.
Why This Order Matters
You must create higher-level items before lower-level ones can reference them:
Create at least one Competition and one Season first.
Create Teams and assign them to the competition and season.
Add Players and assign them to a team.
Create Events and assign them to a competition, season, and the participating teams.
Skipping steps — for example, adding players before creating a team — means you cannot make the correct assignments and data will not appear in templates or league tables.
Shared vs. Season-Specific Data
Data type | Season-specific? |
Competition | No — persists across seasons |
Season | Yes — each season is discrete |
Team | No — the same team entity can span seasons |
Player | No — the same player entity can span seasons |
Event | Yes — each event belongs to a specific season |
League Table | Yes — typically one table per competition per season |
Player List / Roster | Can span seasons or be scoped to one |
Players and teams are reused across seasons. Their statistics and standings are calculated per season based on the events they participated in during that season.
Multiple Competitions on One Site
SportsPress supports running multiple competitions simultaneously. A common setup for a club site:
Men's First Team — Premier League 2024–25
Men's First Team — FA Cup 2024–25
Women's Team — Women's Championship 2024–25
Under-18s — Youth League 2024–25
Each competition/season pair produces its own league table and can have its own player list, calendar, and event set. Shortcodes and widgets accept league and season parameters to display data from a specific competition only.
