In our latest dev blog installment, I want to talk about group reservations and our general approach to new feature development:

Re-thinking reservations

Group reservations had long been on our radar, but last summer, we began receiving an increasing number of requests for group reservation functionality from both existing and prospective customers. As our roadmap is customer-driven, we responded by digging in on a comprehensive approach to group reservations. In any such use case / scenario, we attempt to understand the problem set thoroughly and accommodate (as much as possible) the needs of every user. We approach a given problem from the perspectives of both campground user and campground guest. We take a fresh look at each of the variables, and try to offer the best and most innovative solution available using the available technology.

In the case of group reservations, we set out to build a solution that was powerful and easy enough for booking large rally groups while scaling down to small, family reservations comprising several sites. And of course, we wanted to build it on top of our already solid real-time booking engine with full support for online reservations.

Naturally, we would have to adjust our reservation model slightly to accommodate group bookings. Our ultimate solution involved allowing all Reservations to be associated with many sites, instead of a single site, as previously. We then subclassed Reservation with a new class of GroupReservation (inheriting all the properties of a standard Reservation) and tied the two together directly, allowing a Reservation to (optionally) be associated to a GroupReservation.

While the details of the object model may not be particularly exciting, what all of this allows us to do is exciting. By modeling all Reservations to have many sites, it allowed us to build atop our existing real-time reservation logic with minimal effort and maximize query speed. By allowing GroupReservations to inherit the properties of standard Reservations, we were able to reuse much of our existing Reservation UI, logic, etc. We were able to redefine the Guest association as the “Group Contact” / “Wagonmaster” and the reservation occupancy counts can be used to refer to the expected totals for the group. Associating Reservations to a “parent” GroupReservation allows us to provide easy reporting and custom rating / discounting for groups.

Online group reservations

Perhaps the most exciting feature afforded by these changes is the ability for group members to select their site from within the group-reserved inventory entirely online. While all of our Sunrise plans include group reservation functionality, Premium and Unlimited customers enjoy that their group customers receive a special link to SunriseReservations.com in their reservation confirmation emails. The group contact can then distribute this link to their members, (Email, Blog, Facebook, Twitter, etc.) allowing them to select from within (and only within) the remaining allocated group inventory for the pre-selected group-reserved dates. Guests can then reserve their preferred site and make payment online in advance of their stay, having a confirmed reservation and never even having to phone the campground. Any group discounts can be applied through the use of custom rating rules. (see previous post on dynamic rules engine)

Auto-release inventory

Another impact of group reservations on our model was the implementation of an “auto-release” function for sites reserved for a group. We expanded on our existing logic which would “time out” a reservation started online but not completed within a given user session. We now set an explicit date and time for a PENDING reservation to be expired and inventory reclaimed and allow campground users to set that to whatever makes sense for a given group booking. If a group doesn’t claim all of the booked inventory by the release date, any unclaimed sites will be automatically released back into inventory, leaving any other claimed site reservations intact and associated with the group.

This auto-release feature also led to the development of our “pencil-in” functionality, by opening up the release date property to all reservations, essentially. I may go into pencil-ins further in another post.

Comprehensive

We set out to build a comprehensive solution to group reservations, with a specific focus on the features important to Rally Groups and Clubs. We think we hit the mark on that score, but more importantly, our customers are enjoying the benefits of group reservations, Sunrise style. If you’re interested in learning more about our group features, give us a call and schedule a demo!

(Photo credit: Paul Stevenson)