How a result link works

Every verdict on this site lives in its link. The answers sit after the # in the address, the part a browser never sends to a server, and the page computes the verdict from them when it opens. This page documents that format, so a person, a script or an AI assistant can build a link that opens someone's exact verdict, with its sources and its cost.

The shape of a link

https://drivingschools.nl/check#c=US&cat=B&iss=2019-05&exp=2029-05&brp=registered:2026-06&x=no
  • The fragment is a query string: key=value pairs joined with "&", values percent-encoded (a colon may be written as ":" or "%3A"). Key order does not matter. Unknown keys are ignored.
  • A link whose required keys are missing or invalid (a malformed date, an issue or registration month in the future, an expiry before the issue, a parent code such as CA or GB) opens the empty checker instead of a verdict. It never shows a verdict built on impossible input.
  • Keys are never removed or renamed. A link shared today keeps resolving; if the rules change, it re-evaluates against the current rules version, which is shown at the foot of the result.
  • Older shared links used these paths with the same fragment; they still render the result. Those paths were /cost#… and /#….

Answer keys

The four questions the checker asks, plus the follow-ups it asks only when they can change the result. Three keys are required; a link without them opens the empty checker.

Answer keys
KeyMeaningAccepted values
crequiredThe country or territory that issued the licence (not the holder's nationality).An ISO 3166-1 alpha-2 code, or one of the sub-national codes: CA-AB, CA-QC, CA-OTHER, GB-GBN, GB-NIR, XK. The parent codes CA and GB are not a complete answer; NL is not a foreign licence. Any other two-letter code resolves (rule group "everywhere else").
issrequiredThe issue date printed on the licence (field 4a on an EU licence).YYYY-MM or YYYY-MM-DD. Not after the current month. A month is read as its first day.
brprequiredWhether the holder is registered at a Dutch address (Basisregistratie Personen, BRP), and since when."registered:YYYY-MM" (or registered:YYYY-MM-DD; not after the current month), "not_yet" (moving here or just arrived), or "visitor" (not planning to register).
expThe expiry date printed on the licence (field 4b).YYYY-MM or YYYY-MM-DD, not before the issue date. A month is read as its last day. Empty or absent means "not given".Absent: Unknown expiry; the engine assumes the licence is still valid.
catThe categories on the licence.Codes joined with a dot, e.g. "B" or "B.C". Accepted: AM, A1, A2, A, B, BE, C1, C, D1, D, C1E, CE, D1E, DE. Unknown codes are dropped; duplicates are merged.Absent: B (a car licence).
xWhether the holder (or their partner) has a Belastingdienst expat-scheme (30% ruling) decision.Asked only for non-EU/EFTA licences with a BRP registration and a licence that has not expired; otherwise it cannot change the result.yes, no, applied (waiting for the decision) or not_sure.Absent: no.
rWhether the holder lived in the issuing country for at least 185 days in the year the licence was issued.Read for agreement countries, the Dutch Caribbean, and any country when x=yes (the RDW's 185-day residency condition for an exchange).yes, no or unsure.Absent: Not answered; the verdict says the condition is unconfirmed.
tpUkraine only: the holder is covered by the Temporary Protection Directive (residence document type 46).Read only when c=UA."1" for yes. Any other value, or absent, means no.Absent: Not covered.

Cost keys

The assumptions behind the cost block. Each has a labelled default; setting one changes the estimate and travels with the link.

Cost keys
KeyMeaningAccepted values
cityThe gemeente whose exchange fee, appointment and processing time the cost table shows.One of: amsterdam, den-haag, utrecht, rotterdam, eindhoven, leiden. Other values are ignored.Absent: The national maximum fee.
lessonsNumber of driving lessons assumed in the retest estimate.An integer from 1 to 99.Absent: The market median for the route (a labelled estimate).
pricePrice of one driving lesson in euros.A number from 10 to 500.Absent: The national median lesson price (a labelled estimate).
taTheory exam attempts assumed.A number from 1 to 9 (decimals allowed, for an expected value).Absent: The default attempt count in retest_assumptions.json.
paPractical exam attempts assumed.A number from 1 to 9 (decimals allowed).Absent: The default attempt count in retest_assumptions.json.
ttInclude the optional interim test (tussentijdse toets) in the retest estimate."1" to include it.Absent: Not included.

Prefill keys

Links that open the checker part-way rather than at a verdict.

Prefill keys
KeyMeaningAccepted values
goWith c and no other answer keys: open the checker at the dates question with the country already answered."1". Without it, a link with only c shows the country pre-selected on the first question, to confirm or change.
firstNo foreign licence at all: show the first-licence (beginner) cost roadmap instead of the questions. The cost keys still apply."1". The answer keys are ignored when it is present.

Worked examples

Each of these is checked by the test suite: the link decodes, and the engine returns the route the sentence describes. Click one to see the verdict it opens.

Reading a verdict without a browser

The verdict is computed in the browser by the same rules engine that builds the country pages; there is no server that returns a verdict for a link. To read the rules as data, use /rules/index.json and the per-country documents at /exchange/<country>.json, each with a worked example the engine computed, the cost table and the sources. This specification as data: /rules/result-link.json.

Nothing in the fragment reaches the server: the browser does not send it with the request. No name, email or nationality is ever part of a link. Corrections and questions: hello@drivingschools.nl.

Rules version 1.2.2, verified 2 September 2026. This is guidance, not legal advice. Confirm with the official RDW checklist.