vehicles 0.4.1 → 0.8.0
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/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +321 -0
- data/README.md +88 -15
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +10 -0
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/es-provinces.yml +116 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +26 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +1107 -0
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +888 -0
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +1016 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +741 -0
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +18 -2
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +42 -6
- data/lib/vehicles/plates/jurisdiction.rb +32 -0
- data/lib/vehicles/plates/series.rb +291 -0
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +122 -0
- data/lib/vehicles/providers/hosted_provider.rb +49 -58
- data/lib/vehicles/providers/local_provider.rb +4 -3
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +53 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +174 -2
data/data/plates/es.yml
ADDED
|
@@ -0,0 +1,888 @@
|
|
|
1
|
+
# plates/es.yml — Spain (PRD-PLATES gate L0 pilot; PROVINCIAL-HISTORY REDATE
|
|
2
|
+
# PASS, 2026-08-02, to the L1 evidence standard).
|
|
3
|
+
#
|
|
4
|
+
# EVERY format, colour and letter-exclusion claim for the CURRENT series comes
|
|
5
|
+
# from Real Decreto 2822/1998 (Reglamento General de Vehículos) ANEXO XVIII,
|
|
6
|
+
# read in BOTH texts, because they differ and the difference IS the era
|
|
7
|
+
# boundary:
|
|
8
|
+
#
|
|
9
|
+
# * ORIGINAL text, BOE-A-1999-1826, in force 26-07-1999 — its Anexo XVIII
|
|
10
|
+
# I.A.a) still describes the PROVINCIAL ordinary-car system
|
|
11
|
+
# (province contraseña + 4 digits + 1-2 letters), while I.A.b)-d) and all
|
|
12
|
+
# of I.B/I.C already use the modern "prefix letter + 4 digits + 3 letters"
|
|
13
|
+
# shape. RD 2822/1998's own preamble states the novelty: "la supresión de
|
|
14
|
+
# las siglas de la provincia en todas las placas de matrícula, a excepción
|
|
15
|
+
# de las ordinarias de los vehículos automóviles".
|
|
16
|
+
# * ORDEN de 15 de septiembre de 2000, BOE-A-2000-16805, IN FORCE
|
|
17
|
+
# 17-09-2000 — replaces I.A.a) wholesale with the 4-digits + 3-letters
|
|
18
|
+
# national series AND adds the blue EU band (Cuadro 5). Its stated reason:
|
|
19
|
+
# "El sistema actual de numeración ... está próximo a agotarse en las
|
|
20
|
+
# provincias de Madrid y Barcelona".
|
|
21
|
+
# * CONSOLIDATED text (BOE-A-1999-1826-consolidado) — current wording,
|
|
22
|
+
# including the modern additions (decorative geometric designs permitted;
|
|
23
|
+
# ISO/IEC 30116:2016 OCR quality).
|
|
24
|
+
#
|
|
25
|
+
# This settles the "Spanish 2000 cutover" that PRD-PLATES §5.3 flags as a
|
|
26
|
+
# folklore-prone boundary: the instrument is dated, published and its entry
|
|
27
|
+
# into force is stated by BOE itself as 17-09-2000. No averaging required.
|
|
28
|
+
#
|
|
29
|
+
# THE PROVINCIAL HISTORY IS NOW INSTRUMENT-DATED TOO (redate pass). The
|
|
30
|
+
# earlier release of this file carried the INSTRUMENT WINDOW of RD 2822/1998
|
|
31
|
+
# (1999-2000) as the es-provincial period — an instrument date shipped as a
|
|
32
|
+
# series start, the exact defect the L1 period_evidence discipline exists to
|
|
33
|
+
# prevent, and one that produced a user-visible falsehood (a format that ran
|
|
34
|
+
# for three decades displayed as a two-year series). The primaries are now
|
|
35
|
+
# secured, all on boe.es (BOE + Gazeta facsimiles), all fetched 2026-08-02:
|
|
36
|
+
#
|
|
37
|
+
# * DECRETO 2046/1971, de 13 de agosto (BOE núm. 214, 07-09-1971,
|
|
38
|
+
# BOE-A-1971-1149) — rewrites Código de la Circulación arts. 230-234.
|
|
39
|
+
# New art. 231.I is the SUFFIX-LETTERS REFORM, verbatim: "la contraseña
|
|
40
|
+
# de la provincia donde se matricule el vehículo: Un número de cuatro
|
|
41
|
+
# cifras, que irá desde el 0000 al 9999, y una o dos letras de una serie,
|
|
42
|
+
# que comienza por la letra A y termina por las letras ZZ". Disposición
|
|
43
|
+
# final: in force "a los treinta días naturales de su publicación" =
|
|
44
|
+
# 7 OCTOBER 1971 — the folkloric "1971"/"October 1971" start, now dated
|
|
45
|
+
# to the day by its instrument. (Corrección de errores, BOE-A-1971-1472,
|
|
46
|
+
# checked: it does not touch the plate articles.)
|
|
47
|
+
# * The NUMERIC-ONLY provincial era behind it: RD 17-09-1900 (Gaceta 263,
|
|
48
|
+
# 20-09-1900) creates per-province registration; RO 24-05-1907 (Gaceta
|
|
49
|
+
# 160, 09-06-1907) prescribes the first plate FORMAT (contraseña + guión
|
|
50
|
+
# + number, black on white); re-enacted by the Reglamentos of 23-07-1918
|
|
51
|
+
# and 15-06-1926 and by the Código de la Circulación arts. 230-233
|
|
52
|
+
# (Decreto 25-09-1934, in force 01-11-1934 per BOE-A-1934-9025); closed
|
|
53
|
+
# by Decreto 2046/1971 (disposición transitoria primera keeps the old
|
|
54
|
+
# plates valid indefinitely).
|
|
55
|
+
#
|
|
56
|
+
# COLOUR POLICY: Anexo XVIII Cuadro 3 specifies, per colour, a FOUR-CORNER
|
|
57
|
+
# CIE chromaticity box plus a MINIMUM luminance factor. That constrains a
|
|
58
|
+
# GAMUT, not a value — so no single hex is a sourced claim. Each design below
|
|
59
|
+
# therefore carries `hex_basis: observed` for the rendered hex, plus
|
|
60
|
+
# `color_spec` with the cited Cuadro 3 box, plus `hex_cie_centroid` (the box
|
|
61
|
+
# centroid converted to sRGB at maximum in-gamut luminance) so the render
|
|
62
|
+
# layer can choose a spec-anchored value instead of the conventional one.
|
|
63
|
+
jurisdiction: es
|
|
64
|
+
authority:
|
|
65
|
+
name: Dirección General de Tráfico (DGT) — Reglamento General de Vehículos, RD 2822/1998, Anexo XVIII
|
|
66
|
+
url: "https://www.boe.es/buscar/act.php?id=BOE-A-1999-1826"
|
|
67
|
+
binding: vehicle
|
|
68
|
+
|
|
69
|
+
charset_defaults:
|
|
70
|
+
letters: [B, C, D, F, G, H, J, K, L, M, N, P, R, S, T, V, W, X, Y, Z]
|
|
71
|
+
excluded_letters: [A, E, I, O, U, "Ñ", Q]
|
|
72
|
+
excluded_digraphs: [CH, LL]
|
|
73
|
+
excluded_letters_note: >-
|
|
74
|
+
Anexo XVIII, verbatim: "tres letras, empezando por las letras BBB y
|
|
75
|
+
terminando por las letras ZZZ, suprimiéndose las cinco vocales, y las letras
|
|
76
|
+
Ñ y Q" — with the reasons given in the text itself: the vowels "se evitan
|
|
77
|
+
palabras malsonantes o acrósticos especialmente significados"; Ñ and Q "por
|
|
78
|
+
ser fácil su confusión con la letra N y el número 0, respectivamente"; and
|
|
79
|
+
CH and LL "por incompatibilidad con el diseño de la placa de matrícula que no
|
|
80
|
+
admitiría la consignación de cuatro caracteres en el último grupo". That
|
|
81
|
+
leaves exactly 20 letters. Note the sequence starts at BBB, NOT AAA.
|
|
82
|
+
source: "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A: the BBB->ZZZ rule and every exclusion, verbatim"
|
|
83
|
+
|
|
84
|
+
color_spec_table: # cited once; referenced by each design below
|
|
85
|
+
source: "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII Cuadro 3, 'Coordenadas cromáticas' + luminance factors"
|
|
86
|
+
blanco: { cie_x: [0.355, 0.305, 0.285, 0.335], cie_y: [0.355, 0.305, 0.325, 0.375], luminance_factor_min: 0.35 }
|
|
87
|
+
rojo: { cie_x: [0.690, 0.595, 0.569, 0.655], cie_y: [0.310, 0.315, 0.341, 0.345], luminance_factor_min: 0.05 }
|
|
88
|
+
verde: { cie_x: [0.007, 0.248, 0.177, 0.026], cie_y: [0.703, 0.409, 0.362, 0.399], luminance_factor_min: 0.04 }
|
|
89
|
+
azul: { cie_x: [0.078, 0.150, 0.210, 0.137], cie_y: [0.171, 0.220, 0.160, 0.038], luminance_factor_min: 0.01 }
|
|
90
|
+
amarillo: { cie_x: [0.545, 0.487, 0.427, 0.465], cie_y: [0.454, 0.423, 0.483, 0.534], luminance_factor_min: 0.27 }
|
|
91
|
+
|
|
92
|
+
display_rules: # Anexo XVIII III, verbatim-sourced
|
|
93
|
+
two_plates: "automóviles except motorcycles and three-wheelers: one front (vertical axis on the median longitudinal plane; exceptionally left or right if construction forbids) and one rear"
|
|
94
|
+
one_plate_rear_only: "ciclomotores, motocicletas, vehículos de tres ruedas, cuatriciclos ligeros y pesados — one rear plate only; light and heavy quadricycles MAY additionally carry a front plate of the same characteristics"
|
|
95
|
+
trailers: "remolques/semirremolques over 750 kg carry their own plate at the rear plus, on the right, a second plate bearing the TOWING vehicle's registration; lighter ones carry only a repeat of the towing vehicle's registration"
|
|
96
|
+
source: "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII III. Número y ubicación de las placas"
|
|
97
|
+
|
|
98
|
+
series:
|
|
99
|
+
|
|
100
|
+
# =========================================================================
|
|
101
|
+
# THE CURRENT NATIONAL SERIES — 4 digits + 3 letters, EU band.
|
|
102
|
+
# =========================================================================
|
|
103
|
+
- id: es-national-2000
|
|
104
|
+
class: standard
|
|
105
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
106
|
+
period: { start: 2000 } # Orden de 15-09-2000, in force 17-09-2000
|
|
107
|
+
period_evidence: instrument-in-force
|
|
108
|
+
matching: strict
|
|
109
|
+
format:
|
|
110
|
+
pattern: "9999 LLL"
|
|
111
|
+
regex: '\A\d{4} [A-Z]{3}\z'
|
|
112
|
+
regex_strict: '\A\d{4} [BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
113
|
+
charset:
|
|
114
|
+
letters: [B, C, D, F, G, H, J, K, L, M, N, P, R, S, T, V, W, X, Y, Z]
|
|
115
|
+
notes: "see charset_defaults; digits run 0000-9999; the letter group runs BBB to ZZZ"
|
|
116
|
+
progression: >-
|
|
117
|
+
Digits cycle 0000-9999 within a fixed letter triple, then the letter triple
|
|
118
|
+
advances one step in the 20-letter alphabet. Nationally sequential and
|
|
119
|
+
MONOTONIC from BBB, which makes the letter triple an approximate-age signal
|
|
120
|
+
and the ONLY decodable dimension of a post-2000 Spanish plate — there is no
|
|
121
|
+
geography whatsoever in this series.
|
|
122
|
+
separator_note: >-
|
|
123
|
+
Anexo XVIII prescribes "dos grupos de caracteres" and gives the inter-group
|
|
124
|
+
spacing in mm (Cuadro 1: 41 mm on the ordinaria larga) but prescribes no
|
|
125
|
+
separator GLYPH. The space in the pattern is the printed gap.
|
|
126
|
+
design:
|
|
127
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
128
|
+
plate_variants:
|
|
129
|
+
- { w: 340, h: 220, unit: mm, reflective_surface: { w: 330, h: 210 }, note: "ordinaria alta (two-line)" }
|
|
130
|
+
- { w: 340, h: 110, unit: mm, reflective_surface: { w: 330, h: 100 }, note: "ordinaria larga delantera — the small FRONT plate, for M1 vehicles whose mounting cannot take the long plate, and for three-wheelers and quadricycles" }
|
|
131
|
+
- { w: 220, h: 160, unit: mm, reflective_surface: { w: 210, h: 150 }, note: "motocicletas ordinaria" }
|
|
132
|
+
- { w: 132, h: 96, unit: mm, reflective_surface: { w: 122, h: 86 }, note: "motocicletas corta — trial and enduro two-wheelers only" }
|
|
133
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: 41, unit: mm, note: "ordinaria larga; the 340x110 front plate uses 30 x 60 with a 6 mm stroke; motorcycle plates 30 x 60 / 6 mm; motocicletas corta 13 x 30 / 3.5 mm" }
|
|
134
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FFFEF3", spec: blanco }
|
|
135
|
+
foreground: "#000000"
|
|
136
|
+
foreground_note: "caracteres estampados EN RELIEVE, pintados en color negro MATE — the statute specifies embossed characters and a matte finish, which the render layer should record even if it cannot depict it"
|
|
137
|
+
band: { side: left, color: "#003399", content: eu-stars+E, hex_basis: observed, spec: azul }
|
|
138
|
+
band_note: >-
|
|
139
|
+
"sobre una banda azul dispuesta verticalmente, el símbolo de la bandera
|
|
140
|
+
europea, que constará de 12 estrellas de color amarillo, y la sigla
|
|
141
|
+
distintiva de España representada por la letra E de color blanco, de
|
|
142
|
+
acuerdo con el cuadro 5". CUADRO 5 IS TITLED "DIMENSIONES Y COLORES DEL
|
|
143
|
+
DISTINTIVO COMUNITARIO (Dimensiones en mm.)" but renders as a DRAWING in
|
|
144
|
+
the BOE consolidated PDF — the millimetres are not text-extractable.
|
|
145
|
+
Corrects the EU dossier's expectation that ES Anexo XVIII Cuadro 5 supplies
|
|
146
|
+
Euroband geometry as text.
|
|
147
|
+
decoration_allowed: >-
|
|
148
|
+
Consolidated text only: "se permite la inclusión de diseños geométricos sin
|
|
149
|
+
significado reconocible, siempre que no afecten a las condiciones de
|
|
150
|
+
retrorreflexión y legibilidad", subject to ISO/IEC 30116:2016 OCR quality
|
|
151
|
+
testing. A modern addition absent from the 1999 original.
|
|
152
|
+
emblem: { present: false }
|
|
153
|
+
rear_differs: false
|
|
154
|
+
plate_construction: { border: "reborde plano sin cubrir ni pintar, 5 mm wide around the whole contour, embossed 0.8 +/-0.1 mm", corner_radius: { inner: 6, outer: 10, unit: mm }, character_relief: "0.9 mm +0.3/-0.2 above the ground", manipulator_number: "stamped in a 35 x 5 mm rectangle inside the left-hand bead" }
|
|
155
|
+
region_encoding: none
|
|
156
|
+
variants:
|
|
157
|
+
- class: taxi
|
|
158
|
+
design:
|
|
159
|
+
rear_differs: true
|
|
160
|
+
rear: { background: { color: "#003399", finish: retroreflective, hex_basis: observed, spec: azul }, foreground: "#FFFFFF" }
|
|
161
|
+
front: { background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }, foreground: "#000000" }
|
|
162
|
+
note: >-
|
|
163
|
+
THE REAR PLATE ONLY is blue with white matte characters, for taxis and for
|
|
164
|
+
hire-with-driver vehicles of up to nine seats. The front plate stays
|
|
165
|
+
white/black. Same serial, same period, so a sub-entry per PRD-PLATES §2.3
|
|
166
|
+
— but note this is a genuine front/rear ASYMMETRY, not a colour-only
|
|
167
|
+
swap, and secondary sources routinely get it wrong by colouring both.
|
|
168
|
+
sources:
|
|
169
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.a) and Cuadro 1 note (7): 'salvo las placas de matrícula TRASERAS de los vehículos destinados al servicio de taxi y de alquiler con conductor de hasta nueve plazas'"
|
|
170
|
+
- class: motorcycle
|
|
171
|
+
design: { plate: { w: 220, h: 160, unit: mm } }
|
|
172
|
+
note: "Motorcycles carry the SAME national serial on a 220 x 160 plate (122 x 86 reflective on the 132 x 96 trial/enduro plate). Size-only variant, hence a sub-entry; recorded with a class so class-keyed queries can still reach it."
|
|
173
|
+
sources:
|
|
174
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII Cuadro 1: Motocicletas ordinaria 220x160 / 210x150; Motocicletas corta 132x96"
|
|
175
|
+
sources:
|
|
176
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-2000-16805 # Orden de 15-09-2000: replaces Anexo XVIII I.A.a) with '4 cifras + 3 letras' and adds the EU band; BOE's own Análisis block states 'Fecha de entrada en vigor: 17/09/2000'"
|
|
177
|
+
- "https://www.boe.es/eli/es/o/2000/09/15/(1) # canonical ELI for that Orden"
|
|
178
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.a) current wording: white retroreflective ground, black matte embossed characters, 4 digits 0000-9999 + 3 letters BBB->ZZZ minus vowels/Ñ/Q; Cuadro 1 dimensions; Cuadro 3 colour boxes"
|
|
179
|
+
- "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:31998R2411 # Reg. 2411/98 Art. 3 — the mutual-recognition rule the Orden's preamble invokes by name"
|
|
180
|
+
notes: >-
|
|
181
|
+
THE CURRENT SPANISH SERIES. Purely sequential and non-geographic: the 2000
|
|
182
|
+
reform deliberately removed the province code. Anexo XVIII adds the
|
|
183
|
+
reciprocal-recognition clause in terms: a Spanish car whose plate shows the EU
|
|
184
|
+
flag and the E sign "no será necesario que lleven en su parte posterior el
|
|
185
|
+
signo distintivo de la nacionalidad española previsto en la señal V-7".
|
|
186
|
+
DIMENSION CORRECTION worth recording: the statute says 520 x 110 mm, not the
|
|
187
|
+
500 x 110 that circulates in secondary sources. START-DATE FOLKLORE FLAG
|
|
188
|
+
(redate pass): the legal start is 17-09-2000 (disposición final única:
|
|
189
|
+
"el día siguiente al de su publicación", BOE 223 of 16-09-2000; BOE Análisis
|
|
190
|
+
concurs) — a SUNDAY. The widely repeated "18 September 2000" is the first
|
|
191
|
+
working day, an issuance-practice date; both are true statements about
|
|
192
|
+
different things, and the instrument date is the one recorded here.
|
|
193
|
+
|
|
194
|
+
# =========================================================================
|
|
195
|
+
# THE 1971-2000 PROVINCIAL SUFFIX-LETTERS SERIES (redated; was 1999-2000).
|
|
196
|
+
# =========================================================================
|
|
197
|
+
- id: es-provincial
|
|
198
|
+
class: standard
|
|
199
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
200
|
+
period: { start: 1971, end: 2000 }
|
|
201
|
+
period_evidence: instrument-dated-both-ends
|
|
202
|
+
matching: strict
|
|
203
|
+
format:
|
|
204
|
+
pattern: "LL-9999-LL"
|
|
205
|
+
regex: '\A[A-Z]{1,2}-\d{4}-[A-Z]{1,2}\z'
|
|
206
|
+
regex_strict: '\A(?:AB|AL|AV|BA|BI|BU|CA|CC|CE|CO|CR|CS|CU|GC|GE|GI|GR|GU|HU|IB|LE|LO|LU|MA|ML|MU|NA|OR|OU|PM|PO|SA|SE|SG|SH|SO|SS|TE|TF|TO|VA|VI|ZA|A|B|C|H|J|L|M|O|P|S|T|V|Z)-\d{4}-[A-Z]{1,2}\z'
|
|
207
|
+
charset:
|
|
208
|
+
notes: >-
|
|
209
|
+
TWO ENUMERATING INSTRUMENTS, three decades apart, SAME WORDING. Código de
|
|
210
|
+
la Circulación art. 231.I as rewritten by Decreto 2046/1971 (in force
|
|
211
|
+
07-10-1971), verbatim: "la contraseña de la provincia donde se matricule
|
|
212
|
+
el vehículo: Un número de cuatro cifras, que irá desde el 0000 al 9999, y
|
|
213
|
+
una o dos letras de una serie, que comienza por la letra A y termina por
|
|
214
|
+
las letras ZZ, sin emplearse aquellas letras del alfabeto que puedan dar
|
|
215
|
+
lugar a confusión." Anexo XVIII I.A.a) of RD 2822/1998 as ORIGINALLY
|
|
216
|
+
enacted re-states it near-verbatim. Note the trailing letter group starts
|
|
217
|
+
at A (not BBB) and is ONE OR TWO letters, and that the excluded letters
|
|
218
|
+
are NOT enumerated in either text — hence regex_strict keeps [A-Z]{1,2}
|
|
219
|
+
for that group and constrains only the province contraseña, which IS
|
|
220
|
+
enumerated twice: art. 233 as rewritten 1971 (includes GE Gerona, OR
|
|
221
|
+
Orense, PM Baleares, SH Sahara) and Anexo XVIII II.A 1998 (52 codes;
|
|
222
|
+
GI, OU, IB replace GE, OR, PM after the province renames; no SH).
|
|
223
|
+
regex_strict is the UNION of both lists — 56 codes — because plates under
|
|
224
|
+
every one of them were lawfully issued inside this period. The SH reading
|
|
225
|
+
comes from a degraded facsimile ("Sahara ... SH" in the BOE scan) and is
|
|
226
|
+
flagged for the verifier.
|
|
227
|
+
progression: >-
|
|
228
|
+
Within a province the four digits cycle 0000-9999, then the trailing letter
|
|
229
|
+
group advances one step in a series the statute itself orders: "comienza
|
|
230
|
+
por la letra A y termina por las letras ZZ" — SINGLE letters first (M-1234-A),
|
|
231
|
+
TWO letters after Z was exhausted (M-1234-AB), which is why the suffix
|
|
232
|
+
count is an intra-series progression and not a separate series. Each
|
|
233
|
+
province advanced at its own registration rate, so the same suffix letter
|
|
234
|
+
maps to different years in different provinces — suffix decoding is
|
|
235
|
+
per-province or nothing. The Orden of 15-09-2000's preamble confirms the
|
|
236
|
+
exhaustion dynamic: the system "está próximo a agotarse en las provincias
|
|
237
|
+
de Madrid y Barcelona".
|
|
238
|
+
separator_note: >-
|
|
239
|
+
The GUIÓN IS STATUTORY in this era: the dimensions table of art. 232 as
|
|
240
|
+
rewritten by Decreto 2046/1971 carries an explicit "Longitud del guión"
|
|
241
|
+
row (as did its 1907, 1918, 1926 and 1934 predecessors for the numeric
|
|
242
|
+
era). The 1999 Anexo XVIII re-enactment prescribes group spacing in mm
|
|
243
|
+
without naming the glyph; the hyphen in the pattern is the statutory
|
|
244
|
+
printed separator, not a convention.
|
|
245
|
+
design:
|
|
246
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
247
|
+
plate_variants:
|
|
248
|
+
- { w: 340, h: 220, unit: mm, note: "ordinaria alta con siglas de provincia" }
|
|
249
|
+
- { w: 340, h: 110, unit: mm, note: "ordinaria larga delantera con siglas de provincia" }
|
|
250
|
+
- { w: 220, h: 160, unit: mm, note: "motocicletas ordinaria con siglas de provincia" }
|
|
251
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 8, group_gap: 27, unit: mm }
|
|
252
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }
|
|
253
|
+
foreground: "#000000"
|
|
254
|
+
band: { side: none }
|
|
255
|
+
note: >-
|
|
256
|
+
No EU band: the band arrived with the Orden of 15-09-2000. Owners of
|
|
257
|
+
pre-2000 vehicles MAY voluntarily re-plate to the banded design while
|
|
258
|
+
KEEPING their provincial registration (Disposición transitoria primera), and
|
|
259
|
+
MUST adopt the new dimensions if they replace plates after loss, theft or
|
|
260
|
+
deterioration (Disposición transitoria segunda) — which is why the
|
|
261
|
+
consolidated Cuadro 1 still carries four "con siglas de provincia" rows
|
|
262
|
+
today, footnoted "Placas de matrícula con arreglo a lo establecido en las
|
|
263
|
+
disposiciones transitorias de la Orden de 15 de septiembre de 2000".
|
|
264
|
+
design_history: >-
|
|
265
|
+
The dimensions above are the 1999 Cuadro 1 values, which govern the era's
|
|
266
|
+
tail and every replacement plate made since. For 1971-1999 the governing
|
|
267
|
+
text was the Código de la Circulación as rewritten by Decreto 2046/1971:
|
|
268
|
+
art. 230.II, verbatim, "El fondo de las placas será reflectante, de color
|
|
269
|
+
blanco para los automóviles y rojo para los remolques y semirremolques.
|
|
270
|
+
Las letras y números serán de color negro mate" — so white REFLECTIVE
|
|
271
|
+
ground with black matte characters is a 1971 statutory fact, not a
|
|
272
|
+
1980s-retrofit folklore date. Art. 232's table gives the era's placa larga
|
|
273
|
+
as 490 x 100 mm (not 520 x 110, which arrived with RD 2822/1998); the
|
|
274
|
+
490 x 100 reading is from the BOE facsimile's partially degraded table and
|
|
275
|
+
is flagged for the verifier.
|
|
276
|
+
region_encoding: "plates/_decode/es-provinces.yml"
|
|
277
|
+
sources:
|
|
278
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-1971-1149 # Decreto 2046/1971, de 13 de agosto (BOE 214, 07-09-1971): art. 231.I = the suffix-letters format verbatim; art. 230.II colours; art. 232 dimensions + guión; art. 233 the 1971 contraseña list (GE, OR, PM, SH); disposición final = in force 30 días naturales after publication -> 07-10-1971; DT 1.ª old numeric plates keep validity. Facsimile: https://www.boe.es/boe/dias/1971/09/07/pdfs/A14559-14572.pdf — accessed 2026-08-02"
|
|
279
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-1971-1472 # Corrección de errores of Decreto 2046/1971 (BOE 275, 17-11-1971) — READ AND CHECKED: fixes arts. 146/165/208-209/24x only; the plate articles stand as published. Accessed 2026-08-02"
|
|
280
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-1999-1826 # ORIGINAL RD 2822/1998 text, Anexo XVIII I.A.a): province contraseña + 4 digits + 1-2 letters (A..ZZ) re-enacted; BOE Análisis block: 'Fecha de entrada en vigor: 26/07/1999'"
|
|
281
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-2000-16805 # the Orden that ENDED new issuance in this format: disposición final única 'entrará en vigor el día siguiente al de su publicación' (BOE 223, 16-09-2000) -> in force 17-09-2000, stated by BOE's own Análisis; plus both disposiciones transitorias (voluntary re-plating; mandatory new dimensions on replacement). Accessed 2026-08-02"
|
|
282
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.A: the 52 province contraseñas of the 1998 list; Cuadro 1 'con siglas de provincia' rows"
|
|
283
|
+
notes: >-
|
|
284
|
+
THE PROVINCIAL SUFFIX-LETTERS SYSTEM, 1971-2000 — Spain's only
|
|
285
|
+
region-decodable modern series, REDATED in the 2026-08-02 pass. Start:
|
|
286
|
+
Decreto 2046/1971 published BOE 07-09-1971, in force at 30 días naturales =
|
|
287
|
+
7 OCTOBER 1971 (its own disposición final; the commonly repeated "October
|
|
288
|
+
1971" is thereby confirmed and dated to the day). End for NEW registrations:
|
|
289
|
+
Orden de 15-09-2000, in force 17-09-2000 (disposición final única + BOE
|
|
290
|
+
Análisis). FOLKLORE FLAG, recorded not averaged: the enthusiast web and
|
|
291
|
+
Wikipedia commonly give 18 September 2000 — 17-09-2000 was a SUNDAY, so the
|
|
292
|
+
first national-series plates were ISSUED Monday the 18th; that is an
|
|
293
|
+
issuance-practice date, not the legal boundary, and the instrument date
|
|
294
|
+
stands. The former release of this entry carried period 1999-2000 (the RD
|
|
295
|
+
2822/1998 instrument window) with the honest caveat that no 1971 primary was
|
|
296
|
+
secured; the primary is now secured and the period is corrected. The id
|
|
297
|
+
stays `es-provincial` (not `es-provincial-1971`) under the id contract
|
|
298
|
+
(PRD-QUALITY I-5/I-6): amend, never rename. Plates already issued remain
|
|
299
|
+
valid indefinitely and are re-issued on request; RGV Art. 27.2 lets an owner
|
|
300
|
+
swap a provincial plate for a national one on a change of province.
|
|
301
|
+
REMAINING GAPS at point of use: (1) the instruments that switched GE->GI,
|
|
302
|
+
OR->OU and PM->IB on plates after the 1992/1997/1998 province renames were
|
|
303
|
+
not chased — the 1998 Anexo XVIII list is the pinned post-rename authority;
|
|
304
|
+
(2) SH (Sahara) issuance necessarily ended with Spain's 1976 withdrawal, but
|
|
305
|
+
no instrument closing the code was located; (3) the per-province single- to
|
|
306
|
+
two-letter switchover dates are administrative allocation, published nowhere
|
|
307
|
+
located in this pass.
|
|
308
|
+
|
|
309
|
+
# =========================================================================
|
|
310
|
+
# THE NUMERIC-ONLY PROVINCIAL ERA, 1900-1971 (new in the redate pass).
|
|
311
|
+
# One recall-only series for seven decades of one continuous per-province
|
|
312
|
+
# numbering scheme whose surface details (code list, digit count) were
|
|
313
|
+
# revised by successive instruments — the era boundary INSIDE the era is
|
|
314
|
+
# soft, so a regex hit here is a shape claim, never a validity claim.
|
|
315
|
+
# =========================================================================
|
|
316
|
+
- id: es-provincial-numeric
|
|
317
|
+
class: standard
|
|
318
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
319
|
+
period: { start: 1900, end: 1971 }
|
|
320
|
+
period_evidence: instrument-dated-both-ends
|
|
321
|
+
matching: recall-only
|
|
322
|
+
format:
|
|
323
|
+
pattern: "LL-999999"
|
|
324
|
+
regex: '\A[A-Z]{1,3}-\d{1,6}\z'
|
|
325
|
+
pattern_note: >-
|
|
326
|
+
REPRESENTATIVE ONLY, and the regex is deliberately wide — hence
|
|
327
|
+
recall-only. The contraseña ran ONE TO THREE letters: the 1907 list
|
|
328
|
+
includes three-letter codes (Albacete ALB, Cáceres CAC, Castellón CAS,
|
|
329
|
+
Segovia SEG, Teruel TER), trimmed in later lists. The number is the
|
|
330
|
+
province's permit order number with NO fixed width — it grew with the
|
|
331
|
+
province's registrations, from 1 digit to 6 (art. 233 of the 1934 Código
|
|
332
|
+
contemplates "cinco o más cifras" and Madrid exceeded 600000 before
|
|
333
|
+
1971). No single regex is the grammar of any one year of this era.
|
|
334
|
+
progression: >-
|
|
335
|
+
Strictly sequential per province: the number is "el número de orden del
|
|
336
|
+
permiso de circulación" (1918 art. 13.d, 1926 art. 15.d, 1934 art. 232
|
|
337
|
+
— the 1907 text says "de la licencia"). Province + number therefore
|
|
338
|
+
encodes registration order within the province, which is why period
|
|
339
|
+
photographs can be dated by plate number against provincial totals —
|
|
340
|
+
an inference for the encyclopedia, not for this dataset.
|
|
341
|
+
separator_note: >-
|
|
342
|
+
The guión is statutory throughout: 1907 concl. 3.ª "separado por un
|
|
343
|
+
guión", and every subsequent dimensions table (1918, 1926, 1934) carries
|
|
344
|
+
a "Longitud del guión" row.
|
|
345
|
+
design:
|
|
346
|
+
background: { color: "#FFFFFF", finish: painted, hex_basis: observed, note: "no colour spec exists for this era beyond the words; no reflectivity requirement — reflectante arrives with Decreto 2046/1971" }
|
|
347
|
+
foreground: "#000000"
|
|
348
|
+
band: { side: none }
|
|
349
|
+
note: >-
|
|
350
|
+
BLACK ON WHITE FOR THE WHOLE ERA, by four successive instruments: 1907
|
|
351
|
+
concl. 3.ª "Las letras de la contraseña y el número se pintarán en negro
|
|
352
|
+
sobre fondo blanco"; 1918 art. 13.e) and 1926 art. 15.e) "caracteres
|
|
353
|
+
negros sobre fondo blanco"; 1934 art. 232 "caracteres latinos negros, de
|
|
354
|
+
trazo de ancho uniforme, sobre fondo blanco liso". Verified against the
|
|
355
|
+
primaries because mid-century dark plates are a neighbouring-country
|
|
356
|
+
pattern (PT, FR) that misattaches to Spain in collector folklore. The
|
|
357
|
+
1934 Código also fixes character metrics (art. 233 table) and a
|
|
358
|
+
two-line rear layout option once the number reaches five digits
|
|
359
|
+
("podrá colocarse en la placa posterior la contraseña de la provincia
|
|
360
|
+
centrada y encima del número", plate height then min 260 mm).
|
|
361
|
+
region_encoding: "plates/_decode/es-provinces.yml"
|
|
362
|
+
region_encoding_note: >-
|
|
363
|
+
PERIOD-DISCIPLINE CAVEAT: the decode table is the 1998 Anexo XVIII list.
|
|
364
|
+
This era's lists differ per instrument (1907, 1918, 1926, 1934 art. 232,
|
|
365
|
+
1971 art. 233): three-letter codes until at latest 1926, no Gran
|
|
366
|
+
Canaria/Tenerife split in 1907, Sahara SH in the 1971 list. Historical
|
|
367
|
+
decode rows are L4 work (PRD-PLATES §7) — recorded gap.
|
|
368
|
+
sources:
|
|
369
|
+
- "https://www.boe.es/datos/pdfs/BOE/1900/263/A01141-01142.pdf # RD 17-09-1900 (Gaceta de Madrid 263, 20-09-1900, pp. 1141-1142), 'Reglamento para el servicio de coches automóviles por las carreteras': per-province authorization + 'En el Gobierno civil de cada provincia habrá un registro general de este servicio' (art. 6); vehicle inscriptions required but NO plate format prescribed. Accessed 2026-08-02"
|
|
370
|
+
- "https://www.boe.es/gazeta/dias/1907/06/09/pdfs/GMD-1907-160.pdf # RO 24-05-1907 (Gaceta 160, 09-06-1907): THE FIRST PLATE FORMAT — concl. 3.ª two plates, 'la contraseña de la provincia, y á continuación y separado por un guión el número de orden de la licencia', black on white; concl. 5.ª the first contraseña list (1-3 letters); concl. 6.ª dimensions. Its preamble states pre-1907 display was non-uniform ('exige uniformar el criterio'). Accessed 2026-08-02"
|
|
371
|
+
- "https://www.boe.es/datos/pdfs/BOE/1918/205/A00231-00237.pdf # RD 23-07-1918 (Gaceta 205, 24-07-1918), Reglamento art. 13.d)-f): same composition, revised code list, black on white. Locator page: https://www.boe.es/buscar/doc.php?id=BOE-A-1918-3950 — accessed 2026-08-02"
|
|
372
|
+
- "https://www.boe.es/datos/pdfs/BOE/1926/170/A01642-01654.pdf # RD 15-06-1926 (Gaceta 170, 19-06-1926), Reglamento art. 15.a)-g): two plates, contraseña + guión + permit number, black on white, revised list incl. Ceuta and Melilla. Locator: https://www.boe.es/buscar/doc.php?id=BOE-A-1926-6136 — accessed 2026-08-02"
|
|
373
|
+
- "https://www.boe.es/datos/pdfs/BOE/1934/269/A02634-02677.pdf # Código de la Circulación (Decreto 25-09-1934, Gaceta 269, 26-09-1934), arts. 230-233: the era's final numeric-format text, quoted in design.note above. Locator: https://www.boe.es/buscar/doc.php?id=BOE-A-1934-8197 — accessed 2026-08-02"
|
|
374
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-1934-9025 # Orden circular (Gaceta 294, 21-10-1934): the Código's entry into force is 1 November 1934. Accessed 2026-08-02"
|
|
375
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-1971-1149 # Decreto 2046/1971: ENDS the era at its own entry into force, 07-10-1971; DT 1.ª, verbatim: 'Los automóviles, remolques y semirremolques, matriculados en la fecha de entrada en vigor de este Decreto, conservarán la contraseña y número de su matrícula indefinidamente'. Accessed 2026-08-02"
|
|
376
|
+
notes: >-
|
|
377
|
+
THE NUMERIC-ONLY PROVINCIAL ERA (PP-NNNNNN), 1900-1971, modelled as ONE
|
|
378
|
+
recall-only series because it is one continuous per-province sequential
|
|
379
|
+
numbering — a vehicle registered in 1905 kept its number under every later
|
|
380
|
+
reglamento — while its surface rules shifted instrument by instrument.
|
|
381
|
+
PERIOD HONESTY, stated at point of use: 1900 dates the REGISTRATION regime
|
|
382
|
+
(RD 17-09-1900); the earliest plates displayed province + number
|
|
383
|
+
NON-UNIFORMLY, as the 1907 preamble itself testifies; the prescribed
|
|
384
|
+
FORMAT begins with RO 24-05-1907. A consumer needing the format-instrument
|
|
385
|
+
window should read 1907, and both dates are pinned above. The era closes
|
|
386
|
+
on 07-10-1971 (Decreto 2046/1971 in force), with old plates valid
|
|
387
|
+
indefinitely (DT 1.ª) — so numeric plates remained ON THE ROAD for decades
|
|
388
|
+
past 1971, exactly as provincial suffix plates remain today. The 1900
|
|
389
|
+
start also honours the lint's period rail (first national plates 1893;
|
|
390
|
+
Spain 1900). Entry-into-force of the 1900 Reglamento itself is not stated
|
|
391
|
+
in its text (no vacatio clause located) — recorded gap; its Gaceta
|
|
392
|
+
publication is 20-09-1900.
|
|
393
|
+
|
|
394
|
+
# =========================================================================
|
|
395
|
+
# ORDINARY SPECIAL SERIES — prefix letter + 4 digits + 3 letters, all from
|
|
396
|
+
# RD 2822/1998 itself (in force 26-07-1999), all still current.
|
|
397
|
+
# =========================================================================
|
|
398
|
+
- id: es-special-vehicles-1999
|
|
399
|
+
class: agricultural
|
|
400
|
+
categories: [tractor, machine]
|
|
401
|
+
period: { start: 1999 }
|
|
402
|
+
period_evidence: instrument-in-force
|
|
403
|
+
matching: strict
|
|
404
|
+
format:
|
|
405
|
+
pattern: "E9999LLL"
|
|
406
|
+
regex: '\AE\d{4}[A-Z]{3}\z'
|
|
407
|
+
regex_strict: '\AE\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
408
|
+
charset: { notes: "letter E prefix; 4 digits 0000-9999; 3 letters BBB->ZZZ minus vowels/Ñ/Q/CH/LL" }
|
|
409
|
+
design:
|
|
410
|
+
plate: { w: 340, h: 110, unit: mm, reflective_surface: { w: 330, h: 100 } }
|
|
411
|
+
plate_variants:
|
|
412
|
+
- { w: 280, h: 200, unit: mm, reflective_surface: { w: 270, h: 190 }, note: "vehículos especiales alta" }
|
|
413
|
+
characters: { w: 30, h: 60, stroke: 6, unit: mm }
|
|
414
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }
|
|
415
|
+
foreground: "#CE1126"
|
|
416
|
+
foreground_note: "RED matte embossed characters on white — 'Los caracteres estampados en relieve irán pintados en color rojo mate'. hex_basis observed; Cuadro 3 'rojo' gamut applies (CIE centroid #FF111A)."
|
|
417
|
+
band: { side: none }
|
|
418
|
+
region_encoding: none
|
|
419
|
+
sources:
|
|
420
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.b) vehículos especiales: white ground, red matte characters, letter E + 4 digits + 3 letters; Cuadro 1: 340x110 larga / 280x200 alta, characters 30x60/6"
|
|
421
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-1999-1826 # original text, same wording minus the CH/LL inciso; in force 26-07-1999"
|
|
422
|
+
notes: >-
|
|
423
|
+
VEHÍCULOS ESPECIALES (agricultural and works/services machinery). The only
|
|
424
|
+
Spanish series with RED characters on white, and notably NOT 520 mm wide — the
|
|
425
|
+
long form is 340 x 110. CLASS CAVEAT: _meta/classes.yml has no "special
|
|
426
|
+
vehicle"/"works machinery" class; `agricultural` is the closest fit and covers
|
|
427
|
+
the dominant population (maquinaria agrícola), but the statutory category is
|
|
428
|
+
broader ("de obras y servicios"). Flagged as a vocabulary gap.
|
|
429
|
+
|
|
430
|
+
- id: es-trailer-1999
|
|
431
|
+
class: trailer
|
|
432
|
+
categories: [trailer, semitrailer]
|
|
433
|
+
period: { start: 1999 }
|
|
434
|
+
period_evidence: instrument-in-force
|
|
435
|
+
matching: strict
|
|
436
|
+
format:
|
|
437
|
+
pattern: "R9999LLL"
|
|
438
|
+
regex: '\AR\d{4}[A-Z]{3}\z'
|
|
439
|
+
regex_strict: '\AR\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
440
|
+
design:
|
|
441
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
442
|
+
plate_variants:
|
|
443
|
+
- { w: 340, h: 220, unit: mm, reflective_surface: { w: 330, h: 210 }, note: "remolques alta" }
|
|
444
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 12, group_gap: 30, unit: mm }
|
|
445
|
+
background: { color: "#CE1126", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FF111A", spec: rojo }
|
|
446
|
+
foreground: "#000000"
|
|
447
|
+
band: { side: none }
|
|
448
|
+
region_encoding: none
|
|
449
|
+
sources:
|
|
450
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.c): 'El fondo de las placas será retrorreflectante, de color rojo. Los caracteres estampados en relieve irán pintados en color negro mate'; letter R + number + 3 letters; Cuadro 1 dimensions"
|
|
451
|
+
notes: >-
|
|
452
|
+
REMOLQUES Y SEMIRREMOLQUES — a RED plate with black characters, the inverse of
|
|
453
|
+
the special-vehicle plate. Trailers over 750 kg carry this plus a second
|
|
454
|
+
plate on the right bearing the towing vehicle's registration (Anexo XVIII
|
|
455
|
+
III.4). Trailers and semi-trailers share one series here because Anexo XVIII
|
|
456
|
+
treats them in one subparagraph with one prefix letter — contrast the
|
|
457
|
+
Netherlands, where W and O split them. PREDECESSOR RECORDED AS A GAP (redate
|
|
458
|
+
pass): the Código as rewritten by Decreto 2046/1971 already gave trailers a
|
|
459
|
+
dedicated format — art. 231.II, verbatim, "la letra R, un número que irá
|
|
460
|
+
desde el 1 al 999.999 y la contraseña de la provincia donde se matricule el
|
|
461
|
+
vehículo", on a red reflective ground (art. 230.II) — i.e. R-NNNNNN-PP,
|
|
462
|
+
1971-1999. Not authored as a series in this pass (historical depth is L4);
|
|
463
|
+
pinned here so the id can be cut later without disturbing this one.
|
|
464
|
+
|
|
465
|
+
- id: es-moped-1999
|
|
466
|
+
class: moped
|
|
467
|
+
categories: [moped, quadricycle]
|
|
468
|
+
period: { start: 1999 }
|
|
469
|
+
period_evidence: instrument-in-force
|
|
470
|
+
matching: strict
|
|
471
|
+
format:
|
|
472
|
+
pattern: "C9999LLL"
|
|
473
|
+
regex: '\AC\d{4}[A-Z]{3}\z'
|
|
474
|
+
regex_strict: '\AC\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
475
|
+
layout: >-
|
|
476
|
+
THREE ROWS as originally enacted: row 1 = letter C plus the thousands digit
|
|
477
|
+
of the 0000-9999 number; row 2 = the remaining three digits; row 3 = the
|
|
478
|
+
three letters. The consolidated text describes it as "tres grupos"; the
|
|
479
|
+
three-row layout survives in the 100 x 168 "ciclomotores alta" plate.
|
|
480
|
+
design:
|
|
481
|
+
plate: { w: 100, h: 168, unit: mm, reflective_surface: { w: 90, h: 158 }, note: "ciclomotores alta (portrait, three rows)" }
|
|
482
|
+
plate_variants:
|
|
483
|
+
- { w: 140, h: 120, unit: mm, reflective_surface: { w: 130, h: 110 }, note: "ciclomotores larga" }
|
|
484
|
+
- { w: 210, h: 85, unit: mm, reflective_surface: { w: 200, h: 75 }, note: "cuatriciclos ligeros — also used for three-wheeled ciclomotores" }
|
|
485
|
+
- { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 }, note: "cuatriciclos ligeros larga" }
|
|
486
|
+
characters: { w: 13, h: 30, stroke: 3.5, unit: mm, tolerance: "+/- 3 mm between characters" }
|
|
487
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FFC000", spec: amarillo }
|
|
488
|
+
foreground: "#000000"
|
|
489
|
+
band: { side: none }
|
|
490
|
+
region_encoding: none
|
|
491
|
+
sources:
|
|
492
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.A.d) ciclomotores: yellow retroreflective ground, black matte characters, letter C + 4 digits + 3 letters; Cuadro 1 ciclomotores/cuatriciclos rows"
|
|
493
|
+
- "https://www.boe.es/buscar/doc.php?id=BOE-A-1999-1826 # original text: the explicit THREE-ROW layout for ciclomotores"
|
|
494
|
+
notes: >-
|
|
495
|
+
CICLOMOTORES Y CICLOS DE MOTOR — yellow ground, black characters. RGV
|
|
496
|
+
transitional provision required mopeds bought before the RGV and registered
|
|
497
|
+
only with municipalities to be brought onto the national register within six
|
|
498
|
+
months of entry into force. Light quadricycles and three-wheeled mopeds share
|
|
499
|
+
this yellow design (Cuadro 1 note 6), which is why `quadricycle` appears in
|
|
500
|
+
categories — a kinds-vocabulary extension the schema takes without change.
|
|
501
|
+
|
|
502
|
+
- id: es-historic-1999
|
|
503
|
+
class: historic
|
|
504
|
+
categories: [car, van, truck, bus, motorcycle, moped]
|
|
505
|
+
period: { start: 1999 }
|
|
506
|
+
period_evidence: instrument-in-force
|
|
507
|
+
matching: strict
|
|
508
|
+
format:
|
|
509
|
+
pattern: "H9999LLL"
|
|
510
|
+
regex: '\AH\d{4}[A-Z]{3}\z'
|
|
511
|
+
regex_strict: '\AH\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
512
|
+
design:
|
|
513
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
514
|
+
plate_variants:
|
|
515
|
+
- { w: 340, h: 220, unit: mm, note: "vehículo histórico alta" }
|
|
516
|
+
- { w: 220, h: 160, unit: mm, note: "vehículo histórico motocicletas" }
|
|
517
|
+
- { w: 100, h: 168, unit: mm, note: "vehículo histórico ciclomotores" }
|
|
518
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 10, group_gap: 35, unit: mm }
|
|
519
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }
|
|
520
|
+
foreground: "#000000"
|
|
521
|
+
band: { side: none }
|
|
522
|
+
region_encoding: none
|
|
523
|
+
sources:
|
|
524
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.c) vehículo histórico: white ground, black matte characters, letter H + 4 digits + 3 letters; Cuadro 1 four histórico rows"
|
|
525
|
+
notes: >-
|
|
526
|
+
VEHÍCULO HISTÓRICO. Visually near-identical to the ordinary series (white/black)
|
|
527
|
+
and distinguished by the H prefix rather than by colour — the opposite design
|
|
528
|
+
choice to the Netherlands, whose oldtimer plate is dark blue but keeps its
|
|
529
|
+
original serial. Spain has a dedicated historic SERIAL SERIES; the Netherlands
|
|
530
|
+
has a dedicated historic DESIGN. The age threshold sits in the historic-vehicle
|
|
531
|
+
regulation (RD 1247/1995), which was not fetched in this pass — recorded gap.
|
|
532
|
+
|
|
533
|
+
- id: es-tourist-1999
|
|
534
|
+
class: temporary
|
|
535
|
+
categories: [car, van, motorcycle]
|
|
536
|
+
period: { start: 1999 }
|
|
537
|
+
period_evidence: instrument-in-force
|
|
538
|
+
matching: strict
|
|
539
|
+
format:
|
|
540
|
+
pattern: "T9999LLL"
|
|
541
|
+
regex: '\AT\d{4}[A-Z]{3}\z'
|
|
542
|
+
regex_strict: '\AT\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
543
|
+
design:
|
|
544
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
545
|
+
plate_variants:
|
|
546
|
+
- { w: 340, h: 220, unit: mm, note: "turística alta" }
|
|
547
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 10, group_gap: [20, 30], unit: mm }
|
|
548
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec: blanco }
|
|
549
|
+
foreground: "#000000"
|
|
550
|
+
band:
|
|
551
|
+
side: right
|
|
552
|
+
color: "#CE1126"
|
|
553
|
+
hex_basis: observed
|
|
554
|
+
spec: rojo
|
|
555
|
+
content: expiry-month-roman-over-year-arabic
|
|
556
|
+
note: >-
|
|
557
|
+
"La banda vertical en donde se consignan el mes y el año en que caducan,
|
|
558
|
+
expresándose el primero en caracteres romanos y el segundo en caracteres de
|
|
559
|
+
tipo árabe, será retrorreflectante de color rojo. Los caracteres que en
|
|
560
|
+
ella se consignan serán adhesivos de color blanco mate" — 15 x 8 x 2 mm
|
|
561
|
+
adhesive characters, band width 30 mm (Cuadro 3).
|
|
562
|
+
region_encoding: none
|
|
563
|
+
sources:
|
|
564
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.b) matrícula turística: white ground, black matte characters, letter T + 4 digits + 3 letters, RED expiry band with white adhesive characters; Cuadro 3: band 30 mm, characters 15x8x2 mm"
|
|
565
|
+
notes: >-
|
|
566
|
+
MATRÍCULA TURÍSTICA — a tax-privileged temporary registration with the expiry
|
|
567
|
+
month in ROMAN numerals and the year in Arabic on a red vertical band. The
|
|
568
|
+
only Spanish plate that carries its own expiry date on its face, and the only
|
|
569
|
+
one whose band sits on the right. CLASS CAVEAT: recorded as `temporary`; the
|
|
570
|
+
statutory category is its own ("matrícula especial") and is neither ordinary
|
|
571
|
+
nor a circulation permit.
|
|
572
|
+
|
|
573
|
+
- id: es-temporary-private-1999
|
|
574
|
+
class: temporary
|
|
575
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer]
|
|
576
|
+
period: { start: 1999 }
|
|
577
|
+
period_evidence: instrument-in-force
|
|
578
|
+
matching: strict
|
|
579
|
+
format:
|
|
580
|
+
pattern: "P9999LLL"
|
|
581
|
+
regex: '\AP\d{4}[A-Z]{3}\z'
|
|
582
|
+
regex_strict: '\AP\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
583
|
+
layout: "Motor vehicles and trailers: three groups on one line. CICLOMOTORES: three ROWS — row 1 = letter P plus the thousands digit, row 2 = the remaining three digits, row 3 = the three letters."
|
|
584
|
+
design:
|
|
585
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
586
|
+
plate_variants:
|
|
587
|
+
- { w: 280, h: 200, unit: mm, reflective_surface: { w: 270, h: 190 }, note: "temporal particular alta" }
|
|
588
|
+
- { w: 100, h: 168, unit: mm, reflective_surface: { w: 90, h: 158 }, note: "temporal particular ciclomotores" }
|
|
589
|
+
characters: { w: 30, h: 60, stroke: 6, gap: 16, unit: mm }
|
|
590
|
+
background: { color: "#007A33", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#00FFB3", spec: verde }
|
|
591
|
+
foreground: "#FFFFFF"
|
|
592
|
+
band: { side: none }
|
|
593
|
+
region_encoding: none
|
|
594
|
+
sources:
|
|
595
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.C.a) permisos temporales para particulares: 'El fondo de las placas será retrorreflectante, de color verde. Los caracteres estampados en relieve irán pintados en color blanco mate'; letter P; the three-row ciclomotor layout"
|
|
596
|
+
notes: >-
|
|
597
|
+
TEMPORARY PERMIT FOR PRIVATE INDIVIDUALS — GREEN ground, white characters,
|
|
598
|
+
prefix P. Spain colour-codes temporary permits by HOLDER TYPE: green for
|
|
599
|
+
individuals (this entry), red for companies (es-temporary-company-*). Note the
|
|
600
|
+
Cuadro 3 green box is wide and its minimum luminance factor is only 0.04, so
|
|
601
|
+
the rendered hex is a conventional choice, not a spec value — the centroid
|
|
602
|
+
conversion lands at a much lighter #00FFB3.
|
|
603
|
+
|
|
604
|
+
- id: es-temporary-company-unregistered-1999
|
|
605
|
+
class: dealer
|
|
606
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer]
|
|
607
|
+
period: { start: 1999 }
|
|
608
|
+
period_evidence: instrument-in-force
|
|
609
|
+
matching: strict
|
|
610
|
+
format:
|
|
611
|
+
pattern: "S9999LLL"
|
|
612
|
+
regex: '\AS\d{4}[A-Z]{3}\z'
|
|
613
|
+
regex_strict: '\AS\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
614
|
+
layout: "one line for motor vehicles and trailers; three rows for ciclomotores (letter S + thousands digit / three digits / three letters)"
|
|
615
|
+
design:
|
|
616
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
617
|
+
plate_variants:
|
|
618
|
+
- { w: 280, h: 200, unit: mm, note: "temporal empresas alta" }
|
|
619
|
+
- { w: 100, h: 168, unit: mm, note: "temporal empresas ciclomotores" }
|
|
620
|
+
characters: { w: 30, h: 60, stroke: 6, gap: 16, group_gap: 57.5, unit: mm }
|
|
621
|
+
background: { color: "#CE1126", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FF111A", spec: rojo }
|
|
622
|
+
foreground: "#FFFFFF"
|
|
623
|
+
band:
|
|
624
|
+
side: right
|
|
625
|
+
color: "#FFFFFF"
|
|
626
|
+
hex_basis: observed
|
|
627
|
+
spec: blanco
|
|
628
|
+
content: expiry-month-roman-over-year-arabic
|
|
629
|
+
note: "WHITE band with RED matte adhesive characters — the inverse of the tourist plate's red band with white characters. Band width 30 mm (20 mm on the ciclomotor plate)."
|
|
630
|
+
region_encoding: none
|
|
631
|
+
sources:
|
|
632
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.C.b): red ground, white matte characters, 'la letra S, para los vehículos no matriculados'; white expiry band with red adhesive characters; Cuadro 3 band widths 30/20 mm"
|
|
633
|
+
notes: >-
|
|
634
|
+
TEMPORARY PERMIT FOR COMPANIES, UNREGISTERED VEHICLES — prefix S. This is
|
|
635
|
+
Spain's functional dealer/trade plate. Its own series and not a variant of the
|
|
636
|
+
V plate below, because the statute assigns a DIFFERENT PREFIX LETTER, which is
|
|
637
|
+
a format difference (PRD-PLATES §2.3). CLASS CAVEAT: recorded as `dealer`
|
|
638
|
+
because it is bound to a business rather than a vehicle; the statutory name is
|
|
639
|
+
"permiso temporal para empresas".
|
|
640
|
+
|
|
641
|
+
- id: es-temporary-company-registered-1999
|
|
642
|
+
class: dealer
|
|
643
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer]
|
|
644
|
+
period: { start: 1999 }
|
|
645
|
+
period_evidence: instrument-in-force
|
|
646
|
+
matching: strict
|
|
647
|
+
format:
|
|
648
|
+
pattern: "V9999LLL"
|
|
649
|
+
regex: '\AV\d{4}[A-Z]{3}\z'
|
|
650
|
+
regex_strict: '\AV\d{4}[BCDFGHJKLMNPRSTVWXYZ]{3}\z'
|
|
651
|
+
design:
|
|
652
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
653
|
+
plate_variants:
|
|
654
|
+
- { w: 280, h: 200, unit: mm }
|
|
655
|
+
- { w: 100, h: 168, unit: mm }
|
|
656
|
+
characters: { w: 30, h: 60, stroke: 6, gap: 16, group_gap: 57.5, unit: mm }
|
|
657
|
+
background: { color: "#CE1126", finish: retroreflective, hex_basis: observed, spec: rojo }
|
|
658
|
+
foreground: "#FFFFFF"
|
|
659
|
+
band: { side: right, color: "#FFFFFF", hex_basis: observed, spec: blanco, content: expiry-month-roman-over-year-arabic }
|
|
660
|
+
region_encoding: none
|
|
661
|
+
sources:
|
|
662
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.C.b): '...o la letra V, para los matriculados' — same red design, different prefix"
|
|
663
|
+
notes: >-
|
|
664
|
+
TEMPORARY PERMIT FOR COMPANIES, ALREADY-REGISTERED VEHICLES — prefix V.
|
|
665
|
+
Identical design to the S series; the prefix letter is the only difference and
|
|
666
|
+
it encodes whether the vehicle already holds a registration. A parse API must
|
|
667
|
+
keep them apart, which is why they are two series with distinct notes rather
|
|
668
|
+
than one entry with an alternation.
|
|
669
|
+
|
|
670
|
+
# =========================================================================
|
|
671
|
+
# DIPLOMATIC AND OFFICIAL SERIES. Anexo XVIII specifies the LETTERS and the
|
|
672
|
+
# GROUP STRUCTURE ("dos grupos de guarismos") but NOT the digit widths and
|
|
673
|
+
# NOT the separator glyph — so every regex here uses unbounded \d+ and a
|
|
674
|
+
# permissive separator, deliberately making no width claim.
|
|
675
|
+
# =========================================================================
|
|
676
|
+
- id: es-diplomatic-cd-1999
|
|
677
|
+
class: diplomatic
|
|
678
|
+
categories: [car, van, motorcycle]
|
|
679
|
+
period: { start: 1999 }
|
|
680
|
+
period_evidence: instrument-in-force
|
|
681
|
+
matching: strict
|
|
682
|
+
format:
|
|
683
|
+
pattern: "CD-999-999"
|
|
684
|
+
regex: '\ACD[- ]\d+[- ]\d+\z'
|
|
685
|
+
pattern_note: >-
|
|
686
|
+
The three-digit groups in the pattern are REPRESENTATIVE ONLY. Anexo XVIII
|
|
687
|
+
says "las letras CD, seguidas por dos grupos de guarismos" and fixes neither
|
|
688
|
+
width; the regex is intentionally unbounded so it makes no width claim.
|
|
689
|
+
progression: >-
|
|
690
|
+
Group 1 is an invariable per-mission prefix, assigned in the alphabetical
|
|
691
|
+
order of the Foreign Ministry's most recent official diplomatic list, with
|
|
692
|
+
prefix "-1-" reserved for the Decanato del Cuerpo Diplomático; missions that
|
|
693
|
+
later accredit permanent ambassadors are appended by seniority. Group 2 is a
|
|
694
|
+
serial within the mission, proposed by the mission itself.
|
|
695
|
+
design:
|
|
696
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
697
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: [80, 48], unit: mm }
|
|
698
|
+
background: { color: "#CE1126", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FF111A", spec: rojo }
|
|
699
|
+
foreground: "#FFFFFF"
|
|
700
|
+
band: { side: none }
|
|
701
|
+
region_encoding: "mission prefix — decode table not authored (see notes)"
|
|
702
|
+
sources:
|
|
703
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.a).1: Cuerpo diplomático — red retroreflective ground, white matte embossed characters, letters CD + two digit groups, prefix assignment rule and the '-1-' Decanato reservation; Cuadro 1 dimensions"
|
|
704
|
+
notes: >-
|
|
705
|
+
CUERPO DIPLOMÁTICO — red ground, white characters. The mission-prefix DECODE
|
|
706
|
+
TABLE is not authored: Anexo XVIII states the ASSIGNMENT RULE (alphabetical
|
|
707
|
+
order of the Foreign Ministry's official diplomatic list) but not the resulting
|
|
708
|
+
codes, and that list was not fetched in this pass. PRD-PLATES puts diplomatic
|
|
709
|
+
decode tables at gate L4; this entry carries the mechanism so the table can be
|
|
710
|
+
hung off it later without an id change.
|
|
711
|
+
|
|
712
|
+
- id: es-international-oi-1999
|
|
713
|
+
class: diplomatic
|
|
714
|
+
categories: [car, van, motorcycle]
|
|
715
|
+
period: { start: 1999 }
|
|
716
|
+
period_evidence: instrument-in-force
|
|
717
|
+
matching: strict
|
|
718
|
+
format:
|
|
719
|
+
pattern: "OI-999-999"
|
|
720
|
+
regex: '\AOI[- ]\d+[- ]\d+\z'
|
|
721
|
+
pattern_note: "digit-group widths are representative only; Anexo XVIII fixes neither"
|
|
722
|
+
progression: "group 1 is an invariable per-organisation prefix, assigned by seniority in a series running consecutively after the one reserved for diplomatic missions; group 2 is a serial within the organisation"
|
|
723
|
+
design:
|
|
724
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
725
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: [80, 48], unit: mm }
|
|
726
|
+
background: { color: "#003399", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#0083FF", spec: azul }
|
|
727
|
+
foreground: "#FFFFFF"
|
|
728
|
+
band: { side: none }
|
|
729
|
+
region_encoding: "organisation prefix — decode table not authored"
|
|
730
|
+
sources:
|
|
731
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.a).2: organizaciones internacionales — blue retroreflective ground, white matte characters, letters OI + two digit groups"
|
|
732
|
+
notes: >-
|
|
733
|
+
ORGANIZACIONES INTERNACIONALES — blue ground, white characters. CLASS CAVEAT:
|
|
734
|
+
recorded as `diplomatic` because _meta/classes.yml has no
|
|
735
|
+
international-organisation class; the statutory category is its own and its
|
|
736
|
+
prefix series is explicitly separate from (though consecutive with) the
|
|
737
|
+
diplomatic one. Flagged as a vocabulary gap.
|
|
738
|
+
|
|
739
|
+
- id: es-consular-cc-1999
|
|
740
|
+
class: consular
|
|
741
|
+
categories: [car, van, motorcycle]
|
|
742
|
+
period: { start: 1999 }
|
|
743
|
+
period_evidence: instrument-in-force
|
|
744
|
+
matching: strict
|
|
745
|
+
format:
|
|
746
|
+
pattern: "CC-999-999"
|
|
747
|
+
regex: '\ACC[- ]\d+[- ]\d+\z'
|
|
748
|
+
pattern_note: "digit-group widths are representative only"
|
|
749
|
+
progression: "group 1 is the prefix of the diplomatic mission the consular office depends on; where there is no such dependency a prefix is assigned to the state itself. Group 2 follows the diplomatic rule, or the head of the consular office's proposal where the office is not attached to an accredited mission."
|
|
750
|
+
design:
|
|
751
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
752
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: [80, 48], unit: mm }
|
|
753
|
+
background: { color: "#007A33", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#00FFB3", spec: verde }
|
|
754
|
+
foreground: "#FFFFFF"
|
|
755
|
+
band: { side: none }
|
|
756
|
+
region_encoding: "mission prefix — decode table not authored"
|
|
757
|
+
sources:
|
|
758
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.a).3: oficinas consulares — green retroreflective ground, white matte characters, letters CC + two digit groups; prefix inherited from the parent diplomatic mission"
|
|
759
|
+
notes: >-
|
|
760
|
+
OFICINAS CONSULARES — green ground, white characters. COLLISION WORTH FLAGGING
|
|
761
|
+
for the parse API: "CC" is also the province contraseña for CÁCERES in Anexo
|
|
762
|
+
XVIII II.A, so the string "CC-1234-AB" is a valid provincial car plate while
|
|
763
|
+
"CC-12-345" is consular. Disambiguation is by group structure (4 digits + 1-2
|
|
764
|
+
letters vs two digit groups), not by prefix.
|
|
765
|
+
|
|
766
|
+
- id: es-diplomatic-staff-ta-1999
|
|
767
|
+
class: diplomatic
|
|
768
|
+
categories: [car, van, motorcycle]
|
|
769
|
+
period: { start: 1999 }
|
|
770
|
+
period_evidence: instrument-in-force
|
|
771
|
+
matching: strict
|
|
772
|
+
format:
|
|
773
|
+
pattern: "TA-999-999"
|
|
774
|
+
regex: '\ATA[- ]\d+[- ]\d+\z'
|
|
775
|
+
pattern_note: "digit-group widths are representative only"
|
|
776
|
+
progression: "group 1 identifies the diplomatic mission, international organisation or consular office; group 2 is a serial among that body's technical-administrative staff, on its proposal"
|
|
777
|
+
design:
|
|
778
|
+
plate: { w: 520, h: 110, unit: mm, reflective_surface: { w: 510, h: 100 } }
|
|
779
|
+
characters: { w: 45, h: 77, stroke: 10, gap: 14, group_gap: [80, 48], unit: mm }
|
|
780
|
+
background: { color: "#F9B700", finish: retroreflective, hex_basis: observed, hex_cie_centroid: "#FFC000", spec: amarillo }
|
|
781
|
+
foreground: "#000000"
|
|
782
|
+
band: { side: none }
|
|
783
|
+
region_encoding: "body prefix — decode table not authored"
|
|
784
|
+
sources:
|
|
785
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII I.B.a).4: personal técnico-administrativo — yellow retroreflective ground, black matte characters, letters TA + two digit groups"
|
|
786
|
+
notes: >-
|
|
787
|
+
PERSONAL TÉCNICO-ADMINISTRATIVO of missions, international organisations and
|
|
788
|
+
consular offices — yellow ground, black characters. RGV transitional provision
|
|
789
|
+
three preserved existing matrícula turística permits held by this staff until
|
|
790
|
+
their validity expired, which is the documented bridge from the pre-1999
|
|
791
|
+
arrangement.
|
|
792
|
+
|
|
793
|
+
- id: es-military-1999
|
|
794
|
+
class: military
|
|
795
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
796
|
+
period: { start: 1999 }
|
|
797
|
+
period_evidence: instrument-in-force
|
|
798
|
+
matching: strict
|
|
799
|
+
format:
|
|
800
|
+
pattern: "ET-999999"
|
|
801
|
+
regex: '\A(?:ET|FN|EA)[- ]\d+(?:-VE)?\z'
|
|
802
|
+
pattern_note: "digit width is representative only — Anexo XVIII II.B lists the contraseñas but states no numbering grammar"
|
|
803
|
+
charset: { contraseñas: { ET: "Ejército de Tierra", FN: "Armada", EA: "Ejército del Aire" }, suffix: "special vehicles append '-VE' after a hyphen" }
|
|
804
|
+
design:
|
|
805
|
+
band: { side: none }
|
|
806
|
+
note: >-
|
|
807
|
+
Anexo XVIII II.B lists the contraseñas ONLY — it prescribes no colours and no
|
|
808
|
+
dimensions for state plates, and section I (Colores e inscripciones) does not
|
|
809
|
+
cover them. Colours are therefore deliberately ABSENT here rather than
|
|
810
|
+
guessed; recorded gap.
|
|
811
|
+
region_encoding: none
|
|
812
|
+
sources:
|
|
813
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.B: 'ET, FN y EA: Para vehículos pertenecientes al Ministerio de Defensa, correspondientes, respectivamente al Ejército de Tierra, Armada y Ejército del Aire' and the '-VE' rule for vehículos especiales"
|
|
814
|
+
notes: >-
|
|
815
|
+
MINISTRY OF DEFENCE fleets — Army (ET), Navy (FN), Air Force (EA). One series
|
|
816
|
+
because Anexo XVIII II.B treats the three contraseñas in a single provision
|
|
817
|
+
with a single numbering rule; the branch is decodable from the contraseña.
|
|
818
|
+
Colours and dimensions are NOT in Anexo XVIII for state plates and are not
|
|
819
|
+
invented here.
|
|
820
|
+
|
|
821
|
+
- id: es-nato-fae-1999
|
|
822
|
+
class: military
|
|
823
|
+
categories: [car, van, truck, bus]
|
|
824
|
+
period: { start: 1999 }
|
|
825
|
+
period_evidence: instrument-in-force
|
|
826
|
+
matching: strict
|
|
827
|
+
format:
|
|
828
|
+
pattern: "FAE-999999"
|
|
829
|
+
regex: '\AFAE[- ]\d+(?:-VE)?\z'
|
|
830
|
+
pattern_note: "digit width representative only"
|
|
831
|
+
design:
|
|
832
|
+
band: { side: none }
|
|
833
|
+
note: "no colour or dimension specified in Anexo XVIII II.B — recorded gap"
|
|
834
|
+
region_encoding: none
|
|
835
|
+
sources:
|
|
836
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.B: 'FAE: Para los vehículos al servicio de los Cuarteles Generales Militares Internacionales de la OTAN matriculados en España'"
|
|
837
|
+
notes: >-
|
|
838
|
+
NATO INTERNATIONAL MILITARY HEADQUARTERS registered in Spain. The Spanish
|
|
839
|
+
counterpart of Germany's "X" Unterscheidungszeichen (FZV Anlage 2), and worth
|
|
840
|
+
pairing with it when the encyclopedia covers NATO-status vehicles.
|
|
841
|
+
|
|
842
|
+
- id: es-government-1999
|
|
843
|
+
class: government
|
|
844
|
+
categories: [car, van, truck, bus]
|
|
845
|
+
period: { start: 1999 }
|
|
846
|
+
period_evidence: instrument-in-force
|
|
847
|
+
matching: strict
|
|
848
|
+
format:
|
|
849
|
+
pattern: "PME-999999"
|
|
850
|
+
regex: '\A(?:PME|MF|MMA)[- ]\d+(?:-VE)?\z'
|
|
851
|
+
pattern_note: "digit width representative only"
|
|
852
|
+
charset: { contraseñas: { PME: "Parque Móvil del Estado", MF: "Parque del Ministerio de Fomento", MMA: "Parque del Ministerio de Medio Ambiente" } }
|
|
853
|
+
design:
|
|
854
|
+
band: { side: none }
|
|
855
|
+
note: "no colour or dimension specified in Anexo XVIII II.B — recorded gap"
|
|
856
|
+
region_encoding: none
|
|
857
|
+
sources:
|
|
858
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.B: MF, MMA and PME contraseñas"
|
|
859
|
+
notes: >-
|
|
860
|
+
CENTRAL GOVERNMENT FLEETS. PERIOD-ROT WARNING for the decode discipline
|
|
861
|
+
PRD-PLATES §9 calls out: MF (Ministerio de Fomento) and MMA (Ministerio de
|
|
862
|
+
Medio Ambiente) name ministries that have since been reorganised and renamed,
|
|
863
|
+
yet the consolidated Anexo XVIII still lists them. The codes are current law;
|
|
864
|
+
the ministry names behind them are not current fact. Recorded as-enacted.
|
|
865
|
+
|
|
866
|
+
- id: es-police-1999
|
|
867
|
+
class: police
|
|
868
|
+
categories: [car, van, truck, motorcycle]
|
|
869
|
+
period: { start: 1999 }
|
|
870
|
+
period_evidence: instrument-in-force
|
|
871
|
+
matching: strict
|
|
872
|
+
format:
|
|
873
|
+
pattern: "CNP-999999"
|
|
874
|
+
regex: '\A(?:CNP|PGC)[- ]\d+(?:-VE)?\z'
|
|
875
|
+
pattern_note: "digit width representative only"
|
|
876
|
+
charset: { contraseñas: { CNP: "Cuerpo Nacional de Policía", PGC: "Cuerpo de la Guardia Civil" } }
|
|
877
|
+
design:
|
|
878
|
+
band: { side: none }
|
|
879
|
+
note: "no colour or dimension specified in Anexo XVIII II.B — recorded gap"
|
|
880
|
+
region_encoding: none
|
|
881
|
+
sources:
|
|
882
|
+
- "https://www.boe.es/buscar/pdf/1999/BOE-A-1999-1826-consolidado.pdf # Anexo XVIII II.B: CNP and PGC, both under the Dirección General de la Policía y de la Guardia Civil"
|
|
883
|
+
notes: >-
|
|
884
|
+
NATIONAL POLICE (CNP) and GUARDIA CIVIL (PGC). Note that RGV Art. 27.5 lets
|
|
885
|
+
an autonomous community's police force use plates "con una contraseña y
|
|
886
|
+
numeración propias" within that community, in addition to ordinary
|
|
887
|
+
registration — so autonomous-community police codes exist OUTSIDE Anexo XVIII
|
|
888
|
+
and are a recorded gap for L1 (Ertzaintza, Mossos d'Esquadra, Policía Foral).
|