Seasonal Prices and Rates Calculation
The pricing system of VikBooking was designed to fit any possible pricing model: per night, per night by length of stay, per occupancy and per season.
From the page WordPress Administrator side, on VikBooking page > Pricing > Rates Table you should enter the costs per night for each room type. This will be the default Rates Inventory from which the rates calculation will take place.
Those properties applying different rates depending on the number of nights of stay, should create various intervals of rates like: From 1 to 3 nights - cost per night = EUR 100; From 4 to 10 nights - cost per night = EUR 90...
If no rates are defined for the number of nights requested, bookings will not be allowed for that room type.
Each room type can apply modifications to the rates depending on the Adults Occupancy. If the room allows a different number of Adults (min and max) like from 1 to 3 Adults, it is possible to specify a charge or a discount for 1, 2 and 3 Adults in this example. These charges/discounts can be specified as a fixed value in your currency or as a percentage value. The rate modifications can be set per night or for the entire stay.
Such rate modifications for the Adults Occupancy can be defined from the Edit page of each room type.
By using the Rates Calculator tool in the page Rates Overview, you will be able to calculate the cost for each night of stay and for each adults occupancy without needing to test the result in the front-end.
Example #1:
- Triple Room for 3 nights and 2 Adults: the system will check if a rate exists for 3 nights for the room type Triple Room. Let's say that 3 nights were defined as EUR 300. Let's also assume that 2 Adults occupying the Triple Room, were configured to get EUR 5 discount per night. This is how the system will calculate the final rate for this request:
300 - (5 * 3) = EUR 285
In the 99% of the cases, prices differ on some seasons/festivities/special occasions of the year. You should use the function Special Prices to modify the default rates on some dates/seasons of the year.
With the Special Prices you will be able to increase or decrease the default rates per night, defined in the page Rates Table. This function will also let you change or set different pricing for the Adults Occupancy.
The rates can be modified on some dates/seasons of the year with charges or discounts expressed as fixed amounts or percentage values. Also, the rates modifications can be different depending on the number of nights of stay by using the function Value Overrides.
Example #2:
- Triple Room for 3 nights and 2 Adults booked on some dates where there is a Special Price applying a charge of 40% and a charge of EUR 10 per night for 2 Adults. This is how the system will calculate the final rate for this booking (this example follows the Example #1 above):
300 / 3 = EUR 100 per night (3 is the number of nights affected by the Special Price and, in this example, also the number of nights requested).
100 * 140 / 100 = EUR 140 per night (40% charge in these dates applied by the Special Price).
140 * 3 = EUR 420 (would be the final rate before applying the occupancy pricing).
(140 + 10) + (140 + 10) + (140 + 10) = EUR 450 final rate for 3 nights and 2 adults in these dates.
The occupancy pricing is always applied on the cost defined in the page Rates Table for the number of nights requested, after applying the Special Prices that will modify the cost for the number of nights requested in certain dates.
The rates calculation takes place in the following order:
Default Cost for the number of nights requested +/- Special Prices defined for the dates requested +/- Occupancy pricing based on the number of Adults.
Example #3:
As explained, the system will first read the cost defined for the requested number of nights of stay from the page Rates Table, for then dividing it by the total number of nights of stay. This is to obtain the so-called "average cost per night". On this basic cost, all the proper Special Prices will be applied depending on how many nights they affect.
- Multiple special prices rules can also be applied by following the same logic, this is an example of how the calculation of the final price takes place:
1 night = €100
2 nights = €190
3 nights = €270
Considering booking for nights, the system will fetch the cost defined for 3 nights of stay, which is €270 in our example. The "average cost per night" will be €90 (270 / 3), and over this basic price all the Special Pricing rules will be applied.
If we take one seasonal rate affecting just one of the three nights booked, i.e. "Special Price A" that applies a charge of +20%, and another seasonal rate, "Special Price B" rule affecting all the three nights of stay by adding a charge of +30%, this will be the final calculation:
1st night = 90 + 20% (A) + 30% (B) = (90 + 18 + 27) = €135
2nd night = 90 + 30% (B) = (90 + 27) = €117
3rd night = 90 + 30% (B) = (90 + 27) = €117
Final cost for these 3 nights of stay = 135 + 117 + 117 = 369
Example #4 - Promotions applied "progressively" or on the "room final cost":
This example will show one of the most complex cases of the calculation of the final cost. If you like mathematics, this example will show you in deep how the calculation of the final cost is made.
Let's assume the following scenario:
- Booking of 5 nights in September.
- Room base cost = €80/night
- Price modification of -15% for 2 nights
- Price modification of -5% for 1 night
- Price modification of +30% for 2 nights
- One promotion that applies 10% off on 3 nights booked
- Another promotion that applies 50% off on 1 night booked
This is a mix of any possible pricing rule, where there are charges and discounts as well as multiple promotions affecting overlapping stay dates.
Before applying the Promotions, these were our costs for the nights of September, where € 80 is our starting from price defined in the page Rates Table:
Booked nights | September 1st | September 2nd | September 3rd | September 4th | September 5th |
Price modifications | € 80 - 15% | € 80 - 15% | € 80 - 5% | € 80 +30% | € 80 +30% |
Price difference | -12 | -12 | -4 | +24 | +24 |
Cost per night | € 68 | € 68 | € 76 | € 104 | € 104 |
Without applying any promotions, and by assuming we have different rates on any days of the year or week-day, our final cost for 5 nights of stay in these dates would be € 420 (68+68+76+104+104).
Since we want to show a complex example, we decide to apply 2 different Promotions on these nights, one promotion will touch 3 of the 5 nights booked, another promotion will touch 1 night of out of 5 booked, and one night will not be modified:
Booked nights | September 1st | September 2nd | September 3rd | September 4th | September 5th |
Promotion #1 | 10% off | 10% off | 10% off | ---- | ---- |
Promotion #2 | ---- | ---- | ---- | ---- | 50% off |
Given the above scenario, our Promotions can be applied in two different methods (starting from Vik Booking v1.13.5):
- Progressively, on each night of stay taking the room base cost (Promotion parameter "Apply on room final cost" disabled).
- On the Room Final Cost by turning on the apposite parameter from the edit page of your Promotion (Special Price).
This is how the system will apply the two promotions "Progressively", so with the method #1, to obtain the final cost for these particular 5 nights of stay:
Booked nights | September 1st | September 2nd | September 3rd | September 4th | September 5th | Final cost |
15% off | - 12 | - 12 | ---- | ---- | ---- | |
5% off | ---- | ---- | - 4 | ---- | ---- | |
+30% | ---- | ---- | ---- | + 24 | + 24 | |
Promo 10% off | - 8 | - 8 | ---- | ---- | ---- | |
Promo 50% off | ---- | ---- | ---- | ---- | - 40 | |
Calculated cost | 80 - 12 - 8 | 80 - 12 - 8 | 80 - 4 - 8 | 80 + 24 | 80 + 24 - 40 | € 356 |
Instead, this is how the second calculation method would work, if we wanted to apply the two Promotions on the final cost (method #2):
Booked nights | September 1st | September 2nd | September 3rd | September 4th | September 5th | Final cost |
15% off | - 12 | - 12 | ---- | ---- | ---- | |
5% off | ---- | ---- | - 4 | ---- | ---- | |
+30% | ---- | ---- | ---- | + 24 | + 24 | |
Promo 10% off | - 8 | - 8 | ---- | ---- | ---- | |
Promo 50% off | ---- | ---- | ---- | ---- | - 40 | |
Calculated cost | 80 - 12 - 8 | 80 - 12 - 8 | 80 - 4 - 8 | 80 + 24 | 80 + 24 - 40 | € 356 |
Factor #1 Promo 10% off | -12 * 10 / 100 | -12 * 10 / 100 | -4 * 10 / 100 | +24 * 10 / 100 | +24 * 10 / 100 | € 2 |
Factor #2 Promo 50% off | -12 * 50 / 100 | -12 * 50 / 100 | -4 * 50 / 100 | +24 * 50 / 100 | +24 * 50 / 100 | € 10 |
Final room cost with Factors | 356 - 2 - 10 = € 344 |
The Factors are used to apply the promotions on the final room cost. This very complex example had mixed and overlapping dates, multiple promotions affecting just some and different nights, and it shows a full calculation that highlights the difference with the two calculation methods.
Let's take an easier example to see how a promotion applied "progressively" will return a different cost than a promotion applied on the "room final cost".
Example #4-BIS - One promotion on all the 5 nights booked:
We use the same pricing scenario as the one described for the example above.
Booked nights | September 1st | September 2nd | September 3rd | September 4th | September 5th |
Price modifications | € 80 - 15% | € 80 - 15% | € 80 - 5% | € 80 +30% | € 80 +30% |
Price difference | -12 | -12 | -4 | +24 | +24 |
Final cost per night | € 68 | € 68 | € 76 | € 104 | € 104 |
If we sum the cost for each night booked, the total will be € 420. Now let's consider just one Promotion to be applied on all 5 nights booked, that applies 10% off.
- Result with the Promotion applied "Progressively" (parameter "Apply on room final cost" disabled) - method #1:
Booked nights | September 1st | September 2nd | September 3rd | September 4th | September 5th | Final cost |
Price modifications | € 80 - 15% | € 80 - 15% | € 80 - 5% | € 80 +30% | € 80 +30% | |
Price difference | -12 | -12 | -4 | +24 | +24 | |
Promo 10% off difference | -8 | -8 | -8 | -8 | -8 | |
Calculations per night | 80 - 12 - 8 | 80 - 12 - 8 | 80 - 4 - 8 | 80 + 24 - 8 | 80 + 24 - 8 | |
Final cost | 60 | 60 | 68 | 96 | 96 | € 380 |
Instead, if we would like to apply 10% off on the final cost, to obtain a simple result of € 420 - 10% (€ 378), then the system will use the following calculation for the method #2:
Booked nights | September 1st | September 2nd | September 3rd | September 4th | September 5th | Final Cost |
Price modifications | € 80 - 15% | € 80 - 15% | € 80 - 5% | € 80 +30% | € 80 +30% | |
Price difference | -12 | -12 | -4 | +24 | +24 | |
Promo 10% off difference | -8 | -8 | -8 | -8 | -8 | |
Calculated cost | 80 - 12 - 8 | 80 - 12 - 8 | 80 - 4 - 8 | 80 + 24 - 8 | 80 + 24 - 8 | € 380 |
Factor Promo 10% off |
-12 * 10 / 100 | -12 * 10 / 100 | -4 * 10 / 100 | +24 * 10 / 100 | +24 * 10 / 100 | € 2 |
Final room cost with Factors | 380 - 2 = € 378 |
This complex math operation is fundamental to proportionally and progressively apply the pricing modifications of the Special Prices, which can be used to define Promotions or just Seasonal Rates.
In the last table above, it is true that € 420 - 10% = € 378, but that's not the math operation the system performs, it is rather the one displayed within the table row of the "Factor Promo 10% off".
This is how the Special Prices are applied. You can obviously ignore such complex calculations which only served as an explanation of the algorithm. You can just use the simple and intuitive Pricing Calendar from the page Rates Overview and define some Promotions whenever you need them. This is just the calculation that lies behind.
Lastly, with the Value Overrides function you can alter the amount of charge/discount depending on the number of nights of stay. Instead, by defining some dates or week-days as filters you choose which nights should be affected by this calculation.