« Back to the catalog

Sports Standings and Rankings Tables

Everyone can preview these rulesets. To download them you need a Professional or Agency license: see the plans or log in.
Football/Soccer
#TeamPWDLGFGAGDPtsForm
1Panathinaikos5500122+1015WWWWW
2PAOK5401125+712WWLWW
3AEK5320133+1011WDWDW
4OFI531184+410WWDWL
5Olympiacos531142+210WWDWW
6Panetolikos530287+19WWWLL
7Aris5212510−57WLWDL
8Iraklis513146−26DWDDL
9Kifisia512247−35LWDWL
10Kalamata511368−24DWLLL
11Atromitos502347−32DLLDL
12Asteras Tripolis502349−52DDLLL
13Volos502349−52LLDLD
14Levadiakos501409−91LDLLL
Basketball
#TeamPWLPCTGBPFPA+/-HomeAwayFormStrk
1Detroit Pistons826022.732—92548872+38231-1029-12WWLWWW3
2Boston Celtics825626.6834.091308764+36630-1126-15WWWWWW2
3New York Knicks825329.6467.090428815+22730-1023-19WLWWWL1
4Cleveland Cavaliers825230.6348.089918840+15127-1425-16LWWWWW1
5Toronto Raptors824636.56114.088108755+5524-1722-19WWWLWW1
6Atlanta Hawks824636.56114.088728833+3924-1722-19WLWLWL1
7Philadelphia 76ers824537.54915.087958740+5523-1822-19WWLWWW2
8Orlando Magic824537.54915.087128680+3225-1520-22WLWLWL1
9Charlotte Hornets824438.53716.086608642+1821-2023-18LWWLWW1
10Miami Heat824339.52417.086088615−726-1517-24WLWWWW2
11Milwaukee Bucks823250.39028.084258790−36519-2213-28LLWLLL1
Volleyball]
#TeamPWLSWSLSDSRPFPAPRPtsForm
1France1091288+203.5008126721.20827WWWWW
2Poland10822610+162.6007886901.14224WWLWW
3Italy10732413+111.8467607011.08422WLWWW
4Brazil10642216+61.3757427151.03819WWLLW
5USA10642117+41.2357357201.02118WLWLW
6Japan10551918+11.0567117061.00716LWWLW
7Slovenia10551819−10.9477007120.98315WLLWW
8Serbia10461721−40.8106887350.93613LLWWL
9Germany10371423−90.6096557480.87610LWLLL
10Netherlands10281126−150.4236207790.7967LLLLW
Handball
#TeamPWDLGFGAGDPtsForm
1Olympiacos121110352281+7123WWWWW
2AEK Athens121002340290+5020WWLWW
3PAOK12822331300+3118WDWWL
4Diomidis Argous12714318309+915WWLDW
5Ionikos12534301299+213DWDLW
6Drama 198612516297305−811LWWLL
7Zafeirakis Naousas12417288312−249LDLWL
8Kilkis12327279301−228DLLWL
9Archelaos Katerinis12219270322−525LLDLL
10Aeropos Edessas121011255346−912LLLLL
Generic Standing
#TeamPWDLPtsFormStrk
1Falcons1081125WWDWWW2
2Tigers1072123WWWDWW1
3Eagles1062220LWWDWW1
4Sharks1061319WLWWLL1
5Wolves1052317DWLWWW2
6Bears1043315DDWLWW1
7Hawks1033412LDWDLL1
8Lions1031610LLWLWW1
9Panthers102268LLDLLL2
10Rhinos101184LLLDLL1
Generic Ranking
#TeamPtsPrev+/-
1Poland412.41—
2Italy398.131
3France392.721
4Brazil361.94—
5Japan355.272
6USA349.851
7Slovenia338.061
8Argentina301.58—
9Serbia297.3112
10Germany290.691
11Canada284.9101
12Turkey279.412—

Sports Standings & Rankings Tables

Turn a plain list of results into a polished league table or ranking. Give it the numbers you have — wins, draws, losses, goals — and it works out the rest: matches played, differences, points, winning percentage, games behind, the order of the teams and their movement, with recent form shown as coloured badges.

The six rulesets

Pick the ruleset for your sport. They share one design; each has its own accent colour.

Sports Standings – Football (Soccer)rs_sportstables_1 · 3 points for a win, 1 for a draw; ordered by points, goal difference, goals scored.
Sports Standings – Basketballrs_sportstables_2 · winning percentage, games behind, point differential.
Sports Standings – Volleyballrs_sportstables_3 · set difference, set ratio and point ratio; league points from your data.
Sports Standings – Genericrs_sportstables_4 · any sport: wins, draws, losses and points.
Sports Standings – Handballrs_sportstables_5 · 2 points for a win, 1 for a draw; ordered by points, goal difference, goals scored.
Rankings Tablers_sportstables_6 · ranking points, previous position and movement arrows.

Each ruleset comes with a sample data source, so you can see it working straight after importing.

Quick start

  1. Prepare your data as a table or CSV file. The first row names what each column holds, using the short keys described below (team, w, d, l, …).
  2. Apply the ruleset for your sport to it, the same way as any other Tabulizer ruleset.
  3. That's it: missing values are calculated, and the teams are put in order and ranked.

For example, this is all a football table needs:

team,w,d,l,gf,ga,form
Panathinaikos,5,0,0,12,2,WWWWW
PAOK,4,0,1,12,5,WWLWW
AEK,3,2,0,13,3,WDWDW

and it becomes a table with the columns # · Team · P · W · D · L · GF · GA · GD · Pts · Form — matches played, goal difference, points and the positions are worked out for you.

Give it the raw numbers you have, and let it calculate the rest. A value you supply is always used as it is, even when it could be calculated — so you stay in control of points deductions, head-to-head decisions and other special cases.

The header row

The first row is not shown as data. Each of its cells tells the ruleset what that column contains:

  • Keys are not case sensitive: team, Team and TEAM are the same. Spaces, dashes, dots and underscores are ignored, so Goals For works as well as goals_for.
  • Common alternative names are understood: club, country, player or name for the team; played, gp or mp for matches played; won, drawn, lost; and so on. The full list is in the reference.
  • The order of your columns does not matter: the table always shows them in the standard order for the sport.
  • You do not need every column. Columns you leave out are simply not shown — unless they can be calculated from the others.
  • Columns the ruleset does not recognise are ignored, so your file can hold extra information.

If your data has a rank column, the positions you give are kept, and so is your order. Without it, the teams are ordered and numbered for you. A team tied with another on every criterion stays in the order it had in your data.

Football (Soccer)

Key Column Calculated when missing
rank Position from the order below
team Team  
p Played w + d + l
w d l Won, drawn, lost  
gf ga Goals for, goals against  
gd Goal difference gf − ga, shown as +5 / −3
pts Points 3 × w + d
form streak Recent results, current streak  

Order: points, then goal difference, then goals scored.

team,w,d,l,gf,ga,form
Panathinaikos,5,0,0,12,2,WWWWW
PAOK,4,0,1,12,5,WWLWW
AEK,3,2,0,13,3,WDWDW
OFI,3,1,1,8,4,WWDWL
A competition that still gives 2 points for a win? Set win_points=2 in the ruleset options.

Basketball

Key Column Calculated when missing
p Games played w + l
w l Wins, losses  
winpct Winning percentage (PCT) w ÷ p, shown as .732
gb Games behind the leader ((leader w − w) + (l − leader l)) ÷ 2; the leader shows —
pf pa Points for, points against  
diff Point differential (+/-) pf − pa
conf div Conference, division record  
home away Home and away record, e.g. 31-10  
form streak Recent results, streak such as W3  

Order: winning percentage, then wins, then fewer losses, then point differential.

team,w,l,pf,pa,home,away,form,streak
Detroit Pistons,60,22,9254,8872,31-10,29-12,WWLWW,W3
Boston Celtics,56,26,9130,8764,30-11,26-15,WWWWW,W2
New York Knicks,53,29,9042,8815,30-10,23-19,WLWWW,L1

Volleyball

Key Column Calculated when missing
p Matches played w + l
w l Wins, losses  
sf sa Sets won, sets lost  
sd Set difference sf − sa
setratio Set ratio sf ÷ sa (none while no set is lost)
pf pa Rally points won and lost  
point_ratio Point ratio pf ÷ pa
pts League points not calculated — see below

Order: points, then wins, then set ratio, then point ratio.

Volleyball competitions award league points by the score of each match (a 3–0 or 3–1 win is worth 3 points, a 3–2 win 2, a 2–3 loss 1), which a standings table does not contain. Include a pts column with your competition's points.
team,w,l,sf,sa,pf,pa,pts,form
France,9,1,28,8,812,672,27,WWWWW
Poland,8,2,26,10,788,690,24,WWLWW
Italy,7,3,24,13,760,701,22,WLWWW

Handball

The same columns and order as football, with handball's points: 2 for a win, 1 for a draw.

team,w,d,l,gf,ga,form
Olympiacos,11,1,0,352,281,WWWWW
AEK Athens,10,0,2,340,290,WWLWW
PAOK,8,2,2,331,300,WDWWL

Generic standings

For any other sport — water polo, hockey, rugby, e-sports, a local league. It shows whichever of these columns your data has: rank, team, p, w, d, l, gf, ga, gd, pf, pa, diff, winpct, pts, form, streak.

  • Matches played are calculated from w + d + l, or w + l for sports without draws; goal and point differences from their for/against columns.
  • Points are not calculated, because every sport counts them differently — include a pts column, or tell the ruleset your points system with win_points, draw_points and loss_points in the ruleset options.
  • Order: points (then wins and differences) when there are points; otherwise wins, then fewer losses.
team,w,d,l,pts,form,streak
Falcons,8,1,1,25,WWDWW,W2
Tigers,7,2,1,23,WWWDW,W1
Eagles,6,2,2,20,LWWDW,W1

Rankings

For national team, player, club or federation rankings.

Key Column Calculated when missing
rank Position from the ranking points, highest first
team Team, player or country  
pts Ranking points (decimals are fine)  
prev_rank Previous position  
movement Change in position prev_rank − rank

Movement is shown as ▲ 2 for a team that climbed, ▼ 1 for one that dropped, and — when unchanged. If you supply the movement column yourself, use a number (+2, -1, 0).

team,pts,prev_rank
Poland,412.4,1
Italy,398.1,3
France,392.7,2
Brazil,361.9,4

Recent form

The form column shows recent results as coloured badges: W win, D draw, L loss. Write them oldest first; the most recent result, the last one, gets a ring around it.

All of these are understood:

WWDWL
W,W,D,W,L
W W D W L
W-W-D-W-L
win, win, draw, win, loss
ΝΝΙΗΝ          (Greek: Ν νίκη, Ι ισοπαλία, Η ήττα)

T (tie) counts as a draw. A value the ruleset cannot read is shown exactly as written.

The streak column (for example W3 or L1) is coloured green for a winning streak and red for a losing one.

Zones: title, qualification, relegation

League tables often colour the places that matter. A zone draws a coloured bar at the start of the row and colours the position number:

  • green — title, promotion, play-offs
  • blue — qualification, European places, play-in
  • red — relegation, play-outs

In the data: a zone column

Add a zone column and write the zone next to each team that has one. The column itself is not shown; whatever you write becomes the tooltip on the position, so you can use your competition's own names:

team,w,d,l,gf,ga,zone
Panathinaikos,5,0,0,12,2,Champions League
PAOK,4,0,1,12,5,Europa League
AEK,3,2,0,13,3,Conference League
OFI,3,1,1,8,4,
Volos,0,2,3,4,9,Relegation

These words choose the colour: champions, champions league, title, promotion, play-offs, up for green; relegation, relegated, play-outs, down for red. Any other text — Europa League, Play-in, Qualification — is blue. You can also write the colour itself: green, blue or red.

Because the zone belongs to the team, it follows the team wherever it finishes.

In the ruleset: by position

To colour places by position instead, add promote, qualify and relegate to the ruleset options: promote=1;qualify=3;relegate=2 colours the leader green, the next three blue and the last two red. A zone in the data still wins for its row.

Highlighting a team

On a club's own site, make its row stand out: add highlight=Team name to the ruleset options. The row gets a light yellow background and the team name is shown in bold. Highlight several teams by separating them with |: highlight=PAOK|Aris. Upper and lower case do not matter.

Team logos

A logo appears next to the team name, never instead of it. There are two ways to add them:

A logo column

Give each team the address of its image. The column itself is not shown.

team,logo,w,d,l
Arsenal,/images/logos/arsenal.png,8,1,1
Chelsea,/images/logos/chelsea.svg,7,2,1

A folder of logos

Put the images in one folder, named after the team in lower case with dashes instead of spaces — Manchester United becomes manchester-united.png — and add logos=1;logo_path=/images/logos/ to the ruleset options (and logo_ext=svg if they are not PNG files). Use the path as your site's visitors see it, including any sub-folder your site lives in.

The folder can also be set for the whole site, in PHP: define('TABULIZER_SPORTS_LOGO_PATH', '/images/logos/');

Ruleset options

Each ruleset tells the table which sport it is with a modification rule such as:

sportstables$sport=football

Add options after it, separated by semicolons. Edit the ruleset in Tabulizer and change the value of its modification rule — or better, copy the ruleset first and change the copy, so that updating this ruleset archive does not overwrite your settings.

sportstables$sport=football;promote=1;qualify=3;relegate=2;highlight=PAOK
Option What it does Example
sport football (or soccer), basketball, volleyball, handball, generic, ranking sport=handball
promote Colour the top N positions green promote=4
qualify Colour the next N positions blue qualify=2
relegate Colour the bottom N positions red relegate=3
promote_label
qualify_label
relegate_label
The tooltip for those zones promote_label=Champions League
highlight Highlight one or more teams highlight=PAOK|Aris
win_points
draw_points
loss_points
The points system, when points are calculated win_points=2;draw_points=1
logos Show logos from a folder logos=1
logo_path The folder of the logo images logo_path=/images/logos/
logo_ext Their file extension (default png) logo_ext=svg

Languages

The column headings follow your site's language. English and Greek are included; any other language uses English. Hover over a heading to see the full name of the column (GD — Goal difference).

To add a language, copy templates/tabulizer/language/sportstables.en.ini to a file named with your language's two-letter code, for example sportstables.de.ini for German, and translate the text in quotes. Keep the keys on the left unchanged and in capitals.

GD="TD"
GD_TITLE="Tordifferenz"

Colours and styling

Every table has the same clean design: a coloured header, alternating row shading, the points column emphasised, and differences coloured green or red. On phones, the position and team stay in view while the rest of the table scrolls sideways.

The colours are CSS variables, so you can change them in your template's CSS without touching the ruleset. For example, to give the football table your club's colours:

table.tabtable-rs_sportstables_1 {
    --st-accent: #8b0000;                       /* header */
    --st-accent-soft: rgba(139, 0, 0, .07);     /* points column */
    --st-highlight: #ffe4e4;                    /* highlighted team */
}

Other variables: --st-win, --st-draw, --st-loss (form and differences), --st-promote, --st-qualify, --st-relegate (zones), --st-stripe, --st-hover, --st-line and --st-radius. Every cell's content carries a class naming its column (st-team, st-pts, st-form, …) for anything more specific.

Header key reference

Key Also accepted Meaning
rank rk, pos, position, # Position
team club, country, player, name Team, player or country
logo   Logo image address (not shown as a column)
zone   Zone of the team (not shown as a column)
p pl, played, gp, mp, games, matches Played
w won, wins Won
d drawn, draws, draw, t, ties Drawn / tied
l lost, losses Lost
gf / ga goals for / goals against Goals
gd goal difference Goal difference
pf / pa points for / points against Points scored and conceded
diff difference Point differential
pts points League or ranking points
winpct pct, win%, win percentage Winning percentage
gb games behind Games behind the leader
home / away road (for away) Home / away record
conf / div conference / division Conference / division record
form last5, last6, last10 Recent results
streak strk Current streak
prev_rank prev, previous rank Previous position
movement change Change in position
sf / sa sw, sets won / sl, sets lost Sets won / lost
sd set difference Set difference
setratio sr, sets ratio Set ratio
point_ratio pr, points ratio Point ratio