Get the yield insights demand heatmap
Returns how full a site's bookable capacity was by weekday and hour over a recent reporting period, so an operator can see when demand is heavy enough to price against.
Each average is the share of bookable minutes that were booked in that weekday and hour across the period — booked time over usable capacity, with time blocked out by staff reducing capacity rather than counting as demand. An average is null rather than 0 where nothing was bookable, so a closed hour reads differently from an empty one.
type selects which offerings the averages cover.
has_occupancy_data is always present, so a dashboard can decide whether to render the grid before reading it. heatmap is empty until the underlying calculation has data to work from.
Separate from the yield insights summary because type scopes only the grid: a dashboard switching between offering types re-reads this without re-reading the summary.
Query parameters
The site to return yield insights for.
The reporting period to calculate results over, ending now. Defaults to last_30_days. Shared by the yield insights endpoints so a dashboard can request every panel over the same window.
Which offerings the averages cover. Defaults to appointments.
Rooms and bookable areas are not a type here: they are returned one row per resource by room and area occupancy.
Response
The demand heatmap was successfully retrieved.
Example response
{
"data": {
"period": "last_30_days",
"type": "appointments",
"has_occupancy_data": true,
"heatmap": [
{
"day": "mon",
"avgs": {
"09:00": 58,
"10:00": 46,
"11:00": null
}
}
],
"quiet_threshold_percent": 40,
"high_threshold_percent": 70,
"peak_threshold_percent": 90
}
}