Under Regulation (EC) No 261/2004 (EU261), airlines legally owe passengers up to €600 for long delays, cancellations, and denied boarding. Yet billions go unpaid every year.
Why? Because airlines exploit friction by claiming "extraordinary circumstances," "bad weather," "air traffic control restrictions," or "operational reasons." They bet 95% of passengers won't pull historical meteorological archives, calculate geodesic flight distances, cross-reference European Court of Justice precedents, or draft a legally precise demand letter.
AirFacto automates the audit. It is a zero-hallucination legal reasoning engine that establishes objective reality, tests the airline's excuse against EU law, and generates a legally airtight compensation demand.
AirFacto does not trust the LLM to invent facts. We separate deterministic data, which represents truth, from Mistral reasoning, which handles legal interpretation. The result is explainable, auditable AI.
Users simply enter their flight details and optionally upload any notes, rejection emails, or screenshots. We
use mistral-ocr-latest for high-precision markdown extraction and a structured parsing pass,
using mistral-small-latest, to isolate the airline's
stated defense.
Output is strictly structured:
{
"flight_number": "IB1145",
"date": "2026-01-21",
"airline_name": "Iberia Líneas Aéreas de España",
"stated_excuse": "Extraordinary weather conditions at departure airport"
}No guessing. No hallucination.
LLM inference is paused. The backend performs concurrent verification:
Was there severe weather on the flight date at the departure or arrival city? What is the exact great-circle distance between the airports? Was there a verified aviation event or strike in the news? What compensation tier applies based on the distance?
The system then builds a fact packet:
{
"distance": 513,
"compensationTier": 250,
"weatherCheck": "Verified Weather. Condition: Clear sky.",
"newsCheck": "No specific news found. Assume standard operating conditions.",
"flightStatus": "Landed"
}This becomes immutable ground truth.
We inject the verified facts, the extracted airline excuse, the full Regulation (EC) No 261/2004 (EU261), and relevant
ECJ jurisprudence summaries into a custom Mistral Agent, that uses mistral-medium-latest.
The agent is heavily constrained. It cannot fabricate facts, it must cite regulation clauses, and it must explicitly compare the claim against the verified data.
It answers:
Does the airline's stated excuse legally qualify as extraordinary circumstances under EU261, given the verified facts?
If the excuse fails legal scrutiny, AirFacto generates a strictly typed JSON payload containing eligibility status, statutory tier calculation, regulation citation, structured legal verdict, and a formally drafted demand letter.
Example output:
"The meteorological records for [Airport] at 14:00 confirm clear weather conditions. Therefore, the airline's reliance on extraordinary circumstances is unfounded under Article 5(3) of EU Regulation 261/2004."
AirFacto does not threaten. It does not exaggerate. It cites law precisely. It turns inconvenience into enforceable leverage.
AirFacto orchestrates a precision tech stack. We use Mistral AI (mistral-ocr-latest, mistral-small-latest, and
Custom Mistral Agents) for reasoning and extraction. For deterministic data, we rely on Open-Meteo for historical
weather data, FlightAPI for aviation routing and airport metadata, and Tavily for agentic search of verified aviation
events. The frontend architecture is built with Next.js. All services are used within their respective terms of service.
AirFacto does not fabricate evidence and does not automate harassment. It encourages lawful enforcement of statutory rights and operates strictly within existing regulatory frameworks. We do not create claims. We validate them.
Built for the Mistral AI Worldwide Hackathon 2026.
