Hi all, we are looking to make some zoning adjustments for our next season, and one of the things that would be most helpful is either an Analytics heat map or another method by which we could view all the current base seats held in a package. Since we would roll these base seats over into next year, it would be advantageous for our purposes to know which seats are not currently occupied by subscribers. Anyone have any ideas on how to go about doing this? I have a heatmap in Analytics, but unfortunately it's a bit hard to decipher as some seats seem to disappear when I properly set the filters (perhaps because there's no base seats in those seats?).
Hi Martin,
It's expected that if the widget is filtered to only include packages, then the only seats that will be visible in the widget are those associated with package sales. So instead of filtering the widget to subscription tickets, or packages, or even by package season, we have to make sure the widget includes all seats to the desired set of shows in the package(s), without filtering OUT any seats/tickets to those shows. Then with that full set of seats in the widget and visible in the seat map, filter the Value returned to the Break By / Color to only count packages.
The following formula is intended to pull the count of package seats for each seat. Package seats are counted with [# unique Package Seat Key], however, at the moment, unsold and non-package seats have a "placeholder" package seat key, so they will currently count 1 toward the total when present. To filter those out and ensure [# unique Package Seat Key] is limited to package seats we could use a value filter like:
(I'm adding an enhancement for a future release to make it so that this additional filter is not required, but for now...)
( [# of unique Package Seat Key] , [Package Seat Key <> 0|0] )
Then we set a color for the package seat count... I used a Range type coloring...
You can probably stop here, but if you prefer to set your own colors, and wish to control the color of seats that have no package sales against them, then we need to update the formula to catch the NULL condition when a seat has no package sales to return a 0 instead...
IF ( ISNULL( ( [# of unique Package Seat Key] , [Package Seat Key <> 0|0] ) ) , SUM(0) , ( [# of unique Package Seat Key] , [Package Seat Key <> 0|0] ) )
The IF ISNULL portion of the formula to count package seats will return a NULL if the seat has not been sold as a part of a package, and in order to assign a color to that condition we need to convert that NULL to a 0.
From there we can assign conditional coloring where if the result is 0, some kind of "inactive seat" color is used, followed by a series of other conditions for the number of packages against which that seat was sold. I chose a comparison to the maximum number packages into which this seat could potentially be sold. For example, if there's an Evening package Tuesday - Saturday, and a Matinee package Saturday - Sunday, and there's 4 weeks of that, then that's 28 packages to which a given seat could be sold. I'm making an assumption that at least one seat to all those packages has been sold, and then grabbing a count of unique packages from across the whole seat map. Finally, I'm tiering the bucketing by whether the seat was sold to >= 80% of the packages, or >= 60% of the packages, etc...
( [# of unique Package ID] , ALL([Seat Key]), ALL([Seat Map X]), ALL([Seat Map Y]), ALL([Screen]) ) * 0.8
SeatMapBaseSeats.dash
PS. I realized that I didn't consider in my prior comment how a mixture of Fixed (with base seat) and Flex packages could impact my recommendations above. If for the selected group of performances the package seats could be a mixture of fixed and flex, then we might also want to limit the evaluation to only fixed seat packages. For the primary count of package seats, we could replace the filter on [#unique Package Seat Key] with [Package Mode] set to only include Flex and Sub packages.
( [# of unique Package Seat Key] , [Package Mode is Fixed or Sub] )
Then for the second example in which we specify conditional coloring, we would want to update the formula in those conditions to use that same filter:
( [# of unique Package ID] , [Package Mode is Fixed or Sub] , ALL([Seat Key]), ALL([Seat Map X]), ALL([Seat Map Y]), ALL([Screen]) ) * 0.8
This will provide apples to apples comparison of Fixed seat package seats against the total possible count of fixed seat packages to which that seat could be sold.
SeatMapBaseSeats.dash (updated)