An Indian passport on its own needs a visa for Turkey. The same passport carried by someone with a valid UAE residence permit can qualify for an e-Visa instead. Nothing about the traveller changed; the document in the other pocket did.
That pattern repeats across the world, and it is not an edge case. Concessions like it are written for exactly the people this product is built for — expatriates planning a trip from somewhere that is not the country on their passport. Which made it uncomfortable to discover that for a long stretch our entry rules could not see them at all.
The gap we had shipped
The account page had been collecting residence permits and long-stay visas since it launched. Our privacy policy said they were used to determine entry status. And no code read them. Every answer the product gave was passport-only, and the plan route quietly filtered a traveller's documents down to the passport before anything looked at them.
So a traveller could tell us about the permit that made their trip visa-free, watch us store it, read a policy saying we used it, and still be told to apply for a visa they did not need. The data was there. The question was never asked of it.
A promise in a privacy policy is a claim about behaviour. If no code implements it, the policy is wrong — not aspirational.
What answering it properly required
Entry concessions are a different kind of rule from a passport's own status, so they get their own curated table rather than being squeezed into the existing one. A rule is keyed on the passport, the destination, and the document held — and a concession written in prose as “a valid Schengen visa” is expanded at curation time into one row per member state, so a lookup can match a stored document by its own country code instead of parsing English.
On top of that sits one function that answers a single question: across this passport and every document this traveller actually holds, what is the easiest verified way in? It returns the route and, crucially, the document the route depends on. Expired documents are excluded before it looks. Ties go to the passport, because naming a permit that changed nothing implies the permit was needed.
Why the plan names the document
It would have been easy to treat this as a lookup improvement — get a better answer, print the better answer, move on. We treat the dependency as part of the answer instead, and it is named on the composer's verdict line, on the summary tile, and on the visa card.
The reason is what happens later. A plan that says “on arrival” without saying it depends on a permit is telling a traveller something that stops being true the day that permit lapses — and people keep plans for months and carry them to the airport. “On arrival, on your UAE residence permit” is a sentence that ages honestly. “On arrival” is not.
The same reasoning fixed two older lies
Auditing this turned up a summary tile stamping “Verified” on statuses we had explicitly marked unknown, and a visa card printing “Source: google.com · verified today” for a pairing it had just said it could not verify. Both now report what is actually true, and the three separate label maps for the same six statuses were merged into one.
Where the data comes from, and what gates it
These rules are read out of the conditional prose in the Notes column of published visa tables — the sentences our earlier parser threw away because they were not a clean status. Prose is a far weaker source than a status column, so nothing that comes out of it reaches the database automatically.
- The curation script writes a review file. It never writes to the database.
- Every candidate row carries an evidence column holding the sentence it was read from, so a reviewer can judge the claim rather than the parser.
- A row stays a candidate until a person approves it.
- Both halves fail soft: if the table is missing entirely, the lookup returns nothing and the answer degrades to the passport-only one it used to give, rather than breaking plan creation.
You do not need an account to use this. The passport sheet has an “Also travelling on” section, and a declared document rides along with the plan request. If you are signed in, the documents saved on your account take precedence over anything typed into the composer.
And the standing caveat
Everything in our earlier post on visa data still applies here, doubly so. This is a starting point, not a determination. Concessions are amended more often than headline visa policies, carriers enforce them unevenly, and a permit with four months left on it may not satisfy a rule that wants six. Check the official source for your destination, and your airline, before you book anything you cannot cancel.
What we can promise is narrower: if the plan says a permit is doing the work, it will say so out loud — every time, on every surface, including the copy you print.
Put it to the test
Every claim in this post is something you can check on a real plan. One sentence is enough to start one.