vehicles 0.4.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +55 -1
- data/README.md +36 -8
- data/data/plates/PROVENANCE.md +9 -0
- data/data/plates/_decode/es-provinces.yml +116 -0
- data/data/plates/_meta/classes.yml +25 -0
- data/data/plates/de.yml +672 -0
- data/data/plates/es.yml +692 -0
- data/data/plates/nl.yml +972 -0
- data/data/plates/us-fl.yml +518 -0
- data/data/vehicles.json +28109 -37241
- data/lib/vehicles/configuration.rb +4 -2
- data/lib/vehicles/model.rb +23 -6
- data/lib/vehicles/plates/jurisdiction.rb +32 -0
- data/lib/vehicles/plates/series.rb +137 -0
- data/lib/vehicles/plates.rb +110 -0
- data/lib/vehicles/providers/hosted_provider.rb +26 -8
- data/lib/vehicles/providers/local_provider.rb +4 -3
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +21 -0
- metadata +12 -2
data/data/plates/nl.yml
ADDED
|
@@ -0,0 +1,972 @@
|
|
|
1
|
+
# plates/nl.yml — Netherlands (PRD-PLATES gate L0 pilot, COMPLETION PASS).
|
|
2
|
+
#
|
|
3
|
+
# Supersedes the 4-entry L0 seed. Entry ids from the seed are preserved
|
|
4
|
+
# verbatim (nl-sidecode11-moped, nl-sidecode11-agricultural,
|
|
5
|
+
# nl-sidecode11-car, nl-historic-darkblue) per the id contract
|
|
6
|
+
# (PRD-QUALITY I-5/I-6); their DATA is corrected where the RDW pages
|
|
7
|
+
# contradicted the seed — corrections are called out in each `notes`.
|
|
8
|
+
#
|
|
9
|
+
# THE NL MODELLING RULE (EU dossier finding 6, binding): a sidecode is a
|
|
10
|
+
# PATTERN identity, not a period — the same pattern reaches each vehicle
|
|
11
|
+
# category on its own date (RDW's official series table). One pattern ×
|
|
12
|
+
# one category-group = one series entry. Age inference is one-sided (a
|
|
13
|
+
# pattern gives the EARLIEST date; series run until exhausted). RDW says
|
|
14
|
+
# so in its own words on the series page: "Bij een nieuwe kentekenserie
|
|
15
|
+
# krijgen niet direct alle voertuigcategorieën deze combinatie. Eerst maken
|
|
16
|
+
# we de huidige serie 'vol', wat soms lang duurt."
|
|
17
|
+
#
|
|
18
|
+
# Dutch plates encode NO geography. Category IS encoded, in the first letter
|
|
19
|
+
# of the registration (RDW cijfers-en-letters page):
|
|
20
|
+
# M motorcycle · D/F moped · E special moped · V light commercial ·
|
|
21
|
+
# B heavy commercial · W trailer · O semi-trailer · GV border traffic ·
|
|
22
|
+
# T agricultural tractor/mobile machine/MMBS ·
|
|
23
|
+
# L agricultural trailer & interchangeable towed equipment ·
|
|
24
|
+
# passenger cars: G H J K L N P R S T X Z (L and T dropped from sidecode 11).
|
|
25
|
+
#
|
|
26
|
+
# REGEX POLICY IN THIS FILE (schema stressor, see the L0 report):
|
|
27
|
+
# `format.regex` is the LINT-ROUND-TRIPPABLE regex — the lint generates
|
|
28
|
+
# serials from `format.pattern` (L -> any A-Z, 9 -> any 0-9) and requires
|
|
29
|
+
# the regex to accept every one of them, so the regex can never be
|
|
30
|
+
# narrower than the pattern's own alphabet.
|
|
31
|
+
# `format.regex_strict` (NOT yet lint-validated — proposed amendment) is
|
|
32
|
+
# the regex the AUTHORITY actually supports: no vowels since sidecode 4,
|
|
33
|
+
# no C, no Q, and the category first-letter sets above. Consumers doing
|
|
34
|
+
# validation should prefer regex_strict; consumers doing recall should use
|
|
35
|
+
# regex. Where a single first letter is mandated and that letter is not
|
|
36
|
+
# "L" or "9", it is written as a literal in the pattern and regex needs no
|
|
37
|
+
# strict twin.
|
|
38
|
+
jurisdiction: nl
|
|
39
|
+
authority:
|
|
40
|
+
name: RDW (Dienst Wegverkeer)
|
|
41
|
+
url: "https://www.rdw.nl/de-kentekenplaat"
|
|
42
|
+
binding: vehicle # NL plates bind to the VEHICLE (contrast CH: owner)
|
|
43
|
+
|
|
44
|
+
# ---------------------------------------------------------------------------
|
|
45
|
+
# Jurisdiction-wide charset facts, cited once and referenced per series.
|
|
46
|
+
# ---------------------------------------------------------------------------
|
|
47
|
+
charset_defaults:
|
|
48
|
+
letters: [B, D, F, G, H, J, K, L, M, N, P, R, S, T, V, W, X, Y, Z]
|
|
49
|
+
excluded_letters: [A, E, I, O, U, C, Q]
|
|
50
|
+
excluded_letters_note: >-
|
|
51
|
+
"Sinds kentekencombinatie 4 gebruiken we geen klinkers meer in het kenteken
|
|
52
|
+
(met uitzondering van het kenteken voor opleggers). De letter C en Q
|
|
53
|
+
gebruiken we ook niet omdat deze letters teveel op een nul lijken."
|
|
54
|
+
Semi-trailer (oplegger) registrations are the stated exception and DO use
|
|
55
|
+
the vowel O.
|
|
56
|
+
excluded_combinations: [GVD, KKK, NSB, PKK, PSV, TBS, SS, SD, PVV, SGP, VVD, FVD, BBB]
|
|
57
|
+
source: "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # no vowels since combination 4 (opleggers excepted); no C/Q; the 13 forbidden letter combinations"
|
|
58
|
+
|
|
59
|
+
series:
|
|
60
|
+
|
|
61
|
+
# =========================================================================
|
|
62
|
+
# PASSENGER CARS — RDW table "Auto's". class standard, categories [car].
|
|
63
|
+
# First letter from {G H J K L N P R S T X Z}; L and T withdrawn from
|
|
64
|
+
# sidecode 11 onward.
|
|
65
|
+
# =========================================================================
|
|
66
|
+
- id: nl-sidecode6-car
|
|
67
|
+
class: standard
|
|
68
|
+
categories: [car]
|
|
69
|
+
period: { start: 2000 } # 20-01-2000; open — series run until exhausted
|
|
70
|
+
format:
|
|
71
|
+
pattern: "99-LL-LL"
|
|
72
|
+
regex: '\A\d{2}-[A-Z]{2}-[A-Z]{2}\z'
|
|
73
|
+
regex_strict: '\A\d{2}-[GHJKLNPRSTXZ][BDFGHJKLMNPRSTVWXYZ]-[BDFGHJKLMNPRSTVWXYZ]{2}\z'
|
|
74
|
+
charset:
|
|
75
|
+
first_letter: [G, H, J, K, L, N, P, R, S, T, X, Z]
|
|
76
|
+
notes: "no vowels, no C/Q — see charset_defaults"
|
|
77
|
+
progression: "letter groups advance; RDW does not publish the intra-series allocation order"
|
|
78
|
+
design:
|
|
79
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
80
|
+
plate_variants:
|
|
81
|
+
- { w: 340, h: 210, unit: mm, note: "rechthoekig (two-line) model 27.2" }
|
|
82
|
+
- { w: 310, h: 110, unit: mm, note: "'Amerikaans model' 18.2 — only where the vehicle record carries code 55 'kentekenplaat model 18.2 toegestaan'" }
|
|
83
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
84
|
+
foreground: "#000000"
|
|
85
|
+
border: { color: "#000000", note: "zwart kader voor de leesbaarheid" }
|
|
86
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
87
|
+
emblem: { present: false }
|
|
88
|
+
rear_differs: false
|
|
89
|
+
region_encoding: none
|
|
90
|
+
variants:
|
|
91
|
+
- class: taxi
|
|
92
|
+
design: { background: { color: "#7CB9E8", finish: retroreflective, hex_basis: observed }, foreground: "#000000", plate: { w: 520, h: 110, unit: mm } }
|
|
93
|
+
note: >-
|
|
94
|
+
Light-blue taxi plates carry the vehicle's OWN registration — colour-only
|
|
95
|
+
variant of this series, so a sub-entry per PRD-PLATES §2.3, not a series.
|
|
96
|
+
Models 27.30 (long), 27.31 (rectangular), 18.2 (American, light blue).
|
|
97
|
+
sources:
|
|
98
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # taxikentekenplaat lichtblauw met zwarte letters en cijfers; 520x110 / 340x210 / 310x110"
|
|
99
|
+
- "https://www.rdw.nl/zakelijke-partners/erkende-bedrijven/kentekenplaatfabrikanten/extra-eisen-per-kleur-en-model/kentekenplaat-voor-auto-motorfiets-trike-of-quad # taxi models 27.30 / 27.31 / 18.2"
|
|
100
|
+
- class: trailer
|
|
101
|
+
design: { background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }, foreground: "#000000" }
|
|
102
|
+
note: >-
|
|
103
|
+
Trailers and appendages (bike racks) up to 750 kg have NO registration of
|
|
104
|
+
their own — they repeat the towing vehicle's registration on a WHITE plate.
|
|
105
|
+
Colour-only variant, hence a sub-entry.
|
|
106
|
+
sources:
|
|
107
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # witte kentekenplaat, aanhangwagens <751 kg, zelfde kenteken als het trekkende voertuig"
|
|
108
|
+
sources:
|
|
109
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Auto's: serie 6, combinatie 99-XX-XX, ingangsdatum 20-01-2000"
|
|
110
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # personenauto first letters G H J K L N P R S T X Z"
|
|
111
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # gele plaat, zwart kader, blauw EU-vlak met NL; 520x110 of 340x210"
|
|
112
|
+
notes: >-
|
|
113
|
+
Sidecode 6 for PASSENGER CARS, from 20-01-2000. The first NL series to be
|
|
114
|
+
issued under the EU-band yellow design. Parallel with sidecodes 7-11: RDW
|
|
115
|
+
exhausts a series before switching, so all six car series remain live stock.
|
|
116
|
+
|
|
117
|
+
- id: nl-sidecode7-car
|
|
118
|
+
class: standard
|
|
119
|
+
categories: [car]
|
|
120
|
+
period: { start: 2008 } # 19-05-2008
|
|
121
|
+
format:
|
|
122
|
+
pattern: "99-LLL-9"
|
|
123
|
+
regex: '\A\d{2}-[A-Z]{3}-\d\z'
|
|
124
|
+
regex_strict: '\A\d{2}-[GHJKLNPRSTXZ][BDFGHJKLMNPRSTVWXYZ]{2}-\d\z'
|
|
125
|
+
charset: { first_letter: [G, H, J, K, L, N, P, R, S, T, X, Z], notes: "no vowels, no C/Q" }
|
|
126
|
+
design:
|
|
127
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
128
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
129
|
+
foreground: "#000000"
|
|
130
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
131
|
+
region_encoding: none
|
|
132
|
+
sources:
|
|
133
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Auto's: serie 7, combinatie 99-XXX-9, ingangsdatum 19-05-2008"
|
|
134
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # colours + dimensions"
|
|
135
|
+
notes: >-
|
|
136
|
+
Sidecode 7 for PASSENGER CARS, from 19-05-2008. Same pattern reached HEAVY
|
|
137
|
+
commercial vehicles four years later (20-07-2012) — the pattern-x-category
|
|
138
|
+
rule; see nl-sidecode7-heavycommercial.
|
|
139
|
+
|
|
140
|
+
- id: nl-sidecode8-car
|
|
141
|
+
class: standard
|
|
142
|
+
categories: [car]
|
|
143
|
+
period: { start: 2013 } # 05-03-2013
|
|
144
|
+
format:
|
|
145
|
+
pattern: "9-LLL-99"
|
|
146
|
+
regex: '\A\d-[A-Z]{3}-\d{2}\z'
|
|
147
|
+
regex_strict: '\A\d-[GHJKLNPRSTXZ][BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}\z'
|
|
148
|
+
charset: { first_letter: [G, H, J, K, L, N, P, R, S, T, X, Z], notes: "no vowels, no C/Q" }
|
|
149
|
+
design:
|
|
150
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
151
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
152
|
+
foreground: "#000000"
|
|
153
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
154
|
+
region_encoding: none
|
|
155
|
+
sources:
|
|
156
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Auto's: serie 8, combinatie 9-XXX-99, ingangsdatum 05-03-2013"
|
|
157
|
+
notes: >-
|
|
158
|
+
Sidecode 8 for PASSENGER CARS, from 05-03-2013. The same pattern had already
|
|
159
|
+
been running for LIGHT commercial vehicles since 26-02-2009 — a four-year
|
|
160
|
+
lead, and the clearest single counter-example to "sidecode = era".
|
|
161
|
+
|
|
162
|
+
- id: nl-sidecode9-car
|
|
163
|
+
class: standard
|
|
164
|
+
categories: [car]
|
|
165
|
+
period: { start: 2015 } # 30-03-2015
|
|
166
|
+
format:
|
|
167
|
+
pattern: "LL-999-L"
|
|
168
|
+
regex: '\A[A-Z]{2}-\d{3}-[A-Z]\z'
|
|
169
|
+
regex_strict: '\A[GHJKLNPRSTXZ][BDFGHJKLMNPRSTVWXYZ]-\d{3}-[BDFGHJKLMNPRSTVWXYZ]\z'
|
|
170
|
+
charset: { first_letter: [G, H, J, K, L, N, P, R, S, T, X, Z], notes: "no vowels, no C/Q" }
|
|
171
|
+
design:
|
|
172
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
173
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
174
|
+
foreground: "#000000"
|
|
175
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
176
|
+
region_encoding: none
|
|
177
|
+
sources:
|
|
178
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Auto's: serie 9, combinatie XX-999-X, ingangsdatum 30-03-2015"
|
|
179
|
+
notes: >-
|
|
180
|
+
Sidecode 9 for PASSENGER CARS, from 30-03-2015. Mopeds got this pattern in
|
|
181
|
+
2006 and light commercials in 2012 — cars are the LAST category to reach it.
|
|
182
|
+
|
|
183
|
+
- id: nl-sidecode10-car
|
|
184
|
+
class: standard
|
|
185
|
+
categories: [car]
|
|
186
|
+
period: { start: 2019 } # 19-08-2019
|
|
187
|
+
format:
|
|
188
|
+
pattern: "L-999-LL"
|
|
189
|
+
regex: '\A[A-Z]-\d{3}-[A-Z]{2}\z'
|
|
190
|
+
regex_strict: '\A[GHJKLNPRSTXZ]-\d{3}-[BDFGHJKLMNPRSTVWXYZ]{2}\z'
|
|
191
|
+
charset: { first_letter: [G, H, J, K, L, N, P, R, S, T, X, Z], notes: "no vowels, no C/Q" }
|
|
192
|
+
design:
|
|
193
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
194
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
195
|
+
foreground: "#000000"
|
|
196
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
197
|
+
region_encoding: none
|
|
198
|
+
sources:
|
|
199
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Auto's: serie 10, combinatie X-999-XX, ingangsdatum 19-08-2019"
|
|
200
|
+
notes: >-
|
|
201
|
+
Sidecode 10 for PASSENGER CARS, from 19-08-2019. Note the single-letter first
|
|
202
|
+
group: the category first-letter rule still applies to it.
|
|
203
|
+
|
|
204
|
+
- id: nl-sidecode11-car # seed id — PRESERVED
|
|
205
|
+
class: standard
|
|
206
|
+
categories: [car] # CORRECTED from the seed's [car, van]: RDW's
|
|
207
|
+
# "Auto's" table is passenger cars only; light
|
|
208
|
+
# commercials reached sidecode 11 on 13-06-2019
|
|
209
|
+
# (see nl-sidecode11-lightcommercial).
|
|
210
|
+
period: { start: 2024 } # 04-06-2024
|
|
211
|
+
format:
|
|
212
|
+
pattern: "LLL-99-L"
|
|
213
|
+
regex: '\A[A-Z]{3}-\d{2}-[A-Z]\z'
|
|
214
|
+
regex_strict: '\A[GHJKNPRSXZ][BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}-[BDFGHJKLMNPRSTVWXYZ]\z'
|
|
215
|
+
charset:
|
|
216
|
+
first_letter: [G, H, J, K, N, P, R, S, X, Z]
|
|
217
|
+
notes: >-
|
|
218
|
+
"Vanaf kentekenserie 11 worden de medeklinkers L en T niet langer gebruikt
|
|
219
|
+
als eerste letter voor personenauto's" — L and T are withdrawn for CARS
|
|
220
|
+
from sidecode 11, which is why this series' first-letter set is 10 letters
|
|
221
|
+
where sidecodes 6-10 have 12.
|
|
222
|
+
design:
|
|
223
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
224
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
225
|
+
foreground: "#000000"
|
|
226
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
227
|
+
region_encoding: none
|
|
228
|
+
sources:
|
|
229
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Auto's: serie 11, combinatie XXX-99-X, ingangsdatum 04-06-2024"
|
|
230
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # L and T withdrawn as car first letters from serie 11"
|
|
231
|
+
notes: >-
|
|
232
|
+
Sidecode 11 for PASSENGER CARS, from 04-06-2024 — the current car issue.
|
|
233
|
+
The same pattern reached mopeds in 2015 and agricultural trailers in 2021;
|
|
234
|
+
the trio is the pattern-x-category rule demonstrated. Seed correction: the
|
|
235
|
+
seed listed categories [car, van] and no first-letter narrowing.
|
|
236
|
+
|
|
237
|
+
# =========================================================================
|
|
238
|
+
# LIGHT COMMERCIAL — RDW "Bedrijfsauto's licht" (<= 3500 kg). First letter V.
|
|
239
|
+
# V is not a pattern metacharacter, so the literal goes in the pattern and
|
|
240
|
+
# the regex is exact without a strict twin.
|
|
241
|
+
# =========================================================================
|
|
242
|
+
- id: nl-sidecode8-lightcommercial
|
|
243
|
+
class: standard
|
|
244
|
+
categories: [van]
|
|
245
|
+
period: { start: 2009 } # 26-02-2009
|
|
246
|
+
format:
|
|
247
|
+
pattern: "9-VLL-99"
|
|
248
|
+
regex: '\A\d-V[A-Z]{2}-\d{2}\z'
|
|
249
|
+
regex_strict: '\A\d-V[BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}\z'
|
|
250
|
+
charset: { first_letter: [V], notes: "light commercial registrations always begin with V" }
|
|
251
|
+
design:
|
|
252
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
253
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
254
|
+
foreground: "#000000"
|
|
255
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
256
|
+
region_encoding: none
|
|
257
|
+
sources:
|
|
258
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Lichte bedrijfsauto's: serie 8, combinatie 9-XXX-99, ingangsdatum 26-02-2009"
|
|
259
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Lichte bedrijfsauto's (tot 3500 kg): eerste letter V"
|
|
260
|
+
notes: >-
|
|
261
|
+
Sidecode 8 for LIGHT COMMERCIAL vehicles, from 26-02-2009 — four years ahead
|
|
262
|
+
of the same pattern's car rollout. Campers registered as light commercial
|
|
263
|
+
also carry V.
|
|
264
|
+
|
|
265
|
+
- id: nl-sidecode9-lightcommercial
|
|
266
|
+
class: standard
|
|
267
|
+
categories: [van]
|
|
268
|
+
period: { start: 2012 } # 12-12-2012
|
|
269
|
+
format:
|
|
270
|
+
pattern: "VL-999-L"
|
|
271
|
+
regex: '\AV[A-Z]-\d{3}-[A-Z]\z'
|
|
272
|
+
regex_strict: '\AV[BDFGHJKLMNPRSTVWXYZ]-\d{3}-[BDFGHJKLMNPRSTVWXYZ]\z'
|
|
273
|
+
charset: { first_letter: [V] }
|
|
274
|
+
design:
|
|
275
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
276
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
277
|
+
foreground: "#000000"
|
|
278
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
279
|
+
region_encoding: none
|
|
280
|
+
sources:
|
|
281
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Lichte bedrijfsauto's: serie 9, combinatie XX-999-X, ingangsdatum 12-12-2012"
|
|
282
|
+
notes: Sidecode 9 for LIGHT COMMERCIAL vehicles, from 12-12-2012.
|
|
283
|
+
|
|
284
|
+
- id: nl-sidecode10-lightcommercial
|
|
285
|
+
class: standard
|
|
286
|
+
categories: [van]
|
|
287
|
+
period: { start: 2016 } # 14-10-2016
|
|
288
|
+
format:
|
|
289
|
+
pattern: "V-999-LL"
|
|
290
|
+
regex: '\AV-\d{3}-[A-Z]{2}\z'
|
|
291
|
+
regex_strict: '\AV-\d{3}-[BDFGHJKLMNPRSTVWXYZ]{2}\z'
|
|
292
|
+
charset: { first_letter: [V] }
|
|
293
|
+
design:
|
|
294
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
295
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
296
|
+
foreground: "#000000"
|
|
297
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
298
|
+
region_encoding: none
|
|
299
|
+
sources:
|
|
300
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Lichte bedrijfsauto's: serie 10, combinatie X-999-XX, ingangsdatum 14-10-2016"
|
|
301
|
+
notes: Sidecode 10 for LIGHT COMMERCIAL vehicles, from 14-10-2016.
|
|
302
|
+
|
|
303
|
+
- id: nl-sidecode11-lightcommercial
|
|
304
|
+
class: standard
|
|
305
|
+
categories: [van]
|
|
306
|
+
period: { start: 2019 } # 13-06-2019
|
|
307
|
+
format:
|
|
308
|
+
pattern: "VLL-99-L"
|
|
309
|
+
regex: '\AV[A-Z]{2}-\d{2}-[A-Z]\z'
|
|
310
|
+
regex_strict: '\AV[BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}-[BDFGHJKLMNPRSTVWXYZ]\z'
|
|
311
|
+
charset: { first_letter: [V] }
|
|
312
|
+
design:
|
|
313
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
314
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
315
|
+
foreground: "#000000"
|
|
316
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
317
|
+
region_encoding: none
|
|
318
|
+
sources:
|
|
319
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Lichte bedrijfsauto's: serie 11, combinatie XXX-99-X, ingangsdatum 13-06-2019"
|
|
320
|
+
notes: >-
|
|
321
|
+
Sidecode 11 for LIGHT COMMERCIAL vehicles, from 13-06-2019 — FIVE YEARS
|
|
322
|
+
before the same pattern reached cars (04-06-2024). The single most useful
|
|
323
|
+
NL age-inference fact: a XXX-99-X plate starting with V can be 2019+, while
|
|
324
|
+
the same pattern on a car cannot predate June 2024.
|
|
325
|
+
|
|
326
|
+
- id: nl-sidecode12-lightcommercial
|
|
327
|
+
class: standard
|
|
328
|
+
categories: [van]
|
|
329
|
+
period: { start: 2024 } # 08-01-2024
|
|
330
|
+
format:
|
|
331
|
+
pattern: "V-99-LLL"
|
|
332
|
+
regex: '\AV-\d{2}-[A-Z]{3}\z'
|
|
333
|
+
regex_strict: '\AV-\d{2}-[BDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
334
|
+
charset: { first_letter: [V] }
|
|
335
|
+
design:
|
|
336
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
337
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
338
|
+
foreground: "#000000"
|
|
339
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
340
|
+
region_encoding: none
|
|
341
|
+
sources:
|
|
342
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Lichte bedrijfsauto's: serie 12, combinatie X-99-XXX, ingangsdatum 08-01-2024"
|
|
343
|
+
notes: >-
|
|
344
|
+
Sidecode 12 for LIGHT COMMERCIAL vehicles, from 08-01-2024 — light
|
|
345
|
+
commercials are the ONLY road category on sidecode 12 besides special mopeds
|
|
346
|
+
(2025) and agricultural tractors (2021). Cars have never reached it.
|
|
347
|
+
|
|
348
|
+
# =========================================================================
|
|
349
|
+
# HEAVY COMMERCIAL — RDW "Bedrijfsauto's zwaar" (> 3500 kg). First letter B.
|
|
350
|
+
# =========================================================================
|
|
351
|
+
- id: nl-sidecode5-heavycommercial
|
|
352
|
+
class: standard
|
|
353
|
+
categories: [truck, bus]
|
|
354
|
+
period: { start: 1994 } # 03-01-1994 — the oldest date RDW publishes
|
|
355
|
+
# for a still-listed series other than the
|
|
356
|
+
# 1951 GV block.
|
|
357
|
+
format:
|
|
358
|
+
pattern: "BL-LL-99"
|
|
359
|
+
regex: '\AB[A-Z]-[A-Z]{2}-\d{2}\z'
|
|
360
|
+
regex_strict: '\AB[BDFGHJKLMNPRSTVWXYZ]-[BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}\z'
|
|
361
|
+
charset: { first_letter: [B], notes: "heavy commercial registrations always begin with B" }
|
|
362
|
+
design:
|
|
363
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
364
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
365
|
+
foreground: "#000000"
|
|
366
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
367
|
+
band_note: >-
|
|
368
|
+
The EU band is a property of the CURRENT plate, not of the 1994 series:
|
|
369
|
+
plates made today for a 1994-series registration carry it. RDW does not
|
|
370
|
+
publish the date the band became mandatory in NL — recorded gap.
|
|
371
|
+
region_encoding: none
|
|
372
|
+
sources:
|
|
373
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Zware bedrijfsauto's: serie 5, combinatie XX-XX-99, ingangsdatum 03-01-1994"
|
|
374
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Zware bedrijfsauto's (boven 3500 kg): eerste letter B"
|
|
375
|
+
notes: >-
|
|
376
|
+
Sidecode 5 for HEAVY COMMERCIAL vehicles, from 03-01-1994. This is the ONLY
|
|
377
|
+
sidecode-5 rollout RDW publishes — the pattern's car-era dates are not on
|
|
378
|
+
any RDW page (recorded gap).
|
|
379
|
+
|
|
380
|
+
- id: nl-sidecode7-heavycommercial
|
|
381
|
+
class: standard
|
|
382
|
+
categories: [truck, bus]
|
|
383
|
+
period: { start: 2012 } # 20-07-2012
|
|
384
|
+
format:
|
|
385
|
+
pattern: "99-BLL-9"
|
|
386
|
+
regex: '\A\d{2}-B[A-Z]{2}-\d\z'
|
|
387
|
+
regex_strict: '\A\d{2}-B[BDFGHJKLMNPRSTVWXYZ]{2}-\d\z'
|
|
388
|
+
charset: { first_letter: [B] }
|
|
389
|
+
design:
|
|
390
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
391
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
392
|
+
foreground: "#000000"
|
|
393
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
394
|
+
region_encoding: none
|
|
395
|
+
sources:
|
|
396
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Zware bedrijfsauto's: serie 7, combinatie 99-XXX-9, ingangsdatum 20-07-2012"
|
|
397
|
+
notes: >-
|
|
398
|
+
Sidecode 7 for HEAVY COMMERCIAL vehicles, from 20-07-2012 — four years after
|
|
399
|
+
the car rollout of the same pattern. Heavy commercials skipped sidecode 6.
|
|
400
|
+
|
|
401
|
+
# =========================================================================
|
|
402
|
+
# MOTORCYCLES — RDW "Motoren". First letter M.
|
|
403
|
+
# =========================================================================
|
|
404
|
+
- id: nl-sidecode6-motorcycle
|
|
405
|
+
class: motorcycle
|
|
406
|
+
categories: [motorcycle]
|
|
407
|
+
period: { start: 2011 } # 19-08-2011
|
|
408
|
+
format:
|
|
409
|
+
pattern: "99-ML-LL"
|
|
410
|
+
regex: '\A\d{2}-M[A-Z]-[A-Z]{2}\z'
|
|
411
|
+
regex_strict: '\A\d{2}-M[BDFGHJKLMNPRSTVWXYZ]-[BDFGHJKLMNPRSTVWXYZ]{2}\z'
|
|
412
|
+
charset: { first_letter: [M], notes: "motorcycle registrations always begin with M" }
|
|
413
|
+
design:
|
|
414
|
+
plate: { w: 210, h: 143, unit: mm }
|
|
415
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
416
|
+
foreground: "#000000"
|
|
417
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
418
|
+
rear_differs: false
|
|
419
|
+
note: "one plate, rear only (motorcycle model 27.10)"
|
|
420
|
+
region_encoding: none
|
|
421
|
+
sources:
|
|
422
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Motoren: serie 6, combinatie 99-XX-XX, ingangsdatum 19-08-2011"
|
|
423
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Motoren: eerste letter M"
|
|
424
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # motorkentekenplaat 210x143 mm"
|
|
425
|
+
notes: >-
|
|
426
|
+
Sidecode 6 for MOTORCYCLES, from 19-08-2011 — eleven years after the same
|
|
427
|
+
pattern reached cars (20-01-2000). This is the ONLY motorcycle rollout on
|
|
428
|
+
RDW's table: motorcycles registered before 2011 carry earlier sidecodes
|
|
429
|
+
whose motorcycle dates RDW does not publish (recorded gap). The
|
|
430
|
+
210x143 mm plate also serves three-wheelers, agricultural vehicles, MMBS,
|
|
431
|
+
mobile machines and agricultural trailers.
|
|
432
|
+
|
|
433
|
+
# =========================================================================
|
|
434
|
+
# MOPEDS — RDW "Brom- en snorfietsen". First letters D and F.
|
|
435
|
+
# Two options, so the pattern keeps its generic L and regex carries [DF].
|
|
436
|
+
# =========================================================================
|
|
437
|
+
- id: nl-sidecode7-moped
|
|
438
|
+
class: moped
|
|
439
|
+
categories: [moped]
|
|
440
|
+
period: { start: 2005 } # 01-09-2005
|
|
441
|
+
format:
|
|
442
|
+
pattern: "99-LLL-9"
|
|
443
|
+
regex: '\A\d{2}-[A-Z]{3}-\d\z'
|
|
444
|
+
regex_strict: '\A\d{2}-[DF][BDFGHJKLMNPRSTVWXYZ]{2}-\d\z'
|
|
445
|
+
charset: { first_letter: [D, F], notes: "moped registrations begin with D or F" }
|
|
446
|
+
design:
|
|
447
|
+
plate: { w: 145, h: 125, unit: mm }
|
|
448
|
+
plate_variants:
|
|
449
|
+
- { w: 100, h: 175, unit: mm, note: "staand (portrait) model 30.1" }
|
|
450
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
451
|
+
foreground: "#000000"
|
|
452
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
453
|
+
region_encoding: none
|
|
454
|
+
variants:
|
|
455
|
+
- class: moped
|
|
456
|
+
design: { background: { color: "#7CB9E8", finish: retroreflective, hex_basis: observed }, foreground: "#000000" }
|
|
457
|
+
note: >-
|
|
458
|
+
SNORFIETS (25 km/h max) carries the same registration on a LIGHT BLUE
|
|
459
|
+
plate — models 30.3 (portrait) / 30.4 (landscape). Yellow is the
|
|
460
|
+
45 km/h bromfiets and the speed-pedelec. Colour-only variant, so a
|
|
461
|
+
sub-entry, but note this loses the light-blue/yellow distinction to
|
|
462
|
+
class-keyed queries (see the L0 report's schema stressors).
|
|
463
|
+
sources:
|
|
464
|
+
- "https://www.rdw.nl/zakelijke-partners/erkende-bedrijven/kentekenplaatfabrikanten/extra-eisen-per-kleur-en-model/kentekenplaat-voor-snor-of-bromfiets # 45 km/h = geel model 30.1/30.2; 25 km/h snorfiets = lichtblauw model 30.3/30.4"
|
|
465
|
+
sources:
|
|
466
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Brom- en snorfietsen: serie 7, combinatie 99-XXX-9, ingangsdatum 01-09-2005"
|
|
467
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Brom- en snorfietsen: eerste letters D en F"
|
|
468
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # bromfietsplaat 145x125 liggend of 100x175 staand"
|
|
469
|
+
notes: >-
|
|
470
|
+
Sidecode 7 for MOPEDS, from 01-09-2005 — the NL moped registration
|
|
471
|
+
obligation's first series, and three years ahead of the car rollout of the
|
|
472
|
+
same pattern.
|
|
473
|
+
|
|
474
|
+
- id: nl-sidecode9-moped
|
|
475
|
+
class: moped
|
|
476
|
+
categories: [moped]
|
|
477
|
+
period: { start: 2006 } # 11-08-2006
|
|
478
|
+
format:
|
|
479
|
+
pattern: "LL-999-L"
|
|
480
|
+
regex: '\A[A-Z]{2}-\d{3}-[A-Z]\z'
|
|
481
|
+
regex_strict: '\A[DF][BDFGHJKLMNPRSTVWXYZ]-\d{3}-[BDFGHJKLMNPRSTVWXYZ]\z'
|
|
482
|
+
charset: { first_letter: [D, F] }
|
|
483
|
+
design:
|
|
484
|
+
plate: { w: 145, h: 125, unit: mm }
|
|
485
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
486
|
+
foreground: "#000000"
|
|
487
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
488
|
+
region_encoding: none
|
|
489
|
+
sources:
|
|
490
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Brom- en snorfietsen: serie 9, combinatie XX-999-X, ingangsdatum 11-08-2006"
|
|
491
|
+
notes: >-
|
|
492
|
+
Sidecode 9 for MOPEDS, from 11-08-2006 — NINE YEARS before cars reached the
|
|
493
|
+
same pattern (30-03-2015). Mopeds skipped sidecode 8 entirely.
|
|
494
|
+
|
|
495
|
+
- id: nl-sidecode10-moped
|
|
496
|
+
class: moped
|
|
497
|
+
categories: [moped]
|
|
498
|
+
period: { start: 2008 } # 11-12-2008
|
|
499
|
+
format:
|
|
500
|
+
pattern: "L-999-LL"
|
|
501
|
+
regex: '\A[A-Z]-\d{3}-[A-Z]{2}\z'
|
|
502
|
+
regex_strict: '\A[DF]-\d{3}-[BDFGHJKLMNPRSTVWXYZ]{2}\z'
|
|
503
|
+
charset: { first_letter: [D, F] }
|
|
504
|
+
design:
|
|
505
|
+
plate: { w: 145, h: 125, unit: mm }
|
|
506
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
507
|
+
foreground: "#000000"
|
|
508
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
509
|
+
region_encoding: none
|
|
510
|
+
sources:
|
|
511
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Brom- en snorfietsen: serie 10, combinatie X-999-XX, ingangsdatum 11-12-2008"
|
|
512
|
+
notes: Sidecode 10 for MOPEDS, from 11-12-2008 — eleven years ahead of the car rollout.
|
|
513
|
+
|
|
514
|
+
- id: nl-sidecode11-moped # seed id — PRESERVED
|
|
515
|
+
class: moped
|
|
516
|
+
categories: [moped]
|
|
517
|
+
period: { start: 2015 } # 16-01-2015 (seed said 2015 — confirmed)
|
|
518
|
+
format:
|
|
519
|
+
pattern: "LLL-99-L"
|
|
520
|
+
regex: '\A[A-Z]{3}-\d{2}-[A-Z]\z'
|
|
521
|
+
regex_strict: '\A[DF][BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}-[BDFGHJKLMNPRSTVWXYZ]\z'
|
|
522
|
+
charset: { first_letter: [D, F] }
|
|
523
|
+
design:
|
|
524
|
+
plate: { w: 145, h: 125, unit: mm }
|
|
525
|
+
plate_variants:
|
|
526
|
+
- { w: 100, h: 175, unit: mm, note: "staand model" }
|
|
527
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
528
|
+
foreground: "#000000"
|
|
529
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
530
|
+
region_encoding: none
|
|
531
|
+
sources:
|
|
532
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Brom- en snorfietsen: serie 11, combinatie XXX-99-X, ingangsdatum 16-01-2015"
|
|
533
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # colours + dimensions"
|
|
534
|
+
notes: >-
|
|
535
|
+
Sidecode 11 for MOPEDS, from 16-01-2015 — the pattern's FIRST rollout of all,
|
|
536
|
+
nine years before cars. Seed correction: the seed gave 520x110 as an implied
|
|
537
|
+
default and the D/F rule only in prose; dimensions here are the moped models.
|
|
538
|
+
|
|
539
|
+
- id: nl-sidecode12-specialmoped
|
|
540
|
+
class: moped
|
|
541
|
+
categories: [moped]
|
|
542
|
+
period: { start: 2025 } # 01-07-2025
|
|
543
|
+
format:
|
|
544
|
+
pattern: "E-99-LLL"
|
|
545
|
+
regex: '\AE-\d{2}-[A-Z]{3}\z'
|
|
546
|
+
regex_strict: '\AE-\d{2}-[BDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
547
|
+
charset: { first_letter: [E], notes: "bijzondere bromfietsen begin with E — the one place a VOWEL is issued outside the oplegger exception" }
|
|
548
|
+
design:
|
|
549
|
+
plate: { w: 100, h: 120, unit: mm }
|
|
550
|
+
background: { color: "#7CB9E8", finish: retroreflective, hex_basis: observed }
|
|
551
|
+
foreground: "#000000"
|
|
552
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
553
|
+
note: "model 31.1; mounted at the rear, but front-mounted on Ninebot Urban, Ninebot type E, Trikke and Paukool S1"
|
|
554
|
+
region_encoding: none
|
|
555
|
+
sources:
|
|
556
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Bijzondere bromfietsen: serie 12, combinatie X-99-XXX, ingangsdatum 01-07-2025"
|
|
557
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Bijzondere bromfietsen: eerste letter E"
|
|
558
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # bijzondere bromfiets 100x120 mm; lichtblauw for 25 km/h"
|
|
559
|
+
- "https://www.rdw.nl/zakelijke-partners/erkende-bedrijven/kentekenplaatfabrikanten/extra-eisen-per-kleur-en-model/kentekenplaat-voor-snor-of-bromfiets # bijzondere bromfiets = lichtblauw, model 31.1"
|
|
560
|
+
notes: >-
|
|
561
|
+
Sidecode 12 for BIJZONDERE BROMFIETSEN (special mopeds — e-scooters and
|
|
562
|
+
similar light electric vehicles), from 01-07-2025. The newest NL series and
|
|
563
|
+
the smallest NL plate. Distinct from the 45 km/h bromfiets and the 25 km/h
|
|
564
|
+
snorfiets, both of which carry ordinary moped registrations.
|
|
565
|
+
|
|
566
|
+
# =========================================================================
|
|
567
|
+
# TRAILERS AND SEMI-TRAILERS — RDW "Aanhangwagens" / "Opleggers", both
|
|
568
|
+
# sidecode 4 from 01-10-1988, but different first letters (W vs O), which is
|
|
569
|
+
# exactly why they are two entries and not one.
|
|
570
|
+
# =========================================================================
|
|
571
|
+
- id: nl-sidecode4-trailer
|
|
572
|
+
class: trailer
|
|
573
|
+
categories: [trailer]
|
|
574
|
+
period: { start: 1988 } # 01-10-1988
|
|
575
|
+
format:
|
|
576
|
+
pattern: "WL-99-LL"
|
|
577
|
+
regex: '\AW[A-Z]-\d{2}-[A-Z]{2}\z'
|
|
578
|
+
regex_strict: '\AW[BDFGHJKLMNPRSTVWXYZ]-\d{2}-[BDFGHJKLMNPRSTVWXYZ]{2}\z'
|
|
579
|
+
charset: { first_letter: [W], notes: "trailer registrations always begin with W" }
|
|
580
|
+
design:
|
|
581
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
582
|
+
plate_variants:
|
|
583
|
+
- { w: 340, h: 210, unit: mm }
|
|
584
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
585
|
+
foreground: "#000000"
|
|
586
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
587
|
+
note: "yellow plate + own registration only ABOVE 750 kg maximum permitted mass; at or below 750 kg the trailer repeats the towing vehicle's registration on a white plate"
|
|
588
|
+
region_encoding: none
|
|
589
|
+
sources:
|
|
590
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Aanhangwagens: serie 4, combinatie XX-99-XX, ingangsdatum 01-10-1988"
|
|
591
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Aanhangwagens: eerste letter W"
|
|
592
|
+
- "https://www.rdw.nl/zakelijke-partners/erkende-bedrijven/kentekenplaatfabrikanten/extra-eisen-per-kleur-en-model/kentekenplaat-voor-aanhangwagen-of-caravan # 'Het kenteken van een aanhangwagen begint altijd met de letter W'; >750 kg = eigen kenteken"
|
|
593
|
+
notes: >-
|
|
594
|
+
Sidecode 4 for TRAILERS AND CARAVANS over 750 kg, from 01-10-1988 — the
|
|
595
|
+
oldest continuously-issuing NL series on RDW's table, still not exhausted
|
|
596
|
+
after 38 years.
|
|
597
|
+
|
|
598
|
+
- id: nl-sidecode4-semitrailer
|
|
599
|
+
class: trailer
|
|
600
|
+
categories: [semitrailer]
|
|
601
|
+
period: { start: 1988 } # 01-10-1988
|
|
602
|
+
format:
|
|
603
|
+
pattern: "OL-99-LL"
|
|
604
|
+
regex: '\AO[A-Z]-\d{2}-[A-Z]{2}\z'
|
|
605
|
+
regex_strict: '\AO[ABDEFGHIJKLMNOPRSTUVWXYZ]-\d{2}-[ABDEFGHIJKLMNOPRSTUVWXYZ]{2}\z'
|
|
606
|
+
charset:
|
|
607
|
+
first_letter: [O]
|
|
608
|
+
notes: >-
|
|
609
|
+
Semi-trailer registrations always begin with O — and the no-vowels rule
|
|
610
|
+
is expressly disapplied for opleggers ("met uitzondering van het kenteken
|
|
611
|
+
voor opleggers"), so this is the one NL series whose regex_strict keeps
|
|
612
|
+
the vowels. C and Q remain excluded (nought-lookalikes).
|
|
613
|
+
design:
|
|
614
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
615
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
616
|
+
foreground: "#000000"
|
|
617
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
618
|
+
region_encoding: none
|
|
619
|
+
sources:
|
|
620
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Opleggers: serie 4, combinatie XX-99-XX, ingangsdatum 01-10-1988"
|
|
621
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Opleggers: eerste letter O; no-vowels rule excepted for opleggers"
|
|
622
|
+
notes: >-
|
|
623
|
+
Sidecode 4 for SEMI-TRAILERS, from 01-10-1988 — same pattern and same date as
|
|
624
|
+
trailers but a different letter space, which is why RDW publishes them as two
|
|
625
|
+
tables and why they are two series here.
|
|
626
|
+
|
|
627
|
+
# =========================================================================
|
|
628
|
+
# AGRICULTURAL / MOBILE MACHINERY. First letter T for tractors, mobile
|
|
629
|
+
# machines and MMBS; L for agricultural trailers and interchangeable towed
|
|
630
|
+
# equipment. "L" collides with the pattern DSL's letter placeholder, so the
|
|
631
|
+
# L-prefix survives only in charset + regex_strict (schema stressor).
|
|
632
|
+
# =========================================================================
|
|
633
|
+
- id: nl-sidecode12-agritractor
|
|
634
|
+
class: agricultural
|
|
635
|
+
categories: [tractor, machine]
|
|
636
|
+
period: { start: 2021 } # 01-12-2021
|
|
637
|
+
format:
|
|
638
|
+
pattern: "T-99-LLL"
|
|
639
|
+
regex: '\AT-\d{2}-[A-Z]{3}\z'
|
|
640
|
+
regex_strict: '\AT-\d{2}-[BDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
641
|
+
charset: { first_letter: [T], notes: "agricultural/forestry tractors, mobile machines and MMBS all begin with T" }
|
|
642
|
+
design:
|
|
643
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
644
|
+
plate_variants:
|
|
645
|
+
- { w: 340, h: 210, unit: mm }
|
|
646
|
+
- { w: 210, h: 143, unit: mm, note: "motorcycle-size model permitted for agricultural vehicles" }
|
|
647
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
648
|
+
foreground: "#000000"
|
|
649
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
650
|
+
region_encoding: none
|
|
651
|
+
sources:
|
|
652
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Land- en bosbouwtrekkers (trekkend): serie 12, combinatie X-99-XXX, ingangsdatum 01-12-2021"
|
|
653
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Land-/bosbouwtrekkers, mobiele machines, MMBS'en: eerste letter T"
|
|
654
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # 520x110 / 340x210 / 210x143 for (land)bouwvoertuigen, MMBS, mobiele machines"
|
|
655
|
+
notes: >-
|
|
656
|
+
Sidecode 12 for AGRICULTURAL AND FORESTRY TRACTORS, mobile machines and MMBS,
|
|
657
|
+
from 01-12-2021 — the NL agricultural registration obligation. Sidecode 12
|
|
658
|
+
reached tractors before it reached light commercials (2024) or special
|
|
659
|
+
mopeds (2025).
|
|
660
|
+
|
|
661
|
+
- id: nl-sidecode11-agricultural # seed id — PRESERVED
|
|
662
|
+
class: agricultural
|
|
663
|
+
categories: [trailer] # CORRECTED from the seed's [truck]: this is the
|
|
664
|
+
# agricultural TRAILER / interchangeable towed
|
|
665
|
+
# equipment series (RDW's own table heading).
|
|
666
|
+
period: { start: 2021 } # 01-01-2021 (seed said 2021 — confirmed)
|
|
667
|
+
format:
|
|
668
|
+
pattern: "LLL-99-L"
|
|
669
|
+
regex: '\A[A-Z]{3}-\d{2}-[A-Z]\z'
|
|
670
|
+
regex_strict: '\AL[BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}-[BDFGHJKLMNPRSTVWXYZ]\z'
|
|
671
|
+
charset:
|
|
672
|
+
first_letter: [L]
|
|
673
|
+
notes: >-
|
|
674
|
+
"Het kenteken van een aanhangwagen of verwisselbaar getrokken
|
|
675
|
+
uitrustingsstuk van een land- of bosbouwtrekker, MMBS of mobiele machine
|
|
676
|
+
begint altijd met de letter 'L'." The literal L CANNOT be written into
|
|
677
|
+
format.pattern because L is the pattern DSL's letter placeholder — it
|
|
678
|
+
survives only here and in regex_strict. See the L0 report.
|
|
679
|
+
design:
|
|
680
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
681
|
+
plate_variants:
|
|
682
|
+
- { w: 340, h: 210, unit: mm }
|
|
683
|
+
- { w: 210, h: 143, unit: mm, note: "model 27.10 permitted for agricultural trailers" }
|
|
684
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
685
|
+
foreground: "#000000"
|
|
686
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
687
|
+
region_encoding: none
|
|
688
|
+
sources:
|
|
689
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Land- en bosbouwaanhangwagens en verwisselbare getrokken uitrustingsstukken: serie 11, combinatie XXX-99-X, ingangsdatum 01-01-2021"
|
|
690
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # Land-/bosbouwaanhangwagens: eerste letter L"
|
|
691
|
+
- "https://www.rdw.nl/zakelijke-partners/erkende-bedrijven/kentekenplaatfabrikanten/extra-eisen-per-kleur-en-model/kentekenplaat-voor-aanhangwagen-of-caravan # 'begint altijd met de letter L'"
|
|
692
|
+
notes: >-
|
|
693
|
+
Sidecode 11 for AGRICULTURAL TRAILERS and interchangeable towed equipment,
|
|
694
|
+
from 01-01-2021. Seed correction: the seed carried categories [truck] and
|
|
695
|
+
called this "agricultural vehicles/trailers"; RDW's table separates the
|
|
696
|
+
TOWING agricultural vehicles (sidecode 12, first letter T, 01-12-2021) from
|
|
697
|
+
the TOWED ones (this entry, first letter L, 01-01-2021).
|
|
698
|
+
|
|
699
|
+
# =========================================================================
|
|
700
|
+
# GRENSVERKEER (GV). The only place RDW dates sidecodes 1, 2 and 3, and the
|
|
701
|
+
# only NL series whose LETTER GROUP IS A LITERAL: "GV - altijd in combinatie
|
|
702
|
+
# met 4 cijfers" (cijfers-en-letters). All five GV patterns carry exactly
|
|
703
|
+
# four digits and the pair GV, which is self-consistent with the shapes.
|
|
704
|
+
# =========================================================================
|
|
705
|
+
- id: nl-gv-sidecode1
|
|
706
|
+
class: agricultural
|
|
707
|
+
categories: [tractor, machine]
|
|
708
|
+
period: { start: 1951 }
|
|
709
|
+
format:
|
|
710
|
+
pattern: "GV-99-99"
|
|
711
|
+
regex: '\AGV-\d{2}-\d{2}\z'
|
|
712
|
+
charset: { fixed_letters: "GV", notes: "the letter pair is literally GV" }
|
|
713
|
+
design:
|
|
714
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
715
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
716
|
+
foreground: "#000000"
|
|
717
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
718
|
+
region_encoding: none
|
|
719
|
+
sources:
|
|
720
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Grensverkeer (GV-serie): 1951, afwisselend series 1, 2 en 3; serie 1 = XX-99-99"
|
|
721
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # 'Grensverkeer: GV - altijd in combinatie met 4 cijfers'"
|
|
722
|
+
notes: >-
|
|
723
|
+
GV series on SIDECODE 1 (XX-99-99), from 1951 — RDW's series page states the
|
|
724
|
+
national kenteken began in 1951 and that the GV series ran series 1, 2 and 3
|
|
725
|
+
alternately ("Afwisselend 1, 2 en 3"). CLASS CAVEAT: RDW publishes the GV
|
|
726
|
+
table under its "Landbouwvoertuigen, mobiele machines en MMBS'en" heading, so
|
|
727
|
+
the class is recorded as agricultural on that placement; RDW's plate pages do
|
|
728
|
+
not define the grensverkeer series' scope. Flagged for L1 verification.
|
|
729
|
+
|
|
730
|
+
- id: nl-gv-sidecode2
|
|
731
|
+
class: agricultural
|
|
732
|
+
categories: [tractor, machine]
|
|
733
|
+
period: { start: 1951 }
|
|
734
|
+
format:
|
|
735
|
+
pattern: "99-99-GV"
|
|
736
|
+
regex: '\A\d{2}-\d{2}-GV\z'
|
|
737
|
+
charset: { fixed_letters: "GV" }
|
|
738
|
+
design:
|
|
739
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
740
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
741
|
+
foreground: "#000000"
|
|
742
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
743
|
+
region_encoding: none
|
|
744
|
+
sources:
|
|
745
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Grensverkeer: serie 2 = 99-99-XX, from 1951"
|
|
746
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # GV always with 4 digits"
|
|
747
|
+
notes: >-
|
|
748
|
+
GV series on SIDECODE 2 (99-99-XX), from 1951. One of the three alternating
|
|
749
|
+
1951 shapes; separate entry because a series is one PATTERN, and the parse
|
|
750
|
+
API must be able to score each shape independently.
|
|
751
|
+
|
|
752
|
+
- id: nl-gv-sidecode3
|
|
753
|
+
class: agricultural
|
|
754
|
+
categories: [tractor, machine]
|
|
755
|
+
period: { start: 1951 }
|
|
756
|
+
format:
|
|
757
|
+
pattern: "99-GV-99"
|
|
758
|
+
regex: '\A\d{2}-GV-\d{2}\z'
|
|
759
|
+
charset: { fixed_letters: "GV" }
|
|
760
|
+
design:
|
|
761
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
762
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
763
|
+
foreground: "#000000"
|
|
764
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
765
|
+
region_encoding: none
|
|
766
|
+
sources:
|
|
767
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Grensverkeer: serie 3 = 99-XX-99, from 1951"
|
|
768
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # GV always with 4 digits"
|
|
769
|
+
notes: >-
|
|
770
|
+
GV series on SIDECODE 3 (99-XX-99), from 1951. Third of the three alternating
|
|
771
|
+
1951 shapes.
|
|
772
|
+
|
|
773
|
+
- id: nl-gv-sidecode13
|
|
774
|
+
class: agricultural
|
|
775
|
+
categories: [tractor, machine]
|
|
776
|
+
period: { start: 2016 } # 23-05-2016
|
|
777
|
+
format:
|
|
778
|
+
pattern: "9-GV-999"
|
|
779
|
+
regex: '\A\d-GV-\d{3}\z'
|
|
780
|
+
charset: { fixed_letters: "GV" }
|
|
781
|
+
design:
|
|
782
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
783
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
784
|
+
foreground: "#000000"
|
|
785
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
786
|
+
region_encoding: none
|
|
787
|
+
sources:
|
|
788
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Grensverkeer: serie 13, combinatie 9-XX-999, ingangsdatum 23-05-2016"
|
|
789
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # GV always with 4 digits"
|
|
790
|
+
notes: >-
|
|
791
|
+
GV series on SIDECODE 13, from 23-05-2016. Sidecode 13 exists ONLY for the GV
|
|
792
|
+
series — no other NL category has ever been issued this pattern, which makes
|
|
793
|
+
a 9-GV-999 plate a one-shot identification.
|
|
794
|
+
|
|
795
|
+
- id: nl-gv-sidecode14
|
|
796
|
+
class: agricultural
|
|
797
|
+
categories: [tractor, machine]
|
|
798
|
+
period: { start: 2019 } # 13-06-2019
|
|
799
|
+
format:
|
|
800
|
+
pattern: "999-GV-9"
|
|
801
|
+
regex: '\A\d{3}-GV-\d\z'
|
|
802
|
+
charset: { fixed_letters: "GV" }
|
|
803
|
+
design:
|
|
804
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
805
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed }
|
|
806
|
+
foreground: "#000000"
|
|
807
|
+
band: { side: left, color: "#003399", content: eu-stars+NL }
|
|
808
|
+
region_encoding: none
|
|
809
|
+
sources:
|
|
810
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # Grensverkeer: serie 14, combinatie 999-XX-9, ingangsdatum 13-06-2019"
|
|
811
|
+
- "https://www.rdw.nl/de-kentekenplaat/cijfers-en-letters-op-de-kentekenplaat # GV always with 4 digits"
|
|
812
|
+
notes: >-
|
|
813
|
+
GV series on SIDECODE 14, from 13-06-2019 — the highest sidecode RDW
|
|
814
|
+
publishes, and like sidecode 13 exclusive to the GV series.
|
|
815
|
+
|
|
816
|
+
# =========================================================================
|
|
817
|
+
# HISTORIC (donkerblauw). A DESIGN REGIME laid over pre-existing sidecode
|
|
818
|
+
# 1/2/3 registrations, not a serial series of its own: RDW requires the
|
|
819
|
+
# registration to consist of "2 groepen van 2 cijfers en 1 groep van 2
|
|
820
|
+
# letters", which is exactly sidecodes 1, 2 and 3. Hence three entries plus
|
|
821
|
+
# one for the agricultural exemption.
|
|
822
|
+
# =========================================================================
|
|
823
|
+
- id: nl-historic-darkblue # seed id — PRESERVED
|
|
824
|
+
class: historic
|
|
825
|
+
categories: [car, van, motorcycle]
|
|
826
|
+
period: { start: 1978 }
|
|
827
|
+
period_evidence: eligibility-cutoff # NOT an issuance-start claim; see notes
|
|
828
|
+
format:
|
|
829
|
+
pattern: "LL-99-99"
|
|
830
|
+
regex: '\A[A-Z]{2}-\d{2}-\d{2}\z'
|
|
831
|
+
regex_strict: '\A[BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}-\d{2}\z'
|
|
832
|
+
charset: { notes: "sidecode-1 shape; the historic regime accepts only registrations of 2+2 digits and 2 letters" }
|
|
833
|
+
design:
|
|
834
|
+
plate: { w: 445, h: 105, unit: mm }
|
|
835
|
+
plate_variants:
|
|
836
|
+
- { w: 275, h: 195, unit: mm, note: "rechthoekig" }
|
|
837
|
+
- { w: 200, h: 145, unit: mm, note: "motorcycle, 200 mm maximum" }
|
|
838
|
+
- { w: 310, h: 110, unit: mm, note: "American model 18.2 in dark blue" }
|
|
839
|
+
background: { color: "#1D2E5B", finish: painted, hex_basis: observed }
|
|
840
|
+
foreground: "#FFFFFF"
|
|
841
|
+
band: { side: none }
|
|
842
|
+
note: "models 1.1 to 18.1; no duplicaatcode and no lamineercode, and not registered in GAIK"
|
|
843
|
+
region_encoding: none
|
|
844
|
+
sources:
|
|
845
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # donkerblauwe plaat, DET before 1-1-1978, kenteken = 2 groepen van 2 cijfers en 1 groep van 2 letters; 445x105 / 275x195 / 200x145 / 310x110"
|
|
846
|
+
- "https://www.rdw.nl/de-kentekenplaat/kentekenplaten-voor-oldtimer-aanvragen # eligibility (auto, bedrijfsauto, kampeerauto, motor, landbouwvoertuig, mobiele machine, aanhangwagen >=751 kg); mopeds excluded; EUR 50 to swap to a historisch kenteken"
|
|
847
|
+
- "https://www.rdw.nl/zakelijke-partners/erkende-bedrijven/kentekenplaatfabrikanten/extra-eisen-per-kleur-en-model/donkerblauwe-kentekenplaten-historisch # models 1.1 t/m 18.1; no duplicaatcode/lamineercode; not registered in GAIK"
|
|
848
|
+
notes: >-
|
|
849
|
+
Oldtimer regime on a SIDECODE-1 registration (XX-99-99). SEED CORRECTIONS,
|
|
850
|
+
both material: (1) the seed set `ended: true`; RDW still issues these today
|
|
851
|
+
(the oldtimer page takes applications and prices the swap at EUR 50), so the
|
|
852
|
+
series is OPEN. (2) The seed's pattern was flagged "refine in the L0
|
|
853
|
+
completion pass" — refined here: RDW's eligibility text pins the accepted
|
|
854
|
+
shapes to exactly sidecodes 1, 2 and 3, so the regime is modelled as three
|
|
855
|
+
format entries plus the agricultural exemption. period.start 1978 records the
|
|
856
|
+
ELIGIBILITY CUTOFF ("datum eerste toelating" before 1 January 1978), not an
|
|
857
|
+
issuance start — the date the dark-blue regime itself began is on no RDW page
|
|
858
|
+
and is a recorded gap.
|
|
859
|
+
|
|
860
|
+
- id: nl-historic-darkblue-sidecode2
|
|
861
|
+
class: historic
|
|
862
|
+
categories: [car, van, motorcycle]
|
|
863
|
+
period: { start: 1978 }
|
|
864
|
+
period_evidence: eligibility-cutoff
|
|
865
|
+
format:
|
|
866
|
+
pattern: "99-99-LL"
|
|
867
|
+
regex: '\A\d{2}-\d{2}-[A-Z]{2}\z'
|
|
868
|
+
regex_strict: '\A\d{2}-\d{2}-[BDFGHJKLMNPRSTVWXYZ]{2}\z'
|
|
869
|
+
design:
|
|
870
|
+
plate: { w: 445, h: 105, unit: mm }
|
|
871
|
+
background: { color: "#1D2E5B", finish: painted, hex_basis: observed }
|
|
872
|
+
foreground: "#FFFFFF"
|
|
873
|
+
band: { side: none }
|
|
874
|
+
region_encoding: none
|
|
875
|
+
sources:
|
|
876
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # the 2+2 digits / 2 letters rule admits the sidecode-2 shape 99-99-XX"
|
|
877
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # sidecode 2 = 99-99-XX"
|
|
878
|
+
notes: >-
|
|
879
|
+
Oldtimer regime on a SIDECODE-2 registration (99-99-XX). Second of the three
|
|
880
|
+
shapes RDW's "2 groepen van 2 cijfers en 1 groep van 2 letters" rule admits.
|
|
881
|
+
|
|
882
|
+
- id: nl-historic-darkblue-sidecode3
|
|
883
|
+
class: historic
|
|
884
|
+
categories: [car, van, motorcycle]
|
|
885
|
+
period: { start: 1978 }
|
|
886
|
+
period_evidence: eligibility-cutoff
|
|
887
|
+
format:
|
|
888
|
+
pattern: "99-LL-99"
|
|
889
|
+
regex: '\A\d{2}-[A-Z]{2}-\d{2}\z'
|
|
890
|
+
regex_strict: '\A\d{2}-[BDFGHJKLMNPRSTVWXYZ]{2}-\d{2}\z'
|
|
891
|
+
design:
|
|
892
|
+
plate: { w: 445, h: 105, unit: mm }
|
|
893
|
+
background: { color: "#1D2E5B", finish: painted, hex_basis: observed }
|
|
894
|
+
foreground: "#FFFFFF"
|
|
895
|
+
band: { side: none }
|
|
896
|
+
region_encoding: none
|
|
897
|
+
sources:
|
|
898
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # the 2+2 digits / 2 letters rule admits the sidecode-3 shape 99-XX-99"
|
|
899
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # sidecode 3 = 99-XX-99"
|
|
900
|
+
notes: >-
|
|
901
|
+
Oldtimer regime on a SIDECODE-3 registration (99-XX-99). Third of the three
|
|
902
|
+
admitted shapes. A vehicle whose registration has another shape must first
|
|
903
|
+
swap to a "historisch kenteken" before blue plates can be made.
|
|
904
|
+
|
|
905
|
+
- id: nl-historic-darkblue-agricultural
|
|
906
|
+
class: historic
|
|
907
|
+
categories: [tractor, machine, trailer]
|
|
908
|
+
period: { start: 1978 }
|
|
909
|
+
period_evidence: eligibility-cutoff
|
|
910
|
+
format:
|
|
911
|
+
pattern: "LLL-99-L"
|
|
912
|
+
regex: '\A(?:[A-Z]{2}-\d{2}-\d{2}|\d{2}-\d{2}-[A-Z]{2}|\d{2}-[A-Z]{2}-\d{2}|[A-Z]{2}-\d{2}-[A-Z]{2}|[A-Z]{2}-[A-Z]{2}-\d{2}|\d{2}-[A-Z]{2}-[A-Z]{2}|\d{2}-[A-Z]{3}-\d|\d-[A-Z]{3}-\d{2}|[A-Z]{2}-\d{3}-[A-Z]|[A-Z]-\d{3}-[A-Z]{2}|[A-Z]{3}-\d{2}-[A-Z]|[A-Z]-\d{2}-[A-Z]{3}|\d-[A-Z]{2}-\d{3}|\d{3}-[A-Z]{2}-\d)\z'
|
|
913
|
+
pattern_note: >-
|
|
914
|
+
The pattern shown is ONE representative shape (sidecode 11). This series has
|
|
915
|
+
no format of its own: RDW expressly exempts agricultural vehicles, mobile
|
|
916
|
+
machines and >=751 kg trailers from the 2+2+2 rule ("Bij een landbouwvoertuig
|
|
917
|
+
hoeft het kenteken niet 'historisch' te zijn"), so ANY current NL sidecode may
|
|
918
|
+
appear on a dark-blue plate here. The regex is therefore the union of all
|
|
919
|
+
fourteen RDW-published sidecode shapes.
|
|
920
|
+
design:
|
|
921
|
+
plate: { w: 445, h: 105, unit: mm }
|
|
922
|
+
background: { color: "#1D2E5B", finish: painted, hex_basis: observed }
|
|
923
|
+
foreground: "#FFFFFF"
|
|
924
|
+
band: { side: none }
|
|
925
|
+
region_encoding: none
|
|
926
|
+
sources:
|
|
927
|
+
- "https://www.rdw.nl/de-kentekenplaat/kentekenplaten-voor-oldtimer-aanvragen # agricultural vehicles, mobile machines and trailers >=751 kg need only pre-1978 first admission"
|
|
928
|
+
- "https://www.rdw.nl/zakelijke-partners/erkende-bedrijven/kentekenplaatfabrikanten/extra-eisen-per-kleur-en-model/donkerblauwe-kentekenplaten-historisch # 'Bij een landbouwvoertuig hoeft het kenteken niet historisch te zijn'"
|
|
929
|
+
- "https://www.rdw.nl/de-kentekenplaat/overzicht-van-kentekenseries # the fourteen sidecode shapes the union regex is built from"
|
|
930
|
+
notes: >-
|
|
931
|
+
Oldtimer regime for AGRICULTURAL vehicles, mobile machines, MMBS and trailers
|
|
932
|
+
of 751 kg or more, which RDW exempts from the 2+2+2 registration-shape rule.
|
|
933
|
+
The only NL entry whose regex is a union rather than a single shape.
|
|
934
|
+
|
|
935
|
+
# =========================================================================
|
|
936
|
+
# EXPORT. RDW: the export plate REUSES the vehicle's existing registration,
|
|
937
|
+
# so its regex is the union of all NL shapes, exactly like the agricultural
|
|
938
|
+
# historic entry above, and for the same sourced reason.
|
|
939
|
+
# =========================================================================
|
|
940
|
+
- id: nl-export
|
|
941
|
+
class: export
|
|
942
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer, tractor, machine]
|
|
943
|
+
period: { start: 1951 }
|
|
944
|
+
period_evidence: earliest-underlying-series # the regime's own start is unsourced
|
|
945
|
+
format:
|
|
946
|
+
pattern: "LLL-99-L"
|
|
947
|
+
regex: '\A(?:[A-Z]{2}-\d{2}-\d{2}|\d{2}-\d{2}-[A-Z]{2}|\d{2}-[A-Z]{2}-\d{2}|[A-Z]{2}-\d{2}-[A-Z]{2}|[A-Z]{2}-[A-Z]{2}-\d{2}|\d{2}-[A-Z]{2}-[A-Z]{2}|\d{2}-[A-Z]{3}-\d|\d-[A-Z]{3}-\d{2}|[A-Z]{2}-\d{3}-[A-Z]|[A-Z]-\d{3}-[A-Z]{2}|[A-Z]{3}-\d{2}-[A-Z]|[A-Z]-\d{2}-[A-Z]{3}|\d-[A-Z]{2}-\d{3}|\d{3}-[A-Z]{2}-\d)\z'
|
|
948
|
+
pattern_note: "representative shape only; the regex is the union of all fourteen RDW sidecode shapes because the export plate carries the vehicle's existing registration"
|
|
949
|
+
design:
|
|
950
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
951
|
+
plate_variants:
|
|
952
|
+
- { w: 340, h: 210, unit: mm }
|
|
953
|
+
- { w: 210, h: 143, unit: mm, note: "motorcycle" }
|
|
954
|
+
- { w: 100, h: 175, unit: mm, note: "moped, portrait" }
|
|
955
|
+
- { w: 145, h: 125, unit: mm, note: "moped, landscape" }
|
|
956
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
957
|
+
foreground: "#000000"
|
|
958
|
+
band: { side: none }
|
|
959
|
+
note: "models 27.24 (long) / 27.25 (rectangular) / 27.26 (motorcycle) / 30.13 / 30.14; owners may make these plates themselves; no duplicaatcode, no lamineercode, not registered in GAIK"
|
|
960
|
+
validity: { days: 14, note: "valid 14 days, and never longer than the vehicle's APK (roadworthiness) certificate" }
|
|
961
|
+
region_encoding: none
|
|
962
|
+
sources:
|
|
963
|
+
- "https://www.rdw.nl/de-kentekenplaat/soorten-kentekenplaten # uitvoerkentekenplaat: wit met zwarte cijfers en letters; 'U mag hiervoor het bestaande kenteken van het voertuig gebruiken'; 14 dagen geldig, niet langer dan de APK"
|
|
964
|
+
- "https://www.rdw.nl/zakelijke-partners/erkende-bedrijven/kentekenplaatfabrikanten/extra-eisen-per-kleur-en-model/witte-kentekenplaten-tijdelijk # export models 27.24/27.25/27.26/30.13/30.14; checked against papieren kentekenbewijs deel II voor uitvoer"
|
|
965
|
+
notes: >-
|
|
966
|
+
EXPORT plates (uitvoerkentekenplaat). White with black characters, carrying
|
|
967
|
+
the vehicle's OWN existing registration, valid 14 days. period.start records
|
|
968
|
+
the earliest date any reusable NL registration was issued (1951), not the
|
|
969
|
+
date the export regime began — that date is on no RDW page and is a recorded
|
|
970
|
+
gap. Distinct from the TRANSIT (transito) plate, which issues a NEW number to
|
|
971
|
+
a vehicle that never held a Dutch registration; the transit number's grammar
|
|
972
|
+
is not published by RDW and is therefore NOT modelled here (see the L0 report).
|