# Promotions & discounts

Promotions are how you adjust prices for a campaign — a percentage off, a fixed-amount cut, a stay-N-pay-X deal — without rewriting the underlying rate plan. They run for a defined window, target a defined audience, and stack on top of the canonical rate.

## Two axes — promotion *type* and discount *math*

A promotion is described along two independent axes:

* **Promotion type** — *what kind of campaign this is*. Last-minute, advance-purchase, member-only, day-of-week, multi-night, and so on.
* **Discount math** — *how the price actually changes*. Percentage off, fixed amount off, percentage off a specific night, the Nth night free.

A single promotion combines one of each. *"Last-minute deal: 20% off bookings made within 7 days of check-in"* is type *Last-minute* with math *Percentage*. *"Stay 7, pay 6"* is type *Multi-night* with math *Nth-night-free*.

## The ten promotion types

| Type                     | What it is for                                                                                     | Typical example                                        |
| ------------------------ | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| **Standard**             | A basic discount with no special trigger.                                                          | *15% off everything in May.*                           |
| **Last-minute**          | Activates when the booking is made close to check-in.                                              | *20% off bookings made within 7 days of stay.*         |
| **Advance-purchase**     | Activates when the booking is made far ahead of check-in.                                          | *15% off bookings made 60+ days before stay.*          |
| **Time-bound campaign**  | A named campaign tied to a specific calendar window — Black Friday, summer launch, an anniversary. | *Black Friday: 30% off every property, 24 hours only.* |
| **Market-specific rate** | Surfaces only for travellers from specific markets.                                                | *10% off for travellers booking from Germany.*         |
| **Mobile-only rate**     | Activates only when the booking comes from a mobile surface.                                       | *5% extra off in the mobile app.*                      |
| **New-property opening** | Time-limited promotional rate for a newly listed property.                                         | *25% off the first 90 days a new property is live.*    |
| **Day-of-week pricing**  | Targets specific days of the week.                                                                 | *Sunday-night discount: 20% off Sunday stays.*         |
| **Multi-night**          | Activates on stays of N or more nights, often paired with Nth-night math.                          | *Stay 7 nights, pay 6 (the 7th night free).*           |
| **Members-only**         | Visible only to logged-in members on direct channels.                                              | *Members get 15% off, all rooms, all dates.*           |

You pick the type that matches the campaign's intent. The platform routes the promotion to the right outbound channels based on what each channel supports natively versus what has to be expressed as a discounted base rate (the platform handles that translation automatically).

## The four discount math types

| Math                     | What it means                                                                    | Common pairing                                            |
| ------------------------ | -------------------------------------------------------------------------------- | --------------------------------------------------------- |
| **Percentage**           | A percentage off the base rate (or off a specific night).                        | Standard, Members-only, Last-minute, Time-bound campaign. |
| **Fixed amount**         | A flat currency amount off (per booking or per night).                           | Time-bound campaign, Multi-night.                         |
| **Nth-night percentage** | A percentage off a specific night within a stay (e.g. 50% off the 3rd night).    | Multi-night.                                              |
| **Nth-night free**       | A specific night within the stay is free (e.g. the 7th night of a 7-night stay). | Multi-night.                                              |

Channels do not all support all four math types natively. For channels that do not support, say, *fixed amount* or *Nth-night-free* directly, the platform expresses the discount as a re-priced daily rate so the partner sees a clean number. The traveller-facing result is the same.

## What a promotion defines

When you set up a promotion, you decide:

* **Name** — a short label for operators and reports (*Spring Saver*, *Long-stay 7=6*).
* **Validity window** — start and end dates for when the promotion is active.
* **Stay window** — which check-in / check-out dates qualify.
* **Booking window** — when bookings have to be made to qualify (e.g. *book by April 30*).
* **Audience** — who can claim the promotion (everyone, members only, specific markets, B2B partners, channel-specific).
* **Properties / rooms / rate plans** — what the promotion applies to.
* **Adjustment** — the actual price or upgrade change.
* **Stacking rules** — can it combine with other promotions? In what order?

The platform validates every field before activation; missing or contradictory rules block the promotion until you fix them.

## Audience targeting

Promotions almost always target somebody specific:

* **Public** — surfaces to everyone, on every channel where the rate plan is exposed.
* **Members only** — visible only to logged-in members on direct channels.
* **Market-specific** — only travellers from a specific country/region see it.
* **Channel-specific** — runs on one channel and not on others.
* **B2B partner-specific** — for a contracted distributor, not retail.

Audience rules read from the same per-channel exposure overlay used elsewhere. A promotion that targets only one channel never accidentally appears on another.

## Stacking — what combines and what does not

When several promotions apply at once, the stacking rule decides the result:

* **Discount + upgrade** typically stack — *15% off* and *Free upgrade* coexist on the same booking.
* **Two percentage discounts** typically do not stack — the larger wins, the smaller is suppressed for that booking.
* **Promotion + member rate** depend on policy — sometimes member rates are themselves promotional and exclude additional stacking; sometimes they layer.

You set the stacking rule per promotion. The engine evaluates them at booking time deterministically — same inputs, same outputs.

## Layered on top of restrictions

A promotion does not bypass restrictions:

* **Stop-sale stays in force** — a promoted rate is still unavailable on a closed date.
* **Minimum stay applies** — a promotion that targets 5+ nights does not weaken a 7-night minimum stay rule.
* **Per-channel exposure applies** — a promotion's exposure is the intersection of the rate plan's exposure and the promotion's audience.

This keeps you safe from an over-aggressive promotion accidentally selling a closed date or violating a minimum-stay contract.

## How a promotion looks in the rate calendar

When a promotion is active for a cell, the calendar shows it explicitly:

* The base rate is on the cell (what the rate plan says).
* A small badge indicates *N% off, Spring Saver active*.
* The derived rate (after the promotion) shows in a secondary line.
* Hovering / clicking shows which promotions applied and in what order.

This is how you spot configuration mistakes before they hit production — if a promotion is applying to the wrong cells, the calendar tells you.

## Discounts vs. promotions

The platform uses both terms; they overlap in practice:

* A **promotion** is a campaign — a named, time-bound, audience-targeted price adjustment.
* A **discount** is the adjustment itself — the *15% off*, the *EUR 30 off*, the *N=X*.

A promotion typically defines a discount (or several). The vocabulary in the console mirrors how operators talk about it.

## Per-channel promotion exposure

Like everything else in pricing, promotions can be selectively exposed:

* **Run only on direct channels** — keep an exclusive offer for travellers booking through your own funnels.
* **Run only on a specific outbound channel** — surface a metasearch-only promotion to compete on price visibility.
* **Run only for one supplier source** — pass through a partner's promotional pricing.
* **Hide from B2B** — run a retail promotion without it leaking to wholesale partners.

The overlay is the same one you use for rate plans and inventory.

## Adragent and promotions

Common phrases that map to Adragent promotion operations:

* *"Create a 15% weekend discount for May on the Best Available Rate for all the Antalya properties."*
* *"Find every promotion that ends in the next 7 days."*
* *"Pause the Spring Saver promotion on all metasearch channels."*
* *"Show me the bookings that benefited from the long-stay 7=6 promotion this quarter."*

Write operations preview before applying. Reads return immediately.

## Where to next

* **The rate plans promotions adjust on top of** → [Rate plans](/console/pricing-and-availability/rate-plans.md)
* **The restrictions promotions cannot bypass** → [Stop-sale & restrictions](/console/pricing-and-availability/stop-sale-restrictions.md)
* **The engine that combines all of this into a final rate** → [Pricing engine](/console/pricing-and-availability/pricing-engine.md)
* **Per-cell change history** → [Cell history](/console/pricing-and-availability/cell-history.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://adrasis.gitbook.io/console/pricing-and-availability/promotions-and-discounts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
