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 October 13, 2026
Showing settings for: Indre Salten Energi vintercup 2024

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.

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. 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

Player statistics are off by default and are switched on per class, not per tournament. Nothing is counted, stored or shown for a class where the switch is off, apart from the won-lost table on the Player stats tab for a class whose team matches are played as rubbers, as in table tennis.

In a tournament: open the class for editing from the match list. There is a player-statistics checkbox among the class settings. It is only offered for competitions that build squads from the federation's person register — today Swedish basketball, bandy, handball and table tennis, the international bandy federation, Swedish volleyball with licensed players, and Norwegian corporate sport where the newer roster is in use — and it is never offered for beach volleyball.

Saving the class edit form applies the change immediately:

  • On — Profixio regenerates statistics for every finished match in that class. On a class with many played matches this takes a while; the person who saved gets a Playerstatistics updated notification when it finishes.
  • Off — the stored statistics for that class are deleted, not hidden. Switching it back on rebuilds them from the protocols, so nothing is permanently lost as long as the protocols are intact. But anything that was only in the statistics and not in a protocol is gone for good.

In a series or league: the levels list in the league administration has the same setting as an inline checkbox on every level, as a filter so you can see which levels have it, and inside the bulk edit action so a federation can switch a whole set of divisions in one go.

Changing it from the levels list behaves differently. It sets the flag but does not rebuild or delete anything there and then. Existing statistics stay as they are, and new ones only appear as individual matches are saved afterwards. If you switch a division on from the levels list and expect the back catalogue to appear, it will not — ask support to run a rebuild for the class.

If the federation has no protocol event catalogue at all for that sport, turning the switch on does nothing — there is no vocabulary to count with.

Separately from the per-class table there is a small statistics screen for a whole tournament, reachable for organisers with match-edit rights. It is not public.

A dropdown offers four views:

  • Top scorer — the leading scorer in each class, with the goal count. When several players are tied, all of them are named on the same row.
  • Team with red cards — one row per team, with the number of red cards and the names of the players who got them.
  • Team with yellow cards — the same for yellow cards.
  • Top 10 scorers per category — a ranked top ten per class, with rank, player and goals.

Two things trip organisers up here:

  • Classes whose results are hidden are excluded from all four views. If a class is missing from this screen, check whether its results are set to be hidden before looking for a data problem.
  • This screen reads the tournament's own player list rather than the federation person register, so in competitions where squads come from the person register it can look emptier than the per-class statistics table. Treat the per-class table as the reliable one.

Only the Top 10 scorers per category view tells you when there is nothing to show — it says No scorers found for a class with no goals, and No category data available when no class has any. The other three views simply render an empty table with headings and no rows.

The public player profile shows the date of birth whenever one is recorded for that person. This is not the same setting as the birth-date option a tournament organiser sets for team rosters; that one governs the tournament's own player lists.

To keep results and statistics out of the public eye for the youngest classes, leave the player-statistics switch off for those classes and hide their results as well.

Player statistics for one tournament are available to integrations as a read-only endpoint. It returns every player's totals for that tournament, and takes one optional filter to narrow it to a single class.

What you get per player: the person and their name, the team and club they played for, assists, total goals, goals from open play, goals from penalties, time-limited suspensions, full-time expulsions, a combined expulsion total, squad appearances, and matches actually played.

What it does not include: cards, fouls, wins and losses, penalty minutes, and any of the federation's own extra columns — even though several of those exist internally and are shown on the web pages.

Access requires an application key issued by Profixio and tied to an organisation, and the key must be allowed to read that tournament. Classes that are closed, or that do not have player statistics switched on, are left out; a tournament with no eligible classes returns an empty list rather than an error.

For how to get a key and what else is available, see the page on integrations and web services.

Statistics are never edited directly. They are always rebuilt from the protocol, so the fix is always to correct the protocol and then rebuild.

One match. Correct the events in the protocol — add the missing goal, delete the duplicate, move it to the right shirt number. Then open the protocol's administrative section and use Update score from the protocol. That recalculates the score from the events and rebuilds that match's player statistics. Anyone with rights to edit the match can do this.

Deleting a player's events is the only way to remove them from the statistics. There is no way to exclude one player from a list while keeping their match events.

A whole class. If many matches are affected — for example the player-statistics switch was turned on late, or a federation's event catalogue was corrected — the class needs a full rebuild. Contact Profixio support to have the class rebuilt. Turning the class's player-statistics switch off and on again has the same effect, but it deletes the stored statistics in between, so the rebuild is not instant.

A wrong result. Correcting the score of a match automatically rebuilds its player statistics. Clearing a result removes them.

Results that came from somewhere else. Results imported in bulk from an external system do not always trigger a rebuild. If a competition's results are maintained outside Profixio, its statistics may need an explicit rebuild.

Setting What it does Where Also means
The player-statistics checkbox on a class Turns counting on for that class. Off means no statistics are stored and the Statistics button is hidden Class edit form in a tournament; inline checkbox, filter and bulk edit on the levels list in a league Saved from the class edit form it takes effect at once: off deletes the stored statistics, on rebuilds them from the protocols. Changed from the league levels list it only sets the flag — no delete, no rebuild
Hide results for a class Blanks scores on public pages Class settings Removes the class from the organiser's tournament statistics screen, but not from the public class statistics table
Lock a class, hide a tournament's match programme, hide a match Removes matches from public view Class, tournament and match settings Those matches stop counting towards public statistics
The spectator count in the protocol Feeds the Public league attendance list Entered by the secretariat during or after the match A competition where it is never filled in shows zeros, not blanks
Event catalogue: which league an event appears in, count or sum, column name, sort order Adds a federation's own column to the goals list or the expulsions list Protocol event catalogue; contact Profixio support to change it Changing it affects every competition for that federation and sport, and takes about half an hour to appear
Event catalogue: whether an event scores, is a card, is a suspension, is a foul, or needs one or two players Decides which standard columns exist for that sport at all Protocol event catalogue; contact Profixio support to change it A federation with no assist event gets no assists and no points columns anywhere, including on player profiles

Two behaviours are not settings and cannot be changed:

  • Group matches and playoff matches are always counted separately in the class statistics table.
  • A player profile always covers one club. Career totals do not follow a player across a transfer.

Almost everything about which numbers exist is decided by the federation's own protocol event catalogue for that sport, so the honest summary is: the columns you see are your federation's, not Profixio's.

Concretely:

  • Sports without an assist event get no assists and no points columns. Handball is the usual example — points there would just repeat goals. Sports that do record assists show both.
  • Sports without a penalty-goal event get no penalty-goals column, and total goals and open-play goals are the same number.
  • Card and suspension columns follow the catalogue. A sport with only red and yellow cards gets those two; a sport with timed suspensions gets the time-limited and full-time expulsion columns; a sport that counts personal fouls gets the fouls column.
  • Extra columns are federation-specific. A federation can have a column that no other federation has, named whatever it likes.
  • The player-statistics switch is not offered everywhere. It appears for competitions whose squads come from the federation's person register — which today covers Swedish basketball, bandy, handball and table tennis, the international bandy federation, Swedish volleyball where licensed players are used, and Norwegian corporate sport where the newer roster is in use — and is never offered for beach volleyball classes.
  • Team matches played as rubbers get a won-lost table. In classes whose team matches are played as rubbers, as in table tennis, the Player stats tab shows each player's won-lost record whether or not the player-statistics switch is on.
  • Whether player statistics are used at all is decided by the federation, through how its classes are set up.

Recent changes

  • Spillerstatistikk med vunne og tapte kamper for lagkamper i bordtennis
  • Spelarstatistik med vunna och förlorade matcher för lagmatcher i bordtennis
  • Won-lost player statistics for table tennis team matches
  • Players get their own public profile page
See all changes

Was this page helpful?

@scripts @endscripts