On Reports
Chart
Bookings 12
Previous period 10
Up 2
Bookings 15
Previous period 13
Up 2
Bookings 11
Previous period 12
Down 1
Bookings 14
Previous period 12
Up 2
Bookings 18
Previous period 15
Up 3
Bookings 9
Previous period 8
Up 1
Bookings 8
Previous period 9
Down 1
Bookings 13
Previous period 11
Up 2
Bookings 16
Previous period 14
Up 2
Bookings 17
Previous period 15
Up 2
Bookings 15
Previous period 16
Down 1
Bookings 19
Previous period 17
Up 2
Bookings 10
Previous period 9
Up 1
Bookings 7
Previous period 8
Down 1
Bookings 14
Previous period 12
Up 2
Bookings 16
Previous period 15
Up 1
Bookings 18
Previous period 16
Up 2
Bookings 20
Previous period 18
Up 2
Bookings 21
Previous period 17
Up 4
Bookings 11
Previous period 10
Up 1
Bookings 9
Previous period 8
Up 1
Bookings 15
Previous period 14
Up 1
Bookings 17
Previous period 15
Up 2
Bookings 19
Previous period 16
Up 3
Bookings 18
Previous period 17
Up 1
Bookings 22
Previous period 19
Up 3
Bookings 12
Previous period 11
Up 1
Bookings 10
Previous period 9
Up 1
Bookings 16
Previous period 14
Up 2
Bookings 8
Previous period 13
Down 5
Show as a table
| Date | Bookings | Previous period | Change |
|---|---|---|---|
12 | 10 | Up 2 | |
15 | 13 | Up 2 | |
11 | 12 | Down 1 | |
14 | 12 | Up 2 | |
18 | 15 | Up 3 | |
9 | 8 | Up 1 | |
8 | 9 | Down 1 | |
13 | 11 | Up 2 | |
16 | 14 | Up 2 | |
17 | 15 | Up 2 | |
15 | 16 | Down 1 | |
19 | 17 | Up 2 | |
10 | 9 | Up 1 | |
7 | 8 | Down 1 | |
14 | 12 | Up 2 | |
16 | 15 | Up 1 | |
18 | 16 | Up 2 | |
20 | 18 | Up 2 | |
21 | 17 | Up 4 | |
11 | 10 | Up 1 | |
9 | 8 | Up 1 | |
15 | 14 | Up 1 | |
17 | 15 | Up 2 | |
19 | 16 | Up 3 | |
18 | 17 | Up 1 | |
22 | 19 | Up 3 | |
12 | 11 | Up 1 | |
10 | 9 | Up 1 | |
16 | 14 | Up 2 | |
8 | 13 | Down 5 |
New hirers 3
Returning hirers 5
New hirers 6
Returning hirers 7
New hirers 4
Returning hirers 6
New hirers 7
Returning hirers 8
New hirers 5
Returning hirers 6
New hirers 8
Returning hirers 9
New hirers 6
Returning hirers 8
New hirers 9
Returning hirers 10
New hirers 7
Returning hirers 9
New hirers 5
Returning hirers 7
New hirers 8
Returning hirers 9
New hirers 10
Returning hirers 11
New hirers 9
Returning hirers 10
New hirers 2
Returning hirers 3
Show as a table
| Date | New hirers | Returning hirers |
|---|---|---|
3 | 5 | |
6 | 7 | |
4 | 6 | |
7 | 8 | |
5 | 6 | |
8 | 9 | |
6 | 8 | |
9 | 10 | |
7 | 9 | |
5 | 7 | |
8 | 9 | |
10 | 11 | |
9 | 10 | |
2 | 3 |
Hire income £1,240.00
Hire income £1,580.00
Hire income £1,910.00
Hire income £2,230.00
Hire income £2,050.00
Hire income £1,320.00
Hire income £1,470.00
Hire income £1,690.00
Hire income £2,120.00
Show as a table
| Date | Hire income |
|---|---|
£1,240.00 | |
£1,580.00 | |
£1,910.00 | |
£2,230.00 | |
£2,050.00 | |
£1,320.00 | |
£1,470.00 | |
£1,690.00 | |
£2,120.00 |
Deposits held £620.00
Deposits held £700.00
Deposits held £540.00
Deposits held £810.00
Deposits held £760.00
Deposits held £480.00
Deposits held £530.00
Deposits held £590.00
Deposits held £690.00
Show as a table
| Date | Deposits held |
|---|---|
£620.00 | |
£700.00 | |
£540.00 | |
£810.00 | |
£760.00 | |
£480.00 | |
£530.00 | |
£590.00 | |
£690.00 |
- Bookings
- 430
- Up 37 on the previous period
-
Bookings 12
Bookings 15
Bookings 11
Bookings 14
Bookings 18
Bookings 9
Bookings 8
Bookings 13
Bookings 16
Bookings 17
Bookings 15
Bookings 19
Bookings 10
Bookings 7
Bookings 14
Bookings 16
Bookings 18
Bookings 20
Bookings 21
Bookings 11
Bookings 9
Bookings 15
Bookings 17
Bookings 19
Bookings 18
Bookings 22
Bookings 12
Bookings 10
Bookings 16
Bookings 8
Show as a table
Date Bookings 1215111418981316171519107141618202111915171918221210168
No cancellations in this period
Show as a table
Show as a table
Show as a table
Source
<Kit.Phoenix.Roles.Chart.trend
id="phoenix-chart-bookings"
label="Bookings by day, 1 to 30 April 2025: 430, up 37 on the previous period"
kind={:line}
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2025-04-01], ~D[2025-04-30]))}
ongoing
series={Kit.Phoenix.Roles.Chart.Drawn.one(%Kit.Phoenix.Roles.Chart.Series{name: "Bookings", values: Enum.map([12, 15, 11, 14, 18, 9, 8, 13, 16, 17, 15, 19, 10, 7, 14, 16, 18, 20, 21, 11, 9, 15, 17, 19, 18, 22, 12, 10, 16, 8], &Kit.Phoenix.Amount.count(reader(), &1))})}
prior={%Kit.Phoenix.Roles.Chart.Series{name: "Previous period", values: Enum.map([10, 13, 12, 12, 15, 8, 9, 11, 14, 15, 16, 17, 9, 8, 12, 15, 16, 18, 17, 10, 8, 14, 15, 16, 17, 19, 11, 9, 14, 13], &Kit.Phoenix.Amount.count(reader(), &1))}}
changes={Enum.map([2, 2, -1, 2, 3, 1, -1, 2, 2, 2, -1, 2, 1, -1, 2, 1, 2, 2, 4, 1, 1, 1, 2, 3, 1, 3, 1, 1, 2, -5], &if(&1 < 0, do: "Down #{-&1}", else: "Up #{&1}"))}
empty="No bookings in this period"
/>
<Kit.Phoenix.Roles.Chart.trend
id="phoenix-chart-hirers"
label="Hirers by week, 1 January to 31 March 2025: 89 new and 108 returning"
kind={:columns}
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2025-01-01], ~D[2025-03-31]))}
series={Kit.Phoenix.Roles.Chart.Drawn.two(
%Kit.Phoenix.Roles.Chart.Series{name: "New hirers", values: Enum.map([3, 6, 4, 7, 5, 8, 6, 9, 7, 5, 8, 10, 9, 2], &Kit.Phoenix.Amount.count(reader(), &1))},
%Kit.Phoenix.Roles.Chart.Series{name: "Returning hirers", values: Enum.map([5, 7, 6, 8, 6, 9, 8, 10, 9, 7, 9, 11, 10, 3], &Kit.Phoenix.Amount.count(reader(), &1))}
)}
empty="No hirers in this period"
/>
<Kit.Phoenix.Roles.Chart.multiples id="phoenix-chart-income">
<:trend
label="Hire income by month, July 2024 to March 2025: £15,610.00"
kind={:line}
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2024-07-01], ~D[2025-03-31]))}
series={Kit.Phoenix.Roles.Chart.Drawn.one(%Kit.Phoenix.Roles.Chart.Series{name: "Hire income", values: Enum.map([1240, 1580, 1910, 2230, 2050, 1320, 1470, 1690, 2120], &Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, &1)))})}
empty="No hire income in this period"
/>
<:trend
label="Deposits held by month, July 2024 to March 2025: £5,720.00"
kind={:line}
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2024-07-01], ~D[2025-03-31]))}
series={Kit.Phoenix.Roles.Chart.Drawn.one(%Kit.Phoenix.Roles.Chart.Series{name: "Deposits held", values: Enum.map([620, 700, 540, 810, 760, 480, 530, 590, 690], &Kit.Phoenix.Amount.money(reader(), Money.new(:GBP, &1)))})}
empty="No deposits held in this period"
/>
</Kit.Phoenix.Roles.Chart.multiples>
<Kit.Phoenix.Roles.FactGroup.fact_group>
<Kit.Phoenix.Roles.LabelledFact.labelled_fact supporting={[Kit.Phoenix.Supporting.line([Kit.Phoenix.Words.text("Up 37 on the previous period")])]}>
<:name>Bookings</:name>
<:value words={[Kit.Phoenix.Words.amount(Kit.Phoenix.Amount.count(reader(), 430))]} />
<:spark>
<Kit.Phoenix.Roles.Chart.spark
id="phoenix-chart-bookings-spark"
label="Bookings by day, 1 to 30 April 2025: 430, up 37 on the previous period"
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2025-04-01], ~D[2025-04-30]))}
ongoing
series={%Kit.Phoenix.Roles.Chart.Series{name: "Bookings", values: Enum.map([12, 15, 11, 14, 18, 9, 8, 13, 16, 17, 15, 19, 10, 7, 14, 16, 18, 20, 21, 11, 9, 15, 17, 19, 18, 22, 12, 10, 16, 8], &Kit.Phoenix.Amount.count(reader(), &1))}}
empty="No bookings in this period"
/>
</:spark>
</Kit.Phoenix.Roles.LabelledFact.labelled_fact>
</Kit.Phoenix.Roles.FactGroup.fact_group>
<Kit.Phoenix.Roles.Chart.trend
id="phoenix-chart-cancellations"
label="Cancellations by day, 1 to 30 April 2025: none"
kind={:line}
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2025-04-01], ~D[2025-04-30]))}
series={Kit.Phoenix.Roles.Chart.Drawn.one(%Kit.Phoenix.Roles.Chart.Series{name: "Cancellations", values: []})}
empty="No cancellations in this period"
/>
<Kit.Phoenix.Roles.Chart.trend
id="phoenix-chart-loading"
label="Bookings by day, 1 to 30 April 2025:"
total
change
kind={:line}
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2025-04-01], ~D[2025-04-30]))}
series={Kit.Phoenix.Roles.Chart.Drawn.one(%Kit.Phoenix.Roles.Chart.Series{name: "Bookings", values: []})}
prior={%Kit.Phoenix.Roles.Chart.Series{name: "Previous period", values: []}}
empty="No bookings in this period"
loading={Kit.Phoenix.Loading.sentence("Bookings by day had not loaded.")}
/>
<Kit.Phoenix.Roles.Chart.multiples id="phoenix-chart-income-loading" loading={Kit.Phoenix.Loading.sentence("Hire income and deposits held had not loaded.")}>
<:trend
label="Hire income by month, July 2024 to March 2025:"
kind={:line}
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2024-07-01], ~D[2025-03-31]))}
series={Kit.Phoenix.Roles.Chart.Drawn.one(%Kit.Phoenix.Roles.Chart.Series{name: "Hire income", values: []})}
total
empty="No hire income in this period"
/>
<:trend
label="Deposits held by month, July 2024 to March 2025:"
kind={:line}
intervals={Kit.Phoenix.Time.intervals(Kit.Phoenix.Time.day_range(reader(), ~D[2024-07-01], ~D[2025-03-31]))}
series={Kit.Phoenix.Roles.Chart.Drawn.one(%Kit.Phoenix.Roles.Chart.Series{name: "Deposits held", values: []})}
total
empty="No deposits held in this period"
/>
</Kit.Phoenix.Roles.Chart.multiples>