RoadieRoadie
  • Home
  • Foundations
  • Tokens
  • Components
  • Charts
  • Widgets
  • Appearance
HomeFoundationsComponents
Appearance

Charts

  • Guidelines

    • Data visualisation
    • Dashboard design
  • Layout

    • Dashboard
    • DataCard
  • Data pieces

    • StatTile
    • Meter
    • Sparkline
    • DataTable
  • Chart types

    • LineChart
    • BarChart
    • RankedBars
    • StackedBars
    • Histogram
    • Funnel
    • Heatmap
    • Scatter
    • SmallMultiples
  • Chart parts

    • Chart
    • ChartLegend
    • ChartPatterns
    • ChartTooltip
  • Examples

    • Show dashboard
    • Portfolio dashboard
    • Audience dashboard

Show dashboard

At a glance

Sat 14 Nov, 30 days to go

What to do next

GA is carrying the show and VIP is 45 points short of target. Push VIP in the final month.

Tickets sold

1,464216up 216, better

This week, of 2,400

Sell-through

61%9 ptsup 9 points, better

Target 85%

Pace index

11212%up 12%, better

Similar shows = 100

Gross revenue

$118.4k9%up 9%, better

On last week

Sales

Sales pace

61%9 ptsup 9 points, better

Ahead of similar shows. Forecast 96%

Today 61%Line-up dropForecast 96%Similar shows 86%Target 85%16 Aug15 Sept15 Oct14 Nov0%50%100%

Sales pace
DaySoldForecastSimilar showsSimilar shows range
Sun 16 Aug14%14%7% to 22%
Tue 18 Aug18%16%9.3% to 24%
Thu 20 Aug21%19%12% to 27%
Sat 22 Aug24%21%14% to 29%
Mon 24 Aug27%22%15% to 30%
Wed 26 Aug30%24%17% to 32%
Fri 28 Aug32%26%19% to 34%
Sun 30 Aug33%27%20% to 35%
Tue 1 Sept35%29%22% to 37%
Thu 3 Sept35%30%23% to 38%
Sat 5 Sept36%32%25% to 40%
Mon 7 Sept36%33%26% to 41%
Wed 9 Sept36%34%27% to 42%
Fri 11 Sept36%35%28% to 43%
Sun 13 Sept36%36%29% to 44%
Tue 15 Sept36%37%30% to 45%
Thu 17 Sept37%38%31% to 46%
Sat 19 Sept37%39%32% to 47%
Mon 21 Sept38%40%33% to 48%
Wed 23 Sept39%41%34% to 49%
Fri 25 Sept40%42%35% to 50%
Sun 27 Sept42%43%36% to 51%
Tue 29 Sept43%44%37% to 52%
Thu 1 Oct46%45%38% to 53%
Sat 3 Oct48%46%39% to 54%
Mon 5 Oct50%47%40% to 55%
Wed 7 Oct53%48%41% to 56%
Fri 9 Oct55%49%42% to 57%
Sun 11 Oct57%50%43% to 58%
Tue 13 Oct59%51%44% to 59%
Thu 15 Oct61%53%46% to 61%
Sat 17 Oct63%54%47% to 62%
Mon 19 Oct64%56%49% to 64%
Wed 21 Oct66%57%50% to 65%
Fri 23 Oct68%59%52% to 67%
Sun 25 Oct69%60%53% to 68%
Tue 27 Oct71%62%55% to 70%
Thu 29 Oct73%64%57% to 72%
Sat 31 Oct76%67%60% to 75%
Mon 2 Nov78%69%62% to 77%
Wed 4 Nov80%71%64% to 79%
Fri 6 Nov83%74%67% to 82%
Sun 8 Nov86%77%70% to 85%
Tue 10 Nov89%80%73% to 88%
Thu 12 Nov92%83%76% to 91%
Sat 14 Nov96%86%79% to 94%
Oztix sales. 38 similar shows, last 3 years.

Ticket types

VIP is the one to push this month

Ticket types
Ticket typeSell-through
GA early bird300 of 300
100%
GA1,004 of 1,700
59%
VIP160 of 400
40%
Oztix sales.

Where buyers are from

Most buyers are within 20km

Where buyers are from
SuburbShare
Fortitude Valley14%
West End11%
Paddington9%
Newstead7%
Oztix sales, billing postcodes.

Buyers

Daily orders

Orders peak on Fridays and grow each week

25 Sept29 Sept3 Oct7 Oct11 Oct15 Oct01530

Daily orders
DayOrders
Fri 25 Sept15
Sat 26 Sept12
Sun 27 Sept9
Mon 28 Sept7
Tue 29 Sept7
Wed 30 Sept8
Thu 1 Oct10
Fri 2 Oct19
Sat 3 Oct16
Sun 4 Oct11
Mon 5 Oct9
Tue 6 Oct10
Wed 7 Oct10
Thu 8 Oct13
Fri 9 Oct21
Sat 10 Oct18
Sun 11 Oct12
Mon 12 Oct9
Tue 13 Oct10
Wed 14 Oct11
Thu 15 Oct15
Oztix sales.

Ticket type mix

GA is carrying the show

  • GA
  • VIP
  • Early bird
0400800AugSepOct

Ticket type mix
MonthGAVIPEarly birdTotal
Aug41460300774
Sep213400253
Oct377600437
Oztix sales.

When fans buy

Fans buy most on Friday evenings

  • Fewer
  • More
9am12pm3pm6pm9pmMonTueWedThuFriSatSun

When fans buy
Weekday9am12pm3pm6pm9pm
Mon48101812
Tue59112013
Wed59122214
Thu610143022
Fri812184236
Sat1422202418
Sun121816148
Oztix sales, venue time.

As data

{
"version": 1,
"title": "Ball Park Music at The Lantern Room",
"sections": [
{
"title": "At a glance",
"description": "Sat 14 Nov, 30 days to go",
"cards": [
{
"id": "note",
"kind": "note",
"size": "full",
"label": "What to do next",
"body": "GA is carrying the show and VIP is 45 points short of target. Push VIP in the final month."
},
{
"id": "sold",
"kind": "stat",
"size": "stat",
"label": "Tickets sold",
"value": 1464,
"delta": {
"value": 216
},
"context": "This week, of 2,400",
"trend": [
27,
21,
15,
16,
19,
22,
43,
37,
24,
20,
24,
22,
29,
48,
40,
27,
21,
22,
25,
33
]
},
{
"id": "sell-through",
"kind": "stat",
"size": "stat",
"label": "Sell-through",
"value": 0.61,
"format": "percent",
"delta": {
"value": 9,
"format": "points"
},
"context": "Target 85%",
"trend": [
0.4,
0.41,
0.41,
0.42,
0.43,
0.44,
0.46,
0.47,
0.48,
0.49,
0.5,
0.51,
0.52,
0.54,
0.56,
0.57,
0.58,
0.59,
0.6,
0.61
],
"reference": {
"value": 0.85,
"label": "Target"
}
},
{
"id": "pace",
"kind": "stat",
"size": "stat",
"label": "Pace index",
"value": 112,
"format": "index",
"delta": {
"value": 0.12,
"format": "percent"
},
"context": "Similar shows = 100",
"trend": [
96,
98,
97,
101,
104,
103,
106,
108,
107,
105,
104,
107,
109,
110,
108,
110,
111,
113,
112,
112
],
"reference": {
"value": 100,
"label": "Similar shows"
}
},
{
"id": "revenue",
"kind": "stat",
"size": "stat",
"label": "Gross revenue",
"value": 118400,
"format": "compactCurrency",
"delta": {
"value": 0.09,
"format": "percent"
},
"context": "On last week",
"trend": [
2200,
1700,
1200,
1300,
1500,
1800,
3500,
3000,
1900,
1600,
1900,
1800,
2300,
3900,
3200,
2200,
1700,
1800,
2000,
2700
]
}
]
},
{
"title": "Sales",
"cards": [
{
"id": "sales-pace",
"kind": "chart",
"size": "full",
"label": "Sales pace",
"value": 0.61,
"format": "percent",
"delta": {
"value": 9,
"format": "points"
},
"context": "Ahead of similar shows. Forecast 96%",
"plot": {
"kind": "line",
"data": [
{
"day": "2026-08-16",
"sold": 0.14,
"coneLow": null,
"coneHigh": null,
"low": 0.07,
"high": 0.22,
"median": 0.14
},
{
"day": "2026-08-18",
"sold": 0.177,
"coneLow": null,
"coneHigh": null,
"low": 0.093,
"high": 0.243,
"median": 0.163
},
{
"day": "2026-08-20",
"sold": 0.212,
"coneLow": null,
"coneHigh": null,
"low": 0.115,
"high": 0.265,
"median": 0.185
},
{
"day": "2026-08-22",
"sold": 0.243,
"coneLow": null,
"coneHigh": null,
"low": 0.135,
"high": 0.285,
"median": 0.205
},
{
"day": "2026-08-24",
"sold": 0.272,
"coneLow": null,
"coneHigh": null,
"low": 0.154,
"high": 0.304,
"median": 0.224
},
{
"day": "2026-08-26",
"sold": 0.296,
"coneLow": null,
"coneHigh": null,
"low": 0.172,
"high": 0.322,
"median": 0.242
},
{
"day": "2026-08-28",
"sold": 0.317,
"coneLow": null,
"coneHigh": null,
"low": 0.189,
"high": 0.339,
"median": 0.259
},
{
"day": "2026-08-30",
"sold": 0.333,
"coneLow": null,
"coneHigh": null,
"low": 0.204,
"high": 0.354,
"median": 0.274
},
{
"day": "2026-09-01",
"sold": 0.345,
"coneLow": null,
"coneHigh": null,
"low": 0.219,
"high": 0.369,
"median": 0.289
},
{
"day": "2026-09-03",
"sold": 0.354,
"coneLow": null,
"coneHigh": null,
"low": 0.233,
"high": 0.383,
"median": 0.303
},
{
"day": "2026-09-05",
"sold": 0.359,
"coneLow": null,
"coneHigh": null,
"low": 0.246,
"high": 0.396,
"median": 0.316
},
{
"day": "2026-09-07",
"sold": 0.362,
"coneLow": null,
"coneHigh": null,
"low": 0.258,
"high": 0.408,
"median": 0.328
},
{
"day": "2026-09-09",
"sold": 0.362,
"coneLow": null,
"coneHigh": null,
"low": 0.27,
"high": 0.42,
"median": 0.34
},
{
"day": "2026-09-11",
"sold": 0.362,
"coneLow": null,
"coneHigh": null,
"low": 0.281,
"high": 0.431,
"median": 0.351
},
{
"day": "2026-09-13",
"sold": 0.362,
"coneLow": null,
"coneHigh": null,
"low": 0.292,
"high": 0.442,
"median": 0.362
},
{
"day": "2026-09-15",
"sold": 0.363,
"coneLow": null,
"coneHigh": null,
"low": 0.302,
"high": 0.452,
"median": 0.372
},
{
"day": "2026-09-17",
"sold": 0.365,
"coneLow": null,
"coneHigh": null,
"low": 0.312,
"high": 0.462,
"median": 0.382
},
{
"day": "2026-09-19",
"sold": 0.369,
"coneLow": null,
"coneHigh": null,
"low": 0.322,
"high": 0.472,
"median": 0.392
},
{
"day": "2026-09-21",
"sold": 0.376,
"coneLow": null,
"coneHigh": null,
"low": 0.331,
"high": 0.481,
"median": 0.401
},
{
"day": "2026-09-23",
"sold": 0.386,
"coneLow": null,
"coneHigh": null,
"low": 0.341,
"high": 0.491,
"median": 0.411
},
{
"day": "2026-09-25",
"sold": 0.399,
"coneLow": null,
"coneHigh": null,
"low": 0.35,
"high": 0.5,
"median": 0.42
},
{
"day": "2026-09-27",
"sold": 0.415,
"coneLow": null,
"coneHigh": null,
"low": 0.359,
"high": 0.509,
"median": 0.429
},
{
"day": "2026-09-29",
"sold": 0.434,
"coneLow": null,
"coneHigh": null,
"low": 0.369,
"high": 0.519,
"median": 0.439
},
{
"day": "2026-10-01",
"sold": 0.455,
"coneLow": null,
"coneHigh": null,
"low": 0.378,
"high": 0.528,
"median": 0.448
},
{
"day": "2026-10-03",
"sold": 0.478,
"coneLow": null,
"coneHigh": null,
"low": 0.388,
"high": 0.538,
"median": 0.458
},
{
"day": "2026-10-05",
"sold": 0.502,
"coneLow": null,
"coneHigh": null,
"low": 0.398,
"high": 0.548,
"median": 0.468
},
{
"day": "2026-10-07",
"sold": 0.526,
"coneLow": null,
"coneHigh": null,
"low": 0.409,
"high": 0.559,
"median": 0.479
},
{
"day": "2026-10-09",
"sold": 0.55,
"coneLow": null,
"coneHigh": null,
"low": 0.42,
"high": 0.57,
"median": 0.49
},
{
"day": "2026-10-11",
"sold": 0.573,
"coneLow": null,
"coneHigh": null,
"low": 0.431,
"high": 0.581,
"median": 0.501
},
{
"day": "2026-10-13",
"sold": 0.594,
"coneLow": null,
"coneHigh": null,
"low": 0.443,
"high": 0.593,
"median": 0.513
},
{
"day": "2026-10-15",
"sold": 0.614,
"coneLow": 0.614,
"coneHigh": 0.614,
"low": 0.456,
"high": 0.606,
"median": 0.526
},
{
"day": "2026-10-17",
"sold": 0.628,
"coneLow": 0.623,
"coneHigh": 0.632,
"low": 0.47,
"high": 0.62,
"median": 0.54
},
{
"day": "2026-10-19",
"sold": 0.643,
"coneLow": 0.633,
"coneHigh": 0.652,
"low": 0.485,
"high": 0.635,
"median": 0.555
},
{
"day": "2026-10-21",
"sold": 0.658,
"coneLow": 0.644,
"coneHigh": 0.672,
"low": 0.5,
"high": 0.65,
"median": 0.57
},
{
"day": "2026-10-23",
"sold": 0.675,
"coneLow": 0.657,
"coneHigh": 0.694,
"low": 0.517,
"high": 0.667,
"median": 0.587
},
{
"day": "2026-10-25",
"sold": 0.693,
"coneLow": 0.67,
"coneHigh": 0.717,
"low": 0.534,
"high": 0.684,
"median": 0.604
},
{
"day": "2026-10-27",
"sold": 0.712,
"coneLow": 0.684,
"coneHigh": 0.74,
"low": 0.553,
"high": 0.703,
"median": 0.623
},
{
"day": "2026-10-29",
"sold": 0.733,
"coneLow": 0.7,
"coneHigh": 0.766,
"low": 0.573,
"high": 0.723,
"median": 0.643
},
{
"day": "2026-10-31",
"sold": 0.755,
"coneLow": 0.718,
"coneHigh": 0.792,
"low": 0.595,
"high": 0.745,
"median": 0.665
},
{
"day": "2026-11-02",
"sold": 0.778,
"coneLow": 0.736,
"coneHigh": 0.82,
"low": 0.618,
"high": 0.768,
"median": 0.688
},
{
"day": "2026-11-04",
"sold": 0.803,
"coneLow": 0.757,
"coneHigh": 0.85,
"low": 0.642,
"high": 0.792,
"median": 0.712
},
{
"day": "2026-11-06",
"sold": 0.83,
"coneLow": 0.779,
"coneHigh": 0.882,
"low": 0.668,
"high": 0.818,
"median": 0.738
},
{
"day": "2026-11-08",
"sold": 0.859,
"coneLow": 0.803,
"coneHigh": 0.915,
"low": 0.696,
"high": 0.846,
"median": 0.766
},
{
"day": "2026-11-10",
"sold": 0.889,
"coneLow": 0.829,
"coneHigh": 0.95,
"low": 0.726,
"high": 0.876,
"median": 0.796
},
{
"day": "2026-11-12",
"sold": 0.922,
"coneLow": 0.856,
"coneHigh": 0.987,
"low": 0.758,
"high": 0.908,
"median": 0.828
},
{
"day": "2026-11-14",
"sold": 0.956,
"coneLow": 0.886,
"coneHigh": 1,
"low": 0.792,
"high": 0.942,
"median": 0.862
}
],
"x": "day",
"y": "sold",
"format": "percent",
"takeaway": "Tracking ahead of similar shows, forecast to reach 96%",
"band": {
"low": "low",
"high": "high",
"median": "median",
"label": "Similar shows"
},
"forecast": {
"from": "2026-10-15",
"low": "coneLow",
"high": "coneHigh"
},
"target": 0.85,
"today": "2026-10-15",
"annotations": [
{
"at": "2026-09-05",
"label": "Line-up drop"
}
]
},
"source": "Oztix sales. 38 similar shows, last 3 years."
},
{
"id": "ticket-types",
"kind": "table",
"size": "md",
"label": "Ticket types",
"takeaway": "VIP is the one to push this month",
"columns": [
{
"key": "type",
"header": "Ticket type",
"kind": "text",
"secondaryKey": "sold"
},
{
"key": "sellThrough",
"header": "Sell-through",
"kind": "meter",
"target": 0.85
}
],
"rows": [
{
"type": "GA early bird",
"sold": "300 of 300",
"sellThrough": 1
},
{
"type": "GA",
"sold": "1,004 of 1,700",
"sellThrough": 0.59
},
{
"type": "VIP",
"sold": "160 of 400",
"sellThrough": 0.4
}
],
"source": "Oztix sales."
},
{
"id": "buyers",
"kind": "table",
"size": "md",
"label": "Where buyers are from",
"takeaway": "Most buyers are within 20km",
"columns": [
{
"key": "suburb",
"header": "Suburb",
"kind": "text"
},
{
"key": "share",
"header": "Share",
"kind": "number",
"format": "percent"
}
],
"rows": [
{
"suburb": "Fortitude Valley",
"share": 0.14
},
{
"suburb": "West End",
"share": 0.11
},
{
"suburb": "Paddington",
"share": 0.09
},
{
"suburb": "Newstead",
"share": 0.07
}
],
"source": "Oztix sales, billing postcodes."
}
]
},
{
"title": "Buyers",
"cards": [
{
"id": "daily-orders",
"kind": "chart",
"size": "md",
"label": "Daily orders",
"takeaway": "Orders peak on Fridays and grow each week",
"plot": {
"kind": "bar",
"data": [
{
"day": "2026-09-25",
"orders": 15
},
{
"day": "2026-09-26",
"orders": 12
},
{
"day": "2026-09-27",
"orders": 9
},
{
"day": "2026-09-28",
"orders": 7
},
{
"day": "2026-09-29",
"orders": 7
},
{
"day": "2026-09-30",
"orders": 8
},
{
"day": "2026-10-01",
"orders": 10
},
{
"day": "2026-10-02",
"orders": 19
},
{
"day": "2026-10-03",
"orders": 16
},
{
"day": "2026-10-04",
"orders": 11
},
{
"day": "2026-10-05",
"orders": 9
},
{
"day": "2026-10-06",
"orders": 10
},
{
"day": "2026-10-07",
"orders": 10
},
{
"day": "2026-10-08",
"orders": 13
},
{
"day": "2026-10-09",
"orders": 21
},
{
"day": "2026-10-10",
"orders": 18
},
{
"day": "2026-10-11",
"orders": 12
},
{
"day": "2026-10-12",
"orders": 9
},
{
"day": "2026-10-13",
"orders": 10
},
{
"day": "2026-10-14",
"orders": 11
},
{
"day": "2026-10-15",
"orders": 15
}
],
"x": "day",
"y": "orders",
"takeaway": "Orders peak on Fridays and grow each week"
},
"source": "Oztix sales."
},
{
"id": "ticket-mix",
"kind": "chart",
"size": "md",
"label": "Ticket type mix",
"takeaway": "GA is carrying the show",
"plot": {
"kind": "stacked-bars",
"data": [
{
"month": "Aug",
"type": "GA",
"sold": 414
},
{
"month": "Aug",
"type": "VIP",
"sold": 60
},
{
"month": "Aug",
"type": "Early bird",
"sold": 300
},
{
"month": "Sep",
"type": "GA",
"sold": 213
},
{
"month": "Sep",
"type": "VIP",
"sold": 40
},
{
"month": "Sep",
"type": "Early bird",
"sold": 0
},
{
"month": "Oct",
"type": "GA",
"sold": 377
},
{
"month": "Oct",
"type": "VIP",
"sold": 60
},
{
"month": "Oct",
"type": "Early bird",
"sold": 0
}
],
"x": "month",
"y": "sold",
"series": "type",
"takeaway": "GA is carrying the show"
},
"source": "Oztix sales."
},
{
"id": "when-fans-buy",
"kind": "chart",
"size": "full",
"label": "When fans buy",
"takeaway": "Fans buy most on Friday evenings",
"plot": {
"kind": "heatmap",
"data": [
{
"weekday": "Mon",
"hour": "9am",
"orders": 4
},
{
"weekday": "Mon",
"hour": "12pm",
"orders": 8
},
{
"weekday": "Mon",
"hour": "3pm",
"orders": 10
},
{
"weekday": "Mon",
"hour": "6pm",
"orders": 18
},
{
"weekday": "Mon",
"hour": "9pm",
"orders": 12
},
{
"weekday": "Tue",
"hour": "9am",
"orders": 5
},
{
"weekday": "Tue",
"hour": "12pm",
"orders": 9
},
{
"weekday": "Tue",
"hour": "3pm",
"orders": 11
},
{
"weekday": "Tue",
"hour": "6pm",
"orders": 20
},
{
"weekday": "Tue",
"hour": "9pm",
"orders": 13
},
{
"weekday": "Wed",
"hour": "9am",
"orders": 5
},
{
"weekday": "Wed",
"hour": "12pm",
"orders": 9
},
{
"weekday": "Wed",
"hour": "3pm",
"orders": 12
},
{
"weekday": "Wed",
"hour": "6pm",
"orders": 22
},
{
"weekday": "Wed",
"hour": "9pm",
"orders": 14
},
{
"weekday": "Thu",
"hour": "9am",
"orders": 6
},
{
"weekday": "Thu",
"hour": "12pm",
"orders": 10
},
{
"weekday": "Thu",
"hour": "3pm",
"orders": 14
},
{
"weekday": "Thu",
"hour": "6pm",
"orders": 30
},
{
"weekday": "Thu",
"hour": "9pm",
"orders": 22
},
{
"weekday": "Fri",
"hour": "9am",
"orders": 8
},
{
"weekday": "Fri",
"hour": "12pm",
"orders": 12
},
{
"weekday": "Fri",
"hour": "3pm",
"orders": 18
},
{
"weekday": "Fri",
"hour": "6pm",
"orders": 42
},
{
"weekday": "Fri",
"hour": "9pm",
"orders": 36
},
{
"weekday": "Sat",
"hour": "9am",
"orders": 14
},
{
"weekday": "Sat",
"hour": "12pm",
"orders": 22
},
{
"weekday": "Sat",
"hour": "3pm",
"orders": 20
},
{
"weekday": "Sat",
"hour": "6pm",
"orders": 24
},
{
"weekday": "Sat",
"hour": "9pm",
"orders": 18
},
{
"weekday": "Sun",
"hour": "9am",
"orders": 12
},
{
"weekday": "Sun",
"hour": "12pm",
"orders": 18
},
{
"weekday": "Sun",
"hour": "3pm",
"orders": 16
},
{
"weekday": "Sun",
"hour": "6pm",
"orders": 14
},
{
"weekday": "Sun",
"hour": "9pm",
"orders": 8
}
],
"rows": "weekday",
"columns": "hour",
"value": "orders",
"takeaway": "Fans buy most on Friday evenings"
},
"source": "Oztix sales, venue time."
}
]
}
]
}

With card actions

import { cardTable } from '@oztix/roadie-charts/tables'
<DashboardView
spec={spec}
cardActions={(card) => (
<CardMenu label={card.label} table={cardTable(card)} />
)}
/>

As JSX

<Dashboard>
<Dashboard.Section title='At a glance' description='Sat 14 Nov, 30 days to go'>
<DataCard size='full' label='What to do next'>
<p>GA is carrying the show and VIP is 45 points short of target. Push VIP in the final month.</p>
</DataCard>
<StatTile label='Tickets sold' value={1464} delta={{ value: 216 }} context='This week, of 2,400' trend={dailySold} />
<StatTile label='Sell-through' value={0.61} format='percent' delta={{ value: 9, format: 'points' }} context='Target 85%' trend={sellThrough} reference={{ value: 0.85, label: 'Target' }} />
<StatTile label='Pace index' value={112} format='index' delta={{ value: 0.12, format: 'percent' }} context='Similar shows = 100' trend={pace} reference={{ value: 100, label: 'Similar shows' }} />
<StatTile label='Gross revenue' value={118400} format='compactCurrency' delta={{ value: 0.09, format: 'percent' }} context='On last week' trend={revenue} />
</Dashboard.Section>
<Dashboard.Section title='Sales'>
<Chart size='full' label='Sales pace' value={0.61} format='percent' delta={{ value: 9, format: 'points' }} context='Ahead of similar shows. Forecast 96%' source='Oztix sales. 38 similar shows, last 3 years.'>
<LineChart data={salesPace} x='day' y='sold' format='percent' takeaway='Tracking ahead of similar shows, forecast to reach 96%' band={{ low: 'low', high: 'high', median: 'median', label: 'Similar shows' }} forecast={{ from: today, low: 'coneLow', high: 'coneHigh' }} target={0.85} today={today} annotations={[{ at: '2026-09-05', label: 'Line-up drop' }]} />
</Chart>
<DataCard size='md' label='Ticket types' takeaway='VIP is the one to push this month' source='Oztix sales.'>
<DataTable columns={ticketTypeColumns} rows={ticketTypes} caption='Ticket types' />
</DataCard>
<DataCard size='md' label='Where buyers are from' takeaway='Most buyers are within 20km' source='Oztix sales, billing postcodes.'>
<DataTable columns={suburbColumns} rows={suburbs} caption='Where buyers are from' />
</DataCard>
</Dashboard.Section>
<Dashboard.Section title='Buyers'>
<Chart size='md' label='Daily orders' takeaway='Orders peak on Fridays and grow each week' source='Oztix sales.'>
<BarChart data={dailyOrders} x='day' y='orders' />
</Chart>
<Chart size='md' label='Ticket type mix' takeaway='GA is carrying the show' source='Oztix sales.'>
<StackedBars data={salesByMonth} x='month' y='sold' series='type' />
</Chart>
<Chart size='full' label='When fans buy' takeaway='Fans buy most on Friday evenings' source='Oztix sales, venue time.'>
<Heatmap data={ordersByHour} rows='weekday' columns='hour' value='orders' />
</Chart>
</Dashboard.Section>
</Dashboard>
Previous page← ChartTooltipNext pagePortfolio dashboard →