# Canonical mapping

Canonical mapping is the way Adrasis keeps **your** view of a property intact: your room types, your rate plans, your meal plans, your amenity taxonomy, your descriptions, your images. Mapping lines up every external source — channel managers, bedbanks, content feeds — with that view.

## The model in one sentence

<figure><img src="/files/jGNwO77sIxZ0kvXO8rzW" alt="Multiple sources feed one curated property record"><figcaption><p>Every source feeds into one curated property record. Each value knows which source provided it; you decide which one wins when sources disagree.</p></figcaption></figure>

Every source feeds into one curated property record. Each value in the record knows which source provided it. When sources disagree, you decide which one wins; the platform records the decision.

## What lives in the shared record

For each property the shared record holds the things that matter to you and to every channel you push to:

| Layer          | Examples                                                                   |
| -------------- | -------------------------------------------------------------------------- |
| **Identity**   | Property name, address, location, contact info, classification             |
| **Rooms**      | Room types, capacities, layouts, max occupancy, room-level amenities       |
| **Rates**      | Rate plans, base rates, currency, derivation rules                         |
| **Meal plans** | What is included with each rate plan (room only, breakfast, half-board, …) |
| **Attributes** | Hotel-level amenities, features, category labels, certifications           |
| **Content**    | Multilingual descriptions, images with captions and ordering, policies     |

Each of these can come from one source or many; mapping is what reconciles them.

## Provenance — every value carries its source

**Provenance** is the source tag stamped on every value in the property record. When the record is built from multiple sources, each value remembers where it came from. On a property's mapping page you read it like this:

* This property's **name** is your override.
* The **address** came from your channel manager source.
* The **room descriptions** came from your bedbank source.
* The **amenity list** is a merge of two sources, with three of your own additions.

This is what you reach for when something looks off. A traveller flags that the *Deluxe Sea View* on the public site is described as "garden-facing"; you open the field, see the description came from source A, and either override it locally or push the correction upstream so source A re-syncs cleanly. Same flow for a wrong room mapping: provenance tells you which source created the binding, so you re-map at the right place instead of guessing.

## How mapping turns one source's vocabulary into yours

A source uses its own codes for everything. To put its data into your catalog, you tell the platform once, per code:

* **This source's room "DBL-DLX-SV" is your "Deluxe Sea View" room type.**
* **This source's amenity code "WIFI-FREE" is your "Free WiFi".**
* **This source's meal plan "BB" is your "Bed & breakfast".**
* **This source's rate code "BAR-FLEX" is your "Best available rate, refundable".**

Once mapped, every update from that source — fresh rates, new inventory, content updates — lands on the right row automatically. Bookings going out to that source get translated back the other way.

## Curation is a conversation, not a one-shot

The first pass of mapping when you onboard a new source is the heaviest. After that:

* **The catalog evolves.** New rooms, new amenities, new meal plan variations turn up; you map them as they arrive.
* **Sources change their codes.** A partner re-codes their amenity vocabulary; the platform flags the changes; you re-map the new ones.
* **You override more over time.** As you build your own brand voice, you replace more supplier-provided content with your own.

The curation surface stays alive — the property's mapping page is always one click away from any place you see the property listed.

## When sources disagree

Two sources give the same property a different room name, a different image set, a different amenity list. Simple cases can be resolved from your source preference; unclear cases go to curation.

Concrete examples:

* *Source A* says the hotel has a swimming pool; *source B* does not list one. The property record keeps "swimming pool" with provenance from A; B is recorded as silent rather than contradicting.
* *Source A* says the room sleeps 2; *source B* says 3. The conflict surfaces on your curation queue; you decide.
* *Source A* gives a description in English only; *source B* gives the same description in five languages. The property record carries the union — five languages, with A's English noted as a redundant copy.

Decisions persist; you do not re-decide every time the source updates.

## Where to next

* **Reconciling room types in detail** → [Room mapping](/console/mapping-and-curation/room-mapping.md)
* **Reconciling amenity, category and feature codes** → [Attribute mapping](/console/mapping-and-curation/attribute-mapping.md)
* **Reconciling meal-plan codes** → [Meal plan mapping](/console/mapping-and-curation/meal-plan-mapping.md)
* **What happens when a partner sends a message at runtime** → [Connector bindings](/console/mapping-and-curation/connector-bindings.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/mapping-and-curation/canonical-mapping.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.
