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/fr.yml
ADDED
|
@@ -0,0 +1,1265 @@
|
|
|
1
|
+
# plates/fr.yml — France (PRD-PLATES gate L1).
|
|
2
|
+
#
|
|
3
|
+
# EVERY format, colour, period and class claim in this file is sourced to one
|
|
4
|
+
# of five French primaries, all fetched 2026-08-02 and pinned per claim below:
|
|
5
|
+
#
|
|
6
|
+
# (1) Arrêté du 9 février 2009 relatif aux MODALITÉS d'immatriculation des
|
|
7
|
+
# véhicules (NOR DEVS0824995A), consolidated to 2 August 2026 — this is
|
|
8
|
+
# where the NUMBER lives, in its annexe VII.
|
|
9
|
+
# (2) Arrêté du 9 février 2009 fixant les CARACTÉRISTIQUES et le mode de pose
|
|
10
|
+
# des plaques d'immatriculation des véhicules (NOR DEVS0824974A),
|
|
11
|
+
# consolidated to 1 January 2026 — this is where the PLATE lives:
|
|
12
|
+
# colours, the Euro-band, the identifiant territorial, the annexe 7
|
|
13
|
+
# special-plate colour table.
|
|
14
|
+
# (3) Arrêté du 23 mars 2009 (NOR DEVS0906197A) — the entry-into-force date.
|
|
15
|
+
# (4) Arrêté du 15 avril 1996 relatif aux plaques d'immatriculation
|
|
16
|
+
# réflectorisées — the colorimetry (chromaticity quadrilaterals).
|
|
17
|
+
# (5) Arrêté du 5 novembre 1984 relatif à l'immatriculation des véhicules
|
|
18
|
+
# (abrogated 31 December 2009) — the one-series-back FNI system.
|
|
19
|
+
# plus code de la route art. R. 317-8 (how many plates, on what) and
|
|
20
|
+
# art. R. 322-2 (the number is attributed "à titre définitif au véhicule").
|
|
21
|
+
#
|
|
22
|
+
# THE FIVE STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
23
|
+
#
|
|
24
|
+
# 1. FRANCE SPLITS THE NUMBER FROM THE PLATE ACROSS TWO INSTRUMENTS OF THE SAME
|
|
25
|
+
# DAY. Arrêté (1) art. 2 II: "La composition du numéro d'immatriculation
|
|
26
|
+
# présent sur le certificat d'immatriculation figure à l'annexe VII du
|
|
27
|
+
# présent arrêté." Arrêté (2) art. 1: "Le présent arrêté fixe les
|
|
28
|
+
# prescriptions techniques applicables aux plaques d'immatriculation visées
|
|
29
|
+
# à l'article R. 317-8 du code de la route et à leur contenu réglementaire."
|
|
30
|
+
# Every series below therefore cites TWO texts, and a claim sourced to the
|
|
31
|
+
# wrong one of the pair is a defect. Both are dated 9 February 2009 and both
|
|
32
|
+
# are commonly cited as "l'arrêté du 9 février 2009", which is exactly how
|
|
33
|
+
# format claims get mis-attributed.
|
|
34
|
+
#
|
|
35
|
+
# 2. THE DÉPARTEMENT ON A MODERN FRENCH PLATE IS NOT A REGION SIGNAL, AND IT IS
|
|
36
|
+
# NOT PART OF THE NUMBER. Annexe VII knows nothing about départements: a SIV
|
|
37
|
+
# number is "2 lettres, suivies de 3 chiffres, suivis de 2 lettres". The
|
|
38
|
+
# département lives in a right-hand blue band, the "identifiant territorial",
|
|
39
|
+
# and arrêté (2) art. 9 says in terms:
|
|
40
|
+
# "Les plaques d'immatriculation des véhicules portant le numéro définitif
|
|
41
|
+
# prévu à l'article R. 322-2 du code de la route doivent comporter un
|
|
42
|
+
# identifiant territorial constitué par le logo officiel d'une région ou
|
|
43
|
+
# de la collectivité européenne d'Alsace et le numéro de l'un des
|
|
44
|
+
# départements de cette collectivité territoriale."
|
|
45
|
+
# "Le choix de cet identifiant territorial est libre et peut ne pas avoir
|
|
46
|
+
# de lien avec le domicile du titulaire du certificat d'immatriculation."
|
|
47
|
+
# That second sentence is the whole French trap, in the authority's own
|
|
48
|
+
# words. region_encoding is `none` on every SIV series in this file and the
|
|
49
|
+
# band is documented as a plate GRAPHIC. The one thing the band DOES
|
|
50
|
+
# constrain is internal consistency — the logo's région must own the
|
|
51
|
+
# number's département — which is why plates/_decode/fr-departements.yml
|
|
52
|
+
# carries the région on every row. The FNI series is the opposite case and
|
|
53
|
+
# decodes properly; see fact 5.
|
|
54
|
+
#
|
|
55
|
+
# 3. THE LETTER ALPHABET IS NOT IN THE LAW. Annexe VII gives SHAPES and nothing
|
|
56
|
+
# else: no excluded letters, no reserved combinations, no progression order.
|
|
57
|
+
# The universally repeated claims that the SIV omits I, O and U, that SS is
|
|
58
|
+
# skipped, and that the series increments right-to-left from AA-001-AA, are
|
|
59
|
+
# NOT in either arrêté, are not on service-public.gouv.fr, and no French
|
|
60
|
+
# government publication stating them was located in this pass. They are
|
|
61
|
+
# recorded as FOLKLORE (commonly repeated, unsourced) in the dossier and are
|
|
62
|
+
# NOT asserted here. Consequence, and it is deliberate: the standard series
|
|
63
|
+
# carries NO alphabet-narrowing `regex_strict`. The only narrowing this file
|
|
64
|
+
# writes is `(?!WW-)`, and that one is sourced — annexe VII C reserves the
|
|
65
|
+
# two-letter group WW for provisional numbers, so a definitive number cannot
|
|
66
|
+
# open with it without colliding with a different series in the same annexe.
|
|
67
|
+
#
|
|
68
|
+
# 4. PERIOD CLAIMS ARE INSTRUMENT-DATED — EXCEPT THE ONE THAT ISN'T. 15 April
|
|
69
|
+
# 2009 is a REAL, primary-sourced start: arrêté (3) art. 1, verbatim, "Les
|
|
70
|
+
# dispositions du décret du 9 février 2009 susvisé et de l'arrêté du
|
|
71
|
+
# 9 février 2009 susvisé relatif aux modalités d'immatriculation des
|
|
72
|
+
# véhicules entrent en vigueur le 15 avril 2009", with art. 2 fixing the
|
|
73
|
+
# same date for the plate provisions. Every SIV series here starts 2009 on
|
|
74
|
+
# that evidence (`period_evidence: enabling-instrument`). The FNI series
|
|
75
|
+
# starts 1984 on `instrument-in-force` evidence only: the system is
|
|
76
|
+
# universally dated to 1950, no primary for 1950 was secured, and inventing
|
|
77
|
+
# one was declined.
|
|
78
|
+
#
|
|
79
|
+
# 5. THE 2026 PINK PLATES ARE A REAL SERIES SPLIT, NOT A COSMETIC ONE. Until
|
|
80
|
+
# 31 December 2025 neither arrêté prescribed ANY colour for WW provisional
|
|
81
|
+
# or W garage plates — verified against the 2009 original and the version in
|
|
82
|
+
# force on 1 June 2025, where annexe 7 has three items and none of them is
|
|
83
|
+
# WW or W. The arrêté du 21 novembre 2025 (NOR INTS2532392A) art. 1 inserted
|
|
84
|
+
# a fourth item — "Le numéro d'immatriculation est reproduit sur chaque
|
|
85
|
+
# plaque d'immatriculation en caractères noirs sur fond rose" — and art. 3
|
|
86
|
+
# fixed its entry into force at 1 January 2026. Design differs, so per
|
|
87
|
+
# PRD-PLATES §2.3 the WW and W garage regimes are each TWO series, split at
|
|
88
|
+
# 2025/2026. A pink French plate cannot predate 2026; that is one of very
|
|
89
|
+
# few hard date signals a French plate carries.
|
|
90
|
+
#
|
|
91
|
+
# REGEX POLICY. As in plates/de.yml and plates/nl.yml, `format.regex` is the
|
|
92
|
+
# lint-round-trippable form (the lint generates serials from `format.pattern`,
|
|
93
|
+
# L -> any A-Z and 9 -> any 0-9, and every one must match). `format.regex_strict`
|
|
94
|
+
# carries the tighter SOURCED form, and in this file it does exactly three
|
|
95
|
+
# things, each of them quoted from the arrêté in the series that carries it:
|
|
96
|
+
# * the WW-collision lookahead on every definitive-number series;
|
|
97
|
+
# * the numeric RANGES of the diplomatic and consular groups (1-199 country,
|
|
98
|
+
# 200-399 delegation country, 400-499 organisation, 500/600/700 fixed,
|
|
99
|
+
# 1-999 and 100-9999 order groups) — every one of which starts at 1, so the
|
|
100
|
+
# strict twins also carry the no-leading-zeros consequence the way
|
|
101
|
+
# plates/de.yml carries Anlage 1's;
|
|
102
|
+
# * the closed organisation letters U/E/S on the CD delegation series.
|
|
103
|
+
# It never narrows an alphabet the law leaves open: the definitive series has
|
|
104
|
+
# no letter restriction at all (fact 3), and the K delegation letters are
|
|
105
|
+
# printed with a trailing ELLIPSIS in annexe VII D.3 where the parallel CD
|
|
106
|
+
# provision ends with a semicolon, so that one series' strict twin narrows its
|
|
107
|
+
# numbers and leaves its letter class at [A-Z].
|
|
108
|
+
#
|
|
109
|
+
# SEPARATOR STRESSOR, FLAGGED FOR THE §2.6 OWNER. Annexe VII D.2 and D.3 print
|
|
110
|
+
# a FULL STOP inside the consular number: "Remarque : les deux derniers groupes
|
|
111
|
+
# de chiffres seront séparés par un point. Exemple : 105 C 1.75." U+002E is in
|
|
112
|
+
# the dataset's FORGIVING set but not in its EMITTED set, so this file cannot
|
|
113
|
+
# spell it. The two affected series (fr-consular-c, fr-consular-k) therefore
|
|
114
|
+
# write a SPACE at that position, with `separator_note` on each saying so and
|
|
115
|
+
# quoting the arrêté. This is the first sourced case in the dataset of an
|
|
116
|
+
# authority prescribing a separator glyph outside the emitted pair, and it is
|
|
117
|
+
# an amendment candidate for plates/_meta/separators.yml — see the dossier.
|
|
118
|
+
# A forgiving consumer is unaffected: U+002E is already strippable, so
|
|
119
|
+
# "105 C 1.75" and "105 C 1 75" canonicalise to the same serial.
|
|
120
|
+
jurisdiction: fr
|
|
121
|
+
authority:
|
|
122
|
+
name: Ministère de l'intérieur — Système d'immatriculation des véhicules (SIV)
|
|
123
|
+
url: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237165"
|
|
124
|
+
binding: vehicle
|
|
125
|
+
binding_note: >-
|
|
126
|
+
Code de la route art. R. 322-2 I, verbatim: "Ce certificat comporte un numéro
|
|
127
|
+
d'immatriculation attribué à titre définitif au véhicule par un système
|
|
128
|
+
informatique centralisé." The number binds to the VEHICLE and, unlike the FNI
|
|
129
|
+
it replaced, follows it for life across owners and across départements. The
|
|
130
|
+
one exception in this file is the W garage series, which binds to a BUSINESS.
|
|
131
|
+
instruments:
|
|
132
|
+
- citation: "Arrêté du 9 février 2009 relatif aux modalités d'immatriculation des véhicules"
|
|
133
|
+
nor: DEVS0824995A
|
|
134
|
+
role: "the NUMBER — composition in annexe VII; the WW and W garage regimes; the diplomatic series"
|
|
135
|
+
date: "2009-02-09"
|
|
136
|
+
consolidated: "2026-08-02"
|
|
137
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237165"
|
|
138
|
+
- citation: "Arrêté du 9 février 2009 fixant les caractéristiques et le mode de pose des plaques d'immatriculation des véhicules"
|
|
139
|
+
nor: DEVS0824974A
|
|
140
|
+
role: "the PLATE — colours, Euro-band, identifiant territorial, annexe 7 special-plate colours, dimensions (annexe 1 bis)"
|
|
141
|
+
date: "2009-02-09"
|
|
142
|
+
consolidated: "2026-01-01"
|
|
143
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128"
|
|
144
|
+
- citation: "Arrêté du 23 mars 2009 relatif à l'entrée en vigueur de dispositions relatives aux plaques et inscriptions, à la réception et à l'homologation et à l'immatriculation des véhicules"
|
|
145
|
+
nor: DEVS0906197A
|
|
146
|
+
role: "fixes 15 April 2009 as the SIV start"
|
|
147
|
+
date: "2009-03-23"
|
|
148
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020446205"
|
|
149
|
+
- citation: "Arrêté du 15 avril 1996 relatif aux plaques d'immatriculation réflectorisées"
|
|
150
|
+
role: "homologation of plates and retroreflective products; the colorimetry"
|
|
151
|
+
date: "1996-04-15"
|
|
152
|
+
consolidated: "2026-01-01"
|
|
153
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000193190"
|
|
154
|
+
- citation: "Arrêté du 21 novembre 2025 modifiant les caractéristiques des plaques d'immatriculation des véhicules faisant l'objet d'une immatriculation provisoire en WW ou en W garage"
|
|
155
|
+
nor: INTS2532392A
|
|
156
|
+
role: "creates the black-on-PINK WW / W garage plate from 1 January 2026"
|
|
157
|
+
date: "2025-11-21"
|
|
158
|
+
source: "https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000052971649"
|
|
159
|
+
- citation: "Arrêté du 5 novembre 1984 relatif à l'immatriculation des véhicules"
|
|
160
|
+
role: "the FNI system — abrogated 31 December 2009"
|
|
161
|
+
date: "1984-11-05"
|
|
162
|
+
abrogated: "2009-12-31"
|
|
163
|
+
source: "https://www.legifrance.gouv.fr/loda/id/LEGITEXT000006075077"
|
|
164
|
+
|
|
165
|
+
# ---------------------------------------------------------------------------
|
|
166
|
+
# Jurisdiction-wide facts, cited once and referenced per series.
|
|
167
|
+
# ---------------------------------------------------------------------------
|
|
168
|
+
common:
|
|
169
|
+
colours:
|
|
170
|
+
standard: >-
|
|
171
|
+
Arrêté (2) art. 7 al. 1, verbatim: "Pour les véhicules portant le numéro
|
|
172
|
+
définitif prévu à l'article R. 322-2 du code de la route, le numéro
|
|
173
|
+
d'immatriculation est reproduit sur chaque plaque d'immatriculation en
|
|
174
|
+
caractères noirs non rétroréfléchissants sur fond rétroréfléchissant
|
|
175
|
+
blanc." Note the asymmetry the statute is explicit about and most
|
|
176
|
+
summaries drop: the GROUND retroreflects, the CHARACTERS must not.
|
|
177
|
+
special: >-
|
|
178
|
+
Arrêté (2) art. 7 al. 3: "Pour les immatriculations listées en annexe 7 du
|
|
179
|
+
présent arrêté, les caractéristiques des couleurs des numéros
|
|
180
|
+
d'immatriculation et du fond des plaques d'immatriculation sont définies
|
|
181
|
+
dans cette annexe." Annexe 7 is the complete special-colour table and has
|
|
182
|
+
exactly four items — transit/free-zone (white on red), diplomatic
|
|
183
|
+
(orange or white on jasper green), collection (white on black, optional),
|
|
184
|
+
and, from 1 January 2026 only, WW and W garage (black on pink).
|
|
185
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 7"
|
|
186
|
+
colorimetry:
|
|
187
|
+
note: >-
|
|
188
|
+
The arrêté du 15 avril 1996 fixes each colour as a QUADRILATERAL of
|
|
189
|
+
chromaticity coordinates, not as an RGB or RAL value — so every hex in
|
|
190
|
+
this file is either trivially exact (#FFFFFF, #000000) or a derivation,
|
|
191
|
+
and each one says which it is in `hex_basis`. Values below are the daytime
|
|
192
|
+
coordinates as printed.
|
|
193
|
+
blanc: { points: [[0.350, 0.360], [0.300, 0.310], [0.285, 0.325], [0.335, 0.375]], luminance_factor_min: 0.35 }
|
|
194
|
+
bleu: { points: [[0.078, 0.171], [0.150, 0.220], [0.210, 0.160], [0.137, 0.038]], luminance_factor_min: 0.01 }
|
|
195
|
+
noir: { points: [[0.385, 0.355], [0.300, 0.270], [0.260, 0.310], [0.345, 0.395]] }
|
|
196
|
+
jaune: { points: [[0.545, 0.454], [0.487, 0.423], [0.427, 0.483], [0.465, 0.534]] }
|
|
197
|
+
rose: { points: [[0.345, 0.155], [0.500, 0.195], [0.470, 0.295], [0.365, 0.280]], added: "2026-01-01" }
|
|
198
|
+
not_specified: [rouge, vert-jaspe, orangé]
|
|
199
|
+
not_specified_note: >-
|
|
200
|
+
The three annexe-7 colours that matter most for the special series — the
|
|
201
|
+
transit RED, the diplomatic JASPER GREEN and the diplomatic ORANGE — have
|
|
202
|
+
NO coordinates anywhere in the 1996 arrêté's table. They are named and not
|
|
203
|
+
numbered, exactly as PRD-PLATES found for the German green and red plates.
|
|
204
|
+
Their hexes below are marked `observed` and are the weakest colour claims
|
|
205
|
+
in this file.
|
|
206
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000193190 # tableau des coordonnées trichromatiques (jour); art. 1 bis added 2026-01-01 exempting pink WW/W plates from the art. 1 homologation rule while binding them to the pink coordinates"
|
|
207
|
+
euro_band:
|
|
208
|
+
side: left
|
|
209
|
+
content: eu-stars+F
|
|
210
|
+
rule: >-
|
|
211
|
+
Arrêté (2) art. 8, verbatim: "Les plaques d'immatriculation des véhicules
|
|
212
|
+
portant le numéro définitif prévu à l'article R. 322-2 du code de la route
|
|
213
|
+
doivent obligatoirement comporter le symbole européen complété de la lettre
|
|
214
|
+
'F'." — "Le symbole européen complété de la lettre 'F' doit se situer dans
|
|
215
|
+
la partie utile de la plaque d'immatriculation à l'extrémité gauche de
|
|
216
|
+
celle-ci, sur fond bleu rétroréfléchissant." — and the exclusion that
|
|
217
|
+
matters: "Les dispositions du présent article ne sont pas applicables aux
|
|
218
|
+
plaques spécifiques des véhicules immatriculés avec un usage 'véhicule de
|
|
219
|
+
collection'."
|
|
220
|
+
geometry_gap: >-
|
|
221
|
+
The symbol's dimensions are in annexes 1 bis and 6 bis, both of which
|
|
222
|
+
Légifrance publishes only as JO fac-similé IMAGES. No French Euro-band
|
|
223
|
+
geometry was secured in this pass (contrast Germany, whose Anlage 4 gives
|
|
224
|
+
the star-wreath ratio as text).
|
|
225
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 8"
|
|
226
|
+
identifiant_territorial:
|
|
227
|
+
side: right
|
|
228
|
+
optional: false
|
|
229
|
+
owner_chosen: true
|
|
230
|
+
rule: >-
|
|
231
|
+
Arrêté (2) art. 9: the band is "constitué par le logo officiel d'une
|
|
232
|
+
région ou de la collectivité européenne d'Alsace et le numéro de l'un des
|
|
233
|
+
départements de cette collectivité territoriale", it sits "à l'extrémité
|
|
234
|
+
droite" of the useful part "sur fond bleu non obligatoirement
|
|
235
|
+
rétroréfléchissant", it must be "identique sur la plaque avant et sur la
|
|
236
|
+
plaque arrière", and — the sentence that governs every consumer of this
|
|
237
|
+
dataset — "Le choix de cet identifiant territorial est libre et peut ne
|
|
238
|
+
pas avoir de lien avec le domicile du titulaire du certificat
|
|
239
|
+
d'immatriculation." Art. 9 also disapplies the band for the "véhicule
|
|
240
|
+
importé en transit", "véhicule en transit temporaire" and "véhicule de
|
|
241
|
+
collection" usages, and reserves reproduction of the logos to homologated
|
|
242
|
+
plate makers.
|
|
243
|
+
decode: "plates/_decode/fr-departements.yml"
|
|
244
|
+
decode_note: >-
|
|
245
|
+
The decode file exists for the FNI series and for validating the band's
|
|
246
|
+
(région, département) pairing. It must NEVER be used to infer where a
|
|
247
|
+
SIV-numbered vehicle is kept.
|
|
248
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 9"
|
|
249
|
+
font:
|
|
250
|
+
name: null
|
|
251
|
+
statutory_basis: >-
|
|
252
|
+
Arrêté (2) art. 6, verbatim: "Les lettres et les chiffres du numéro
|
|
253
|
+
d'immatriculation sont constitués par des caractères bâtons ne comportant,
|
|
254
|
+
ni rétrécissement, ni empattement, ni ouverture supérieure à 3 mm pour les
|
|
255
|
+
caractères fermés." That is the WHOLE typeface specification in French
|
|
256
|
+
law: sans-serif, no narrowing, no serifs, and closed characters may not
|
|
257
|
+
have an aperture wider than 3 mm.
|
|
258
|
+
licence: >-
|
|
259
|
+
NO NAMED TYPEFACE IS MANDATED — France is a third data point for the EU
|
|
260
|
+
dossier's finding (UK prescribes a drawing, Germany a Schriftmuster,
|
|
261
|
+
France a written description). PRD-PLATES §6 therefore applies at its
|
|
262
|
+
cleanest here: the render layer derives glyphs from the statutory
|
|
263
|
+
description, never from a third-party "plaque" TTF.
|
|
264
|
+
source: "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 6"
|
|
265
|
+
dimensions:
|
|
266
|
+
status: sourced
|
|
267
|
+
instrument: "arrêté du 9 février 2009 (plaques) annexe 1 bis, in the version substituted by the arrêté du 7 mai 2020 (NOR TRER2011996A) art. 1er 6°"
|
|
268
|
+
note: >-
|
|
269
|
+
SOURCED, and the route matters because the previous pass could not take
|
|
270
|
+
it. Légifrance publishes annexe 1 bis only as a link to a PDF, and the
|
|
271
|
+
article body says so; but the SUBSTITUTING arrêté is reproduced in full in
|
|
272
|
+
the authenticated electronic Journal officiel, and the JO PDF carries the
|
|
273
|
+
whole table and the three layout plans as embedded images at 350-406 dpi.
|
|
274
|
+
Route: JO nº 0121 du 17/05/2020, texte 8 sur 82, downloaded from
|
|
275
|
+
legifrance.gouv.fr/download/file/…/JOE_TEXTE and read page by page. Every
|
|
276
|
+
figure below is transcribed from that table; the ±/+- tolerances are the
|
|
277
|
+
arrêté's own. Where a widely repeated retail figure exists it is noted as
|
|
278
|
+
what it is — a value INSIDE the statutory tolerance, not the nominal.
|
|
279
|
+
unit: mm
|
|
280
|
+
formats:
|
|
281
|
+
- id: long
|
|
282
|
+
annexe: "annexe 2 — cas général, 1 ligne"
|
|
283
|
+
length_overall: { nominal: 508, tolerance: "+14/-0", drawing_note: "the plan dimensions the physical support 520 ±2; the 520 mm plate sold everywhere in France is the +12 case" }
|
|
284
|
+
height_overall: { nominal: 98, tolerance: "+14/-0", with_bavette: { nominal: 120, tolerance: "+10/-2" } }
|
|
285
|
+
useful: { length_min: 508, height_min: 98 }
|
|
286
|
+
common_form: { w: 520, h: 110, basis: "within tolerance; the manufactured norm" }
|
|
287
|
+
- id: two_line
|
|
288
|
+
annexe: "annexe 3 — cas général, 2 lignes"
|
|
289
|
+
length_overall: { nominal: [263, 288], tolerance: "+14/-0" }
|
|
290
|
+
height_overall: { nominal: 188, tolerance: "+15/-0", with_bavette: { nominal: 210, tolerance: "+10/-3" } }
|
|
291
|
+
useful: { length_min: 263, height_min: 188, note: "263 minimum si longueur hors tout 275 ; 288 minimum si longueur hors tout 300" }
|
|
292
|
+
common_form: { w: 275, h: 200, basis: "within tolerance; the manufactured norm" }
|
|
293
|
+
- id: two_three_wheel
|
|
294
|
+
annexe: "annexe 4 bis — véhicules à deux ou trois roues à moteur et quadricycles à moteur, non carrossés"
|
|
295
|
+
length_overall: { nominal: 198, tolerance: "+14/-0" }
|
|
296
|
+
height_overall: { nominal: 118, tolerance: "+15/-0", with_bavette: { nominal: 140, tolerance: "+10/-3" } }
|
|
297
|
+
useful: { length_min: 198, height_min: 118 }
|
|
298
|
+
common_form: { w: 210, h: 130, basis: "within tolerance; the manufactured norm" }
|
|
299
|
+
corner_radius: { general: { nominal: 9, tolerance: "±3" }, two_three_wheel: { nominal: 8, tolerance: "±2" } }
|
|
300
|
+
characters:
|
|
301
|
+
general: { height: 75, height_tolerance: "±5", width: 39, width_tolerance: "±7", stroke: 11, stroke_tolerance: "±1", pitch_min: 45 }
|
|
302
|
+
two_three_wheel: { height: 45, height_tolerance: "±3", width: 23, width_tolerance: "±6", stroke: 7, stroke_tolerance: "±1", pitch_min: 24 }
|
|
303
|
+
width_exceptions:
|
|
304
|
+
general: { "M": { width: 43, tolerance: "±11" }, "W": { width: 43, tolerance: "±11" }, "1": { width: 25, tolerance: "±7" } }
|
|
305
|
+
two_three_wheel: { "M": { width: 25.5, tolerance: "±6.5" }, "W": { width: 25.5, tolerance: "±6.5" }, "1": { width: 14.5, tolerance: "±4.5" } }
|
|
306
|
+
uniformity: >-
|
|
307
|
+
Verbatim: "Les dimensions (hauteur, largeur, épaisseur) des différents
|
|
308
|
+
caractères d'une même plaque doivent être uniformes, exception faite, le
|
|
309
|
+
cas échéant, de la largeur des caractères 1, M et W." The PITCH is not
|
|
310
|
+
excepted — a French number is effectively monospaced at its entraxe.
|
|
311
|
+
clearances: { to_band_or_identifiant_min: 5, to_useful_edge_vertical_min: 5 }
|
|
312
|
+
tirets:
|
|
313
|
+
general: { length: 15, length_tolerance: "±2", height: 10, height_tolerance: "±1", entraxe: 177, entraxe_tolerance: "±10" }
|
|
314
|
+
two_three_wheel: { length: 10, length_tolerance: "±2", height: 6, height_tolerance: "±1", entraxe: "sans objet" }
|
|
315
|
+
printed_form: >-
|
|
316
|
+
THE STATUTORY GLYPH IS A BAR, NOT A HYPHEN, AND THE TABLE PROVES IT: a
|
|
317
|
+
tiret is 15 mm long and 10 mm high against 75 mm characters — a thick
|
|
318
|
+
short block at the middle of the cap height, which is exactly what issued
|
|
319
|
+
plates show (BK-604-DX, BP-257-RR, EP-651-TE, WW-477-WB). Recorded here
|
|
320
|
+
because `format.separator` can only spell "-", and a consumer drawing a
|
|
321
|
+
typographic hyphen draws the wrong object. Evidence: statutory +
|
|
322
|
+
photographic-observed.
|
|
323
|
+
position: >-
|
|
324
|
+
The two tirets are symmetric about the vertical axis of the useful part
|
|
325
|
+
(annexe 2 marks the axis at 260 ±5 from the left edge of a 520 mm plate),
|
|
326
|
+
so the layout of every AA-123-AA number is fixed. On the two-line plates
|
|
327
|
+
the FIRST tiret stays at the end of line 1: annexes 3 and 4 bis both draw
|
|
328
|
+
"AB -" over "725-FR" (annexe 3, 55 ±5 below the useful top edge) and
|
|
329
|
+
"AB -" over "948-MZ" (annexe 4 bis, 35 ±5), with the second tiret at
|
|
330
|
+
3/5 of the useful length (annexe 3) or 126 ±10 from the left (4 bis).
|
|
331
|
+
euro_symbol_zone:
|
|
332
|
+
general: { width_min: 44, height_min: 98, two_line_height: 100, two_line_height_tolerance: "+5/-3" }
|
|
333
|
+
two_three_wheel: { width_min: 29, height: 62, height_tolerance: "+5/-3" }
|
|
334
|
+
note: "annexe 1 bis dimensions the European symbol and the identifiant territorial zone with ONE pair of rows — the two blue zones are the same size, one at each end of the useful part"
|
|
335
|
+
identifiant_territorial_zone:
|
|
336
|
+
logo: { position: "centré dans la moitié supérieure de la zone dédiée", general: { width: 39, width_tolerance: "+0/-5", height: 44, height_tolerance: "+0/-5" }, two_three_wheel: { width: 24, width_tolerance: "+0/-3", height: 27, height_tolerance: "+0/-3" } }
|
|
337
|
+
department_digits:
|
|
338
|
+
general: { height: 32, height_tolerance: "±3", width: 15, width_tolerance: "±2", stroke: 5, stroke_tolerance: "±1" }
|
|
339
|
+
two_three_wheel: { height: 22, height_tolerance: "±2", width: 10, width_tolerance: "±2", stroke: 3, stroke_tolerance: "±1" }
|
|
340
|
+
dom_note: "la taille des caractères du numéro de département DOM peut être ajustée pour un rendu homogène"
|
|
341
|
+
zones_source: "annexe 6 bis (positions of the département marking zones) — still image-only and NOT transcribed here"
|
|
342
|
+
homologation_marking:
|
|
343
|
+
present: true
|
|
344
|
+
position: "bottom right of the useful part, under the identifiant territorial"
|
|
345
|
+
envelope: { width_max: 52, height_max: 35 }
|
|
346
|
+
note: >-
|
|
347
|
+
Annexes 2, 3 and 4 bis all reserve this box and letter it "TPPR XXXX" in
|
|
348
|
+
their illustrative renderings; issued plates carry the plate maker's own
|
|
349
|
+
homologation reference there (observed: "TPPR 6151", "TPPR 11033",
|
|
350
|
+
"P 1116"). The CONTENT is manufacturer-specific and is not modelled.
|
|
351
|
+
remaining_gap: >-
|
|
352
|
+
Annexe 6 bis (the further specification of the European symbol and of the
|
|
353
|
+
département marking zones) and the PRE-2015 annexes 1, 3, 4, 5 and 6 that
|
|
354
|
+
art. 11 bis retired on 1 July 2015 are still published as images only and
|
|
355
|
+
are NOT transcribed. So the cyclomoteur plate issued before 1 July 2015 and
|
|
356
|
+
every FNI-era plate remain dimensionally unsourced.
|
|
357
|
+
sources:
|
|
358
|
+
- "https://www.legifrance.gouv.fr/download/file/RoSk8Ua8lFJWJLVDjh-XCyfJvp_yqT8SIiOnWW6Q0Fc=/JOE_TEXTE # JO nº 0121 du 17/05/2020, texte 8 sur 82 — arrêté du 7 mai 2020 (NOR TRER2011996A), which substitutes annexes 1 bis, 2, 3 and 4 bis in full"
|
|
359
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000041887893 # annexe 1 bis in force — body is a PDF link only, which is why the substituting arrêté is the readable route"
|
|
360
|
+
- "https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000030249176 # arrêté du 11 février 2015 creating annexe 1 bis"
|
|
361
|
+
plate_count:
|
|
362
|
+
rule: >-
|
|
363
|
+
Code de la route art. R. 317-8 I: "Tout véhicule à moteur, à l'exception
|
|
364
|
+
des matériels de travaux publics doit être muni de deux plaques
|
|
365
|
+
d'immatriculation", with motocyclettes, tricycles à moteur, quadricycles à
|
|
366
|
+
moteur, cyclomoteurs and agricultural/forestry vehicles allowed a single
|
|
367
|
+
REAR plate, and W garage vehicles using removable plates. Art. R. 317-8 II
|
|
368
|
+
governs trailers and semi-trailers: separately registered above the
|
|
369
|
+
regulatory mass, otherwise carrying a plate that reproduces the towing
|
|
370
|
+
vehicle's number. Art. R. 317-8 IV delegates the characteristics to the
|
|
371
|
+
two ministers, which is the hook arrêté (2) hangs on.
|
|
372
|
+
source: "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042266062 # art. R. 317-8, version en vigueur depuis le 16 juin 2025"
|
|
373
|
+
usages:
|
|
374
|
+
note: >-
|
|
375
|
+
France models several plate-relevant categories not as number series but
|
|
376
|
+
as "mentions relatives à l'usage du véhicule" on the certificat. Arrêté
|
|
377
|
+
(1) art. 4 lists them verbatim: "véhicule administration civile de
|
|
378
|
+
l'Etat-code TGPE", "véhicule militaire-numéro militaire", "véhicule
|
|
379
|
+
agricole-numéro d'exploitation", "véhicule de démonstration-date de fin de
|
|
380
|
+
validité de l'usage", "véhicule de collection", "véhicule en transit
|
|
381
|
+
temporaire-date de fin de validité de l'usage", "véhicule importé en
|
|
382
|
+
transit-date de fin de validité de l'usage", "véhicule zone franche du
|
|
383
|
+
pays de Gex", "véhicule zone franche de Haute-Savoie". Only three of the
|
|
384
|
+
nine change the PLATE (collection, and the two transit usages, plus the
|
|
385
|
+
two free-zone usages by annexe 7 item 1); the rest are certificate-only
|
|
386
|
+
and are therefore NOT series here.
|
|
387
|
+
military_gap: >-
|
|
388
|
+
MILITARY IS A RECORDED GAP. The "véhicule militaire" usage shows that a
|
|
389
|
+
separate "numéro militaire" exists alongside the SIV number, but neither
|
|
390
|
+
arrêté states its composition and no defence-ministry instrument was
|
|
391
|
+
located in this pass. French military plates are consequently NOT modelled
|
|
392
|
+
— deliberately, rather than guessed.
|
|
393
|
+
source: "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000049860467 # art. 4"
|
|
394
|
+
|
|
395
|
+
series:
|
|
396
|
+
|
|
397
|
+
# =========================================================================
|
|
398
|
+
# THE STANDARD SERIES — SIV, 15 April 2009 onward. AA-123-AA.
|
|
399
|
+
# =========================================================================
|
|
400
|
+
- id: fr-siv-standard
|
|
401
|
+
class: standard
|
|
402
|
+
categories: [car, van, truck, bus, trailer, semitrailer, tractor, machine]
|
|
403
|
+
period: { start: 2009 }
|
|
404
|
+
period_evidence: enabling-instrument
|
|
405
|
+
matching: strict
|
|
406
|
+
format:
|
|
407
|
+
pattern: "LL-999-LL"
|
|
408
|
+
regex: '\A[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
409
|
+
regex_strict: '\A(?!WW-)[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
410
|
+
grammar: >-
|
|
411
|
+
Annexe VII A, verbatim: "Le numéro d'immatriculation attribué à titre
|
|
412
|
+
définitif au véhicule se compose des éléments suivants : 2 lettres,
|
|
413
|
+
suivies de 3 chiffres, suivis de 2 lettres, les blocs de chiffres et de
|
|
414
|
+
lettres étant séparés par des tirets. Exemple : AA-111-AA."
|
|
415
|
+
charset:
|
|
416
|
+
letters_excluded: []
|
|
417
|
+
notes: >-
|
|
418
|
+
NO LETTER IS EXCLUDED BY THE LAW. Annexe VII states shapes only. The
|
|
419
|
+
familiar claim that I, O and U are never issued (as lookalikes of 1, 0
|
|
420
|
+
and V) and that SS is skipped appears in no French primary located in
|
|
421
|
+
this pass and is recorded as folklore in the dossier, NOT as data.
|
|
422
|
+
`regex_strict` therefore narrows on exactly one sourced ground: annexe
|
|
423
|
+
VII C assigns the two-letter group WW to provisional numbers, so a
|
|
424
|
+
definitive number opening "WW-" would collide with a different series
|
|
425
|
+
of the same annexe.
|
|
426
|
+
progression: >-
|
|
427
|
+
NOT SOURCED. Neither arrêté states an allocation order. The widely
|
|
428
|
+
repeated right-to-left increment (digits, then the right letter pair,
|
|
429
|
+
then the left) and the 277,977,744-combination count are folklore here
|
|
430
|
+
until a French primary states them — which matters, because the parse
|
|
431
|
+
API's French age inference depends entirely on that ordering.
|
|
432
|
+
separator: "-"
|
|
433
|
+
separator_note: >-
|
|
434
|
+
The hyphens are PRINTED and are regulated objects, not typography:
|
|
435
|
+
arrêté (2) art. 6 requires "les caractères et les tirets" to resist use
|
|
436
|
+
and forbids repositioning a detached one, and art. 10 I requires the
|
|
437
|
+
tirets to be integrated at manufacture. Art. 7 last sentence: "La
|
|
438
|
+
définition, les dimensions, l'ordre et l'espacement des tirets sont
|
|
439
|
+
fixés par le tableau à l'annexe 1 bis et par les plans aux annexes 2 à
|
|
440
|
+
4 bis" — and that geometry is now transcribed under common.dimensions.
|
|
441
|
+
THE PRINTED FORM IS A BAR, NOT A HYPHEN: annexe 1 bis dimensions a tiret
|
|
442
|
+
at 15 x 10 mm against 75 mm characters, and issued plates BK-604-DX,
|
|
443
|
+
BP-257-RR, EP-651-TE and WW-477-WB all show a thick short block at the
|
|
444
|
+
middle of the cap height. A consumer drawing a typographic hyphen draws
|
|
445
|
+
the wrong object. Evidence: statutory + photographic-observed.
|
|
446
|
+
design:
|
|
447
|
+
plate: { w: 520, h: 110, unit: mm, source: "annexe 1 bis, cas général 1 ligne (508 +14/-0 x 98 +14/-0 hors tout; the plan draws the support at 520 ±2)" }
|
|
448
|
+
plate_variants:
|
|
449
|
+
- { w: 275, h: 200, lines: 2, source: "annexe 1 bis / annexe 3, cas général 2 lignes (263 utile mini si longueur hors tout 275; hauteur hors tout 188 +15/-0)" }
|
|
450
|
+
- { w: 300, h: 210, lines: 2, source: "annexe 1 bis / annexe 3, the second two-line size (288 utile mini si longueur hors tout 300; avec bavette 210 +10/-3)" }
|
|
451
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec, spec_note: "arrêté (2) art. 7: 'fond rétroréfléchissant blanc'; the white chromaticity quadrilateral and luminance factor >= 0.35 are in the arrêté du 15 avril 1996" }
|
|
452
|
+
foreground: "#000000"
|
|
453
|
+
foreground_note: "'caractères noirs NON rétroréfléchissants' — the characters are required not to retroreflect, unlike the ground"
|
|
454
|
+
band: { side: left, color: "#003399", content: eu-stars+F, hex_basis: observed, note: "art. 8 requires the European symbol completed by 'F' on a retroreflective blue ground; the 1996 arrêté gives the blue only as a chromaticity quadrilateral, so the hex is the conventional EU blue and is observed, not specified" }
|
|
455
|
+
extra_field:
|
|
456
|
+
position: right
|
|
457
|
+
content: "identifiant territorial — official logo of a région (or of the collectivité européenne d'Alsace) plus the number of one of its départements"
|
|
458
|
+
background: "blue, not necessarily retroreflective"
|
|
459
|
+
owner_chosen: true
|
|
460
|
+
note: "art. 9; identical front and rear; reproduced only by homologated manufacturers"
|
|
461
|
+
emblem: { present: true, rendered: placeholder, note: "the identifiant territorial carries an official REGIONAL LOGO — 18 régions plus the collectivité européenne d'Alsace, none HELD. LICENCE ROUTE, corrected by reading art. 9 to its end: the logos are declared officiels ET LIBRES DE DROIT, and the article names their publisher — verbatim, 'Les logos des collectivités territoriales officiels et libres de droit, qui figurent sur le site internet du ministère de l intérieur : http://www.interieur.gouv.fr/, ne peuvent être reproduits sur les plaques d immatriculation que par le seul fabricant de plaques ou de matériau réfléchissant titulaire d homologation.' The reservation that follows is about reproducing them ON PLATES by makers without homologation — a manufacturing rule — and it sits after the words 'libres de droit'. So the blocker is ACQUIRING the official files, not their licence. PRD-PLATES §3 placeholder rule still applies until they are held and ledgered." }
|
|
462
|
+
shape_note: "art. 5: the useful part is rectangular with the long side horizontal; the physical support must be symmetric about a vertical axis and may be slightly curved; a lower 'bavette' outside the useful part may carry only the seller's or fitter's references"
|
|
463
|
+
background_pattern_rule: "art. 5: 'Les trames de fonds de plaques ne doivent pas comporter de caractères explicites (lettre ou symbole) ou ostentatoires' — decorative background textures are allowed, explicit letters or symbols in them are not"
|
|
464
|
+
rear_differs: false
|
|
465
|
+
display: "two plates (front and rear) on motor vehicles per art. R. 317-8 I"
|
|
466
|
+
region_encoding: none
|
|
467
|
+
region_encoding_mechanism: >-
|
|
468
|
+
NONE — and this is the headline French fact. The SIV number is attributed
|
|
469
|
+
"à titre définitif au véhicule par un système informatique centralisé"
|
|
470
|
+
(art. R. 322-2 I) in one national series; it contains no geographic group,
|
|
471
|
+
it does not change when the keeper moves, and the département shown on the
|
|
472
|
+
plate is a freely chosen graphic (art. 9 of arrêté (2), quoted in full in
|
|
473
|
+
this file's header). plates/_decode/fr-departements.yml exists to decode
|
|
474
|
+
the FNI series and to validate the band's (région, département) pairing —
|
|
475
|
+
never to place a SIV-numbered vehicle.
|
|
476
|
+
variants:
|
|
477
|
+
- class: trailer
|
|
478
|
+
note: >-
|
|
479
|
+
Trailers and semi-trailers below the mass threshold of art. R. 317-8 II
|
|
480
|
+
carry a plate REPRODUCING the towing vehicle's number rather than one
|
|
481
|
+
of their own, and it may be removable. Format-identical and
|
|
482
|
+
colour-identical, so a sub-entry per PRD-PLATES §2.3 and not a series.
|
|
483
|
+
sources:
|
|
484
|
+
- "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042266062 # art. R. 317-8 II"
|
|
485
|
+
sources:
|
|
486
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII A: '2 lettres, suivies de 3 chiffres, suivis de 2 lettres ... Exemple : AA-111-AA'"
|
|
487
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 5-10: plate constitution, caractères bâtons, black on retroreflective white, European symbol + F, identifiant territorial and its free choice"
|
|
488
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020446205 # arrêté du 23 mars 2009 art. 1-2: the SIV enters into force 15 April 2009"
|
|
489
|
+
- "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000032401205 # code de la route art. R. 322-2 I: number attributed 'à titre définitif au véhicule par un système informatique centralisé'"
|
|
490
|
+
- "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042266062 # code de la route art. R. 317-8: two plates, trailer rules, delegation to the ministers"
|
|
491
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000193190 # arrêté du 15 avril 1996: homologation + the white and blue chromaticity quadrilaterals"
|
|
492
|
+
notes: >-
|
|
493
|
+
THE FRENCH STANDARD SERIES, and the cleanest "looks geographic, is not"
|
|
494
|
+
case in the dataset. Three cautions a consumer needs. (i) The number is
|
|
495
|
+
permanent and national: no département group, no re-registration on a
|
|
496
|
+
move, and therefore no region signal at all — the blue band on the right
|
|
497
|
+
is decoration the owner picked. (ii) The alphabet is unsourced: this file
|
|
498
|
+
accepts every A-Z in both letter pairs because French law restricts
|
|
499
|
+
neither, and the famous I/O/U exclusion is folklore until a primary lands.
|
|
500
|
+
(iii) The series has been open since 15 April 2009 with no announced
|
|
501
|
+
successor; art. R. 322-2 makes the number die with the vehicle, not with
|
|
502
|
+
the owner.
|
|
503
|
+
|
|
504
|
+
# =========================================================================
|
|
505
|
+
# MOTORCYCLES — same number, different plate regime.
|
|
506
|
+
# =========================================================================
|
|
507
|
+
- id: fr-siv-motorcycle
|
|
508
|
+
class: motorcycle
|
|
509
|
+
categories: [motorcycle]
|
|
510
|
+
period: { start: 2009 }
|
|
511
|
+
period_evidence: enabling-instrument
|
|
512
|
+
matching: strict
|
|
513
|
+
format:
|
|
514
|
+
pattern: "LL-999-LL"
|
|
515
|
+
regex: '\A[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
516
|
+
regex_strict: '\A(?!WW-)[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
517
|
+
charset: { notes: "annexe VII A applies unchanged — motorcycles take the ordinary definitive number" }
|
|
518
|
+
design:
|
|
519
|
+
plate: { w: 210, h: 130, unit: mm, lines: 2, source: "annexe 1 bis / annexe 4 bis, véhicules à deux ou trois roues (198 +14/-0 x 118 +15/-0 hors tout)" }
|
|
520
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
521
|
+
foreground: "#000000"
|
|
522
|
+
band: { side: left, color: "#003399", content: eu-stars+F, hex_basis: observed }
|
|
523
|
+
rear_differs: true
|
|
524
|
+
display: "ONE plate, rear only — art. R. 317-8 I allows motocyclettes, tricycles à moteur, quadricycles à moteur non carrossés and cyclomoteurs a single rear plate"
|
|
525
|
+
layout: "two lines, per the plans in annexe 4 bis (the motorcycle/moped-specific layout annexe created in 2015)"
|
|
526
|
+
dimensions_note: >-
|
|
527
|
+
The 2015 reform is dated and sourced even though its numbers are not:
|
|
528
|
+
arrêté (2) art. 11 bis, verbatim, "Les plaques d'immatriculation des
|
|
529
|
+
motocyclettes, des tricycles à moteur, des quadricycles à moteur, non
|
|
530
|
+
carrossés, et des cyclomoteurs posées avant le 1er juillet 2015, dont
|
|
531
|
+
les dimensions et caractéristiques étaient prévues aux annexes 1, 3, 4,
|
|
532
|
+
5 et 6 de l'arrêté du 9 février 2009 susvisé doivent être remplacées
|
|
533
|
+
avant le 1er juillet 2017 par des plaques d'immatriculation dont les
|
|
534
|
+
dimensions et caractéristiques sont prévues aux annexes 1 bis, 3, 4 bis
|
|
535
|
+
et 6 bis." So there IS a hard French motorcycle-plate size change with a
|
|
536
|
+
1 July 2015 start and a 1 July 2017 compliance deadline — and the mm on
|
|
537
|
+
both sides of it are in image-only annexes (see the dimensions gap).
|
|
538
|
+
The frequently quoted 210 x 130 mm is NOT sourced here.
|
|
539
|
+
region_encoding: none
|
|
540
|
+
sources:
|
|
541
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII A — motorcycles take the ordinary definitive number"
|
|
542
|
+
- "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042266062 # art. R. 317-8 I: single rear plate for motocyclettes, tricycles, quadricycles non carrossés, cyclomoteurs"
|
|
543
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 7 (two-line layout per annexes 3 à 4 bis) and art. 11 bis (the 1 July 2015 / 1 July 2017 replacement rule)"
|
|
544
|
+
notes: >-
|
|
545
|
+
MOTORCYCLES. Its own series and not a variant of fr-siv-standard because
|
|
546
|
+
the plate regime differs on three sourced points: one plate instead of two
|
|
547
|
+
(art. R. 317-8 I), its own layout annexe (4 bis), and a statutory
|
|
548
|
+
dimensional cut-over on 1 July 2015 with a 1 July 2017 deadline
|
|
549
|
+
(art. 11 bis). The NUMBER is identical to a car's, so a French motorcycle
|
|
550
|
+
registration is not distinguishable from a car's by string alone — the
|
|
551
|
+
exact opposite of the Netherlands, where the first letter encodes the
|
|
552
|
+
category.
|
|
553
|
+
|
|
554
|
+
# =========================================================================
|
|
555
|
+
# MOPEDS — two series, split by annexe VII's own 30 June 2015 boundary.
|
|
556
|
+
# =========================================================================
|
|
557
|
+
- id: fr-siv-cyclomoteur-2009
|
|
558
|
+
class: moped
|
|
559
|
+
categories: [moped]
|
|
560
|
+
period: { start: 2009, end: 2015 }
|
|
561
|
+
period_evidence: enabling-instrument
|
|
562
|
+
matching: strict
|
|
563
|
+
format:
|
|
564
|
+
pattern: "L 99 L"
|
|
565
|
+
regex: '\A[A-Z]{1,2} \d{2,3} [A-Z]\z'
|
|
566
|
+
grammar: >-
|
|
567
|
+
Annexe VII A, second paragraph, verbatim: "Pour le cas particulier des
|
|
568
|
+
cyclomoteurs immatriculés jusqu'au 30 juin 2015, il se compose de 1 à 2
|
|
569
|
+
lettres, suivies de 2 à 3 chiffres, suivis de 1 lettre, avec un espace
|
|
570
|
+
entre les blocs de lettres et le bloc de chiffres. Au-delà de cette
|
|
571
|
+
date, ceux qui ont été préalablement immatriculés suivant ce format
|
|
572
|
+
conservent leur numéro d'immatriculation. Exemple : A 11 A."
|
|
573
|
+
separator: " "
|
|
574
|
+
separator_note: "the arrêté specifies a SPACE here and hyphens for the definitive number — the only French series pair whose separators differ, and a clean illustration of why the dataset commits to a separator set (PRD-PLATES §2.6)"
|
|
575
|
+
design:
|
|
576
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
577
|
+
foreground: "#000000"
|
|
578
|
+
band: { side: left, color: "#003399", content: eu-stars+F, hex_basis: observed }
|
|
579
|
+
display: "one plate, rear only (art. R. 317-8 I)"
|
|
580
|
+
region_encoding: none
|
|
581
|
+
sources:
|
|
582
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII A second paragraph: the cyclomoteur format and its 30 June 2015 cut-off"
|
|
583
|
+
- "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042266062 # art. R. 317-8 I: cyclomoteurs carry a single rear plate"
|
|
584
|
+
notes: >-
|
|
585
|
+
THE FRENCH MOPED FORMAT, closed 30 June 2015 — the shortest registration
|
|
586
|
+
in this file (as few as four characters, "A 11 A") and the only French
|
|
587
|
+
series that is NOT the definitive AA-123-AA shape. Two things a parse API
|
|
588
|
+
must carry. (i) The series is CLOSED to new issue but NOT withdrawn: the
|
|
589
|
+
annexe says in terms that mopeds already registered this way "conservent
|
|
590
|
+
leur numéro d'immatriculation", so these strings stay valid indefinitely —
|
|
591
|
+
the ended-but-on-the-road case. (ii) period.start 2009 is the SIV's start,
|
|
592
|
+
not the format's: mopeds became registrable in France before the SIV and
|
|
593
|
+
this shape probably predates 15 April 2009 under the FNI. No primary for
|
|
594
|
+
an earlier start was secured — recorded gap.
|
|
595
|
+
|
|
596
|
+
- id: fr-siv-moped
|
|
597
|
+
class: moped
|
|
598
|
+
categories: [moped]
|
|
599
|
+
period: { start: 2015 }
|
|
600
|
+
period_evidence: enabling-instrument
|
|
601
|
+
matching: strict
|
|
602
|
+
format:
|
|
603
|
+
pattern: "LL-999-LL"
|
|
604
|
+
regex: '\A[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
605
|
+
regex_strict: '\A(?!WW-)[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
606
|
+
charset: { notes: "the cyclomoteur exception in annexe VII A runs 'jusqu'au 30 juin 2015'; from 1 July 2015 a newly registered moped takes the ordinary definitive number" }
|
|
607
|
+
design:
|
|
608
|
+
plate: { w: 210, h: 130, unit: mm, lines: 2, source: "annexe 1 bis / annexe 4 bis — art. 11 bis puts cyclomoteur plates on these annexes from 1 July 2015" }
|
|
609
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
610
|
+
foreground: "#000000"
|
|
611
|
+
band: { side: left, color: "#003399", content: eu-stars+F, hex_basis: observed }
|
|
612
|
+
display: "one plate, rear only (art. R. 317-8 I); two-line layout per annexe 4 bis"
|
|
613
|
+
region_encoding: none
|
|
614
|
+
sources:
|
|
615
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII A: the cyclomoteur exception ends 30 June 2015"
|
|
616
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 11 bis: cyclomoteur plates posed before 1 July 2015 replaced by 1 July 2017 with annexe 1 bis / 4 bis plates"
|
|
617
|
+
notes: >-
|
|
618
|
+
MOPEDS FROM 1 JULY 2015 — the date is the authority's own, written into
|
|
619
|
+
annexe VII as the end of the cyclomoteur exception and into art. 11 bis as
|
|
620
|
+
the start of the new plate annexes. This series overlaps
|
|
621
|
+
fr-siv-cyclomoteur-2009 at 2015 by construction: the old numbers keep
|
|
622
|
+
running while the new shape starts, which is exactly the parallel-issuance
|
|
623
|
+
case PRD-PLATES §2.2 sanctions.
|
|
624
|
+
|
|
625
|
+
# =========================================================================
|
|
626
|
+
# DEALER — W garage. Two series, split by the 2026 pink plate.
|
|
627
|
+
# =========================================================================
|
|
628
|
+
- id: fr-wgarage-2009
|
|
629
|
+
class: dealer
|
|
630
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
631
|
+
period: { start: 2009, end: 2025 }
|
|
632
|
+
period_evidence: enabling-instrument
|
|
633
|
+
binding: business
|
|
634
|
+
matching: strict
|
|
635
|
+
format:
|
|
636
|
+
pattern: "W-999-LL"
|
|
637
|
+
regex: '\AW-\d{3}-[A-Z]{2}\z'
|
|
638
|
+
grammar: >-
|
|
639
|
+
Annexe VII B, verbatim: "Le numéro W garage se compose de la lettre W,
|
|
640
|
+
suivie de 3 chiffres, suivis de 2 lettres, les blocs de chiffres et de
|
|
641
|
+
lettres étant séparés par des tirets. Exemple : W-111-AA."
|
|
642
|
+
design:
|
|
643
|
+
plate: { w: 520, h: 110, unit: mm, source: "annexe 1 bis, cas général 1 ligne" }
|
|
644
|
+
background: { finish: retroreflective, note: "NO COLOUR IS PRESCRIBED for W garage plates in any version of the arrêté before 1 January 2026 — verified against the 2009 original and the version in force 1 June 2025, whose annexe 7 has three items, none of them W or WW. Art. 7 al. 1's black-on-white rule is expressly limited to vehicles 'portant le numéro définitif', which a W garage number is not. The colour is therefore a RECORDED GAP for this period, not an assumption." }
|
|
645
|
+
band: { side: left, content: eu-stars+F, note: "art. 8's Euro-symbol duty is written for 'véhicules portant le numéro définitif', so its text does not reach a W garage number; issued plates carry the symbol anyway. Photographic-observed: W-143-AK, black on white, euroband present and NO identifiant territorial." }
|
|
646
|
+
removable: true
|
|
647
|
+
removable_note: "art. R. 317-8 I and arrêté (2) art. 4 allow removable plates for vehicles circulating under a W garage certificate — France's answer to the German rote Kennzeichen"
|
|
648
|
+
region_encoding: none
|
|
649
|
+
validity: { period: "civil year", note: "the W garage certificate runs for the calendar year and carries the end date of validity; renewal is applied for between 1 November and 31 December" }
|
|
650
|
+
sources:
|
|
651
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII B: W + 3 chiffres + 2 lettres, hyphen-separated"
|
|
652
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000047977247 # art. 9: who may hold a W garage certificate (professionnels du commerce de l'automobile, réparateurs, importateurs, transporteurs, coopératives agricoles, établissements de formation), the permitted uses (essais techniques, transport pour carrossage, présentation à la presse, présentation à l'acheteur, remorquage), the calendar-year validity, and the rule that where the W number is used on an already-registered vehicle 'ce numéro doit seul être utilisé'"
|
|
653
|
+
- "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042266062 # art. R. 317-8 I: removable plates for W garage vehicles"
|
|
654
|
+
notes: >-
|
|
655
|
+
W GARAGE, 2009-2025 — the French trade plate, and like the German 06 plate
|
|
656
|
+
it binds to a BUSINESS and moves between vehicles, so `binding: business`
|
|
657
|
+
is set and a vehicle-keyed consumer must not join on it. Art. 9's rule
|
|
658
|
+
that where a W number is used on an already-registered vehicle "ce numéro
|
|
659
|
+
doit seul être utilisé" is the tell: the vehicle's own plates come off.
|
|
660
|
+
This entry exists as a separate series from fr-wgarage-2026 solely because
|
|
661
|
+
the DESIGN changed on 1 January 2026 (PRD-PLATES §2.3); the number format
|
|
662
|
+
is identical across the split. TRANSITIONAL GAP: no provision on plates
|
|
663
|
+
ALREADY IN SERVICE on 1 January 2026 was located — whether a pre-2026 W
|
|
664
|
+
garage plate had to be replaced with a pink one, and by when, is
|
|
665
|
+
unresolved, so `period.end: 2025` records the end of the old DESIGN's
|
|
666
|
+
issuance and not necessarily the end of its validity.
|
|
667
|
+
|
|
668
|
+
- id: fr-wgarage-2026
|
|
669
|
+
class: dealer
|
|
670
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
671
|
+
period: { start: 2026 }
|
|
672
|
+
period_evidence: enabling-instrument
|
|
673
|
+
binding: business
|
|
674
|
+
matching: strict
|
|
675
|
+
format:
|
|
676
|
+
pattern: "W-999-LL"
|
|
677
|
+
regex: '\AW-\d{3}-[A-Z]{2}\z'
|
|
678
|
+
grammar: "annexe VII B unchanged — the 2025 amendment touched only the plate, never the number"
|
|
679
|
+
design:
|
|
680
|
+
plate: { w: 520, h: 110, unit: mm, source: "annexe 1 bis, cas général 1 ligne — the 2025 amendment changed the colour, not the geometry" }
|
|
681
|
+
background: { color: "#FF41B2", finish: non-retroreflective, hex_basis: derived, hex_note: "DERIVED, NOT STATED. The arrêté names the colour only as 'rose' and binds it to the chromaticity quadrilateral (0.345,0.155) (0.500,0.195) (0.470,0.295) (0.365,0.280) added to the arrêté du 15 avril 1996 by the arrêté du 21 novembre 2025 art. 2. The hex is the sRGB rendering of that quadrilateral's centroid (x=0.4200, y=0.2312) at Y=0.30, red-channel-clipped because the specified pink is outside the sRGB gamut. No photograph was consulted. Flagged for the human pass." }
|
|
682
|
+
foreground: "#000000"
|
|
683
|
+
finish_note: "the new art. 1 bis of the arrêté du 15 avril 1996, verbatim: 'Les dispositions de l'article 1er ne sont pas applicables aux plaques d'immatriculation provisoire WW et immatriculation W garage présentées en caractères noirs sur fond rose.' — pink WW/W plates are exempted from the homologation-and-retroreflective-product regime that binds every other French plate, while still being bound to the pink coordinates"
|
|
684
|
+
band: { side: left, content: eu-stars+F, note: "art. 8's duty is written for definitive numbers; not resolved for pink plates — recorded gap" }
|
|
685
|
+
removable: true
|
|
686
|
+
region_encoding: none
|
|
687
|
+
validity: { period: "civil year" }
|
|
688
|
+
sources:
|
|
689
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 4 (version en vigueur depuis le 01/01/2026): 'Le numéro d'immatriculation est reproduit sur chaque plaque d'immatriculation en caractères noirs sur fond rose.'"
|
|
690
|
+
- "https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000052971649 # arrêté du 21 novembre 2025 (NOR INTS2532392A) art. 1 (inserts annexe 7 item 4), art. 2 (inserts art. 1 bis and the pink coordinates into the arrêté du 15 avril 1996), art. 3 ('Le présent arrêté entre en vigueur le 1er janvier 2026')"
|
|
691
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII B: the W garage number composition, unchanged"
|
|
692
|
+
notes: >-
|
|
693
|
+
W GARAGE FROM 1 JANUARY 2026 — black on PINK. The most useful new date
|
|
694
|
+
signal in European plate data: a pink French plate cannot predate 2026,
|
|
695
|
+
and before 2026 no French instrument prescribed any colour for these
|
|
696
|
+
plates at all. Note also what the change reveals about French plate law's
|
|
697
|
+
shape — the pink plate had to be exempted from the 1996 homologation
|
|
698
|
+
arrêté to exist, because a pink retroreflective product is not a
|
|
699
|
+
homologated type.
|
|
700
|
+
|
|
701
|
+
# =========================================================================
|
|
702
|
+
# TEMPORARY — WW. Same 2026 split, same reason.
|
|
703
|
+
# =========================================================================
|
|
704
|
+
- id: fr-ww-2009
|
|
705
|
+
class: temporary
|
|
706
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
707
|
+
period: { start: 2009, end: 2025 }
|
|
708
|
+
period_evidence: enabling-instrument
|
|
709
|
+
matching: strict
|
|
710
|
+
format:
|
|
711
|
+
pattern: "WW-999-LL"
|
|
712
|
+
regex: '\AWW-\d{3}-[A-Z]{2}\z'
|
|
713
|
+
grammar: >-
|
|
714
|
+
Annexe VII C, verbatim: "Le numéro WW se compose de deux lettres WW,
|
|
715
|
+
suivies de 3 chiffres, suivis de 2 lettres, les blocs de chiffres et de
|
|
716
|
+
lettres étant séparés par des tirets. Exemple : WW-111-AA."
|
|
717
|
+
fields_note: "the plate additionally bears the WW registration's END-OF-VALIDITY DATE as mm/aa at the right-hand end of the useful part (arrêté (2) art. 7 al. 2) — a field a single pattern string cannot carry"
|
|
718
|
+
design:
|
|
719
|
+
plate: { w: 520, h: 110, unit: mm, source: "annexe 1 bis, cas général 1 ligne" }
|
|
720
|
+
background: { finish: retroreflective, note: "no colour prescribed before 1 January 2026 — same recorded gap as fr-wgarage-2009" }
|
|
721
|
+
band: { side: left, content: eu-stars+F, note: "not written for provisional numbers, but issued plates carry the symbol — photographic-observed (WW-799-VQ, WW-764-AS)" }
|
|
722
|
+
identifiant_territorial: present
|
|
723
|
+
identifiant_territorial_note: "photographic-observed: issued 2009-2025 WW plates carry a full identifiant territorial — WW-799-VQ with the Auvergne-Rhône-Alpes logo over 74, WW-764-AS with Limousin over 19. Art. 9 is not disapplied for WW."
|
|
724
|
+
extra_field:
|
|
725
|
+
position: right
|
|
726
|
+
content: "mm/aa, the end of the WW registration's validity"
|
|
727
|
+
printed: unobserved
|
|
728
|
+
printed_note: >-
|
|
729
|
+
Art. 7 al. 2 requires the expiry on the plate, but no issued 2009-2025
|
|
730
|
+
WW plate located in either pass shows it: the right-hand end carries
|
|
731
|
+
the identifiant territorial instead. The field only becomes visible on
|
|
732
|
+
the 2026 pink plate, whose annexe 7 item 4 puts it there in terms.
|
|
733
|
+
Divergence recorded, not resolved.
|
|
734
|
+
region_encoding: none
|
|
735
|
+
validity:
|
|
736
|
+
months: 4
|
|
737
|
+
months_extended: 6
|
|
738
|
+
note: >-
|
|
739
|
+
Art. 8 II: "Un certificat provisoire d'immatriculation WW est délivré au
|
|
740
|
+
demandeur lui permettant de circuler, pendant quatre mois. Cette durée
|
|
741
|
+
est de six mois pour les véhicules neufs vendus incomplets aux fins de
|
|
742
|
+
carrossage, les machines agricoles automotrices et les véhicules de
|
|
743
|
+
catégories R et S mentionnés au I." — and "L'immatriculation provisoire
|
|
744
|
+
est suivie obligatoirement d'une immatriculation définitive".
|
|
745
|
+
sources:
|
|
746
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII C: WW + 3 chiffres + 2 lettres"
|
|
747
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000053057758 # art. 8 I: the closed list of WW-eligible vehicles, including 'les véhicules neufs exportés vers les départements d'outre-mer et les collectivités d'outre-mer, vers l'Union européenne ou vers les Etats tiers' and used vehicles 'destinés à être directement exportés en dehors du territoire métropolitain'; art. 8 II: four months, six for incomplete/agricultural"
|
|
748
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 7 al. 2: the WW expiry date is reproduced on the plate"
|
|
749
|
+
notes: >-
|
|
750
|
+
WW PROVISIONAL, 2009-2025 — AND FRANCE'S EXPORT PLATE. There is no
|
|
751
|
+
separate French export series: art. 8 I puts export squarely inside WW,
|
|
752
|
+
listing new vehicles exported to the DOM/COM, to the EU or to third
|
|
753
|
+
states, used vehicles bought from a French dealer for direct export, and
|
|
754
|
+
diplomatic vehicles being exported "après restitution de leurs plaques
|
|
755
|
+
diplomatiques aux autorités douanières". A consumer looking for
|
|
756
|
+
`class: export` in France should read this series and fr-ww-2026. The
|
|
757
|
+
four-month validity and the mandatory follow-on definitive registration
|
|
758
|
+
are both in art. 8 II. Same transitional gap as fr-wgarage-2009: nothing
|
|
759
|
+
located governs WW plates already in service on 1 January 2026, so
|
|
760
|
+
`period.end: 2025` closes the old design's issuance, not its validity.
|
|
761
|
+
|
|
762
|
+
- id: fr-ww-2026
|
|
763
|
+
class: temporary
|
|
764
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
765
|
+
period: { start: 2026 }
|
|
766
|
+
period_evidence: enabling-instrument
|
|
767
|
+
matching: strict
|
|
768
|
+
format:
|
|
769
|
+
pattern: "WW-999-LL"
|
|
770
|
+
regex: '\AWW-\d{3}-[A-Z]{2}\z'
|
|
771
|
+
grammar: "annexe VII C unchanged"
|
|
772
|
+
fields_note: "mm/aa expiry field at the right-hand end, now specified as black on pink"
|
|
773
|
+
design:
|
|
774
|
+
plate: { w: 520, h: 110, unit: mm, source: "annexe 1 bis, cas général 1 ligne" }
|
|
775
|
+
background: { color: "#FF41B2", finish: non-retroreflective, hex_basis: derived, hex_note: "same derivation as fr-wgarage-2026. The 'no photograph was consulted' caveat is now partly answered: Commons CC0 File:Plaque d'immatriculation provisoire - véhicule en attente d'immatriculation (101).jpg photographs an issued WW-477-WB pink plate, and CC0 File:France 2026 Temporary Plate.png is a vector rendering. Neither is colour-managed, so the hex stays DERIVED — but the colour is no longer unphotographed." }
|
|
776
|
+
foreground: "#000000"
|
|
777
|
+
extra_field: { position: right, content: "mm/aa expiry", foreground: "#000000", background: "rose" }
|
|
778
|
+
band: { side: left, content: eu-stars+F, note: "photographic-observed: the pink plate keeps the blue euroband unchanged (WW-477-WB)" }
|
|
779
|
+
identifiant_territorial: absent
|
|
780
|
+
identifiant_territorial_note: "photographic-observed: the pink plate's right-hand end carries the mm/aa expiry, not an identifiant territorial (WW-477-WB, 06 over 26)"
|
|
781
|
+
region_encoding: none
|
|
782
|
+
validity: { months: 4, months_extended: 6 }
|
|
783
|
+
sources:
|
|
784
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 4: 'caractères noirs sur fond rose' plus 'La date de fin de validité de l'immatriculation provisoire WW (mm/aa) est reproduite dans la partie utile de la plaque, à l'extrémité droite de celle-ci et en caractères noirs sur fond rose.'"
|
|
785
|
+
- "https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000052971649 # arrêté du 21 novembre 2025 art. 1 and art. 3 (in force 1 January 2026)"
|
|
786
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000053057758 # art. 8, version en vigueur depuis le 01/01/2026"
|
|
787
|
+
notes: >-
|
|
788
|
+
WW PROVISIONAL FROM 1 JANUARY 2026 — black on pink, with the expiry month
|
|
789
|
+
and year in the right-hand field on the same pink ground. Same split logic
|
|
790
|
+
as the W garage pair: identical number, new design, new series. Note that
|
|
791
|
+
art. 8 itself was independently amended with effect from the same date
|
|
792
|
+
(arrêté du 15 décembre 2025 art. 2), so the whole WW regime turns over on
|
|
793
|
+
1 January 2026 and the human pass should re-read art. 8 rather than assume
|
|
794
|
+
continuity of the eligibility list.
|
|
795
|
+
|
|
796
|
+
# =========================================================================
|
|
797
|
+
# TRANSIT AND FREE-ZONE — the red plates.
|
|
798
|
+
# =========================================================================
|
|
799
|
+
- id: fr-transit-red
|
|
800
|
+
class: temporary
|
|
801
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
802
|
+
period: { start: 2009 }
|
|
803
|
+
period_evidence: enabling-instrument
|
|
804
|
+
matching: strict
|
|
805
|
+
format:
|
|
806
|
+
pattern: "LL-999-LL"
|
|
807
|
+
regex: '\A[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
808
|
+
regex_strict: '\A(?!WW-)[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
809
|
+
charset: { notes: "these are ORDINARY definitive numbers — annexe VII creates no transit number. What changes is the plate, and the certificate's `usage` mention." }
|
|
810
|
+
fields_note: "for the two transit usages the plate additionally carries the usage's end-of-validity date as mm/aa at the right-hand end, in white on red (annexe 7 item 1). The Gex and Haute-Savoie free-zone usages take the red plate WITHOUT a date."
|
|
811
|
+
design:
|
|
812
|
+
plate: { w: 520, h: 110, unit: mm, source: "annexe 1 bis, cas général 1 ligne" }
|
|
813
|
+
background: { color: "#CC0000", finish: retroreflective, hex_basis: observed, hex_note: "annexe 7 says 'fond rouge' and the arrêté du 15 avril 1996's colorimetric table has NO red row — the colour is named and not numbered, so this hex is observed within a named colour and is one of the weakest claims in the file" }
|
|
814
|
+
foreground: "#FFFFFF"
|
|
815
|
+
band: { side: left, content: eu-stars+F, note: "art. 8 is not disapplied for transit plates (only for collection), so the European symbol is required" }
|
|
816
|
+
extra_field: { position: right, content: "mm/aa end of the usage's validity, white on red — transit usages only" }
|
|
817
|
+
identifiant_territorial: absent
|
|
818
|
+
identifiant_territorial_note: "art. 9 last paragraph expressly disapplies the identifiant territorial to 'véhicule importé en transit' and 'véhicule en transit temporaire' plates — so a red French plate has no département band at all"
|
|
819
|
+
border_rule: { present: true, color: "#FFFFFF", note: "a thin white rule inset about 2 mm from the rim, on two independent photographs (AA-572-BF and EP-651-TE). In neither arrêté; photographic-observed." }
|
|
820
|
+
extra_field_layout: "the mm/aa prints as MONTH OVER YEAR, two short lines stacked at the right-hand end of the useful part (both references)"
|
|
821
|
+
region_encoding: none
|
|
822
|
+
sources:
|
|
823
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 1: 'Usages \"véhicule en transit temporaire\", \"véhicule importé en transit\", \"véhicule pays de Gex\" et \"véhicule pays de Savoie\" — Le numéro d'immatriculation est reproduit sur chaque plaque d'immatriculation en caractères blancs sur fond rouge.'"
|
|
824
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000049860467 # art. 4: the usages 'véhicule en transit temporaire', 'véhicule importé en transit', 'véhicule zone franche du pays de Gex', 'véhicule zone franche de Haute-Savoie'"
|
|
825
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 7 al. 4 (the usage expiry date on the plate), art. 9 last paragraph (no identifiant territorial), art. 10 II (exceptional ministerial authorisations to depart from annexe 7 for 'véhicule importé en transit')"
|
|
826
|
+
notes: >-
|
|
827
|
+
THE RED PLATES — successors of the old TT (transit temporaire) and IT
|
|
828
|
+
(importé en transit) series, plus the two Alpine free-zone usages. Two
|
|
829
|
+
caveats. (i) CLASS CAVEAT: `temporary` fits the two transit usages, whose
|
|
830
|
+
certificate mention itself carries an end-of-validity date, but NOT the
|
|
831
|
+
Gex and Haute-Savoie free-zone usages, which are a customs status rather
|
|
832
|
+
than a short validity — _meta/classes.yml has no fiscal-zone class and the
|
|
833
|
+
four usages share one annexe-7 colour row, so they share one series here.
|
|
834
|
+
(ii) Art. 10 II lets the two ministers authorise, case by case, a plate
|
|
835
|
+
for an "importé en transit" vehicle "dans des caractéristiques n'entrant
|
|
836
|
+
pas dans le cadre défini à l'annexe 7" — a sanctioned escape hatch from
|
|
837
|
+
the design this series records.
|
|
838
|
+
|
|
839
|
+
# =========================================================================
|
|
840
|
+
# COLLECTION — the black plate, and the only French plate with no EU band.
|
|
841
|
+
# =========================================================================
|
|
842
|
+
- id: fr-collection
|
|
843
|
+
class: historic
|
|
844
|
+
categories: [car, van, truck, bus, motorcycle, trailer, tractor, machine]
|
|
845
|
+
period: { start: 2009 }
|
|
846
|
+
period_evidence: enabling-instrument
|
|
847
|
+
matching: strict
|
|
848
|
+
format:
|
|
849
|
+
pattern: "LL-999-LL"
|
|
850
|
+
regex: '\A[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
851
|
+
regex_strict: '\A(?!WW-)[A-Z]{2}-\d{3}-[A-Z]{2}\z'
|
|
852
|
+
charset: { notes: "an ordinary definitive number; annexe VII creates no collection number" }
|
|
853
|
+
design:
|
|
854
|
+
plate: { w: 520, h: 110, unit: mm, source: "annexe 1 bis, cas général 1 ligne" }
|
|
855
|
+
background: { color: "#000000", finish: non-retroreflective, hex_basis: observed, hex_note: "annexe 7 item 3 names 'fond noir'; the 1996 colorimetric table does carry a 'noir' quadrilateral, but for the CHARACTERS of ordinary plates, and no finish is stated for the collection ground — hence observed" }
|
|
856
|
+
foreground: "#FFFFFF"
|
|
857
|
+
optional: true
|
|
858
|
+
optional_note: "annexe 7 item 3 is permissive, not mandatory: 'Le numéro d'immatriculation PEUT être reproduit sur chaque plaque d'immatriculation en caractères blancs sur fond noir.' A collection vehicle may equally run ordinary black-on-white plates, so absence of a black plate proves nothing."
|
|
859
|
+
band: { side: none }
|
|
860
|
+
band_note: >-
|
|
861
|
+
THE ONLY FRENCH PLATE WITHOUT THE EURO-BAND. Arrêté (2) art. 8 last
|
|
862
|
+
paragraph: "Les dispositions du présent article ne sont pas applicables
|
|
863
|
+
aux plaques spécifiques des véhicules immatriculés avec un usage
|
|
864
|
+
'véhicule de collection'." Art. 9 disapplies the identifiant territorial
|
|
865
|
+
to the same plates. So a black French plate carries the number and
|
|
866
|
+
nothing else — no stars, no F, no département.
|
|
867
|
+
identifiant_territorial: absent
|
|
868
|
+
region_encoding: none
|
|
869
|
+
eligibility:
|
|
870
|
+
note: >-
|
|
871
|
+
Arrêté (1) art. 4 conditions the "véhicule de collection" usage on the
|
|
872
|
+
vehicle satisfying "les dispositions du 6.3 de l'article R. 311-1 du
|
|
873
|
+
code de la route" and not being able to meet art. R. 321-15, with
|
|
874
|
+
supporting documents including an attestation from the manufacturer or
|
|
875
|
+
from the Fédération française des véhicules d'époque.
|
|
876
|
+
threshold_gap: >-
|
|
877
|
+
The age threshold itself lives in art. R. 311-1 6.3, which was NOT
|
|
878
|
+
fetched in this pass. The commonly repeated "30 years" is therefore NOT
|
|
879
|
+
asserted here — the same discipline plates/de.yml applied to the German
|
|
880
|
+
H-Kennzeichen threshold.
|
|
881
|
+
sources:
|
|
882
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 3: 'Véhicules de collection — Le numéro d'immatriculation peut être reproduit sur chaque plaque d'immatriculation en caractères blancs sur fond noir.'"
|
|
883
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020237128 # art. 8 last paragraph (no European symbol) and art. 9 last paragraph (no identifiant territorial) for collection plates"
|
|
884
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000049860467 # art. 4: the 'véhicule de collection' usage and its conditions, referring to art. R. 311-1 6.3"
|
|
885
|
+
notes: >-
|
|
886
|
+
VÉHICULE DE COLLECTION — white on black, optional, and stripped of both
|
|
887
|
+
blue bands. Worth stating plainly for the encyclopedia: France did not
|
|
888
|
+
revive a historic FORMAT (contrast the Dutch dark-blue regime, which is
|
|
889
|
+
tied to sidecode 1/2/3 registrations); a French collection vehicle carries
|
|
890
|
+
an ordinary modern AA-123-AA number, merely printed white on black. The
|
|
891
|
+
black plate is also the only French design whose absence of an EU band is
|
|
892
|
+
itself sourced rather than inferred.
|
|
893
|
+
|
|
894
|
+
# =========================================================================
|
|
895
|
+
# DIPLOMATIC AND CONSULAR — annexe VII D. Five entries, one per sourced
|
|
896
|
+
# composition. Colours from annexe 7 item 2.
|
|
897
|
+
# =========================================================================
|
|
898
|
+
- id: fr-diplomatic-cd
|
|
899
|
+
class: diplomatic
|
|
900
|
+
categories: [car, van, motorcycle]
|
|
901
|
+
period: { start: 2009 }
|
|
902
|
+
period_evidence: enabling-instrument
|
|
903
|
+
matching: strict
|
|
904
|
+
format:
|
|
905
|
+
pattern: "999 CD 9999"
|
|
906
|
+
regex: '\A\d{1,3} (?:CMD|CD) \d{1,4}(?: 973)?(?: [ZX])?\z'
|
|
907
|
+
regex_strict: '\A(?:[1-9]|[1-9]\d|1\d{2}|4\d{2}|500|600|700) (?:CMD|CD) [1-9]\d{0,3}(?: 973)?(?: [ZX])?\z'
|
|
908
|
+
regex_strict_note: >-
|
|
909
|
+
The strict twin encodes the numeric ranges annexe VII D.1 actually
|
|
910
|
+
states — first group 1-199, or 400-499 for an international
|
|
911
|
+
organisation, or the fixed 500 (hautes personnalités), 600 (Conseil de
|
|
912
|
+
l'Europe, Strasbourg) and 700 (CIRC, Lyon) — plus the no-leading-zero
|
|
913
|
+
consequence of every range starting at 1. It deliberately does NOT
|
|
914
|
+
enforce the tighter 1-999 sub-range that applies to the second group in
|
|
915
|
+
the hautes-personnalités case only, because a single alternation
|
|
916
|
+
carrying that exception would be less readable than the fact is worth.
|
|
917
|
+
grammar: >-
|
|
918
|
+
Annexe VII D.1. Ambassades: "a) Un premier groupe de un à trois chiffres
|
|
919
|
+
(1 à 199) identifiant le pays représenté ; b) Le sigle CMD (chef de
|
|
920
|
+
mission diplomatique) ou CD (corps diplomatique) ; c) Un deuxième groupe
|
|
921
|
+
de un à quatre chiffres (1 à 9999) indiquant l'ordre d'immatriculation
|
|
922
|
+
par ambassade. Exemple : 100 CD 20." Hautes personnalités: the country
|
|
923
|
+
group is the fixed number 500, the sigle is CD, and the second group
|
|
924
|
+
runs 1 à 999. Organisations internationales: the first group is 400-499,
|
|
925
|
+
with 600 for the Conseil de l'Europe at Strasbourg and 700 for the
|
|
926
|
+
Institut international de recherche sur le cancer at Lyon, then CMD or
|
|
927
|
+
CD, then 1 à 9999. "Pour l'Agence spatiale européenne, en Guyane, le
|
|
928
|
+
numéro d'identification est complété par le chiffre 973. Exemple :
|
|
929
|
+
405 CD 20 973."
|
|
930
|
+
suffix_rule: >-
|
|
931
|
+
Annexe VII D.4, common to CMD, CD, C and K: a Z is appended at the right
|
|
932
|
+
of the last digit group for a vehicle registered with exemption from the
|
|
933
|
+
certificate tax, and an X for a vehicle belonging to a person who does
|
|
934
|
+
NOT enjoy fiscal or customs immunities. Examples: "105 CD 5 Z",
|
|
935
|
+
"600 CD 20 X".
|
|
936
|
+
range_note: "the country group is 1-199 and the organisation group 400-499 (with the fixed 500, 600, 700 cases) — ranges the regex deliberately does NOT encode, because a numeric range is not a lexical constraint and PRD-PLATES keeps regexes lexical; the ranges are recorded here for the decode layer"
|
|
937
|
+
design:
|
|
938
|
+
background: { color: "#0B5D3B", finish: retroreflective, hex_basis: observed, hex_note: "annexe 7 item 2 says 'fond vert jaspe'; the 1996 colorimetric table has no green row at all, so this is a named colour with no coordinates anywhere in French law — observed, and flagged" }
|
|
939
|
+
foreground: "#E87511"
|
|
940
|
+
foreground_note: "'caractères orangés' — likewise named and not numbered"
|
|
941
|
+
band: { side: none, note: "SETTLED PHOTOGRAPHICALLY, and against the guess: French CD/CMD/C/K plates carry NO European symbol at all. Art. 8's duty is written for 'véhicules portant le numéro définitif', which a diplomatic number is not, and two independent photographs — 168 CD 66 in orange on jasper green, 431 K 12355 in white on jasper green — show a plain coloured face from rim to rim. Evidence: photographic-observed." }
|
|
942
|
+
border_rule: { present: true, color: "as the characters", note: "both references show a thin rule inset about 2 mm from the rim in the character colour, orange on the CD plate and white on the K plate. In neither arrêté; photographic-observed." }
|
|
943
|
+
region_encoding: none
|
|
944
|
+
region_encoding_note: "the leading 1-199 group is a COUNTRY code allocated by the Ministère des affaires étrangères and is NOT published in the arrêté — a diplomatic decode table is L4 work per PRD-PLATES §7 and is deliberately not authored here"
|
|
945
|
+
sources:
|
|
946
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII D.1 (CMD/CD compositions for ambassades, hautes personnalités and organisations internationales, plus the ESA/Guyane 973 completion) and D.4 (the Z and X suffixes)"
|
|
947
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 2: 'Séries CMD, CD — Le numéro d'immatriculation est reproduit sur chaque plaque d'immatriculation en caractères orangés sur fond vert jaspe.'"
|
|
948
|
+
- "https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000032401205 # code de la route art. R. 322-2 V: diplomatic vehicles' numbers are completed by a status-linked specific number"
|
|
949
|
+
notes: >-
|
|
950
|
+
CMD / CD — the French diplomatic series. Unlike Germany, which signals
|
|
951
|
+
diplomatic status only through an ordinary-looking prefix, France gives
|
|
952
|
+
the corps its own colour scheme, and unlike Spain it uses ONE green for
|
|
953
|
+
four series and distinguishes them by the character colour. Note the
|
|
954
|
+
annexe-7 trap the design must carry: a CD or CMD number is ORANGE on
|
|
955
|
+
green, but the SAME number becomes WHITE on green the moment a Z or X
|
|
956
|
+
suffix is added (annexe 7 item 2, "Cas particulier"), so character colour
|
|
957
|
+
is not a reliable series discriminator on its own.
|
|
958
|
+
|
|
959
|
+
- id: fr-diplomatic-cd-delegation
|
|
960
|
+
class: diplomatic
|
|
961
|
+
categories: [car, van, motorcycle]
|
|
962
|
+
period: { start: 2009 }
|
|
963
|
+
period_evidence: enabling-instrument
|
|
964
|
+
matching: strict
|
|
965
|
+
format:
|
|
966
|
+
pattern: "L 999 CD 999"
|
|
967
|
+
regex: '\A[A-Z] \d{3} (?:CMD|CD) \d{1,3}(?: [ZX])?\z'
|
|
968
|
+
regex_strict: '\A[UES] (?:2\d{2}|3\d{2}) (?:CMD|CD) (?:[1-9]|[1-9]\d|[1-9]\d{2})(?: [ZX])?\z'
|
|
969
|
+
grammar: >-
|
|
970
|
+
Annexe VII D.1, délégations auprès des organisations internationales:
|
|
971
|
+
"une lettre désignant l'organisation : U (UNESCO), E (OCDE), S (Conseil
|
|
972
|
+
de l'Europe) ; un premier groupe de trois chiffres (200 à 399)
|
|
973
|
+
identifiant le pays représenté ; le sigle CMD ou CD ; un deuxième groupe
|
|
974
|
+
de un à trois chiffres (1 à 999) indiquant l'ordre d'immatriculation par
|
|
975
|
+
délégation. Exemple : U 300 CD 20."
|
|
976
|
+
charset:
|
|
977
|
+
organisation_letters: [U, E, S]
|
|
978
|
+
notes: >-
|
|
979
|
+
The CD delegation list is CLOSED in the arrêté's own punctuation — it
|
|
980
|
+
ends with a semicolon after "S (Conseil de l'Europe)". That is why
|
|
981
|
+
this series carries a regex_strict on [UES] and the K delegation
|
|
982
|
+
series below does not: the K list ends with an ellipsis.
|
|
983
|
+
design:
|
|
984
|
+
background: { color: "#0B5D3B", finish: retroreflective, hex_basis: observed }
|
|
985
|
+
foreground: "#E87511"
|
|
986
|
+
band: { side: left, content: eu-stars+F }
|
|
987
|
+
region_encoding: none
|
|
988
|
+
sources:
|
|
989
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII D.1, délégations: the organisation letter, the 200-399 country group, CMD/CD, and the 1-999 order group"
|
|
990
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 2: orange on jasper green"
|
|
991
|
+
notes: >-
|
|
992
|
+
CD DELEGATIONS TO INTERNATIONAL ORGANISATIONS — the only French series
|
|
993
|
+
that opens with a bare organisation letter, which makes "U 300 CD 20"
|
|
994
|
+
trivially separable from an embassy's "100 CD 20". Distinct from
|
|
995
|
+
fr-diplomatic-cd because the composition has a leading letter and a
|
|
996
|
+
three-digit country group in a different range.
|
|
997
|
+
|
|
998
|
+
- id: fr-consular-c
|
|
999
|
+
class: consular
|
|
1000
|
+
categories: [car, van, motorcycle]
|
|
1001
|
+
period: { start: 2009 }
|
|
1002
|
+
period_evidence: enabling-instrument
|
|
1003
|
+
matching: strict
|
|
1004
|
+
format:
|
|
1005
|
+
pattern: "999 C 999 99"
|
|
1006
|
+
regex: '\A\d{1,3} C \d{1,3} \d{2,3}(?: [ZX])?\z'
|
|
1007
|
+
regex_strict: '\A(?:[1-9]|[1-9]\d|1\d{2}) C (?:[1-9]|[1-9]\d|[1-9]\d{2}) \d{2,3}(?: [ZX])?\z'
|
|
1008
|
+
regex_strict_note: "annexe VII D.2's own ranges: country group 1-199, consular order group 1-999 — both starting at 1, hence no leading zeros"
|
|
1009
|
+
grammar: >-
|
|
1010
|
+
Annexe VII D.2, verbatim: "un premier groupe de un à trois chiffres
|
|
1011
|
+
(1 à 199) identifiant le pays représenté ; la lettre C (corps
|
|
1012
|
+
consulaire) ; un deuxième groupe de un à trois chiffres (1 à 999)
|
|
1013
|
+
indiquant l'ordre d'immatriculation par consulat ; le numéro du
|
|
1014
|
+
département. Remarque : les deux derniers groupes de chiffres seront
|
|
1015
|
+
séparés par un point. Exemple : 105 C 1.75."
|
|
1016
|
+
separator: " "
|
|
1017
|
+
separator_note: >-
|
|
1018
|
+
THE ARRÊTÉ PRESCRIBES A FULL STOP HERE, NOT A SPACE — "les deux derniers
|
|
1019
|
+
groupes de chiffres seront séparés par un point", example "105 C 1.75".
|
|
1020
|
+
U+002E is in this dataset's FORGIVING set but not its EMITTED set
|
|
1021
|
+
(plates/_meta/separators.yml), so `pattern` and `regex` write a space at
|
|
1022
|
+
that position and this note records the divergence rather than laundering
|
|
1023
|
+
it. Consequences: (a) a forgiving consumer is unaffected, because
|
|
1024
|
+
stripping the forgiving set turns both "105 C 1.75" and "105 C 1 75"
|
|
1025
|
+
into "105C175"; (b) a strict, printed-form consumer will miss the dotted
|
|
1026
|
+
form; (c) this is the dataset's first sourced case of an authority
|
|
1027
|
+
prescribing a separator outside the emitted pair, and it is an amendment
|
|
1028
|
+
candidate for _meta/separators.yml. See the dossier.
|
|
1029
|
+
trailing_group_note: "the last group is 'le numéro du département' — 2 characters in metropolitan France and 3 for the overseas départements, which is why the regex quantifies \\d{2,3}. Corsican consular numbers would need 2A/2B; no French primary states how the point-separated form handles a letter-bearing département code, and it is NOT invented here"
|
|
1030
|
+
design:
|
|
1031
|
+
background: { color: "#0B5D3B", finish: retroreflective, hex_basis: observed }
|
|
1032
|
+
foreground: "#FFFFFF"
|
|
1033
|
+
foreground_note: "annexe 7 item 2: 'Séries C et K — ... en caractères blancs sur fond vert jaspe.'"
|
|
1034
|
+
band: { side: left, content: eu-stars+F }
|
|
1035
|
+
region_encoding: "plates/_decode/fr-departements.yml"
|
|
1036
|
+
region_encoding_note: >-
|
|
1037
|
+
THE ONE MODERN FRENCH SERIES THAT REALLY DOES ENCODE GEOGRAPHY. The final
|
|
1038
|
+
group is the département of the consular post, written into the number
|
|
1039
|
+
itself by annexe VII D.2 — not a chosen band. It decodes through
|
|
1040
|
+
plates/_decode/fr-departements.yml exactly as an FNI suffix does.
|
|
1041
|
+
sources:
|
|
1042
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII D.2: the C series composition, the point rule and the département group; D.4 for the Z and X suffixes"
|
|
1043
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 2: white on jasper green for C and K"
|
|
1044
|
+
notes: >-
|
|
1045
|
+
C — CAREER CONSULAR CORPS, for holders of the carte spéciale CC and for
|
|
1046
|
+
service vehicles of consular posts headed by career consular officers.
|
|
1047
|
+
Two things make it the most interesting French series: it is the only
|
|
1048
|
+
modern French registration whose STRING contains a département, and it is
|
|
1049
|
+
the series that broke the dataset's separator contract (see
|
|
1050
|
+
`separator_note`). A parse API should treat a match here as a genuine
|
|
1051
|
+
region claim, in flat contradiction to the SIV band.
|
|
1052
|
+
|
|
1053
|
+
- id: fr-diplomatic-k
|
|
1054
|
+
class: diplomatic
|
|
1055
|
+
categories: [car, van, motorcycle]
|
|
1056
|
+
period: { start: 2009 }
|
|
1057
|
+
period_evidence: enabling-instrument
|
|
1058
|
+
matching: strict
|
|
1059
|
+
format:
|
|
1060
|
+
pattern: "999 K 9999"
|
|
1061
|
+
regex: '\A\d{1,3} K \d{3,4}(?: (?:973|67))?(?: [ZX])?\z'
|
|
1062
|
+
regex_strict: '\A(?:[1-9]|[1-9]\d|1\d{2}|4\d{2}|600|700) K (?:[1-9]\d{2}|[1-9]\d{3})(?: (?:973|67))?(?: [ZX])?\z'
|
|
1063
|
+
regex_strict_note: "annexe VII D.3's ranges: country group 1-199 or organisation group 400-499 (600 Conseil de l'Europe, 700 CIRC), order group 100-9999. The two completions are LITERALS in the arrêté — 973 for the ESA in Guyane, 67 for the European Parliament's Strasbourg office — so both regexes spell them out rather than quantifying."
|
|
1064
|
+
grammar: >-
|
|
1065
|
+
Annexe VII D.3. Ambassades: "a) Un premier groupe de un à trois chiffres
|
|
1066
|
+
(1 à 199) identifiant le pays représenté ; b) La lettre K ; c) Un
|
|
1067
|
+
deuxième groupe de trois à quatre chiffres (100 à 9999) indiquant
|
|
1068
|
+
l'ordre d'immatriculation par ambassade. Exemple : 105 K 100."
|
|
1069
|
+
Organisations internationales: first group 400-499 (600 for the Conseil
|
|
1070
|
+
de l'Europe at Strasbourg, 700 for the Institut international de
|
|
1071
|
+
recherche sur le cancer at Lyon), then K, then 100 à 9999. "Exemples :
|
|
1072
|
+
401 K 1000 ; 600 K 100." The ESA in Guyane completes the number with
|
|
1073
|
+
973 and the European Parliament's Strasbourg secretariat office with 67.
|
|
1074
|
+
note: "the embassy and organisation forms share one lexical shape (1-3 digits, K, 3-4 digits) and are therefore one series; they differ only by the numeric RANGE of the first group, which the regex does not encode"
|
|
1075
|
+
observed_overflow: >-
|
|
1076
|
+
FLAGGED FOR THE VERIFIER. Issued organisation K plates carry FIVE digits
|
|
1077
|
+
in the order group, beyond annexe VII D.3's stated 100 à 9999. Two
|
|
1078
|
+
independent Commons CC0 photographs, both under the 431 organisation
|
|
1079
|
+
code: "431 K 12355" and "431 K 11589 Z". Both regexes above reject them.
|
|
1080
|
+
The annexe is quoted correctly, so either the range has been outgrown in
|
|
1081
|
+
practice or it was amended somewhere not located in this pass; the
|
|
1082
|
+
widening is NOT made here because no instrument was found for it.
|
|
1083
|
+
Evidence: photographic-observed.
|
|
1084
|
+
design:
|
|
1085
|
+
background: { color: "#0B5D3B", finish: retroreflective, hex_basis: observed }
|
|
1086
|
+
foreground: "#FFFFFF"
|
|
1087
|
+
band: { side: left, content: eu-stars+F }
|
|
1088
|
+
region_encoding: none
|
|
1089
|
+
sources:
|
|
1090
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII D.3, ambassades and organisations internationales; D.4 for Z and X"
|
|
1091
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 2: white on jasper green"
|
|
1092
|
+
notes: >-
|
|
1093
|
+
K — INTERNATIONAL CIVIL SERVANTS (carte spéciale FI) AND ADMINISTRATIVE
|
|
1094
|
+
AND TECHNICAL STAFF (carte spéciale AT) of missions, consular posts,
|
|
1095
|
+
international organisations and delegations. Not "diplomatic" in the
|
|
1096
|
+
strict Vienna sense at all — annexe VII D.3 defines the series precisely
|
|
1097
|
+
as the NON-assimilated staff — but `_meta/classes.yml` has no vocabulary
|
|
1098
|
+
value between `diplomatic` and `consular`, so `diplomatic` is recorded as
|
|
1099
|
+
the closest fit and this note carries the truth. COLLISION WORTH FLAGGING:
|
|
1100
|
+
an organisation K number completed by 973 or 67 has the same four-group
|
|
1101
|
+
shape as a consulate K number (fr-consular-k), and the two loose regexes
|
|
1102
|
+
genuinely overlap. Only the numeric RANGE of the first group separates
|
|
1103
|
+
them — 400-499/600/700 for an organisation, 1-199 for a consulate — which
|
|
1104
|
+
is why both series carry range-encoding strict twins. A parse API should
|
|
1105
|
+
score on the strict twins here, not the loose ones.
|
|
1106
|
+
|
|
1107
|
+
- id: fr-consular-k
|
|
1108
|
+
class: consular
|
|
1109
|
+
categories: [car, van, motorcycle]
|
|
1110
|
+
period: { start: 2009 }
|
|
1111
|
+
period_evidence: enabling-instrument
|
|
1112
|
+
matching: strict
|
|
1113
|
+
format:
|
|
1114
|
+
pattern: "999 K 999 99"
|
|
1115
|
+
regex: '\A\d{1,3} K \d{1,3} \d{2,3}(?: [ZX])?\z'
|
|
1116
|
+
regex_strict: '\A(?:[1-9]|[1-9]\d|1\d{2}) K (?:[1-9]|[1-9]\d|[1-9]\d{2}) \d{2,3}(?: [ZX])?\z'
|
|
1117
|
+
regex_strict_note: "country group 1-199, consular order group 1-999 (annexe VII D.3, consulats)"
|
|
1118
|
+
grammar: >-
|
|
1119
|
+
Annexe VII D.3, consulats: "un premier groupe de un à trois chiffres
|
|
1120
|
+
(1 à 199) identifiant le pays représenté ; La lettre K ; un deuxième
|
|
1121
|
+
groupe de un à trois chiffres (1 à 999) indiquant l'ordre
|
|
1122
|
+
d'immatriculation par consulat ; le numéro du département, tel qu'il est
|
|
1123
|
+
utilisé dans les séries normales. Remarque : les deux derniers groupes
|
|
1124
|
+
de chiffres seront séparés par un point. Exemple : 105 K 10.75."
|
|
1125
|
+
separator: " "
|
|
1126
|
+
separator_note: "same full-stop divergence as fr-consular-c; see that series' separator_note and the dossier"
|
|
1127
|
+
historic_cross_reference: >-
|
|
1128
|
+
Note the phrase "le numéro du département, TEL QU'IL EST UTILISÉ DANS
|
|
1129
|
+
LES SÉRIES NORMALES". That wording is a 1984 fossil left standing in a
|
|
1130
|
+
2009 annexe: the "séries normales" that used département numbers were
|
|
1131
|
+
the FNI's, abrogated on 31 December 2009. The consular series is thus
|
|
1132
|
+
the last place in French law where the FNI's geographic convention is
|
|
1133
|
+
still operative.
|
|
1134
|
+
design:
|
|
1135
|
+
background: { color: "#0B5D3B", finish: retroreflective, hex_basis: observed }
|
|
1136
|
+
foreground: "#FFFFFF"
|
|
1137
|
+
band: { side: left, content: eu-stars+F }
|
|
1138
|
+
region_encoding: "plates/_decode/fr-departements.yml"
|
|
1139
|
+
region_encoding_note: "the trailing group is the consular post's département, written into the number — decodable, unlike the SIV band"
|
|
1140
|
+
sources:
|
|
1141
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII D.3, consulats: composition, the point rule, and the 'tel qu'il est utilisé dans les séries normales' cross-reference"
|
|
1142
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 2"
|
|
1143
|
+
notes: >-
|
|
1144
|
+
K AT A CONSULAR POST — the administrative-and-technical staff counterpart
|
|
1145
|
+
of the C series, and the second of the two French numbers containing a
|
|
1146
|
+
département. Distinct from fr-diplomatic-k because the composition
|
|
1147
|
+
differs: a consulate K number has FOUR groups and an embassy K number
|
|
1148
|
+
three, and the consulate's order group runs 1-999 where the embassy's runs
|
|
1149
|
+
100-9999.
|
|
1150
|
+
|
|
1151
|
+
- id: fr-diplomatic-k-delegation
|
|
1152
|
+
class: diplomatic
|
|
1153
|
+
categories: [car, van, motorcycle]
|
|
1154
|
+
period: { start: 2009 }
|
|
1155
|
+
period_evidence: enabling-instrument
|
|
1156
|
+
matching: strict
|
|
1157
|
+
format:
|
|
1158
|
+
pattern: "L 999 K 999"
|
|
1159
|
+
regex: '\A[A-Z] \d{3} K \d{1,3}(?: [ZX])?\z'
|
|
1160
|
+
regex_strict: '\A[A-Z] (?:2\d{2}|3\d{2}) K (?:[1-9]|[1-9]\d|[1-9]\d{2})(?: [ZX])?\z'
|
|
1161
|
+
regex_strict_note: >-
|
|
1162
|
+
THE STRICT TWIN NARROWS THE NUMBERS ONLY AND LEAVES THE LETTER OPEN ON
|
|
1163
|
+
PURPOSE. It encodes annexe VII D.3's country range 200-399 and order
|
|
1164
|
+
range 1-999, and keeps [A-Z] at the organisation position — see
|
|
1165
|
+
`charset.notes` for why closing that class would be an invention.
|
|
1166
|
+
grammar: >-
|
|
1167
|
+
Annexe VII D.3, délégations auprès des organisations internationales:
|
|
1168
|
+
"une lettre désignant l'organisation : U (UNESCO), E (OCDE), S (Conseil
|
|
1169
|
+
de l'Europe)... ; un premier groupe de trois chiffres (200 à 399)
|
|
1170
|
+
identifiant le pays représenté ; la lettre K ; un deuxième groupe de un
|
|
1171
|
+
à trois chiffres (1 à 999) indiquant l'ordre d'immatriculation par
|
|
1172
|
+
délégation. Exemple : U 305 K 10."
|
|
1173
|
+
charset:
|
|
1174
|
+
notes: >-
|
|
1175
|
+
NO regex_strict, deliberately. The organisation-letter list in D.3 is
|
|
1176
|
+
printed with a TRAILING ELLIPSIS — "U (UNESCO), E (OCDE), S (Conseil
|
|
1177
|
+
de l'Europe)..." — where the corresponding D.1 list for CD delegations
|
|
1178
|
+
ends with a plain semicolon. The arrêté therefore leaves the K
|
|
1179
|
+
delegation letters OPEN, and narrowing this regex to [UES] would
|
|
1180
|
+
invent a closure the authority declined to write. The asymmetry
|
|
1181
|
+
between D.1 and D.3 is real and is recorded, not smoothed.
|
|
1182
|
+
design:
|
|
1183
|
+
background: { color: "#0B5D3B", finish: retroreflective, hex_basis: observed }
|
|
1184
|
+
foreground: "#FFFFFF"
|
|
1185
|
+
band: { side: left, content: eu-stars+F }
|
|
1186
|
+
region_encoding: none
|
|
1187
|
+
sources:
|
|
1188
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000030801732 # annexe VII D.3, délégations — note the ellipsis after 'S (Conseil de l'Europe)'"
|
|
1189
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000052974050 # annexe 7 item 2"
|
|
1190
|
+
notes: >-
|
|
1191
|
+
K DELEGATIONS — administrative and technical staff of foreign delegations
|
|
1192
|
+
to international organisations. Modelled separately from fr-diplomatic-k
|
|
1193
|
+
because of the leading organisation letter, and the one series in this
|
|
1194
|
+
file whose strict twin deliberately stops short of its letter class,
|
|
1195
|
+
because of a single typographic detail in the arrêté (an ellipsis where
|
|
1196
|
+
the parallel CD provision has a semicolon) that a paraphrase would erase.
|
|
1197
|
+
|
|
1198
|
+
# =========================================================================
|
|
1199
|
+
# ONE SERIES BACK — the FNI, 1950/1984 to 2009. THE geographic French plate.
|
|
1200
|
+
# =========================================================================
|
|
1201
|
+
- id: fr-fni-1984
|
|
1202
|
+
class: standard
|
|
1203
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, semitrailer, tractor, machine]
|
|
1204
|
+
period: { start: 1984, end: 2009 }
|
|
1205
|
+
period_evidence: instrument-in-force
|
|
1206
|
+
# RECALL-ONLY (PRD-PLATES §2.7), and for an unusual reason: the composition
|
|
1207
|
+
# annexe of the governing instrument IS NOT PUBLISHED. Légifrance renders
|
|
1208
|
+
# annexe I of the arrêté du 5 novembre 1984 as the single line "(Annexe non
|
|
1209
|
+
# reproduite, voir JO du 22 décembre 1984 pages 11837 et suivantes". So the
|
|
1210
|
+
# widths below are NOT primary-sourced; the regex is an observed envelope
|
|
1211
|
+
# and a match against it is a shape hit, nothing more.
|
|
1212
|
+
matching: recall-only
|
|
1213
|
+
format:
|
|
1214
|
+
pattern: "999 LL 99"
|
|
1215
|
+
regex: '\A\d{1,4} [A-Z]{1,3} (?:\d{2,3}|2[AB])\z'
|
|
1216
|
+
grammar_gap: >-
|
|
1217
|
+
THE COMPOSITION IS A RECORDED GAP. Arrêté du 5 novembre 1984 art. 1:
|
|
1218
|
+
"La composition des numéros d'immatriculation de toutes les séries
|
|
1219
|
+
susvisées est définie en annexe I du présent arrêté." Annexe I is not
|
|
1220
|
+
reproduced by Légifrance ("Annexe non reproduite, voir JO du 22 décembre
|
|
1221
|
+
1984 pages 11837 et suivantes"), so the only government-published
|
|
1222
|
+
statement of the FNI shape located in this pass is the example
|
|
1223
|
+
"123 AB 45" on service-public.gouv.fr. The 1-to-4-digit and
|
|
1224
|
+
1-to-3-letter widths, and the 2A/2B Corsican forms, are the widely
|
|
1225
|
+
repeated envelope and are recorded as recall-only, not as sourced
|
|
1226
|
+
grammar. Next action: the JO of 22 December 1984, pp. 11837 et seq.
|
|
1227
|
+
separator: " "
|
|
1228
|
+
design:
|
|
1229
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, hex_note: "the FNI-era plate colour rules are in neither arrêté read here; the widely repeated white-front / yellow-rear regime and the date it ended are NOT sourced in this pass" }
|
|
1230
|
+
foreground: "#000000"
|
|
1231
|
+
band: { side: none, note: "unresolved: the EU band became compulsory in France at a date no instrument read here supplies; plates made late in the FNI era carry it and early ones do not" }
|
|
1232
|
+
region_encoding: "plates/_decode/fr-departements.yml"
|
|
1233
|
+
region_encoding_mechanism: >-
|
|
1234
|
+
GENUINELY GEOGRAPHIC, and the reason this series matters. Under the 1984
|
|
1235
|
+
arrêté the certificat was issued "soit par la préfecture du département du
|
|
1236
|
+
domicile du propriétaire" (art. 2) and a change of département was a
|
|
1237
|
+
mutation requiring a new certificate (art. 10 A/B) — so the trailing
|
|
1238
|
+
département group told you where the vehicle was kept, and it CHANGED when
|
|
1239
|
+
the owner moved. Decode right-to-left through
|
|
1240
|
+
plates/_decode/fr-departements.yml, remembering that pre-1976 Corsica
|
|
1241
|
+
(20), the pre-1968 Seine and Seine-et-Oise codes and the pre-1962 Algerian
|
|
1242
|
+
codes are NOT in that table and must resolve to "unknown" rather than to a
|
|
1243
|
+
modern département.
|
|
1244
|
+
sources:
|
|
1245
|
+
- "https://www.legifrance.gouv.fr/loda/id/LEGITEXT000006075077 # arrêté du 5 novembre 1984 relatif à l'immatriculation des véhicules; art. 1 (the series: normales, TT and IT, diplomatic CMD/CD/C/K, W, WW including the export series WAL à WZL and WAE à WZE, FFECSA and DF; composition delegated to annexe I); art. 2 (préfecture du département du domicile); abrogated 31 December 2009"
|
|
1246
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000006889019 # annexe I 'Composition des numéros d'immatriculation' — rendered as '(Annexe non reproduite, voir JO du 22 décembre 1984 pages 11837 et suivantes'. This citation evidences the GAP, not the format."
|
|
1247
|
+
- "https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042128428 # arrêté (1) art. 19 II-III: the 1984 arrêté continues to apply to vehicles without a definitive number until 31 December 2009 at the latest, and such vehicles may keep circulating under their old number until a formality produces a new certificate"
|
|
1248
|
+
- "https://www.legifrance.gouv.fr/loda/id/JORFTEXT000020446205 # arrêté du 23 mars 2009: SIV from 15 April 2009; the former rules run on for already-registered vehicles until 14 October 2009"
|
|
1249
|
+
- "https://www.service-public.gouv.fr/particuliers/vosdroits/F20319 # the French administration's own plate page, giving the old FNI format as '123 AB 45' and the SIV as 'AB-123-CD'"
|
|
1250
|
+
notes: >-
|
|
1251
|
+
THE FNI — France's plate for two human generations, and the one that
|
|
1252
|
+
actually decodes. Four things the dataset has to say honestly. (i) THE
|
|
1253
|
+
PERIOD: 1984 is the date of the instrument that governed the system at its
|
|
1254
|
+
end, not the date the system began; the FNI is universally dated to 1950
|
|
1255
|
+
and no primary for 1950 was secured, so 1950 is recorded as folklore and
|
|
1256
|
+
1984 as instrument-in-force. (ii) THE END: 2009, but softly — art. 19 III
|
|
1257
|
+
of the 2009 arrêté lets an FNI-numbered vehicle keep circulating under its
|
|
1258
|
+
old number until a formality forces a new certificate, so FNI plates are
|
|
1259
|
+
still legally on French roads in 2026 and a parse API must not treat them
|
|
1260
|
+
as expired. (iii) THE FORMAT is recall-only because the governing annexe
|
|
1261
|
+
is unpublished (see grammar_gap) — the single largest sourcing hole in
|
|
1262
|
+
this file. (iv) THE FAMILY: art. 1 of the 1984 arrêté also names TT and IT
|
|
1263
|
+
special series, W and WW special series including the EXPORT sub-series
|
|
1264
|
+
WAL-WZL and WAE-WZE, and FFECSA/DF series, all of whose compositions live
|
|
1265
|
+
in the same unpublished annexe. None of them is modelled, deliberately.
|