Background
I recently completed a project visualising the National Rugby League regular season ladder for 2025. It surprises me that sporting competition ladders are almost always text tables, so I set about visualising this within Tableau. I defined my requirements, which were to use charts as much as possible to allow comparison of results between teams, and to ensure I included all metrics found within the official ladder. As I started my design process, I quickly realised that visualising the ladder with charts presented an opportunity to add much more context and tell the story for not just one team, but all teams across the season.


Now that the dashboard has been out there for a few months, I’d like to break down some elements of the design. While I’ve found the “Rank by Round” step chart seems to be the favourite of most other viewers, my personal favourite in the dashboard is the connected floating bar chart, used to present individual match results across the season – so let’s take a look at why I think that chart in particular is awesome!
The challenge with traditional sports results
When looking at match results across a season, often these will be reported in a vertical table, stylised with team logos for a bit of flair, or at best, visualised with a simple point-differential bar chart (e.g. +8 for a win, -4 for a loss). However, these discard a huge amount of context and make it difficult to identify underlying trends.
Specifically, a standard differential bar treats two completely different games as identical:
- A 6–0 grinding defensive battle
- A 42–36 high-scoring shootout
Both result in a +6 point margin. But as anyone watching the season knows, those two games tell completely different stories about a team’s offensive rhythm and defensive resilience.
Enter the connected floating bar chart
To solve for this, I used a Gantt bar chart where each mark represents a single match:
- Top of the bar: The winner’s score
- Bottom of the bar: The loser’s score
- Height of the bar: The points differential
- Colour: Win vs. loss

Why this chart outperforms standard alternatives
- Three data points in a single mark: Without cluttering the view with text labels or dual-axes, a single mark communicates the winner’s and loser’s score, and margin all at once. The colouring also clearly differentiates whether your focus team was the winner or loser of the match.
- Offensive and defensive floors and ceilings: When you scan horizontally across a team’s row for the season, your eye naturally tracks the top and bottom edge of the bars. This highlights patterns such as a team that has good defence, consistently holding opponents to lower scores, versus a team whose performance is more sporadic with high scores and tight margins.
- Visual continuity with connecting lines: Floating bars on their own can feel visually disconnected across a full season. Adding subtle guidelines between rounds bridges the gap between weekly matches and season trends. It givers the chart the macro-level flow of a differential area chart, while keeping the micro-level focus on individual match results. This makes slumps, streaks, and score swings immediately obvious as you scan across the year.
What could come next
The exciting part about this chart structure is that I can see even more room for growth. Weather conditions (a wet or dry field) or the relative ladder positions of the two teams at the time are just a few of many attributes that influence how a match may play out, and both could be encoded to further enrich the narrative. While I haven’t covered the technical implementation in this post, building this using Tableau’s map layers opens up endless possibilities for layered visual details down the track.