Travel · European online travel agency · Proof of concept

Hotel records a traveller's own words can search, with evidence for each value.

A European online travel agency's hotel data could not answer a traveller who searches the way they talk: "adults-only with a swim-up bar", "walkable to the old town, quiet at night". A flat list of supplier amenities cannot match questions like that. Plexe built an enrichment pipeline that reads the supplier payload, room inventory, photographs, map data and climate records, and gives every attribute an answer of true, false or unknown with its evidence attached. The work is a proof of concept, and no customer outcome has been measured yet.

55
Fields in the registry
44k
Stored answers in the shared cache
717
Hotels in the coverage sample
41,040
Properties in the estate feed

How it fits together

  1. Sources
    supplier feed, photos, map, climate
  2. Enrich pipeline
    field registry, derivers
  3. Hotel record
    true, false or unknown, with evidence
  4. Reader
    search and source documents

The challenge

  • Travellers describe hotels in words a flat amenity list cannot match
  • A filter with no field for a question silently answers no
  • Facts about a hotel are spread across feeds, photos and map data
  • Nobody could see where a given attribute value came from

What we built

  • A field registry of attributes, each derived from named sources
  • A true, false or unknown answer for every attribute, with evidence and confidence
  • Vision tagging of hotel photographs with machine-checked justifications
  • A password-protected reader to search records and inspect the source behind each value

What it is for

The goal was hotel records detailed enough that a traveller's own phrasing can match them. A request like "walkable to the old town, quiet at night" depends on facts that sit in different places: some in the supplier's payload, some in the room-by-room inventory, some only visible in photographs, and some only in map data around the hotel. A flat amenity list drops most of that, and a filter with no field for the question answers no when the honest answer is that nobody knows.

How it works

The pipeline draws on six sources. The supplier payload gives 19 attributes and the room inventory 8 more. Photographs are tagged against a fixed vocabulary of 21 tags, OpenStreetMap supplies 10 signals such as walkable dining and nightlife density, a licensed location index places each hotel in its real area, and climate records give the weather in the month someone is travelling. Review text is planned but deliberately not built yet.

Every value carries the evidence it came from, the source that produced it and a confidence. Where two independent sources answer the same question, both are kept: one beach measured 807 m and 754 m from two different lineages, and the record shows both rather than picking a winner. A reviewer can ask the pipeline why any single value is what it is, and get the derivation back.

Unknown is a real answer

The one design rule is that unknown is never turned into a silent false. On the sample hotels, a facility code proves a pool bar exists but cannot say whether it is a swim-up bar, and none of the 142 photographs shows one, so the attribute stays unknown. That is the correct answer, and the traveller can tell it apart from a confirmed no.

The pipeline is held to that rule by checks that run offline: five structural gates, golden records and CI. Runs replay from a cache by default, so a three-hotel run makes no calls, costs nothing and finishes in about a second and a half. Live calls are an explicit opt-in.

Where it stands

This is a proof of concept. The original demo covered three hotels and 36 attributes and was frozen in September 2026; the newer reader, with every record, the search and the supplier document behind each value, is password-protected. The estate feed of 41,040 properties is processed a slice at a time. The enrichment module, its field registry and its evidence model are built to be extended attribute by attribute, and no traveller-facing result has been measured yet.

Under the hood

Stack

  • Python
  • Postgres
  • Anthropic vision
  • OpenStreetMap
  • ERA5 climate data
  • AWS CloudFront

More in Travel