When the treasurer reads out the aircraft's hours for the year, everyone nods. They're down a bit, or up a bit. That number tells you whether the aircraft pays its way. It tells you nothing about when it flies.
An aircraft that flies a quarter of its available hours is rarely a quarter busy every day. It's usually full on Saturday morning and sitting on the apron on Tuesday afternoon. A utilisation heatmap shows you that as a grid of days against times of day. Read it carefully and it tells you which empty hours are worth chasing, and which ones never will be.
What each cell in the heatmap shows#
Days run one way across the grid and times of day the other. Each cell is coloured by how much of the available time in that slot was used. Dark is busy, pale is empty.
So every cell is a fraction. Before you look at a single colour, we'd check what's on the top of it and what's on the bottom.
- Used time. Some heatmaps count booked time, some count time actually flown. Depending on the tool, booked time can include no-shows and bookings later cancelled for weather, so a wet month looks busier than it really was. Flown time is what the aircraft earned. Booked time adds back the bookings that weather and no-shows took away, which is useful to see. But it still isn't demand. A member who wanted the slot and couldn't get it shows up in neither. Find out which one your map counts.
- Available time. If the aircraft can be booked from 09:00 to 17:00, an hour at 19:00 is closed, not empty. If it spent ten days in for its annual inspection, those days shouldn't count against it. Put hours nobody could have booked into the denominator and every aircraft looks idle.
Then agree what full means, because no slot ever reaches 100%. Aircraft need refuelling and turning round, and some weekends are simply unflyable. As a rough guide, a cell that stays above about three-quarters across a whole season is as full as a club aircraft is going to get. If you've got cells like that, you're probably already turning members away. That's what "high" means in the table further down. "Low" means anything under a quarter.
A worked example#
Take one club aircraft, bookable 09:00 to 17:00 every day, over eight weeks of winter. Each slot is two hours, so each cell covers 16 bookable hours across the eight weeks. The figure is the share of those hours the aircraft actually flew.
| 09:00 to 11:00 | 11:00 to 13:00 | 13:00 to 15:00 | 15:00 to 17:00 | |
|---|---|---|---|---|
| Monday | 0% | 6% | 6% | 0% |
| Tuesday | 13% | 6% | 0% | 0% |
| Wednesday | 25% | 13% | 6% | 0% |
| Thursday | 6% | 6% | 0% | 6% |
| Friday | 13% | 6% | 13% | 19% |
| Saturday | 88% | 75% | 63% | 31% |
| Sunday | 81% | 88% | 50% | 19% |
The aircraft was bookable for 448 hours and flew 102 of them, 23% overall. A committee usually sees that as one total, 102 hours in eight weeks. On its own it suggests an aircraft with plenty of room.
Split it by day and it's a different aircraft. The weekend had 128 bookable hours and flew 79 of them, 62%. Saturday and Sunday mornings are close to full: in the 09:00 to 13:00 slots it flew 53 of 64 hours. The five weekdays had 320 bookable hours and flew 23 of them. That's 7%. Nearly all the empty time is midweek.
This is where it starts to change real decisions. Put the hire rate up across the board to cover a cost increase, and it lands hardest on the weekend members who are already flying. Buy a second aircraft because "the diary is always full", and mostly you've bought more empty weekdays. And then there's Wednesday morning. At 25% it's only a couple of lessons. But if those were students flying whenever an instructor happened to be free, we'd take it as a hint of weekday training demand that nobody is meeting.
Where heatmap averages mislead#
Every cell is an average, and averages are good at hiding things. Before you act on a pale cell or a dark one, run through these.
A middling cell can hide two patterns#
A 50% cell might mean the slot is half used every week. Or it might be full for four weeks and empty for the other four, because those were the wet ones. The first has room in it. The second is full whenever the weather lets it be. If your tool lets you shorten the period, look at the busy cells week by week before you decide they've got spare capacity.
Small samples swing the figures#
One aircraft over eight weeks gives each two-hour cell 16 hours of data. That's not much. A single two-hour lesson moves a weekday cell from 0% to 13%, as dark as Tuesday morning. Two of them take it to 25%, as dark as any weekday cell in the example. So don't redesign the week around one dark weekday cell. Look for patterns that hold across several cells (a whole morning, a whole day) and across more than one period.
Seasons and daylight change the grid#
Daylight moves the edges of the flying day, and by how much depends on latitude. At London Heathrow's latitude on 21 December the sun sets at 15:55 UTC and civil twilight ends at 16:35. So a 15:00 to 17:00 slot that's bookable all summer runs past sunset in midwinter. For members without the qualifications to fly at night, the last part of that slot isn't an empty hour at all. It's just dark. That's part of why the late-afternoon weekday cells in the example are so pale, so take the dark time out of the denominator before you count them as empty. Further from the pole the effect is smaller. Near Melbourne on 21 June, midwinter there, the sun sets at 17:07 local time and the same slot stays in daylight.
It also means a summer heatmap and a winter one can't be compared. A drop between them doesn't show demand has fallen. Compare the same weeks of the year, and keep each period inside one season so short days don't drag the averages down.
Use one map per aircraft#
A fleet-wide heatmap blends aircraft that do different jobs. The trainer can be full on weekday mornings with students while the tourer sits there until Saturday. Give each aircraft, or each type, its own map.
Telling empty hours from unmet demand#
A pale cell has one of three causes, and each needs a different fix.
- Nobody asked. Members didn't try to book the slot. It's a genuinely empty hour, and the fix is a reason to fly it: a price, a product or an event.
- Someone asked and couldn't book. A student wanted Tuesday morning but no instructor was rostered, or a booking rule turned a member's request away. The demand is there and something is blocking it.
- The aircraft wasn't there. Maintenance, an unserviceability or a weather hold. That's a gap in availability, not demand, and it belongs out of the denominator.
On the utilisation map all three look exactly the same, so the map alone can't tell them apart. You need a record of demand as well. The best one is the booking attempts that found nothing: searches with no availability, names on a waiting list, requests turned down. Lay that over the utilisation map and each cell lands in one of four rows:
| Utilisation | Unmet demand | What it means | What to do |
|---|---|---|---|
| High | High | Real shortage | Protect it: a limit on how many peak slots a member can hold or how far ahead, a peak rate, more capacity if it lasts |
| High | Low | Well matched | Leave it alone |
| Low | High | Something blocks the demand | Find the block: instructors, rules, the booking window |
| Low | Low | Genuinely empty | Create a reason to fly then |
Back to the worked example. Say the demand record shows members trying and failing to book Saturday mornings. Then the weekend is short of aircraft and the weekdays are short of reasons to fly, and the one fix that helps both is moving some flying from the weekend into the week. If you bring in a limit on peak bookings, write it down and give members notice before it applies. Nobody likes finding a new rule by bumping into it.
Ways to fill empty weekday hours#
Once you know which pale cells are genuinely empty, the job is giving members a reason to fly then. These are the usual options.
- Move maintenance into the quiet time. An annual inspection that lands on a weekend takes out the aircraft's most valuable hours. Ask your maintenance organisation for weekday slots, and book scheduled work against the palest days on the map.
- Roster instructors to the demand. If students are being turned away on weekday mornings, an instructor rostered there fills cells that are pale only because nobody was free to teach.
- A weekday or off-peak rate. Any hour flown at a rate above the aircraft's running costs (fuel, oil, the engine reserve and hourly maintenance) chips in towards the fixed costs the weekend members are otherwise carrying. Set the discount from your costs, not as a nice round number. Our guide to setting a hire rate shows how to work out the floor.
- Weekday block packages. A prepaid package valid only on weekdays, or with a better rate on weekdays, turns a vague plan to fly midweek into hours already paid for. See block-hour packages for pricing them and running the balance.
- Trial lessons and discovery flights midweek. People booking a first flight are usually flexible about the day, and a quiet weekday circuit is a calmer first experience than a busy Saturday. The guide to first flights as a sales funnel covers taking those bookings.
- Planned club flying. A weekday fly-out or a summer evening circuit session gets members into the air who wouldn't book on their own.
We'd change one or two things at a time. Change more and the next map will move without you knowing why.
Checking whether the changes worked#
Before you start, pick the cells you're trying to fill and write down their current figures. After the change, take the same length of period, in the same season, and read those cells again.
In the worked example, filling four more weekday hours a week would take the weekdays from 23 flown hours to 55 over the eight weeks, from 7% to 17%. The aircraft overall goes from 23% to 30%, without a single extra hour of weekend flying. A change that size shows up in the accounts, and the treasurer will notice.
Keep an eye on the weekend cells too. If they fall as the weekday cells rise, members have moved their flying rather than added to it. That's good news if the weekend was turning people away, because the freed slots go to someone else. If it wasn't, you've discounted flying that would have happened anyway. The demand record tells you which.
Heatmaps in Volanti#
Volanti's reporting gives you both halves of the table above: a utilisation heatmap and a demand heatmap, plus a third, insights, for capacity planning. Members' booking searches are recorded, including the ones that found no availability, so unmet demand is captured as members try to book rather than pieced together afterwards. Read the utilisation and demand maps side by side to sort out the pale cells. And if the treasurer would rather work the numbers in a spreadsheet, bookings and flights export to CSV.
Where the unmet demand is training, Volanti emails instructors a standby digest of the flying they could pick up when they open availability. Booking and scheduling covers booking searches, waiting lists and standby in more detail.