Sales pace
Tracking 16 points ahead of similar shows
ReferenceData visualisation tokens
Every chart we show helps a promoter, venue or festival decide something. Which show to add, when to push marketing, whether a night will sell out. These rules keep charts in the dashboard, in reports and on slides reading as one system.
Name the question a client will act on before you draw anything. The title answers it. If the chart has no answer to give, it probably shouldn’t be a chart.
Tracking 16 points ahead of similar shows
Do
Put the answer in the title.
Sales over time
Don’t
Don’t make the reader work out the point.
| Job | Form | Ticketing example |
|---|---|---|
| Compare | RankedBars | Channels by tickets sold |
| Change over time | LineChart or BarChart | Daily sales |
| Pace | LineChart with a band | This show against similar shows |
| Part of a whole | StackedBars or capacity meter | Sold, held and available |
| Spread | Histogram | Days between buying and the show |
| Drop off | Funnel | Checkout steps |
| Two measures per show | Scatter | Pace against sell-through |
| The same chart per group | SmallMultiples | Scan rate per gate |
| When | Heatmap | Orders by hour and weekday |
| Where | RankedBars with share | Top postcodes |
| One number | Stat tile, not a chart | Tickets sold today |
A stat tile or a two-row table often beats a plot. If there’s no shape to see, show the number.
In a dashboard, these forms sit inside cards. See dashboard design for sizing and layout.
1,842
This week
Target 85%
Email brings in nearly half of orders
Each palette has one job. Mixing jobs is how charts start lying.
Use slots in order and never cycle them. A series keeps its colour when you sort or filter. Use 6 at most, then group the rest into Other. For 2 or 3 series, use --chart-pair-* or --chart-trio-*.
Light
1
2
3
4
5
6
7
8
Dark
1
2
3
4
5
6
7
8
GA carries both nights
Stage heat runs from the surface to the strongest colour. In dark mode the busiest cells glow.
Light
0
1
2
3
4
5
6
7
8
Dark
0
1
2
3
4
5
6
7
8
Fans buy most on Friday evenings
Cool is ahead, warm is behind, grey is on the benchmark.
Light
pos-4
pos-3
pos-2
pos-1
0
neg-1
neg-2
neg-3
neg-4
Dark
pos-4
pos-3
pos-2
pos-1
0
neg-1
neg-2
neg-3
neg-4
The balconies are behind
Good, warning, serious and critical. Only for meaning, never as a series colour, and always with an icon or label.
Light
good
warning
serious
critical
Dark
good
warning
serious
critical
61%up 9 points, better
Target 85%
$118.4kdown 4%, worse
This week
1,310up 18%, better
This week
Status colour always comes with an arrow and words.
Do
Highlight the story series in --chart-highlight and put context in --chart-context.
Don’t
Don’t colour text in a series colour. Labels and values use chart ink.
Four ideas come up in almost every ticketing chart. Draw them the same way everywhere.
Tracking ahead of similar shows
Chart copy follows the Oztix voice and tone guidelines, the language and grammar guidelines, and unslop. No dashes as punctuation, anywhere.
| Part | Rule | Do | Don’t |
|---|---|---|---|
| Title | States the takeaway with a number or direction. Sentence case, active voice, no colon, no full stop. | Presales doubled after the lineup drop | Presales over time |
| Subtitle | One full sentence with what was measured, where and when. | Tickets sold per day across all Hollow Pines Festival ticket types. | tix/day, all TTs |
| Numbers | Numerals for every value, commas for thousands, closed-up percent. | 12,480 tickets, 68% | twelve thousand, 68 % |
| Money | Dollar sign with no space, cents only when the amount isn’t round. | $19.95, $1,200 | $ 20.00 |
| Spans | Use “to”, never a dash. | $50 to $100, Fri 27 to Sun 29 Nov | $50–$100 |
| Dates and times | Follow the date and time foundation. 24-hour time only on dense axes and in exports. | Fri 27 Nov, 7:30pm | 27th Nov, 7:30 PM |
| Terms | Use house terms and one name per metric everywhere it appears. | Ticket type, access code, scan rate | Ticket category, promo code, entries |
| Annotations | Short full sentences that name the cause. No arrows or symbols. | Lineup announced. Sales tripled that day. | Lineup drop → 3x!! |
| Empty states | Say what happened and what to do next. | No sales yet. Tickets go on sale Fri 27 Nov at 9:00am AEST. | No data available |
| Source line | Name the data and when it was pulled. | Source: Oztix ticketing data, pulled Mon 21 Sep. | Source: internal data |
| Summaries and alt text | Takeaway and numbers first, then the comparison, then the scope. No AI vocabulary or hedging. | Saltwater Sessions sold 4,200 tickets in Sydney, 1,100 more than Melbourne. | This chart showcases the vibrant sales landscape. |
--chart-gap between touching fills.| Term | What it means | Chart |
|---|---|---|
| Pace index | Tickets sold divided by what similar shows had sold at the same days out, times 100. Over 100 is ahead. | LineChart, stat tile |
| Sell-through | Tickets sold as a share of sellable capacity, after holds and kills. Never gross capacity. | Capacity meter |
| On-sale spike | Orders in the first hours after tickets go on sale, often shown against the forecast for that hour. | Heatmap, annotated BarChart |
| Presale and general | Tickets sold before and after the public on-sale. | StackedBars |
| Walk-up | Tickets sold on the day of the show. | The end of the LineChart |
| No-show rate | Tickets issued but never scanned, as a share of tickets issued. | Stat tile, RankedBars with reference |
| Scan rate | Tickets scanned per 15 minutes at each gate, with the running share of fans inside. | BarChart with line, SmallMultiples per gate |
| Resale share | Tickets resold as a share of tickets sold. | StackedBars |
| Ticket type mix | Tickets sold by ticket type, such as GA, VIP or early-bird. | StackedBars, using the pair or trio sets |
| Channel and referrer | Where buyers came from before they bought. | RankedBars |
| Postcode | Where buyers live, from billing postcodes. Report shares, not counts, when totals differ. | RankedBars |
| When fans buy | Orders by hour and weekday, in the venue timezone. | Heatmap |
| Question | Term | Chart |
|---|---|---|
| Is the show selling on pace? | Pace index | LineChart with band, median, forecast, target and today |
| How many have sold, and when? | Sales to date, daily orders | LineChart (cumulative), BarChart by day |
| What moved sales? | Announcements, line-up drops, email sends, ad bursts, price releases | Annotations on any time chart |
| How did the on-sale go? | On-sale spike | BarChart by hour, annotated |
| Which ticket types are selling? | Ticket type mix | StackedBars using the pair or trio sets |
| How much sold before general sale? | Presale and general | StackedBars |
| Where did buyers come from? | Channel, referrer, campaign | RankedBars |
| Where do buyers live? | Postcode, region, travel distance | RankedBars with share |
| Who are the buyers? | Age and gender brackets, new and returning | RankedBars or StackedBars |
| How far ahead do fans buy? | Booking lead time | Histogram |
| How many tickets per order? | Order size | Histogram |
| Where do buyers drop out? | Checkout conversion, waitlist to purchase | Funnel |
| When do fans buy? | Orders by hour and weekday, venue timezone | Heatmap |
| Which sections are filling? | Sell-through by section or zone | Heatmap, or a table of meters |
| Is there unmet demand? | Sell-out time by release, waitlist sign-ups, abandoned checkouts | BarChart with annotations, Funnel |
| How do buyers respond to price? | Sales by price tier, jumps at each price release | RankedBars, annotated BarChart |
| What else do our buyers go to? | Also bought | RankedBars |
| How are all my shows tracking? | Portfolio pace against sell-through | Scatter with quadrants |
| How did entry go? | Scan rate per 15 minutes, share of fans inside | BarChart with line, SmallMultiples per gate |
| Did people turn up? | Attendance against sold, no-show rate | RankedBars with reference (similar shows) |
| How good was the forecast? | Forecast against actual | LineChart |
| How much was resold? | Resale share | StackedBars |
Every token and its value are on the data visualisation tokens page.