# Meal plans

A **meal plan** says what is included with a stay — room only, breakfast, half-board, full-board, all-inclusive. From the catalog side, it is one of the things that decides how a rate plan is described to a traveller and what the engine prices against.

## The canonical meal plans

The board basis values most properties operate against:

| Canonical value         | Typical inclusion                                        |
| ----------------------- | -------------------------------------------------------- |
| **Room only**           | Stay only; no food.                                      |
| **Bed & breakfast**     | Breakfast included.                                      |
| **Half-board**          | Breakfast plus one other meal (typically dinner).        |
| **Full-board**          | Breakfast, lunch, and dinner.                            |
| **All-inclusive**       | Meals, most drinks, often activities.                    |
| **Ultra all-inclusive** | All-inclusive plus premium options (varies by property). |

You can extend this set for your organization — *Self-catering* for vacation rentals, *Continental breakfast* as a sub-distinction, *Drinks-only* for niche cases. Whatever set you maintain, every rate plan attaches to one canonical value.

## Why meal plans matter

Three reasons meal plans are first-class catalog citizens:

* **Pricing depends on them.** A *Bed & breakfast* rate is priced differently from a *Half-board* one for the same room on the same date. The pricing engine reads the canonical value to apply the right adjustment.
* **Filtering depends on them.** Travellers searching for *all-inclusive in Antalya* expect to see only properties whose rate plans actually offer all-inclusive.
* **Mapping depends on them.** Partners encode meal plans wildly differently (BB / BNB / Frühstück inkl. / DEMI\_PENSION / HER ŞEY DAHİL). The mapping system normalizes every code into your canonical taxonomy. Concretely: a *Half-board* upgrade you sell as *HB* on your direct site might land as *DP* on a French-speaking metasearch feed and as *HALF\_BOARD* on a B2B aggregator — you maintain one canonical *Half-board* value, the mapping handles the rest. See [Meal plan mapping](/console/mapping-and-curation/meal-plan-mapping.md).

## What you set on a property

For each property, the catalog records which meal plans the property actually offers — out of your canonical taxonomy. A typical property might offer *Room only*, *Bed & breakfast*, *Half-board*, and *All-inclusive*; a smaller property might offer just *Room only* and *Bed & breakfast*. You choose from the canonical set; the property does not have to support every value you have.

Each rate plan you create for the property then attaches to one canonical meal plan — that is what tells a traveller (and a partner channel) what the rate includes.

## Meal-plan eligibility per room

Some rooms are eligible for some meal plans and not others:

* A vacation-rental room with a kitchen might be *Room only* / *Self-catering* only.
* A standard hotel room might support all of *Room only*, *Bed & breakfast*, *Half-board*, *All-inclusive*.
* A premium suite might be sold only with *Full-board* or higher.

You set this on the room, not on the property — different rooms in the same property can have different meal-plan sets.

## Meal-plan upgrades and add-ons

Beyond the canonical board basis, a rate plan can carry meal-plan upgrades:

* **Free upgrade** — *Bed & breakfast → Half-board* as a promotion (e.g. for stays of 4+ nights in shoulder season).
* **Paid add-on** — *Add half-board for EUR 25 per person per night.*
* **Bundle** — *All-inclusive included for stays of 5+ nights.*

These are layered through promotions and contract terms, not through new canonical meal plans. See [Promotions & discounts](/console/pricing-and-availability/promotions-and-discounts.md).

## Multilingual labels

Meal plans carry their own multilingual labels — *Bed & breakfast* in English, *Oda kahvaltı* in Turkish, *Halbpension* in German for partners that ask for it. The label a traveller sees on a partner channel is your canonical label in their language.

## Per-channel exposure

A meal plan does not have to surface on every outbound channel:

* *Ultra all-inclusive* might surface on direct sales but not on a public metasearch feed.
* *Self-catering* might apply only to vacation-rental properties and stay irrelevant on hotel-focused B2B feeds.
* A staff-rate meal plan can stay direct-only.

The mechanism is the same per-channel exposure overlay used for rate plans, attributes and content.

## Adragent and meal plans

Common phrases that map to Adragent meal-plan operations:

* *"Add Half-board to the Deluxe Sea View room on Hotel Sunrise for the summer."*
* *"Find every property in Antalya offering All-inclusive but not Ultra all-inclusive."*
* *"Show me rate plans where the meal plan setting disagrees with what the partner sent."*
* *"Apply the Free meal-plan upgrade promotion to the Europe Member Saver rate plans for May."*

Read operations return immediately; writes preview before applying.

## Where to next

* **Reconciling partner meal-plan codes** → [Meal plan mapping](/console/mapping-and-curation/meal-plan-mapping.md)
* **The rate plans meal plans attach to** → [Rate plans](/console/pricing-and-availability/rate-plans.md)
* **The pricing engine that consumes the meal-plan adjustment** → [Pricing engine](/console/pricing-and-availability/pricing-engine.md)
* **Promotions that layer meal-plan upgrades on top** → [Promotions & discounts](/console/pricing-and-availability/promotions-and-discounts.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/catalog/meal-plans.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.
