Plexe/Room resolution
Send all the room names your suppliers give for a hotel. mlr-1 puts offers that describe the same room on one card and groups those cards into room types, so the same room is far less likely to show up twice.
Pick a hotel and paste supplier room names, one per line, or whole rates as JSON with beds, views, amenities and descriptions. Each run goes through mlr-1 live, the same as an API call.
The hotel's room types appear here, each with its rooms and the supplier names on them.
Room mapping has meant an integration per supplier and a rule engine to turn its room names into rooms, rebuilt by every company that needs it. mlr-1 learned how hotels name rooms and how suppliers garble those names instead, trained on a written definition with right merges rewarded and wrong ones penalised. It reads a supplier it has never seen the same way it reads one it has, so a new OTA, TMC or travel company gets clean room types without mapping a single supplier.
Two models trained on one written definition of a room. Rate terms never split a room; anything that makes a different stay does.
It reads each name as suppliers write it, codes and other languages included, with any beds, views, features and descriptions they send.
Offers share a card when they are the same room. A different tier, class, bed set-up, occupancy, view, feature or bedroom count keeps them apart.
The King, Twin and Family versions of a room come together under one room type, so you can show the hotel's own room list.
A card takes the hotel's official room name only when its offers agree with it; otherwise it is named from the offers.
1,000 hotels worldwide, never used to train or tune the model, each with the room names from at least two suppliers.
| Level | System | F1 | Cards per 100 names |
|---|---|---|---|
| Same room | Leading provider | 84.1 | 54.8 |
| mlr-1 | 93.0+8.9 | 58.5 (true: 58) | |
| Room type | Leading provider | 61.1 | 54.8 |
| mlr-1 | 91.9+30.8 | 28.9 (true: 26) |
B³ F1 over every supplier name. Right merges is purity (offers on one card that really are one room); rooms found is completeness (offers of one room that share a card). Labels follow our published room definition, made by two independent LLM referees with an adjudicator; a second labeller gives the same ranking. A second blind set of 1,000 hotels with supplier fields, and 600 hotels of live customer traffic, show the same picture. On a customer's own review sheet, mlr-1 passes all 17 complaints about offers shown as the wrong room.
curl https://sandbox.plexe.ai/v1/room-mappings \ -H "Authorization: Bearer $PLEXE_KEY" \ -H "Content-Type: application/json" \ -d '{ "hotelId": "39614731", "include": ["hierarchy"], "roomRates": [ {"index": 0, "roomName": "Bay View Room, 1 King Bed"}, {"index": 1, "roomName": "BAY VIEW ROOM KING - RO"}, {"index": 2, "roomName": "TWN BAY VW RM NRF"}, {"index": 3, "roomName": "Luxury Suite Sea View"} ] }'
// offers grouped by room "rooms": [ { "name": "Room, 1 King Bed, Bay View", "rates": [0, 1] }, { "name": "Room, 2 Twin Beds, Bay View", "rates": [2] }, { "name": "Luxury Suite, Sea View", "rates": [3] } ] // rooms grouped into the hotel's room types "roomHierarchy": { "classes": [ { "name": "Bay View Room", "roomIds": ["rm_…king", "rm_…twin"] }, { "name": "Luxury Suite Sea View", "roomIds": ["rm_…suite"] } ] }
Illustrative shape; the full response also carries every rate, merged supplier content and stable room IDs. Read the reference.
The docs and this page are open to everyone. Calling the API needs a key; sign in with yours, or ask your Plexe contact for one.