Player statistics and player profiles

Player statistics and player profiles

Where a player's goals, cards and appearances come from, how the goals and expulsions lists are produced for a class, what the public player profile shows, and why a competition can end up with no statistics at all.

Updated November 2, 2026

Looking for something else? Hiding matches, schedules and results from the public Series tables and standings Ranking points and seeding lists The team roster (name list) Finding and creating a person

Profixio can count what individual players did in a match — goals, assists, cards, suspensions, fouls — and turn that into lists: who has scored most in a class, who has collected most cards, and what one player has done over a whole career.

There are three separate places these numbers show up, and they are built by three different mechanisms:

  • The statistics table for a class. Public. A goals list and a cards/suspensions list for one class of one competition, with a home/away split. This is the one most people mean by "the stats".
  • The player profile. Public. One player's season-by-season totals for one club, plus their recent and upcoming matches.
  • The organiser's tournament statistics screen. Organiser only. Top scorer per class and card totals per team, for a whole tournament at once.

All three have the same foundation: statistics only exist for matches that were reported in the electronic match protocol, with the players named. A result that was typed in by hand produces a score and a table position, but no player numbers at all. Competitions that do not use the protocol will always show empty statistics.

Every event registered in the protocol is attached to a shirt number, and that shirt number is attached to a person on the team squad. That link is what makes statistics possible.

The chain is:

  1. The squad is set up before the match, so every shirt number belongs to a named person.
  2. During the match, the secretariat registers goals, assists, cards, suspensions and fouls on shirt numbers.
  3. When the match gets a result — usually at signing, but also when an organiser types or corrects a score — Profixio recalculates that one match's player numbers in the background.
  4. The class statistics table and the player profiles add those per-match rows together.

Consequences worth knowing:

  • A match with no result contributes nothing, even if the protocol is full of events. The numbers appear when the result is registered.
  • Events registered without a player (goals put on the team rather than a shirt number) count towards the score but not towards anybody's statistics.
  • Hidden matches are left out of the public statistics table, and a class whose results are hidden is left out of the organiser's tournament statistics screen entirely.
  • Recalculation runs in the background, so numbers can lag a few seconds behind the protocol. Public pages cache statistics for about five minutes on top of that.
  • Players on teams that are not linked to a club in the club register — free-text teams, foreign teams — do count.

From a class's match list, the Statistics button next to Matches opens the statistics table. It is public: anybody who can see the class can see it. In the app and on the newer public competition pages the same table appears under a Player stats tab, which lists one block per class and skips classes where the setting is off; a class whose team matches are played as rubbers, as in table tennis, gets a won-lost table there instead, whatever the setting.

Four sets of controls sit above the table:

  • Rounds Play / Final Play — only appears when the class has both group matches and playoff matches. It splits the statistics in two; there is no combined view.
  • Goals league / Expulsions league / Public league — which list you are looking at.
  • Total league / Home league / Away league — count everything, or only what the player did for the home team, or only for the away team.
  • A search box in the Player column header — type part of a name to filter the rows.

Click any column heading to sort by it; click again to reverse. The goals list is sorted by goals to begin with, the expulsions list by a weighted mix of suspensions, red cards, fouls and yellow cards, so the "worst" player is on top. The table loads twenty rows at a time as you scroll — there is no page count and no row limit.

Goals league shows the player, their club badge, total goals, goals per match, goals from penalties, and the number of matches. Matches are written as two numbers: how many squads the player was named in, and in brackets how many of those they actually took part in.

Expulsions league shows red cards, yellow cards, ordinary time-limited suspensions, full-time expulsions and fouls. Competitions under the Swedish Volleyball Federation do not show this list.

Public league is not about players at all — it is the spectator count. It lists each team with the total attendance at their matches, the average per match, and the number of matches, and it follows the same total/home/away split. The numbers come from the spectator figure the secretariat enters in the protocol, so a competition where nobody fills that in shows zeros.

The columns are not the same in every sport, and that is deliberate. Except in classes whose team matches are played as rubbers, as in table tennis (see the end of this section), Profixio builds the column list from the federation's own protocol event catalogue for that sport: if a federation has never defined an assist event, no assist column exists, and the points column disappears with it because points would just repeat goals. If a federation has no separate penalty-goal event, there is no penalty-goals column.

The full vocabulary of standard columns is:

Column What it counts
Player Name, with a search box in the header
Team Club badge, and the team name
Total Goals Every scoring event credited to the player
Game goals Goals excluding those scored from penalties
Penalty goals Goals scored from a penalty
Goals per match Total goals divided by squad appearances, to two decimals
Assists Only where the federation defines an assist event
Yellow cards, Red cards Cards, by their classification in the event catalogue
Normal expulsions Time-limited suspensions
Full time expulsions Sent off for the rest of the match
Fouls Personal fouls, and team fouls where the catalogue marks them as such
Games Squad appearances, with matches actually played in brackets
Games played Appearances where the player was actually on the court or pitch
Wins, Losses Team results in matches where the player was in the squad

On top of these, a federation can ask Profixio to add its own columns for any event it wants tracked — a missed seven-metre throw, a shot on goal, a two-point attempt. Each of those becomes an extra column in either the goals list or the expulsions list, with a name and a position the federation chooses. That is configured on the event catalogue, not on the tournament. See the page on sport-specific protocols and event types.

Column headings are translated per sport, so the same underlying number can be labelled differently in handball and in basketball. The column list is worked out once and reused for about half an hour, so a change to the event catalogue takes a little while to show up.

Classes whose team matches are played as rubbers, the individual singles and doubles matches inside a team match as in table tennis, get a won-lost table on the Player stats tab instead. It opens on Per team. Per team shows one card per team with each player's W-L and +/-, a Doubles line and a Walkover line where the team has them, and a Total row. Per player adds up each player's results across every team they played for, leaves out doubles and walkovers, and is sorted by +/-, with a search box above the list. When the competition's protocol has sudden-death rubbers, those are counted apart from W-L and +/-. On larger screens an SD column then shows them as won-lost.

Every player who is registered in a squad through a club in the club register gets a profile page. You reach it by clicking the player's name or photo in a team's squad list on the public club and team pages.

The profile shows:

  • The player's name, their photo if one is uploaded, or their initials on a coloured background if not.
  • Played matches — the most recent matches, with results.
  • Upcoming matches — the next fixtures.
  • An information card with Nationality, Position, Date of birth and Club, showing whichever of those are recorded.
  • A statistics table grouped by Season, with one row per team and competition: matches, goals, assists and points where the sport records them, goals per match, and penalty minutes, which are left out when all of the player's competitions are under the Swedish Volleyball Federation. A season gets a subtotal row when the player has more than one team or competition inside it, and a career total is added at the bottom when there is more than one season.
  • No statistics available when the player has no countable matches.

Two things about the profile are easy to misread:

  • A profile belongs to a player at one club. A player who has moved club has a separate profile per club, each showing only what they did while registered there. There is no single page that adds up a career across clubs.
  • Penalty minutes are real minutes, summed from the length of each suspension. Warnings are excluded even though they have a duration attached. This is different from the class statistics table, which counts cards and suspensions as incidents rather than converting them to minutes — so the same player can show "3" on one page and "6" on the other without either being wrong.

Player statistics are public wherever the underlying matches are public.

Who Class statistics table Player profile Organiser statistics screen
Anonymous visitor, app user Yes, if the class is visible Yes No
Player, team leader, club administrator Yes, if the class is visible Yes No
Tournament or league administrator Yes, including classes hidden from the public Yes Yes, with match-edit rights

What hides statistics is what hides the matches: a tournament with its match programme unpublished, a locked class, and hidden individual matches all remove the matches from the count. Hiding a class's results blanks the scores but does not remove players from the class statistics table — it does remove the class from the organiser's tournament statistics screen.

Work through this in order. Most reports resolve in the first three steps.

  1. Was the match reported in the protocol, with players named? If the score was typed in by hand, there are no player numbers and nothing to fix. Open the match and look for a protocol.
  2. Does the match have a result? Statistics are built when the result is registered. A protocol that was filled in but never signed, and whose result was never saved, contributes nothing.
  3. Is the player-statistics switch on for that class? If it is off, the lists are empty and the Statistics button does not appear at all.
  4. Are you on the right half of the competition? Group matches and playoff matches are counted separately. Check whether Rounds Play or Final Play is selected.
  5. Are you on the right total? Home league and Away league only count part of the season. Total league is the full picture.
  6. Was the event registered on a shirt number? Goals put on the team rather than on a player raise the score but nobody's tally.
  7. Was the player in the right squad? A goal is credited to the person behind the shirt number. If two players were swapped in the squad, the goal follows the shirt number, not the person who scored it.
  8. Is the match hidden? Hidden matches are excluded from the public statistics.
  9. Have you waited? Recalculation runs in the background and public pages cache for about five minutes.
  10. Is the player missing entirely from the profile? A profile only covers one club. Check the profile reached from the squad of the club in question.

If the totals differ between the class statistics table and the player profile, that is expected for penalty minutes — one counts incidents, the other sums real minutes. For goals they should agree; if they do not, the match needs recalculating.

  • Registering the events that statistics are built from — starting the clock, entering goals and cards, correcting a mistake during the match. See Reporting a match live.
  • Getting the squad right before the match, which is what makes shirt numbers resolve to named people. See Setting up a match protocol and Team roster.
  • What each event type can be told to do, including how a federation adds its own statistics column. See Sport-specific protocols and event types.
  • The public club, team and squad pages the player profile is reached from. See Club, team and player pages.
  • The person register behind every named player, and how duplicates and corrections are handled there. See Finding and creating a person.
  • League tables and point calculation, which are a separate system from player statistics. See League standings and tables.
  • Ranking points and seeding, which do not use player statistics at all. See Ranking points and seeding.
  • Hiding matches, classes and results. See Hiding matches, schedules and results from the public.

For other roles

Recent changes

  • Players get their own public profile page
See all changes

Was this page helpful?

@scripts @endscripts