Contributing
Reporting a wrong row
Open an issue with the pair and a link to the government page that contradicts us. That is the whole process. You do not need to know the law, and you do not need to be sure you are right — if the official page reads differently from our row, the disagreement is worth an issue either way.
Errors in the dangerous direction get priority: we would much rather hear that we told someone no authorisation was needed when one was, than that we sent someone through an unnecessary e-visa form. The first costs a flight; the second costs fifty dollars.
What counts as a source
In descending order of authority:
- A gazetted instrument — regulations, statutory instruments, decrees. These settle any disagreement, including a disagreement with the issuing government's own website. Published tables go out of date; the Schedule is the law.
- The destination's immigration department or ministry of foreign affairs.
- The destination's official e-visa or ETA portal.
- The destination's embassy in a specific country, for a bilateral arrangement that the national pages do not mention.
IATA Timatic is what airlines actually check at the gate and is genuinely authoritative in the operational sense, but it is not public, so we cannot cite it and neither can you.
Wikipedia, aggregator sites, other visa datasets, airline help pages and travel blogs are not sources for this purpose. They are frequently right; they are never citable, because they are the layer that copying errors live in.
Changes we will decline
Adding a duration where the source does not state one. If a country's
schedule grants an exemption without naming a length of stay, max_stay_days
stays empty. Filling it with 30 or 90 because that is the regional norm is the
single most common way visa datasets acquire fictions.
Reclassifying an ETA as visa free because the destination's own marketing calls it visa-free travel. We know. It still stops you at check-in.
Non-tourist regimes. Business, work, study, transit, crew, medical travel, residence permits, and diplomatic, service or official passports are all out of scope by design, and adding them piecemeal to a table that claims to be about tourism would be worse than not having them.
Conditional entitlements that cannot be expressed as one value. "Visa free
if you hold a valid US visa" is real, common and important, and a single
requirement column cannot carry it. Open an issue anyway if you find one that
is missing from our notes — we would rather record it in the changelog prose
than lose it.
Editing the data directly
Please do not send a pull request that edits data/*.csv. Those files are
build output; the next build overwrites them. The upstream source is the site's
own data layer, and the maintainer applies corrections there so that the
dataset, the website and the change journal stay in agreement. An issue with a
link gets your correction in faster than a pull request will.
Pull requests against scripts/, the README, the schema descriptor or the
issue templates are very welcome.
Verification dates
Every corrected row carries verified: the date a human last re-read the
primary source and found it still true. Re-verifying an unchanged rule is real
work and resets that clock honestly — it answers "how long since anyone
looked", which is the question a reader of a visa dataset actually has.
If you re-check a row and find it unchanged, say so in an issue. "Still correct as of today, here is the page" is a useful contribution, not a non-event.