Methodology

Intensity index

The intensity index is a score from 0 to 100 that estimates the expected level of disciplinary conflict in a match before it starts. It is calculated by combining: the assigned referee's profile (average cards, tolerance, recent trend), the disciplinary history between both teams, the standings situation (relegation or title matches have a higher index), the number of booked players who may be more cautious or more aggressive, and the recent card history of each team. Scores above 40 indicate tense matches; below 20, matches that are likely to be clean.

Referee profiles

Each Primera División referee has a profile built from all the matches they have officiated in the current season. The main indicators are: average yellow cards per match, average reds, average fouls, time distribution (first half vs second), first card (average minute at which the first yellow is shown), and tolerance (comparison with the league average). Profiles are automatically updated after each matchday.

Booking cycle

La Liga regulations state that a player who accumulates 5 yellow cards within the same cycle is suspended for the next match. The cycle resets after serving the suspension. Silbato Pro automatically calculates where each player is in their cycle, how many yellows they have and how many they need to be suspended. This information is updated in real time as cards are issued each matchday.

Data sources

All sports data (matches, goals, cards, fouls, referees, lineups) comes from API-Football, a football data API used by sports media and analytics platforms worldwide. Press data for previews comes from real-time searches. Data accuracy depends on the quality of the original sources.

AI assistant

The AI assistant uses Claude (Anthropic) to analyse matches in real time. At each match tick, the system pre-computes relevant metrics (accumulated fouls, booked players on the pitch, card rate, referee profile) and sends them to the model to generate a narrative analysis and predictions. The result is a single model call per update, which keeps costs low and latency manageable. Predictions are validated against real match data before being displayed.