Pricing Engine

A hotelier wants to charge ₹3,200 on weeknights, ₹4,500 on weekends, ₹7,500 on Diwali week, ₹2,800 if the booking is for 7+ nights, and ₹3,500 if the booking is made <24 hours before check-in. The pricing engine evaluates these rules in a deterministic order so the owner always knows which price will show.

The model — base + modifiers

Every room type has one immutable base rate. Everything else is a stacking modifier evaluated by an explicit precedence order. Higher precedence wins.

PriorityRuleTypeExample
1 (highest)Date-specific overrideAbsoluteDec 30: flat ₹7,500
2Seasonal rangeAbsolute or %Dec 24 – Jan 2: ₹6,500
3Day-of-weekAbsoluteFri & Sat: ₹4,800
4Length-of-stay discount%7+ nights: −10 %
5Early-bird / Last-minute%Book <24 h before: ₹3,500
fallbackBase rate₹3,200

Rate calendar UI

app.abc.com/properties/parkview/rates
Rate calendar · Deluxe King
December 2026
Mon
Tue
Wed
Thu
Fri
Sat
Sun
1
₹3,200
2
₹3,200
3
₹3,200
4
₹3,200
5
₹4,800
6
₹4,800
7
₹3,200
8
₹3,200
9
₹3,200
10
₹3,200
11
₹3,200
12
₹4,800
13
₹4,800
14
₹3,200
15
₹3,200
16
₹3,200
17
₹3,200
18
₹3,200
19
₹4,800
20
₹4,800
21
₹3,200
22
₹3,200
23
₹3,200
24
₹6,500
25
₹6,500
26
₹6,500
27
₹6,500
28
₹6,500
29
₹6,500
30
₹7,500
31
₹7,500
Weekend Holiday season Date override

Bulk rate update · UI

app.abc.com/properties/parkview/rates · modal
Update rates in bulk
Date range
CSV paste
Smart rules
2026-12-04
2026-12-27
M
T
W
T
F
S
S
1
2
3
4
5
6
7
8
9
10
11
12
13
14
25
26
27
28
29
30
Deluxe King × Family Suite × Standard Twin × + add room type…
1.2x = +20 %
8000 per night
Preview

Will affect ~96 date × room cells. New rates clamped between ₹2,500 (min) and ₹8,000 (max).

Rate plan editor

app.abc.com/properties/parkview/rate-plans
Rate plans · Deluxe King
Plans
Standard rate
Master
₹3,200 base · all channels
Non-refundable
−10 %
Derived · ₹2,880
Member-only
−15 %
Derived · login + 1 prior stay
Standard rate
Plan ID · rp_01HX2P3Q… · created 12 Mar 2026
Standard rate
3,200
Moderate · 5-day free cancel
0
Direct × Booking.com × + MakeMyTrip · Agoda · Goibibo
This is the master plan

All derived plans (Non-refundable, Member-only) recompute automatically when you save changes here.

Defining a seasonal range

  1. Click "Add rule" on the rates page

    Choose rule type: Seasonal range.

  2. Pick date range

    Inclusive on both ends. e.g. Dec 24 → Jan 2.

  3. Set the new rate

    Either an absolute price or a percentage on top of base. Validate against min-rate floors.

  4. Optional: minimum length-of-stay

    e.g. "Min 3 nights during this range".

  5. Optional: minimum advance days

    e.g. "Must book 7 days in advance to lock this rate".

  6. Save

    Rule is now visible on calendar. Two rules of equal priority on same date trigger a warning.

Price calculation — worked example

Booking: 27 Dec → 30 Dec (3 nights), Deluxe King

· Night 1 (Sun 27 Dec) → seasonal override ₹6,500
· Night 2 (Mon 28 Dec) → seasonal override ₹6,500
· Night 3 (Tue 29 Dec) → seasonal override ₹6,500
→ Room subtotal = ₹19,500
+ GST @ 12 % = ₹2,340
+ City tax 2 % = ₹390
Total payable = ₹22,230

Tax handling

Room tariff per nightGST rate (India, 2026)
Up to ₹7,50012 %
Above ₹7,50018 %

The engine looks at the per-night rate (post all modifiers) to pick the GST bracket. Owners can override with their CA-issued bracket if their property has special exemptions.

Special rate plans

Non-refundable

Same dates, 10–15 % cheaper, locked at booking. Skips refund policy entirely.

Pay-at-property

No online payment; guest pays at check-in. Owner can require a credit-card guarantee even so.

Member-only

Discount visible only to logged-in public users with at least 1 prior stay.

Promo code

Owner generates a code (e.g. SUMMER25) with discount % + validity dates + max uses.

Channel-specific

Different headline rate on Booking.com vs direct site. Useful for rate-parity strategy.

Group rate

For ≥4 rooms in one booking. Triggers manager approval if discount > 15 %.

Bulk update — paste from spreadsheet

Power users want to paste an Excel column into the rate calendar. The bulk edit modal accepts:

  • Date range + flat rate
  • CSV-style paste: 2026-12-24, 6500 rows
  • "Apply weekend +20 % from now until end of year"

Rate floors & ceilings

Owner can configure a min rate and max rate per room type. Any rule (or any future yield-management automation) that would push outside this range is blocked with an explanation. Prevents accidental ₹100/night listings.

API — quote request

POST /api/quotes
{
  "property_id": "prp_01HX…",
  "room_type_id": "rt_01HX…",
  "check_in": "2026-12-27",
  "check_out": "2026-12-30",
  "guests": { "adults": 2, "children": 1 },
  "promo_code": null
}

// Response
{
  "nights": 3,
  "line_items": [
    { "date": "2026-12-27", "rule": "seasonal:diwali_xmas", "amount": 6500 },
    { "date": "2026-12-28", "rule": "seasonal:diwali_xmas", "amount": 6500 },
    { "date": "2026-12-29", "rule": "seasonal:diwali_xmas", "amount": 6500 }
  ],
  "room_subtotal": 19500,
  "taxes": [
    { "label": "GST @ 12 %", "amount": 2340 },
    { "label": "City tax @ 2 %", "amount": 390 }
  ],
  "total": 22230,
  "currency": "INR",
  "quote_id": "qt_01HX…",
  "expires_at": "2026-05-25T18:30:00Z"
}