System 02 / 08 · Case study

Horveraflight compensation infrastructure

In production · payments live

Horvera tells a passenger whether a delayed, cancelled or overbooked flight entitles them to compensation under EU261, UK261 or the Swiss rules — in sixty seconds, with no account or card — then helps them claim and escalate while keeping 100% of the amount. Every answer comes from a versioned rules engine that shows its reasoning and its sources.

01 / 06

Problem

Context

Regulation (EC) 261/2004 grants fixed compensation — €250, €400 or €600 depending on distance — when a delay, cancellation or denied boarding meets precise conditions. The United Kingdom retained the text with its own amounts in pounds; Switzerland applies it through the air transport agreement with the EU, with its own case-law nuances.

The market is occupied by claims companies that take 30 to 44% of the compensation. Horvera offers the other model: a free, complete result, and a fixed-price Claim Pack for those who want the case organised.

Problem

The passenger does not know air passenger law and should not have to. They know which flight, which day, what happened. The product must turn those facts into a verifiable answer: which right applies, which rule it comes from, why — and stay honest about the fact that the airline or the enforcement body decides in the end.

The difficulty is that three distinct rights coexist — fixed compensation, ticket refund, care and expenses — and confusing them produces wrong claims.

02 / 06

Constraints

  • Three regimes — EU261, UK261, Switzerland — that share a text and diverge on amounts, currencies and the reading of delay, carried without duplicating the shared rules.
  • An indicative result: the airline or the enforcement body decides, so the product can promise no outcome.
  • Three distinct rights — compensation, refund, care — that must never be merged: mixing them produces wrong claims.
  • Programmatic pages generated from the engine’s reference data, so a page never promises what the engine would refuse.

What is difficult

Three jurisdictions that share a text and diverge on amounts, currencies and the reading of delay — Switzerland in particular, where delay compensation depends on how courts read the rules. The engine has to carry those divergences without duplicating the shared rules.

Keeping the trace readable. A full trace is unreadable for a passenger; a summarised trace is unverifiable. The answer is the double presentation: the decisive steps first, the full trace behind.

03 / 06

System

The product as a system

  1. Flight
  2. Eligibility
  3. Claim
  4. Airline
  5. Escalation

Important product decisions

  • Fixed price against percentage. Horvera organises the claim; the passenger submits it and keeps everything. Claims companies’ fee models are compared in the open, from their own price pages.
  • The result is indicative and says so: it reports what the rules say about the facts given. No outcome is guaranteed — that would be false.
  • The date the rules were last reviewed is displayed. A legal engine that does not say when it was checked is not verifiable.
  • Five languages from the first version: English, French, German, Spanish, Italian — the audience of a European flight.

Data model and rules engine

The engine is deterministic and versioned. It applies the Regulation, the 2016 interpretative guidelines and the case law of the Court of Justice to the exact route: distance bands, delay thresholds, cancellation notice windows, re-routing margins, denied boarding, extraordinary circumstances, UK and Swiss scope, and the halving rules for long-haul flights.

Every rule has an id and a source. The output is not a boolean but a trace: the decisive steps, then every rule evaluated. The engine is checked against more than a hundred legal scenarios.

Geography is reference data: over three thousand airports, of which a few hundred are within the scope of the three regimes. A flight’s scope is derived from the airports’ position and the airline’s licence, not from a list of countries.

Screens

Horvera flight check — enter the flight and what happened to get an eligibility answer
The 60-second check: the flight, what happened, and a verifiable answer with its sources.
Horvera homepage — a globe of airports in scope and the headline “Your flight was disrupted. Your rights shouldn’t be.”
Thousands of airports mapped; the ones in scope of EU261, UK261 and the Swiss rules highlighted.

04 / 06

Architecture

From input to fulfillment — every stage, its layer, what happens there.

  1. Sixty-second checkClient

    Date, airports, the airline that operated the flight, connection, what happened — no account, no card.

  2. Reference dataData

    Over three thousand airports, a few hundred within the scope of the three regimes; airline licences.

  3. Legal scopeDomain

    EU261, UK261 or the Swiss rules — derived from the airports’ position and the airline’s licence, not from a list of countries.

  4. Versioned rules engineDomain

    Distance bands, delay thresholds, cancellation notice windows, re-routing, denied boarding, extraordinary circumstances, long-haul halving.

  5. Trace and sourcesDomain

    Three separate rights — compensation, refund, care — every rule with an id and a source; the decisive steps first, the full trace behind.

  6. Free claim letterClient

    Written from the facts, with the airline’s official channel, the enforcement body and the dispute scheme for the route.

  7. Claim Pack — StripeIntegrations

    Fixed price (€19.90) once the claim is sent; the passenger keeps 100% of the compensation.

  8. Tracking and escalationOperations

    Saved case, submission-ready PDF, sent date, opt-in reminders, analysis of the airline’s reply, escalation route per country.

Product architecture

The journey starts with the check: flight date, flight number (optional), departure and arrival airports, the airline that operated the flight — which may differ from the one booked with — and whether there was a connection. The engine determines the scope (EU261, UK261, Switzerland) from the route and the airline’s licence.

The result explicitly separates the three rights, gives the amount, the rule and the sources, and opens with “Why am I seeing this?” — the decisive steps, then the full trace with rule ids.

Two paths follow. The free path is complete: eligibility, amount, a claim letter written from the facts, the airline’s official channel, the enforcement body and dispute scheme for the route. The Claim Pack (€19.90) starts once the claim is sent: saved case, submission-ready PDF, sent-date tracking, follow-up letter, opt-in email reminders, analysis of the airline’s reply, escalation readiness per country.

Domain model

Flight
Route, date, operating airline, connection — the facts the passenger knows.
Airport / Airline
Reference data shared by the engine and the programmatic pages.
Rule
Id, source, version; evaluated into a trace, never reduced to a boolean.
Right
Fixed compensation, ticket refund, care and expenses — three distinct objects.
Claim
Letter, sent date, airline reply, escalation step.

05 / 06

Business result

A free, complete eligibility check, a claim letter and a €19.90 fixed-price Claim Pack in five languages — the alternative to claims companies taking 30 to 44% of the compensation.

Current status

In production, payments live. Free check; Claim Pack at €19.90; interface in English, French, German, Spanish and Italian; the date the rules were last reviewed is shown on the product.

Business and operating model

The result and the letter are free and complete; the fixed-price Claim Pack starts once the claim is sent. Horvera organises the claim, the passenger submits it and keeps everything — the inverse of claims companies taking 30 to 44% of the amount, whose fee models are compared in the open. The result is indicative and says so: the airline or the enforcement body decides in the end.

What shipped

  • Deterministic rules engine: distance bands, delay thresholds, cancellation notice windows, re-routing margins, denied boarding, extraordinary circumstances, UK and Swiss scope — versioned, traced, checked against 100+ legal scenarios
  • Claim Pack: saved case, submission-ready PDF, sent date, opt-in follow-up reminders, analysis of the airline’s reply, escalation route per country
  • Programmatic search architecture: airline × airport × route × disruption type × jurisdiction pages, plus guides and a free claim-letter generator
  • A fixed-price product against a percentage-fee market, with the fee models compared in the open

Acquisition architecture

Horvera is built for search: programmatic pages per airline, airport, route, disruption type and jurisdiction, guides on rights, and a free claim-letter generator. Every page leads to the same checker, which is the product.

The architectural constraint is that these pages must be generated from the same reference data as the engine — airports, airlines, scope — so a page never promises what the engine would refuse.

06 / 06

Lessons

  1. 01Derive scope from data, not from lists: a flight’s regime comes from the airports’ position and the airline’s licence.
  2. 02Present the trace twice: the decisive steps first, the full trace behind — readable and verifiable at once.
  3. 03Date the rules review: a legal engine that does not say when it was checked is not verifiable.
  4. 04A suite of more than a hundred legal scenarios is what makes changing a rule safe.

What I owned

  • Legal research — the Regulation, the guidelines, the case law, UK and Swiss scope
  • Deterministic rules engine and its scenario suite
  • Product and journey — free result, paid Claim Pack
  • Reference data model — airports, airlines, scope
  • Stripe payments, tracking and escalation workflow
  • Programmatic search architecture in five languages

Capabilities proven here

The matching service

Related reading

Notes de terrain issues de ce système

Next system

Wabiro

Does your product start from an eligibility decision and end with a transaction?

If the journey starts with “am I entitled to something?” and ends with a case file, a claim or a payment, this is the kind of system I build: a deterministic engine that shows its trace and its sources, then a paid product that follows from it.

danilson.daveigaramos.pro@gmail.com · Reply within 24h, Mon–Fri.