ROEN
Case study: Travel Trends — dozens of sources, one judgment

Case study

Case study: Travel Trends — dozens of sources, one judgment

By Marian Matinca · · 7 min read

The last technical case study in the series about the four applications built for the OpenAI ecosystem — and the one written with the most deliberate restraint. Când Reciclăm is open source and its study goes deep into the architecture; Travel Trends is built as a professional platform, so here we talk about what it does and which decisions make it trustworthy — not how it's built inside. It remains, however, the most ambitious orchestration exercise in the series: dozens of permanently changing sources, melted into a single judgment.

At a glance

The problem

Before a trip in Europe, the information that matters exists — but it's scattered across dozens of places: strikes in local press, rail delays on operator websites, weather warnings at national services, geopolitical context in official alerts, public health in European reports. Nobody tracks them in one place. The traveler (or the agency managing hundreds of travelers) usually finds out late — or not at all.

Why existing solutions weren't enough

Airline alerts cover only the flight — we started from the complementary principle: the rest of the trip. News aggregators can't tell signal from noise and don't answer the concrete question: "does this affect me, on my route, in my dates?". And an AI model asked directly about next week's conditions will answer from its training data — that is, from the past. For travel decisions, stale information isn't just useless: it's dangerous.

Objectives

  1. One question, one judgment: "how is my trip?" — not 11 data feeds to scan manually.
  2. Watch, not just answer: a trip is something you follow; what changed since yesterday matters more than what was true a week ago.
  3. Verifiable honesty: "nothing happened" must be information too — not an ambiguous silence.
  4. The same data for humans and agents: a website for exploring, MCP for any AI assistant.

The architecture

Travel Trends architecture: the user asks in ChatGPT, the MCP server assesses the trip on the disruption radar — 54 implemented sources across 11 domains, monitored automatically
Travel Trends architecture: the user asks in ChatGPT, the MCP server assesses the trip on the disruption radar — 54 implemented sources across 11 domains, monitored automatically

At the level we can talk about it, the architecture has three conceptual layers:

Why MCP and not a classic chatbot?

The series' answer still holds — the application goes where users already are — but Travel Trends adds the critical dimension of recency: here there is no correct answer from memory. A model without tools will describe Europe from its training data; with Travel Trends' tools, it answers from the radar of right now. And the difference between "I think it's fine" and "I checked 11 risk domains a few hours ago and it's fine" is exactly the difference a professional pays for.

The complete flow

User
    │  "Next week I fly to Amsterdam, then take the train to Cologne. Anything I should know?"
    ▼
ChatGPT
    │  understands the route, dates and context
    ▼
MCP server — 8 public tools
    │  assess_trip → assessment for the route and period
    ▼
The disruption radar
    │  54 implemented sources · 11 domains · EU-27+
    ▲
    │  continuous automatic monitoring
Public European sources
    (aviation · rail · road · weather · health · geopolitical …)
"How is my trip?" assessing an Amsterdam→Cologne trip in ChatGPT: outlook, dates, and honestly declared confidence — captured during Developer Mode testing, while the app is in review

And after the assessment, the conversation doesn't end: watch_trip puts the trip under watch, whats_changed answers "did anything change since yesterday?", and explain_silence — my favorite tool in the entire series — answers "why haven't I heard anything?": I checked, there is nothing to report is fundamentally different information from I didn't check.

Explainable silence in practice:
Explainable silence in practice: "why haven't I heard anything?" — the last check with an exact timestamp, the confidence level and the honest list of areas without live coverage — captured during Developer Mode testing

The challenges

The key decisions

  1. Synthesis is the product, not aggregation — the value isn't that the data exists in one place, but that it becomes a single judgment on your route.
  2. The source catalog is public — including what is NOT yet implemented. Honesty about coverage before marketing promises.
  3. Monitoring as state, not as a request — a watched trip stays watched; the conversation can return to it anytime.
  4. Explainable silence — "nothing to report" is a first-class answer, with proof of the check.
  5. Complementary, not duplicative — we don't re-deliver the airline's notifications; we cover the rest of the trip.
  6. The same data for every surface — the website and the AI agents read the same radar.

The result

Travel Trends is live at travel-trends.mmatinca.eu: the disruption radar across 11 domains, tourism data for all 27 EU countries and the public MCP server with 8 tools — with the website available in English, Romanian and Polish. Built since March 2026 — the oldest application in the series after RoTV — it was submitted to the OpenAI review on July 17, where it currently is, under the name "How is my trip?". It is also the application where the series shows its deliberate limit: where the product has commercial ambitions, the case study stops at capabilities — and the rest remains competitive advantage.

What would I improve in the next version?

---

With this study, the series covers all four applications: Când Reciclăm, RoTV Guide, Digital Compass and Travel Trends. Next comes the synthesis piece: what I learned building four applications for an AI ecosystem. The context for the whole story: AI adoption is a delivery discipline.