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/de.yml
ADDED
|
@@ -0,0 +1,1107 @@
|
|
|
1
|
+
# plates/de.yml — Germany (PRD-PLATES gate L0 pilot).
|
|
2
|
+
#
|
|
3
|
+
# EVERY format, colour and class claim here comes from the consolidated
|
|
4
|
+
# Fahrzeug-Zulassungsverordnung (FZV) of 20 July 2023, BGBl. 2023 I Nr. 199,
|
|
5
|
+
# Textnachweis ab 1.9.2023, replacing FZV 2011 (V v. 3.2.2011 I 139), last
|
|
6
|
+
# amended by Art. 5 G v. 12.5.2026 (BGBl. 2026 I Nr. 142) — the Vollzitat as
|
|
7
|
+
# printed on gesetze-im-internet's own PDF front matter.
|
|
8
|
+
#
|
|
9
|
+
# THE THREE STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
10
|
+
#
|
|
11
|
+
# 1. THE DISTRICT CODES ARE NOT IN THE FZV. § 9 Abs. 3 FZV, verbatim: "Die
|
|
12
|
+
# Unterscheidungszeichen der Verwaltungsbezirke werden auf Antrag der Länder
|
|
13
|
+
# vom Bundesministerium für Verkehr festgelegt oder aufgehoben. ... Die
|
|
14
|
+
# Festlegung und Aufhebung der Unterscheidungszeichen ist vom
|
|
15
|
+
# Bundesministerium für Verkehr unverzüglich im Bundesanzeiger zu
|
|
16
|
+
# veröffentlichen." So the ~400-code district list is a BUNDESANZEIGER
|
|
17
|
+
# publication. It is therefore NOT authored here as 700 rows of guesswork:
|
|
18
|
+
# region_encoding points at a future _decode file and this file cites the
|
|
19
|
+
# MECHANISM. Anlage 2 FZV — which IS in the regulation — is inlined instead,
|
|
20
|
+
# because it is small, closed and primary.
|
|
21
|
+
# § 9 Abs. 3 also states the two rules a decode table must carry: a Land may
|
|
22
|
+
# apply for MORE THAN ONE code per district, and "Ein Kennzeichen, dessen
|
|
23
|
+
# Unterscheidungszeichen aufgehoben ist, darf bis zur Außerbetriebsetzung
|
|
24
|
+
# des betroffenen Fahrzeuges weitergeführt werden" — withdrawn codes stay on
|
|
25
|
+
# the road, so decode rows need period discipline, never deletion.
|
|
26
|
+
#
|
|
27
|
+
# 2. ANLAGE 1 IS THE SERIAL GRAMMAR, AND IT IS COMPLETE. Five shapes, verbatim,
|
|
28
|
+
# plus the letter rule: "Mit Ausnahme der Umlaute Ä, Ö und Ü können alle
|
|
29
|
+
# übrigen Buchstaben des Alphabets ... zugeteilt werden."
|
|
30
|
+
# a) A 1 – A 999 bis Z 1 – Z 999
|
|
31
|
+
# b) AA 1 – AA 99 bis ZZ 1 – ZZ 99
|
|
32
|
+
# c) AA 100 – AA 999 bis ZZ 100 – ZZ 999
|
|
33
|
+
# d) A 1000 – A 9999 bis Z 1000 – Z 9999
|
|
34
|
+
# e) AA 1000 – AA 9999 bis ZZ 1000 – ZZ 9999
|
|
35
|
+
# Union: 1–2 letters + 1–4 digits, with NO LEADING ZEROS (every block starts
|
|
36
|
+
# at 1, 100 or 1000). Combined with Anlage 4 Abschnitt 1 Nr. 4 — "Mehr als
|
|
37
|
+
# acht Stellen (Buchstaben des Unterscheidungszeichens sowie Buchstaben und
|
|
38
|
+
# Ziffern der Erkennungsnummer) auf einem Kennzeichen sind unzulässig" — the
|
|
39
|
+
# total is capped at eight positions, which the standard series' regex
|
|
40
|
+
# enforces with a negative lookahead (the only illegal combination the
|
|
41
|
+
# quantifiers alone would admit is 3 letters + 2 letters + 4 digits = 9).
|
|
42
|
+
#
|
|
43
|
+
# 3. PERIOD CLAIMS ARE DATED FROM THE CREATING INSTRUMENTS (L1 redate pass,
|
|
44
|
+
# 2026-08-02). The L0 file carried FZV-2023 consolidation dates as series
|
|
45
|
+
# starts and said so; this pass replaced them with the actual era
|
|
46
|
+
# boundaries, each pinned to its Bundesgesetzblatt instrument (official
|
|
47
|
+
# scans via offenegesetze.de, all fetched 2026-08-02):
|
|
48
|
+
# * 1956 — Verordnung zur Änderung von Vorschriften des
|
|
49
|
+
# Straßenverkehrsrechts vom 14. März 1956 (BGBl. I S. 199; issue Nr. 15,
|
|
50
|
+
# ausgegeben 9.4.1956): creates the Unterscheidungszeichen +
|
|
51
|
+
# Erkennungsnummer system (§ 23 Abs. 2 StVZO), black-on-white AND the
|
|
52
|
+
# green tax-exempt colour (§ 60 Abs. 1), the Anlage IV official/
|
|
53
|
+
# diplomatic/military codes, and — Anlage II — the SAME five serial
|
|
54
|
+
# shapes FZV 2023 Anlage 1 still prints. In force 1.7.1956 for newly
|
|
55
|
+
# plated vehicles; old-system plates until 1.7.1958.
|
|
56
|
+
# * 1995 — 21. ÄndVstVR vom 6. Januar 1995 (BGBl. I S. 8): inserts § 60
|
|
57
|
+
# Abs. 1b StVZO ("Einführung des Euro-Kennzeichens", auf Antrag) +
|
|
58
|
+
# Anlage Va. In force 15.1.1995.
|
|
59
|
+
# * 1996/97 — 23. ÄndVstVR vom 12. November 1996 (BGBl. I S. 1738):
|
|
60
|
+
# Saisonkennzeichen (§ 23 Abs. 1b + Anlage Vb), in force 1.3.1997.
|
|
61
|
+
# * 1997 — 25. ÄndVstVR vom 22. Juli 1997 (BGBl. I S. 1889):
|
|
62
|
+
# Oldtimerkennzeichen with the H (§ 21c, § 23 Abs. 1c, Anlage Vc),
|
|
63
|
+
# in force 29.7.1997 (day after Verkündung 28.7.1997).
|
|
64
|
+
# * 1998 — 27. ÄndVstVR vom 9. März 1998 (BGBl. I S. 441):
|
|
65
|
+
# Kurzzeitkennzeichen (§ 28 StVZO + Anlage Vd), Art. 1 in force
|
|
66
|
+
# 14.3.1998 (day after Verkündung 13.3.1998), remainder 1.5.1998.
|
|
67
|
+
# * 2000 — 32. ÄndVstVR vom 20. Juli 2000 (BGBl. I S. 1090): Euro plate
|
|
68
|
+
# mandatory for plates newly fitted from 1.11.2000; pre-existing
|
|
69
|
+
# plates "gelten weiter"; § 60 Abs. 1b repealed.
|
|
70
|
+
# * 2006/07 — FZV vom 25. April 2006 (BGBl. I S. 988, Art. 1 of the
|
|
71
|
+
# Neuordnungs-VO), in force 1.3.2007: first FZV codification; the
|
|
72
|
+
# "03"/"04", "06", "07" numbering rules and the export digits-then-
|
|
73
|
+
# letter rule verbatim — the honest UPPER BOUND where no creating
|
|
74
|
+
# instrument was secured (dealer-red, oldtimer-red, export).
|
|
75
|
+
# * 2015 — EmoG vom 5. Juni 2015 (BGBl. I S. 898) + 50. ÄndVstVR vom
|
|
76
|
+
# 15. September 2015 (BGBl. I S. 1573, § 9a FZV 2011), in force
|
|
77
|
+
# 26.9.2015: the E-Kennzeichen. The one L0 date that was already true.
|
|
78
|
+
# Where only a consolidation evidences a rule, the series says so with
|
|
79
|
+
# `period_evidence: instrument-in-force-upper-bound` and a gap note at the
|
|
80
|
+
# point of use; folklore years are flagged, never asserted, and conflicts
|
|
81
|
+
# between an instrument and a secondary are RECORDED, not averaged.
|
|
82
|
+
#
|
|
83
|
+
# REGEX POLICY: as in plates/nl.yml, `format.regex` is the lint-round-trippable
|
|
84
|
+
# regex and `format.regex_strict` (proposed schema addition) carries the
|
|
85
|
+
# tighter, sourced form — here, the no-leading-zeros rule from Anlage 1, which
|
|
86
|
+
# cannot go in `regex` because the lint generates "0" for a pattern "9".
|
|
87
|
+
jurisdiction: de
|
|
88
|
+
authority:
|
|
89
|
+
name: Fahrzeug-Zulassungsverordnung (FZV) — Bundesministerium für Digitales und Verkehr
|
|
90
|
+
url: "https://www.gesetze-im-internet.de/fzv_2023/"
|
|
91
|
+
binding: vehicle
|
|
92
|
+
instrument:
|
|
93
|
+
citation: "Fahrzeug-Zulassungsverordnung vom 20. Juli 2023 (BGBl. 2023 I Nr. 199, S. 2), zuletzt geändert durch Artikel 5 des Gesetzes vom 12. Mai 2026 (BGBl. 2026 I Nr. 142)"
|
|
94
|
+
# NOTE: quoted deliberately. scripts/lint_plates.rb calls
|
|
95
|
+
# YAML.safe_load_file(..., permitted_classes: []), so a BARE YAML date
|
|
96
|
+
# (2023-07-20) raises Psych::DisallowedClass and takes the whole lint run
|
|
97
|
+
# down with a backtrace rather than a LINT FAIL line. Every date-shaped
|
|
98
|
+
# value in the plates dataset must be a quoted string or an integer.
|
|
99
|
+
ausfertigungsdatum: "2023-07-20"
|
|
100
|
+
textnachweis_ab: "2023-09-01"
|
|
101
|
+
replaces: "FZV 2011 (V 9232-14 v. 3.2.2011 I 139)"
|
|
102
|
+
source: "https://www.gesetze-im-internet.de/fzv_2023/FZV.pdf # front matter: Ausfertigungsdatum, Vollzitat, Stand, 'Ersetzt V 9232-14 v. 3.2.2011 I 139 (FZV 2011)', 'Textnachweis ab: 1.9.2023'"
|
|
103
|
+
|
|
104
|
+
# ---------------------------------------------------------------------------
|
|
105
|
+
# The era instruments (L1 redate pass, 2026-08-02) — each cited ONCE here with
|
|
106
|
+
# its verbatim key passage; per-series sources point at the same URLs. All
|
|
107
|
+
# URLs are the official Bundesgesetzblatt scans republished at
|
|
108
|
+
# media.offenegesetze.de (stable, unpaywalled); the citation of record is the
|
|
109
|
+
# BGBl page. All fetched and read 2026-08-02.
|
|
110
|
+
# ---------------------------------------------------------------------------
|
|
111
|
+
era_instruments:
|
|
112
|
+
v1956:
|
|
113
|
+
citation: "Verordnung zur Änderung von Vorschriften des Straßenverkehrsrechts vom 14. März 1956, BGBl. 1956 I S. 199 (Nr. 15, ausgegeben zu Bonn am 9. April 1956)"
|
|
114
|
+
url: "https://media.offenegesetze.de/bgbl1/1956/bgbl1_1956_15.pdf # fetched 2026-08-02"
|
|
115
|
+
creates: >-
|
|
116
|
+
The district-prefix system. § 23 Abs. 2 StVZO (new version), verbatim:
|
|
117
|
+
"Das von der Zulassungsstelle zuzuteilende Kennzeichen enthält das
|
|
118
|
+
Unterscheidungszeichen für den Verwaltungsbezirk und die
|
|
119
|
+
Erkennungsnummer, unter der das Fahrzeug bei der Zulassungsstelle
|
|
120
|
+
eingetragen ist. Das Unterscheidungszeichen für den Verwaltungsbezirk
|
|
121
|
+
besteht aus einem bis drei Buchstaben nach dem Plan in Anlage I. Die
|
|
122
|
+
Erkennungsnummer besteht aus Buchstaben und Zahlen." § 60 Abs. 1 (new
|
|
123
|
+
version), verbatim: "Unterscheidungszeichen und Erkennungsnummern (§ 23
|
|
124
|
+
Abs. 2) sind in schwarzer Schrift auf weißem Grund anzugeben. Bei
|
|
125
|
+
Fahrzeugen, deren Halten von der Kraftfahrzeugsteuer befreit ist, ist
|
|
126
|
+
die Beschriftung grün auf weißem Grund ... Form, Größe und Ausgestaltung
|
|
127
|
+
von Kennzeichen müssen den Mustern und Angaben in Anlage V entsprechen."
|
|
128
|
+
grammar_continuity: >-
|
|
129
|
+
Anlage II (1956), "Reihenfolge für die Ausgabe der ... Fahrzeugerkennungs-
|
|
130
|
+
nummern": Gruppe I a) "A 1 - A 999 bis Z 1 - Z 999", b) "AA 1 - AA 99 bis
|
|
131
|
+
ZZ 1 - ZZ 99"; Gruppe II "AA 100 - AA 999 bis ZZ 100 - ZZ 999"; Gruppe
|
|
132
|
+
III a) "A 1000 - A 9999 bis Z 1000 - Z 9999", b) "AA 1000 - AA 9999 bis
|
|
133
|
+
ZZ 1000 - ZZ 9999" — the SAME five shapes as FZV 2023 Anlage 1, with
|
|
134
|
+
every block starting at 1, 100 or 1000 (no leading zeros), 70 years
|
|
135
|
+
earlier. The 1956 alphabet was narrower (20 letters; per the main
|
|
136
|
+
Wikipedia locator J replaced I from 7.11.1956, B/F/G added 12.8.1992,
|
|
137
|
+
I/O/Q added 26.5.2000 — SECONDARY, recorded not asserted).
|
|
138
|
+
commencement: >-
|
|
139
|
+
§ 72a StVZO (inserted), verbatim: "§ 60 Abs. 1 und 4 sowie die Anlagen I
|
|
140
|
+
bis V | am 1. Juli 1956 für Fahrzeuge, denen die Zulassungsstelle ein
|
|
141
|
+
Kennzeichen neuen Rechts zuteilt, | am 1. Juli 1958 für die übrigen
|
|
142
|
+
kennzeichenpflichtigen Fahrzeuge" (same staging for § 23 Abs. 2). So the
|
|
143
|
+
system starts 1.7.1956 and the pre-1956 occupation-era plates end by
|
|
144
|
+
1.7.1958.
|
|
145
|
+
v1995_euro:
|
|
146
|
+
citation: "Einundzwanzigste Verordnung zur Änderung straßenverkehrsrechtlicher Vorschriften (21. ÄndVstVR) vom 6. Januar 1995, BGBl. 1995 I S. 8 (Nr. 1, ausgegeben zu Bonn am 12. Januar 1995)"
|
|
147
|
+
url: "https://media.offenegesetze.de/bgbl1/1995/bgbl1_1995_1.pdf # fetched 2026-08-02"
|
|
148
|
+
creates: >-
|
|
149
|
+
The Euro-Kennzeichen. Inserts § 60 Abs. 1b StVZO, verbatim: "(1b)
|
|
150
|
+
Abweichend von Absatz 1 Satz 5 Halbsatz 1 und Absatz 1a Satz 1 dürfen
|
|
151
|
+
auf Antrag Kennzeichen zugeteilt werden, die mit einem blauen Euro-Feld
|
|
152
|
+
und mit einer Beschriftung nach Anlage Va versehen sind. Die Kennzeichen
|
|
153
|
+
müssen reflektierend sein und nach Maßgabe der Anlage Va dem Normblatt
|
|
154
|
+
DIN 74 069, Ausgabe Mai 1989, entsprechen sowie auf der Vorderseite das
|
|
155
|
+
DIN-Prüf- und Überwachungszeichen mit der zugehörigen Registernummer
|
|
156
|
+
tragen." Inserts Anlage Va, "Muster und Maße der Euro-Kennzeichen"
|
|
157
|
+
(published in an Anlageband to BGBl 1995 I Nr. 1 — the Anlageband
|
|
158
|
+
itself, which carries the Schriftmuster, was NOT fetched: recorded gap).
|
|
159
|
+
Closing formula, verbatim: "Diese Verordnung tritt am 15. Januar 1995
|
|
160
|
+
in Kraft." AUF ANTRAG — the Euro plate is optional from 15.1.1995 and
|
|
161
|
+
only becomes mandatory for newly fitted plates on 1.11.2000 (v2000).
|
|
162
|
+
v2000_mandate:
|
|
163
|
+
citation: "Zweiunddreißigste Verordnung zur Änderung straßenverkehrsrechtlicher Vorschriften (32. ÄndVStVR) vom 20. Juli 2000, BGBl. 2000 I S. 1090 (Nr. 34)"
|
|
164
|
+
url: "https://media.offenegesetze.de/bgbl1/2000/bgbl1_2000_34.pdf # fetched 2026-08-02"
|
|
165
|
+
creates: >-
|
|
166
|
+
The Euro-plate mandate and the DIN-era issuance cutoff. New transitional
|
|
167
|
+
provision in § 72 Abs. 2 StVZO, verbatim: "§ 60 Abs. 1 Satz 5 erster
|
|
168
|
+
Halbsatz (Form, Größe und Ausgestaltung einschließlich Beschriftung der
|
|
169
|
+
Euro-Kennzeichen) ist spätestens ab dem 1. November 2000 auf
|
|
170
|
+
Kraftfahrzeuge und Anhänger anzuwenden, die von diesem Tag ab erstmals
|
|
171
|
+
in den Verkehr kommen oder aus anderem Anlass mit einem neuen
|
|
172
|
+
Kennzeichen ausgerüstet werden. Kennzeichen, die vor dem 1. November
|
|
173
|
+
2000 zugeteilt worden sind und in Form, Größe und Ausgestaltung § 60
|
|
174
|
+
Abs. 1 Satz 5 erster Halbsatz und Anlage V in der vor diesem Termin
|
|
175
|
+
geltenden Fassung entsprechen, gelten weiter." And: "Die
|
|
176
|
+
Übergangsvorschrift '§ 60 Abs. 1b (Einführung des Euro-Kennzeichens)'
|
|
177
|
+
wird aufgehoben." Also repeals the Deutsche-Bundespost successor-company
|
|
178
|
+
registration transitional — the tail end of the 1956 Anlage IV's BP/DB
|
|
179
|
+
world.
|
|
180
|
+
v1996_saison:
|
|
181
|
+
citation: "Dreiundzwanzigste Verordnung zur Änderung straßenverkehrsrechtlicher Vorschriften (23. ÄndVstVR) vom 12. November 1996, BGBl. 1996 I S. 1738 (Nr. 60, ausgegeben zu Bonn am 21. November 1996)"
|
|
182
|
+
url: "https://media.offenegesetze.de/bgbl1/1996/bgbl1_1996_60.pdf # fetched 2026-08-02"
|
|
183
|
+
creates: >-
|
|
184
|
+
The Saisonkennzeichen. Art. 1 Nr. 2 Buchstabe a inserts § 23 Abs. 1b
|
|
185
|
+
StVZO, verbatim: "(1b) Auf Antrag wird für ein Fahrzeug ein auf einen
|
|
186
|
+
nach vollen Monaten bemessenen Zeitraum (Zulassungszeitraum) befristetes
|
|
187
|
+
amtliches Kennzeichen nach Anlage Vb zugeteilt, das jedes Jahr in diesem
|
|
188
|
+
Zeitraum auch wiederholt verwendet werden darf (Saisonkennzeichen). Das
|
|
189
|
+
Fahrzeug darf auf öffentlichen Straßen nur während des auf diesem
|
|
190
|
+
Kennzeichen angegebenen Zeitraums in Betrieb gesetzt oder abgestellt
|
|
191
|
+
werden." Plus Anlage Vb "Muster und Maße der Saisonkennzeichen".
|
|
192
|
+
Art. 4, verbatim: "Artikel 1 Nr. 1, 2 Buchstabe a, Nr. 3, 6, 7
|
|
193
|
+
Buchstabe d, Nr. 9, 13 Buchstabe b Doppelbuchstabe bb, Nr. 14 Buchstabe
|
|
194
|
+
b Doppelbuchstabe bb, Nr. 15, 17 Buchstabe b, Artikel 2 und 3 treten am
|
|
195
|
+
1. März 1997 in Kraft" — the Saison provisions are in that list, so
|
|
196
|
+
issuance begins 1.3.1997.
|
|
197
|
+
v1997_oldtimer:
|
|
198
|
+
citation: "Fünfundzwanzigste Verordnung zur Änderung straßenverkehrsrechtlicher Vorschriften (25. ÄndVstVR) vom 22. Juli 1997, BGBl. 1997 I S. 1889 (Nr. 52, ausgegeben zu Bonn am 28. Juli 1997)"
|
|
199
|
+
url: "https://media.offenegesetze.de/bgbl1/1997/bgbl1_1997_52.pdf # fetched 2026-08-02"
|
|
200
|
+
creates: >-
|
|
201
|
+
The Oldtimerkennzeichen (H). Inserts § 21c StVZO (Betriebserlaubnis als
|
|
202
|
+
Oldtimer) and § 23 Abs. 1c StVZO ("... zugeteilt (Oldtimerkennzeichen)",
|
|
203
|
+
per Anlage Vc). Anlage Vc "Muster und Maße der Oldtimerkennzeichen",
|
|
204
|
+
verbatim: "Der Kennbuchstabe 'H' nach der Zahl in der Erkennungsnummer
|
|
205
|
+
gibt an, daß für das Fahrzeug eine Betriebserlaubnis als Oldtimer gemäß
|
|
206
|
+
§ 21c erteilt worden ist." and "Mehr als sieben Stellen (Buchstaben und
|
|
207
|
+
Ziffern ohne Kennbuchstabe 'H') auf einem Kennzeichen ..." — the
|
|
208
|
+
seven-position cap is 1997-original. Art. 3, verbatim: "Diese Verordnung
|
|
209
|
+
tritt am Tage nach der Verkündung in Kraft." — i.e. 29 July 1997.
|
|
210
|
+
Also (Nr. 8) inserts "der Bundesanstalt Technisches Hilfswerk," into the
|
|
211
|
+
Anlage IV heading — THW joins the official-plate table in 1997.
|
|
212
|
+
v1998_kurzzeit:
|
|
213
|
+
citation: "Siebenundzwanzigste Verordnung zur Änderung straßenverkehrsrechtlicher Vorschriften (27. ÄndVstVR) vom 9. März 1998, BGBl. 1998 I S. 441 (Nr. 14, ausgegeben zu Bonn am 13. März 1998)"
|
|
214
|
+
url: "https://media.offenegesetze.de/bgbl1/1998/bgbl1_1998_14.pdf # fetched 2026-08-02"
|
|
215
|
+
creates: >-
|
|
216
|
+
The Kurzzeitkennzeichen. Art. 1 amends § 28 StVZO ("Kurzzeitkennzeichen
|
|
217
|
+
zuzuteilen und besondere Fahrzeugscheine nach Muster 4, auch ohne
|
|
218
|
+
vorherige Bezeichnung des Fahrzeugs ..."; "(5) Kurzzeitkennzeichen sind
|
|
219
|
+
in schwarzer [Schrift] ... herzustellen") and adds Anlage Vd "Muster und
|
|
220
|
+
Maße der Kurzzeitkennzeichen". Art. 5, verbatim: "Die Artikel 1 und 3
|
|
221
|
+
Nr. 2b und 2g sowie Artikel 4 treten am Tage nach der Verkündung in
|
|
222
|
+
Kraft. Im übrigen tritt die Verordnung am 1. Mai 1998 in Kraft." — the
|
|
223
|
+
creating StVZO provisions are in force 14.3.1998. Art. 4 amends § 7
|
|
224
|
+
Abs. 2 Nr. 5 IntKfzV (export plates): the Dienstsiegel becomes "mit
|
|
225
|
+
einem Durchmesser von 35 mm" beside the existing "(RAL 2002)" — proof
|
|
226
|
+
the red-sealed export regime predates the FZV.
|
|
227
|
+
v2006_fzv:
|
|
228
|
+
citation: "Verordnung zur Neuordnung des Rechts der Zulassung von Fahrzeugen zum Straßenverkehr und zur Änderung straßenverkehrsrechtlicher Vorschriften vom 25. April 2006, BGBl. 2006 I S. 988 (Nr. 21, ausgegeben zu Bonn am 29. April 2006) — Art. 1 = FZV 2006"
|
|
229
|
+
url: "https://media.offenegesetze.de/bgbl1/2006/bgbl1_2006_21.pdf # fetched 2026-08-02"
|
|
230
|
+
creates: >-
|
|
231
|
+
The first FZV. Art. 12 Abs. 2, verbatim: "Im Übrigen tritt diese
|
|
232
|
+
Verordnung am 1. März 2007 in Kraft." Verbatim rules used as UPPER
|
|
233
|
+
BOUNDS in this file: Kurzzeitkennzeichen "besteht die Erkennungsnummer
|
|
234
|
+
nur aus Ziffern und beginnt mit '03' oder '04'. Das Kurzzeitkennzeichen
|
|
235
|
+
enthält außerdem ein Ablaufdatum, das längstens auf fünf Tage ab der
|
|
236
|
+
Zuteilung zu bemessen [ist]"; rotes Kennzeichen "... nur aus Ziffern und
|
|
237
|
+
beginnt mit '06'"; rotes Oldtimerkennzeichen "... nur aus Ziffern und
|
|
238
|
+
beginnt mit '07'"; Ausfuhrkennzeichen "aus einer ein- bis vierstelligen
|
|
239
|
+
Zahl und einem nachfol[genden Buchstaben]". Anlage 3 already lists THW,
|
|
240
|
+
X ("Dienstfahrzeuge der auf Grund des Nordatlantikvertrages errichteten
|
|
241
|
+
internationalen militärischen Hauptquartiere ...") and the five new-Land
|
|
242
|
+
codes.
|
|
243
|
+
v2015_e:
|
|
244
|
+
citation: "Fünfzigste Verordnung zur Änderung straßenverkehrsrechtlicher Vorschriften (50. ÄndVstVR) vom 15. September 2015, BGBl. 2015 I S. 1573 (Nr. 36, ausgegeben zu Bonn am 25. September 2015)"
|
|
245
|
+
url: "https://media.offenegesetze.de/bgbl1/2015/bgbl1_2015_36.pdf # fetched 2026-08-02"
|
|
246
|
+
creates: >-
|
|
247
|
+
The E-Kennzeichen's issuing rule. Inserts § 9a FZV 2011 ("Kennzeichnung
|
|
248
|
+
elektrisch betriebener Fahrzeuge" — "den Kennbuchstaben 'E' im Anschluss
|
|
249
|
+
an die Er[kennungsnummer]") and Anlage 3a (the badge for foreign
|
|
250
|
+
electric vehicles, "zu § 9a Absatz 4"). "Diese Verordnung tritt am Tag
|
|
251
|
+
nach der Verkündung in Kraft." — i.e. 26 September 2015, the first day
|
|
252
|
+
an E plate could issue. § 9a FZV 2011 is today's § 11 FZV 2023.
|
|
253
|
+
|
|
254
|
+
# ---------------------------------------------------------------------------
|
|
255
|
+
# Jurisdiction-wide facts, cited once.
|
|
256
|
+
# ---------------------------------------------------------------------------
|
|
257
|
+
common:
|
|
258
|
+
colours:
|
|
259
|
+
standard: "§ 12 Abs. 1 FZV, verbatim: 'Das Unterscheidungszeichen und die Erkennungsnummern sind mit schwarzer Schrift auf weißem schwarz gerandetem Grund auf ein Kennzeichenschild aufzubringen.' — black script on a white, black-bordered ground. This is the COLOUR SPEC; Anlage 4's drawings carry no separate RGB/RAL values for general plates."
|
|
260
|
+
source: "https://www.gesetze-im-internet.de/fzv_2023/__12.html # § 12 Abs. 1 (colours), Abs. 2 (reflective, DIN 74069 Oct 2022 Abschnitte 1-8, DIN test mark + register number), Abs. 5 (front and rear required; rear only for trailers, motorcycles and class L5e)"
|
|
261
|
+
dimensions:
|
|
262
|
+
single_line: { w: 520, h: 110, unit: mm, note: "Größtmaß" }
|
|
263
|
+
two_line: { w: 340, h: 200, unit: mm, note: "Größtmaß; 280 mm on two- and three-wheeled motor vehicles" }
|
|
264
|
+
motorcycle: { w_min: 180, w_max: 220, h: 200, unit: mm }
|
|
265
|
+
reduced_two_line: { w: 255, h: 130, unit: mm, note: "Leichtkrafträder and § 12 Abs. 6 Nr. 1 vehicles only" }
|
|
266
|
+
source: "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 1 Nr. 1 a)-d), Fundstelle BGBl. 2023 I Nr. 199, S. 71-91"
|
|
267
|
+
font:
|
|
268
|
+
name: FE-Schrift (fälschungserschwerende Schrift)
|
|
269
|
+
statutory_basis: "Anlage 4 Abschnitt 1 Nr. 2.1: 'Die Beschriftung muss den Schriftmustern \"Schrift für Kfz-Kennzeichen\" entsprechen.' The Schriftmuster are obtainable from the Bundesanstalt für Straßen- und Verkehrswesen, Postfach 10 01 50, 51401 Bergisch Gladbach."
|
|
270
|
+
sizes: { mittelschrift: 75, engschrift: 75, verkleinerte_mittelschrift: 49, unit: mm, note: "verkleinerte Mittelschrift only for reduced two-line and motorcycle plates" }
|
|
271
|
+
alternate: "DIN 1451-2:1986-02 (Verkehrsschrift) for Bundeswehr plates and Versicherungskennzeichen"
|
|
272
|
+
licence: >-
|
|
273
|
+
NO LICENSABLE FONT IS MANDATED. The legal object is a statutory
|
|
274
|
+
Schriftmuster (a drawing), exactly as the EU dossier found for the UK and
|
|
275
|
+
Spain. Per PRD-PLATES §6 the render layer derives glyphs from the
|
|
276
|
+
statutory drawing, never from a third-party FE-Schrift TTF whose own
|
|
277
|
+
licence is unstated. Germany is additionally the affirmatively favourable
|
|
278
|
+
case (PD-VzKat / §5(1) UrhG: designs published inside statutory
|
|
279
|
+
instruments are public domain).
|
|
280
|
+
source: "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 1 Nr. 2.1-2.3.2"
|
|
281
|
+
euro_band:
|
|
282
|
+
side: left
|
|
283
|
+
content: eu-stars+D
|
|
284
|
+
geometry: "Anlage 4 Abschnitt 1 Nr. 3: 'Der Durchmesser des Sternenkranzes entspricht dem Sechsfachen des Durchmessers des einzelnen Sterns.' A light edge of at most 2.0 mm is permitted between the Euro-Feld and the black border. 'Die Ausführung des Erkennungsbuchstabens \"D\" erfolgt nach der Verordnung (EG) Nr. 2411/98 vom 3. November 1998.'"
|
|
285
|
+
note: >-
|
|
286
|
+
This is the ONE hard piece of Euroband geometry secured anywhere in the L0
|
|
287
|
+
pass: a ratio (star-circle diameter = 6x single-star diameter), given as
|
|
288
|
+
text in German law. Reg. 2411/98's own annex is a bitmap and Spain's
|
|
289
|
+
Cuadro 5 is a drawing, so DE Anlage 4 Nr. 3 is the citable source for the
|
|
290
|
+
star wreath's proportions.
|
|
291
|
+
source: "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 1 Nr. 3"
|
|
292
|
+
anlage1_grammar:
|
|
293
|
+
shapes:
|
|
294
|
+
- "a) A 1 – A 999 bis Z 1 – Z 999"
|
|
295
|
+
- "b) AA 1 – AA 99 bis ZZ 1 – ZZ 99"
|
|
296
|
+
- "c) AA 100 – AA 999 bis ZZ 100 – ZZ 999"
|
|
297
|
+
- "d) A 1000 – A 9999 bis Z 1000 – Z 9999"
|
|
298
|
+
- "e) AA 1000 – AA 9999 bis ZZ 1000 – ZZ 9999"
|
|
299
|
+
letters_excluded: ["Ä", "Ö", "Ü"]
|
|
300
|
+
no_leading_zeros: true
|
|
301
|
+
max_positions: 8
|
|
302
|
+
source: "https://www.gesetze-im-internet.de/fzv_2023/anlage_1.html # Anlage 1 (zu § 9 Absatz 1 Satz 4), Fundstelle BGBl. 2023 I Nr. 199, S. 67 — the five shapes and the umlaut exclusion, verbatim"
|
|
303
|
+
|
|
304
|
+
# Anlage 2 FZV — the SMALL, CLOSED, primary code table (contrast the district
|
|
305
|
+
# list, which is not in the FZV at all). Inlined per PRD-PLATES §2.4's
|
|
306
|
+
# "inline table (small) or a reference (large)" rule.
|
|
307
|
+
region_encoding_tables:
|
|
308
|
+
anlage2_federal_and_diplomatic:
|
|
309
|
+
source: "https://www.gesetze-im-internet.de/fzv_2023/anlage_2.html # Anlage 2 (zu § 9 Absatz 1 Satz 6), Fundstelle BGBl. 2023 I Nr. 199, S. 68-69"
|
|
310
|
+
bund:
|
|
311
|
+
BD: "Dienstfahrzeuge des Bundestages, Bundesrates, Bundespräsidialamtes, der Bundesregierung, Bundesministerien, Bundesfinanzverwaltung, des Bundesverfassungsgerichts und Bundeskriminalamtes"
|
|
312
|
+
BG: "Bundespolizei — noch gültig, wird nicht mehr zugeteilt (still valid, no longer assigned)"
|
|
313
|
+
BP: "Dienstfahrzeuge der Bundespolizei"
|
|
314
|
+
BW: "Bundes-Wasserstraßen- und Schifffahrtsverwaltung"
|
|
315
|
+
THW: "Bundesanstalt Technisches Hilfswerk"
|
|
316
|
+
Y: "Dienstfahrzeuge der Bundeswehr (Zentrale Militärkraftfahrtstelle, Mönchengladbach/Rheindahlen)"
|
|
317
|
+
X: "internationale militärische Hauptquartiere nach dem Nordatlantikvertrag mit Standort in Deutschland"
|
|
318
|
+
laender:
|
|
319
|
+
B: "Berlin — Senat und Abgeordnetenhaus"
|
|
320
|
+
BBL: "Brandenburg — Landesregierung, Landtag und Polizei"
|
|
321
|
+
BWL: "Baden-Württemberg — Landesregierung, Landtag und Polizei"
|
|
322
|
+
BYL: "Bayern — Landesregierung und Landtag"
|
|
323
|
+
HB: "Freie Hansestadt Bremen — Senat und Bürgerschaft"
|
|
324
|
+
HEL: "Hessen — Landesregierung und Landtag"
|
|
325
|
+
HH: "Freie und Hansestadt Hamburg — Senat und Bürgerschaft"
|
|
326
|
+
LSA: "Sachsen-Anhalt — Landesregierung, Landtag und Polizei"
|
|
327
|
+
LSN: "Sachsen — Landesregierung und Landtag"
|
|
328
|
+
MVL: "Mecklenburg-Vorpommern — Landesregierung (einschließlich Landespolizei) und Landtag"
|
|
329
|
+
NL: "Niedersachsen — Landesregierung und Landtag"
|
|
330
|
+
NRW: "Nordrhein-Westfalen — Landesregierung, Landtag und Polizei"
|
|
331
|
+
RPL: "Rheinland-Pfalz — Landesregierung, Landtag und Polizei"
|
|
332
|
+
SAL: "Saarland — Landesregierung, Landtag und Polizei"
|
|
333
|
+
SH: "Schleswig-Holstein — Landesregierung, Landtag und Polizei"
|
|
334
|
+
THL: "Thüringen — Landesregierung und Landtag"
|
|
335
|
+
diplomatic:
|
|
336
|
+
"0": "Diplomatische Vertretungen oder internationale Organisationen, abhängig vom Status der bevorrechtigten Person (Zulassungsbehörde Berlin/Bonn)"
|
|
337
|
+
B: "same, Berlin"
|
|
338
|
+
BN: "same, Bonn"
|
|
339
|
+
consular: "Berufskonsularische Vertretungen carry the UNTERSCHEIDUNGSZEICHEN OF THE DISTRICT WHERE THE CONSULATE SITS — i.e. an ordinary district code, which is why consular vehicles are not separable by prefix"
|
|
340
|
+
bundestag_president: { "1-1": "Dienstkraftwagen des Präsidenten des Deutschen Bundestages (Zulassungsbehörde Berlin)" }
|
|
341
|
+
note: >-
|
|
342
|
+
COLLISION WORTH FLAGGING: "B" is simultaneously a district code (Berlin),
|
|
343
|
+
a Land code (Berlin Senat/Abgeordnetenhaus) and a diplomatic code. "NL" is
|
|
344
|
+
the Niedersachsen Land code and also the Dutch international
|
|
345
|
+
distinguishing sign. Neither is resolvable from the prefix alone.
|
|
346
|
+
|
|
347
|
+
series:
|
|
348
|
+
|
|
349
|
+
# =========================================================================
|
|
350
|
+
# THE STANDARD SERIES.
|
|
351
|
+
# =========================================================================
|
|
352
|
+
- id: de-standard
|
|
353
|
+
class: standard
|
|
354
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
355
|
+
period: { start: 1995 } # 15.1.1995 — 21. ÄndVstVR in force (era_instruments.v1995_euro)
|
|
356
|
+
period_evidence: enabling-instrument
|
|
357
|
+
matching: strict
|
|
358
|
+
format:
|
|
359
|
+
pattern: "LL-LL 9999"
|
|
360
|
+
regex: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{4}\z)[A-Z]{1,3}-[A-Z]{1,2} ?\d{1,4}\z'
|
|
361
|
+
regex_strict: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{4}\z)[A-Z]{1,3}-[A-Z]{1,2} ?(?:[1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3})\z'
|
|
362
|
+
charset:
|
|
363
|
+
letters_excluded: ["Ä", "Ö", "Ü"]
|
|
364
|
+
notes: >-
|
|
365
|
+
Anlage 1 Nr. 1: every letter of the alphabet except the umlauts Ä, Ö and Ü
|
|
366
|
+
may be assigned in the Erkennungsnummer, singly or as a pair. The FZV
|
|
367
|
+
imposes no further letter exclusion on the Erkennungsnummer, but § 9 Abs. 1
|
|
368
|
+
Satz 3 forbids combinations that "gegen die guten Sitten verstoßen" — a
|
|
369
|
+
discretionary rule, not an enumerable exclusion list, and the reason no
|
|
370
|
+
profanity blacklist is authored here.
|
|
371
|
+
progression: >-
|
|
372
|
+
Anlage 1 Nr. 2 allocates the Erkennungsnummer in five blocks: a) 1 letter +
|
|
373
|
+
1-999, b) 2 letters + 1-99, c) 2 letters + 100-999, d) 1 letter + 1000-9999,
|
|
374
|
+
e) 2 letters + 1000-9999. Every block starts at 1, 100 or 1000, so NO LEADING
|
|
375
|
+
ZEROS are ever issued — regex_strict enforces this; `regex` cannot, because
|
|
376
|
+
the lint's pattern generator emits "0" for a "9" placeholder.
|
|
377
|
+
max_positions: 8
|
|
378
|
+
max_positions_note: >-
|
|
379
|
+
Anlage 4 Abschnitt 1 Nr. 4: at most eight positions counting the
|
|
380
|
+
Unterscheidungszeichen's letters plus the Erkennungsnummer's letters and
|
|
381
|
+
digits. The negative lookahead in both regexes excludes the single
|
|
382
|
+
over-length shape the quantifiers would otherwise admit (3 + 2 + 4 = 9).
|
|
383
|
+
separator_note: >-
|
|
384
|
+
The gap between Unterscheidungszeichen and Erkennungsnummer is physically
|
|
385
|
+
occupied by the two Plaketten (Stempelplakette + HU badge), not by a printed
|
|
386
|
+
separator. The hyphen and space in the pattern are the conventional textual
|
|
387
|
+
rendering; both regexes accept the space as optional.
|
|
388
|
+
design:
|
|
389
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
390
|
+
plate_variants:
|
|
391
|
+
- { w: 340, h: 200, unit: mm, note: "zweizeilig; 280 mm wide on two- and three-wheeled motor vehicles" }
|
|
392
|
+
- { w_min: 180, w_max: 220, h: 200, unit: mm, note: "Kraftradkennzeichen" }
|
|
393
|
+
- { w: 255, h: 130, unit: mm, note: "verkleinertes zweizeiliges Kennzeichen — Leichtkrafträder and § 12 Abs. 6 Nr. 1 vehicles only, or by exception where a compliant rear plate cannot be fitted" }
|
|
394
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec, spec_note: "§ 12 Abs. 1 FZV: weißer Grund; retroreflection per DIN 74069 Oct 2022 (§ 12 Abs. 2)" }
|
|
395
|
+
foreground: "#000000"
|
|
396
|
+
border: { color: "#000000", note: "Anlage 4 permits black, GREEN or RED borders depending on plate type" }
|
|
397
|
+
band: { side: left, color: "#003399", content: eu-stars+D, hex_basis: observed, note: "the FZV states the star-wreath ratio and cross-references Reg. 2411/98 for the 'D', but gives no RGB/RAL for the blue field" }
|
|
398
|
+
emblem: { present: true, rendered: placeholder, note: "the Stempelplakette carries the FARBIGES WAPPEN DES LANDES (§ 12 Abs. 3) — a coat of arms per Land. PRD-PLATES §3 placeholder rule applied at write time; SUPERSEDED 2026-08-03: ALL 16 Land arms are licence-cleared in plates/_art/de-<land>/ (PD family, extmetadata-verified, ledgered) — depiction consumers may render the coloured arms in the seal. The remaining gap is the district→Land mapping (the future de-districts table) for serial-driven resolution." }
|
|
399
|
+
seal: { name: Stempelplakette, diameter_mm: null, content: "coloured Land arms, Land name, registration authority name, unique Druckstücknummer, and a CONCEALED security code that can only be revealed irreversibly; self-destroying on removal", source_note: "§ 12 Abs. 3 FZV + Anlage 5" }
|
|
400
|
+
rear_differs: false
|
|
401
|
+
display: "front and rear on motor vehicles; rear only on trailers, motorcycles and class L5e vehicles; front only on single-axle tractors (§ 12 Abs. 5 FZV)"
|
|
402
|
+
spec_history:
|
|
403
|
+
- { from: 1995, to: 2000, basis: "§ 60 Abs. 1b StVZO (21. ÄndVstVR, in force 15.1.1995): Euro-Feld plates AUF ANTRAG — optional, parallel with DIN-era issuance; reflective per DIN 74069 Ausgabe Mai 1989 (updated to Ausgabe Juli 1996 by the 23. ÄndVstVR)" }
|
|
404
|
+
- { from: 2000, basis: "32. ÄndVStVR: Euro plate mandatory for vehicles first coming into traffic from 1.11.2000 and for ANY plate newly fitted from that day; pre-1.11.2000 plates 'gelten weiter'" }
|
|
405
|
+
- { from: 2023, basis: "FZV 2023 (BGBl. 2023 I Nr. 199): the consolidation this file's format and design claims cite; reflective per DIN 74069 Oct 2022" }
|
|
406
|
+
region_encoding: "plates/_decode/de-districts.yml"
|
|
407
|
+
region_encoding_mechanism: >-
|
|
408
|
+
The Unterscheidungszeichen is 1-3 letters identifying the Verwaltungsbezirk of
|
|
409
|
+
registration (§ 9 Abs. 1 Nr. 1). The list is set by the BMDV on application by
|
|
410
|
+
the Länder and published in the BUNDESANZEIGER (§ 9 Abs. 3) — NOT in the FZV
|
|
411
|
+
and NOT by the KBA. A district may hold more than one code, applied for when
|
|
412
|
+
"ohne dieses ein Verbrauch der verfügbaren Kennzeichenkombinationen unmittelbar
|
|
413
|
+
bevorsteht". A withdrawn code may be carried until the vehicle is
|
|
414
|
+
deregistered, so decode rows close by period and are never deleted. The split
|
|
415
|
+
point between prefix and Erkennungsnummer is UNAMBIGUOUS because Anlage 1 fixes
|
|
416
|
+
the Erkennungsnummer to 1-2 letters + 1-4 digits.
|
|
417
|
+
variants:
|
|
418
|
+
- class: standard
|
|
419
|
+
note: >-
|
|
420
|
+
WECHSELKENNZEICHEN (interchangeable plate, § 9 Abs. 2 FZV + Anlage 4
|
|
421
|
+
Abschnitt 2a). Two vehicles of the same class (M1, L or O1) held by one
|
|
422
|
+
keeper share a common plate part plus a per-vehicle part; the common part
|
|
423
|
+
carries a "W" (20 mm high, 25 mm wide) above the Stempelplakette, and the
|
|
424
|
+
per-vehicle part is the LAST DIGIT of the Erkennungsnummer. Same eight-
|
|
425
|
+
position cap across both parts, excluding the "W". Cannot be combined with
|
|
426
|
+
Saison-, rote, Kurzzeit- or Ausfuhrkennzeichen. Recorded as a variant, not
|
|
427
|
+
a series, because the serial grammar is Anlage 1's — but note that a parse
|
|
428
|
+
API sees a SPLIT STRING, which the single-`pattern` schema cannot express.
|
|
429
|
+
sources:
|
|
430
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__9.html # § 9 Abs. 2: eligibility (classes M1/L/O1, same keeper, same plate size), the common/vehicle-specific split, the one-at-a-time rule"
|
|
431
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 2a: the 'W' marking 20 x 25 mm, self-destroying security foil on the vehicle-specific part"
|
|
432
|
+
sources:
|
|
433
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__9.html # § 9 Abs. 1: Kennzeichen = Unterscheidungszeichen (1-3 letters for the Verwaltungsbezirk) + vehicle-specific Erkennungsnummer allocated per Anlage 1; Abs. 3: BMDV/Bundesanzeiger"
|
|
434
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_1.html # Anlage 1: the five Erkennungsnummer shapes and the umlaut exclusion, verbatim"
|
|
435
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__12.html # § 12 Abs. 1: black on white, black-bordered; Abs. 2: reflective + DIN 74069; Abs. 5: front/rear rules"
|
|
436
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 1: dimensions, FE-Schrift, Euro-Feld, the eight-position cap; Abschnitt 2: the general plates"
|
|
437
|
+
- "https://media.offenegesetze.de/bgbl1/1995/bgbl1_1995_1.pdf # 21. ÄndVstVR vom 6.1.1995, BGBl. I S. 8 — § 60 Abs. 1b StVZO + Anlage Va 'Muster und Maße der Euro-Kennzeichen'; 'Diese Verordnung tritt am 15. Januar 1995 in Kraft.' PERIOD START. Fetched 2026-08-02"
|
|
438
|
+
- "https://media.offenegesetze.de/bgbl1/2000/bgbl1_2000_34.pdf # 32. ÄndVStVR vom 20.7.2000, BGBl. I S. 1090 — Euro plate mandatory for newly fitted plates from 1.11.2000; pre-existing plates 'gelten weiter'. Fetched 2026-08-02"
|
|
439
|
+
notes: >-
|
|
440
|
+
THE GERMAN STANDARD SERIES (Euro-Feld era) — the strongest region signal in
|
|
441
|
+
the pilot and the only pilot jurisdiction whose plate names its place of
|
|
442
|
+
registration. period.start 1995 is the CREATING instrument's own
|
|
443
|
+
commencement: the 21. ÄndVstVR of 6.1.1995 inserted § 60 Abs. 1b StVZO
|
|
444
|
+
("auf Antrag ... blauen Euro-Feld ... nach Anlage Va") and entered force
|
|
445
|
+
15.1.1995 (era_instruments.v1995_euro, quoted). Optional until 1.11.2000,
|
|
446
|
+
mandatory for newly fitted plates from that day (v2000_mandate, quoted) —
|
|
447
|
+
recorded in design.spec_history, not cut as a separate series, because
|
|
448
|
+
mark, serial grammar and colours did not change (the gb-standard-2001
|
|
449
|
+
BS-AU-145d/e precedent). FOLKLORE/SECONDARY, recorded not asserted: the
|
|
450
|
+
German Wikipedia locator and the enthusiast site kennzeichen-guide.de
|
|
451
|
+
report staged pre-instrument issuance — Berlin and Brandenburg from
|
|
452
|
+
January 1994, Sachsen from July 1994 — "auf Basis der abzusehenden
|
|
453
|
+
Bundesverordnung"; no instrument authorising 1994 issuance was located in
|
|
454
|
+
this pass, so 1994 is NOT this series' start and the conflict is recorded
|
|
455
|
+
here rather than averaged. The SERIAL GRAMMAR is far older than the
|
|
456
|
+
design: Anlage 1's five shapes are verbatim descendants of Anlage II of
|
|
457
|
+
the 1956 instrument (see de-standard-1956 and
|
|
458
|
+
era_instruments.v1956.grammar_continuity). No age is encoded on a German
|
|
459
|
+
plate at all — unlike the UK, a German plate string carries region but
|
|
460
|
+
never date.
|
|
461
|
+
|
|
462
|
+
# =========================================================================
|
|
463
|
+
# THE PRE-EURO STANDARD SERIES, 1956-2000 (DIN-Schrift era). Added by the
|
|
464
|
+
# L1 redate pass under the "current + one back" rule.
|
|
465
|
+
# =========================================================================
|
|
466
|
+
- id: de-standard-1956
|
|
467
|
+
class: standard
|
|
468
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
469
|
+
period: { start: 1956, end: 2000 } # 1.7.1956 (v1956 § 72a) — 31.10.2000
|
|
470
|
+
# (v2000_mandate: Euro mandatory for
|
|
471
|
+
# plates fitted from 1.11.2000)
|
|
472
|
+
period_evidence: instrument-dated-both-ends
|
|
473
|
+
matching: strict
|
|
474
|
+
format:
|
|
475
|
+
pattern: "LL-LL 9999"
|
|
476
|
+
regex: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{4}\z)[A-Z]{1,3}-[A-Z]{1,2} ?\d{1,4}\z'
|
|
477
|
+
regex_strict: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{4}\z)[A-Z]{1,3}-[A-Z]{1,2} ?(?:[1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3})\z'
|
|
478
|
+
charset:
|
|
479
|
+
notes: >-
|
|
480
|
+
1956 grammar, Anlage II verbatim (era_instruments.v1956): the same
|
|
481
|
+
five blocks as today's Anlage 1, every block starting at 1, 100 or
|
|
482
|
+
1000 — no leading zeros, which regex_strict carries. CAVEAT: the
|
|
483
|
+
1956-era LETTER SET was narrower than A-Z (20 letters at launch; per
|
|
484
|
+
the Wikipedia locator J replaced I from 7.11.1956, B/F/G were added
|
|
485
|
+
12.8.1992 and I/O/Q on 26.5.2000 — secondary, recorded not
|
|
486
|
+
asserted), so regex_strict is deliberately NOT narrowed to a
|
|
487
|
+
period-specific alphabet no primary was secured for.
|
|
488
|
+
max_positions_note: >-
|
|
489
|
+
No "acht Stellen" rule exists in the 1956 text; total length was
|
|
490
|
+
governed by which Anlage II GRUPPEN a district was allocated (the
|
|
491
|
+
Anlage I plan marks each district Gruppe I/II/III), which kept
|
|
492
|
+
combinations within the plate. The negative lookahead is retained from
|
|
493
|
+
de-standard as the de-facto outer bound; it is a modelling choice
|
|
494
|
+
here, not a quoted 1956 rule.
|
|
495
|
+
separator_note: >-
|
|
496
|
+
As on the Euro series: the gap between Unterscheidungszeichen and
|
|
497
|
+
Erkennungsnummer held the Stempelplakette; the hyphen and space are
|
|
498
|
+
the conventional textual rendering.
|
|
499
|
+
design:
|
|
500
|
+
plate: { w: 520, h: 110, unit: mm, note: "Anlage V (1956), 'c) Andere Kraftfahrzeuge und Anhänger, einzeilig': the 520 x 110 einzeilig drawing is 1956-original — the dimension predates the Euro plate by four decades" }
|
|
501
|
+
background: { color: "#FFFFFF", finish: painted, hex_basis: spec, spec_note: "§ 60 Abs. 1 StVZO (1956), verbatim: 'Unterscheidungszeichen und Erkennungsnummern (§ 23 Abs. 2) sind in schwarzer Schrift auf weißem Grund anzugeben.' Reflective sheeting only became required for new plates on 29.9.1989 per the Wikipedia locator — SECONDARY, recorded not asserted (no instrument secured); hence finish: painted with this note rather than an unsourced reflectivity claim." }
|
|
502
|
+
foreground: "#000000"
|
|
503
|
+
border: { color: "#000000" }
|
|
504
|
+
band: { side: none }
|
|
505
|
+
band_note: "no Euro-Feld — that is the boundary with de-standard; late DIN-era plates (1995-2000) ran in parallel with optional Euro plates"
|
|
506
|
+
font:
|
|
507
|
+
name: "DIN 1451 Mittelschrift (attribution); statutory object = the Anlage V (1956) Schriftmuster drawings"
|
|
508
|
+
note: >-
|
|
509
|
+
The 1956 instrument prescribes plate lettering by DRAWING (Anlage V),
|
|
510
|
+
exactly as the FZV 2023 does for FE-Schrift. "DIN-Kennzeichen" and
|
|
511
|
+
the DIN 1451 attribution are the universal secondary name for the
|
|
512
|
+
era's lettering (and FZV 2023 still names DIN 1451-2:1986-02 for
|
|
513
|
+
Bundeswehr plates); the 1956 gazette scan's drawings were not
|
|
514
|
+
measured in this pass, so the FONT NAME is recorded as attribution,
|
|
515
|
+
not as a quoted statutory name.
|
|
516
|
+
region_encoding: "plates/_decode/de-districts.yml"
|
|
517
|
+
region_encoding_mechanism: >-
|
|
518
|
+
§ 23 Abs. 2 StVZO (1956), verbatim: the Kennzeichen contains "das
|
|
519
|
+
Unterscheidungszeichen für den Verwaltungsbezirk", "aus einem bis drei
|
|
520
|
+
Buchstaben nach dem Plan in Anlage I" — the district list was IN the
|
|
521
|
+
StVZO in 1956 (Anlage I, ~600 codes printed in BGBl. 1956 I Nr. 15) and
|
|
522
|
+
only later delegated to Bundesanzeiger publication (§ 9 Abs. 3 FZV
|
|
523
|
+
today). Decode rows for withdrawn 1956-era codes need period discipline;
|
|
524
|
+
the code list grew again in 1990/91 when the new Länder joined the
|
|
525
|
+
system.
|
|
526
|
+
sources:
|
|
527
|
+
- "https://media.offenegesetze.de/bgbl1/1956/bgbl1_1956_15.pdf # Verordnung zur Änderung von Vorschriften des Straßenverkehrsrechts vom 14.3.1956, BGBl. I S. 199 — § 23 Abs. 2 (district prefix + Erkennungsnummer, Anlage I plan), § 60 Abs. 1 (black on white), Anlage II (the five serial blocks), Anlage V (plate drawings, 520x110 einzeilig), § 72a (in force 1.7.1956 for newly plated vehicles; old plates until 1.7.1958). PERIOD START, verbatim quotes in era_instruments.v1956. Fetched 2026-08-02"
|
|
528
|
+
- "https://media.offenegesetze.de/bgbl1/2000/bgbl1_2000_34.pdf # 32. ÄndVStVR vom 20.7.2000, BGBl. I S. 1090 — PERIOD END: Euro form mandatory for plates newly fitted from 1.11.2000, so DIN-era issuance ends 31.10.2000; 'Kennzeichen, die vor dem 1. November 2000 zugeteilt worden sind ... gelten weiter' — ended-but-on-the-road, stated in the instrument itself. Fetched 2026-08-02"
|
|
529
|
+
notes: >-
|
|
530
|
+
THE DIN-SCHRIFT ERA, 1.7.1956 - 31.10.2000: black-on-white, no Euro
|
|
531
|
+
band, district prefix + Anlage II serial — the system the Euro series
|
|
532
|
+
inherited its grammar from, one series back per the L1 rule.
|
|
533
|
+
period.end 2000 is an ISSUANCE end with statutory grandfathering: plates
|
|
534
|
+
assigned before 1.11.2000 "gelten weiter" (v2000_mandate, verbatim), so
|
|
535
|
+
DIN plates remain lawful on continuously registered vehicles today —
|
|
536
|
+
the parallel-validity note the overlap rule requires. Overlaps
|
|
537
|
+
de-standard 1995-2000 because the Euro plate was optional ("auf Antrag")
|
|
538
|
+
in that window and both forms issued side by side. The pre-1956
|
|
539
|
+
occupation-era systems (white-on-black, 1948 four-zone codes) are
|
|
540
|
+
OUT OF SCOPE for L1 (historical depth is L4); the 1956 instrument's own
|
|
541
|
+
transitional gives them until 1.7.1958.
|
|
542
|
+
|
|
543
|
+
# =========================================================================
|
|
544
|
+
# HISTORIC — H suffix.
|
|
545
|
+
# =========================================================================
|
|
546
|
+
- id: de-historic-h
|
|
547
|
+
class: historic
|
|
548
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
549
|
+
period: { start: 1997 } # 29.7.1997 — 25. ÄndVstVR in force (era_instruments.v1997_oldtimer)
|
|
550
|
+
period_evidence: enabling-instrument
|
|
551
|
+
matching: strict
|
|
552
|
+
format:
|
|
553
|
+
pattern: "LL-LL 999H"
|
|
554
|
+
regex: '\A[A-Z]{1,3}-[A-Z]{1,2} ?\d{1,4}H\z'
|
|
555
|
+
regex_strict: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{3,4}H\z)[A-Z]{1,3}-[A-Z]{1,2} ?(?:[1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3})H\z'
|
|
556
|
+
suffix: H
|
|
557
|
+
max_positions: 7
|
|
558
|
+
max_positions_note: >-
|
|
559
|
+
Anlage 4 Abschnitt 4 Nr. 4 caps a SINGLE-LINE Oldtimerkennzeichen at seven
|
|
560
|
+
positions EXCLUDING the H (and the Erkennungsnummer at five positions on a
|
|
561
|
+
340 mm two-line plate, four on a 280 mm two-line or motorcycle plate) — one
|
|
562
|
+
position tighter than the standard series, because the H itself consumes room.
|
|
563
|
+
regex_strict's lookahead removes the shapes that exceed seven.
|
|
564
|
+
charset: { notes: "Anlage 1 grammar unchanged; § 10 Abs. 1 adds the H" }
|
|
565
|
+
design:
|
|
566
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
567
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
568
|
+
foreground: "#000000"
|
|
569
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
570
|
+
note: "'Der Kennbuchstabe \"H\" ist der Erkennungsnummer ohne Leerzeichen in gleicher Schriftart anzufügen' — no space, same typeface (Anlage 4 Abschnitt 4 Nr. 4)"
|
|
571
|
+
region_encoding: "plates/_decode/de-districts.yml"
|
|
572
|
+
sources:
|
|
573
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__10.html # § 10 Abs. 1: on application, a vehicle with a § 23 StVZO Gutachten is ASSIGNED an Oldtimerkennzeichen; it consists of Unterscheidungszeichen + Erkennungsnummer per § 9 Abs. 1 plus 'den Kennbuchstaben \"H\" als amtlichen Zusatz hinter der Erkennungsnummer'"
|
|
574
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 4: the H suffix's typographic rule and the seven/five/four-position caps"
|
|
575
|
+
- "https://media.offenegesetze.de/bgbl1/1997/bgbl1_1997_52.pdf # 25. ÄndVstVR vom 22.7.1997, BGBl. I S. 1889 — inserts § 21c StVZO (Betriebserlaubnis als Oldtimer), § 23 Abs. 1c ('Oldtimerkennzeichen') and Anlage Vc with the 'H' rule and the seven-position cap, verbatim in era_instruments.v1997_oldtimer; in force 29.7.1997. PERIOD START. Fetched 2026-08-02"
|
|
576
|
+
notes: >-
|
|
577
|
+
H-KENNZEICHEN, created 1997: the 25. ÄndVstVR of 22.7.1997 inserted § 21c
|
|
578
|
+
and § 23 Abs. 1c StVZO plus Anlage Vc, in force 29.7.1997 — and the
|
|
579
|
+
seven-position cap this series still carries is 1997-original ("Mehr als
|
|
580
|
+
sieben Stellen ... ohne Kennbuchstabe 'H'", Anlage Vc verbatim). CONFLICT
|
|
581
|
+
RECORDED, NOT AVERAGED: the widely repeated claim that the first
|
|
582
|
+
H-Kennzeichen was assigned on 1 JULY 1997 (Wikipedia, attributing a KBA
|
|
583
|
+
Pressebericht 2001 figure of 57,960 Oldtimerkennzeichen; the KBA PDF was
|
|
584
|
+
not fetched in this pass) predates the creating instrument's entry into
|
|
585
|
+
force by four weeks; either the KBA date is loose or issuance rested on
|
|
586
|
+
something not located here. Until the KBA primary is fetched and read,
|
|
587
|
+
1997 stands on the instrument and the 1-July story is flagged. Note
|
|
588
|
+
§ 10 Abs. 1 FZV's discretion, which a claims model should record: the
|
|
589
|
+
authority "kann im Einzelfall" count off-road periods towards the minimum
|
|
590
|
+
age in § 2 Satz 1 Nr. 22 FZV. The 30-year threshold itself lives in that
|
|
591
|
+
definition and in § 23 StVZO, neither of which was fetched — the
|
|
592
|
+
threshold remains a recorded gap and the widely-repeated "30 years" is
|
|
593
|
+
NOT asserted here as sourced. H-Saisonkennzeichen exist since 1.10.2017
|
|
594
|
+
(BGBl. 2017 I S. 522, 553 per the Wikipedia locator — instrument not
|
|
595
|
+
fetched, recorded as locator only). An H plate may also be a
|
|
596
|
+
Saisonkennzeichen (Anlage 4 Abschnitt 4 Nr. 4 last sentence) or a
|
|
597
|
+
Wechselkennzeichen.
|
|
598
|
+
|
|
599
|
+
# =========================================================================
|
|
600
|
+
# ELECTRIC — E suffix. The one German series with a properly dated start.
|
|
601
|
+
# =========================================================================
|
|
602
|
+
- id: de-electric-e
|
|
603
|
+
class: electric
|
|
604
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
605
|
+
period: { start: 2015 }
|
|
606
|
+
period_evidence: enabling-statute
|
|
607
|
+
matching: strict
|
|
608
|
+
format:
|
|
609
|
+
pattern: "LL-LL 999E"
|
|
610
|
+
regex: '\A[A-Z]{1,3}-[A-Z]{1,2} ?\d{1,4}E\z'
|
|
611
|
+
regex_strict: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{3,4}E\z)[A-Z]{1,3}-[A-Z]{1,2} ?(?:[1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3})E\z'
|
|
612
|
+
suffix: E
|
|
613
|
+
max_positions: 7
|
|
614
|
+
max_positions_note: "Anlage 4 Abschnitt 5a Nr. 1 executes E-Kennzeichen 'entsprechend Abschnitt 4' (the Oldtimer rules), so the seven-position single-line cap carries over; Nr. 6 gives the tighter two-line caps (six positions on a single-line Saison variant, five on a 340 mm two-line, four on 280 mm/motorcycle/reduced)."
|
|
615
|
+
design:
|
|
616
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
617
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
618
|
+
foreground: "#000000"
|
|
619
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
620
|
+
note: "'Der Kennbuchstabe \"E\" ist der Erkennungsnummer ohne Leerzeichen in gleicher Schriftart anzufügen' (Anlage 4 Abschnitt 5a Nr. 6)"
|
|
621
|
+
foreign_vehicle_badge:
|
|
622
|
+
shape: circular
|
|
623
|
+
diameter_mm: 80
|
|
624
|
+
colour: "RAL 5017"
|
|
625
|
+
note: >-
|
|
626
|
+
For an electric vehicle admitted to traffic under ANOTHER state's rules, the
|
|
627
|
+
marking is a BADGE per Anlage 3 affixed visibly at the rear, not a plate
|
|
628
|
+
suffix; the issuing office writes the vehicle's registration into the
|
|
629
|
+
badge's window in lightfast script. Anlage 3 giving a hard RAL value is
|
|
630
|
+
unusual — most EU plate law specifies drawings, not colour codes.
|
|
631
|
+
source: "https://www.gesetze-im-internet.de/fzv_2023/anlage_3.html # Anlage 3 (zu § 11 Absatz 4): Plakettenmuster, 80 mm diameter, RAL 5017"
|
|
632
|
+
region_encoding: "plates/_decode/de-districts.yml"
|
|
633
|
+
sources:
|
|
634
|
+
- "https://www.gesetze-im-internet.de/emog/EmoG.pdf # Elektromobilitätsgesetz, Ausfertigungsdatum 05.06.2015 (BGBl. I S. 898) — the enabling statute § 11 FZV keys off; note § 8 Abs. 2: the Act EXPIRES at the end of 31.12.2026"
|
|
635
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__11.html # § 11 Abs. 1-2: an E-Kennzeichen is the § 9 Abs. 1 plate (optionally also a green or seasonal one) with 'den Kennbuchstaben \"E\" als amtlichen Zusatz hinter der Erkennungsnummer'; Abs. 4: the Anlage 3 badge route for foreign vehicles; Abs. 5: foreign E-markings are recognised as equivalent"
|
|
636
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 5a: E-Kennzeichen executed per Abschnitt 4, plus the Saison variants and position caps"
|
|
637
|
+
- "https://media.offenegesetze.de/bgbl1/2015/bgbl1_2015_36.pdf # 50. ÄndVstVR vom 15.9.2015, BGBl. I S. 1573 — inserts § 9a FZV 2011 ('den Kennbuchstaben \"E\" im Anschluss an die Erkennungsnummer') and Anlage 3a; 'tritt am Tag nach der Verkündung in Kraft' = 26.9.2015, the first day an E plate could issue. Fetched 2026-08-02"
|
|
638
|
+
notes: >-
|
|
639
|
+
E-KENNZEICHEN. period.start 2015 SURVIVED the L1 redate pass — the one L0
|
|
640
|
+
period that was already true: the Elektromobilitätsgesetz of 5 June 2015
|
|
641
|
+
created the eligibility, and the 50. ÄndVstVR of 15.9.2015 (BGBl. I
|
|
642
|
+
S. 1573, era_instruments.v2015_e) inserted the issuing rule § 9a FZV 2011
|
|
643
|
+
(today's § 11 FZV 2023), in force 26 September 2015 — so 2015 is both the
|
|
644
|
+
enabling-statute year and the first-issuance year, now pinned at both
|
|
645
|
+
ends. TIME BOMB WORTH RECORDING: EmoG § 8 Abs. 2 provides that the Act
|
|
646
|
+
ceases to be in force at the end of 31 December 2026 — inside the current
|
|
647
|
+
audit horizon. Unless it is extended, this series' `period.end` becomes
|
|
648
|
+
2026 and the quarterly audit should re-check it. Also note § 79 Abs. 9
|
|
649
|
+
FZV carries a non-application footnote against § 11 which was not
|
|
650
|
+
resolved in this pass (recorded gap).
|
|
651
|
+
|
|
652
|
+
# =========================================================================
|
|
653
|
+
# SEASONAL.
|
|
654
|
+
# =========================================================================
|
|
655
|
+
- id: de-seasonal
|
|
656
|
+
class: seasonal
|
|
657
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
658
|
+
period: { start: 1997 } # 1.3.1997 — 23. ÄndVstVR Art. 4 (era_instruments.v1996_saison)
|
|
659
|
+
period_evidence: enabling-instrument
|
|
660
|
+
matching: strict
|
|
661
|
+
format:
|
|
662
|
+
pattern: "LL-LL 999"
|
|
663
|
+
regex: '\A[A-Z]{1,3}-[A-Z]{1,2} ?\d{1,4}\z'
|
|
664
|
+
regex_strict: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{3,4}\z)[A-Z]{1,3}-[A-Z]{1,2} ?(?:[1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3})\z'
|
|
665
|
+
max_positions: 7
|
|
666
|
+
max_positions_note: "Anlage 4 Abschnitt 5 Nr. 4: seven positions on a single-line plate, five in the Erkennungsnummer on two-line/motorcycle/reduced plates"
|
|
667
|
+
fields_note: >-
|
|
668
|
+
THE OPERATING PERIOD IS A FIELD, NOT PART OF THE SERIAL. Anlage 4 Abschnitt 5
|
|
669
|
+
Nr. 4: in the Betriebszeitraum field, "die Zahl über dem Bindestrich" is the
|
|
670
|
+
start month and "die Zahl unter dem Bindestrich" the end month, set in
|
|
671
|
+
DIN 1451-2:1986-02. A single `pattern` string cannot carry a stacked
|
|
672
|
+
two-number field — this is the same schema pressure PRD-PLATES §2.2 records
|
|
673
|
+
for Japan, arriving in Germany.
|
|
674
|
+
design:
|
|
675
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
676
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
677
|
+
foreground: "#000000"
|
|
678
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
679
|
+
extra_field: { position: right, content: "start month over end month, separated by a hyphen", typeface: "DIN 1451-2:1986-02" }
|
|
680
|
+
validity:
|
|
681
|
+
min_months: 2
|
|
682
|
+
max_months: 11
|
|
683
|
+
note: >-
|
|
684
|
+
"Der Betriebszeitraum ist auf volle Monate zu bemessen. Der Betriebszeitraum
|
|
685
|
+
muss mindestens zwei Monate und darf höchstens elf Monate umfassen"
|
|
686
|
+
(§ 10 Abs. 3). Outside the period the vehicle may neither be operated NOR
|
|
687
|
+
PARKED on public roads. Trips to deregister, and return trips after the seal
|
|
688
|
+
is removed, count as unstamped plates under § 12 Abs. 4.
|
|
689
|
+
region_encoding: "plates/_decode/de-districts.yml"
|
|
690
|
+
sources:
|
|
691
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__10.html # § 10 Abs. 3: Saisonkennzeichen on application; Betriebszeitraum as an amtlicher Zusatz behind the Erkennungsnummer; full months, 2-11 months; green plates may also be seasonal; the operate-and-park prohibition"
|
|
692
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 5: the four seasonal plate forms and the month-field rule"
|
|
693
|
+
- "https://media.offenegesetze.de/bgbl1/1996/bgbl1_1996_60.pdf # 23. ÄndVstVR vom 12.11.1996, BGBl. I S. 1738 — Art. 1 Nr. 2a inserts § 23 Abs. 1b StVZO (the Saisonkennzeichen, verbatim in era_instruments.v1996_saison) + Anlage Vb; Art. 4 puts the Saison provisions in force 1.3.1997. PERIOD START. Fetched 2026-08-02"
|
|
694
|
+
notes: >-
|
|
695
|
+
SAISONKENNZEICHEN, created by the 23. ÄndVstVR of 12.11.1996 with the
|
|
696
|
+
Saison provisions in force 1 March 1997 (Art. 4, quoted in
|
|
697
|
+
era_instruments.v1996_saison) — even the operate-OR-park prohibition is
|
|
698
|
+
1996-original ("nur während des ... Zeitraums in Betrieb gesetzt oder
|
|
699
|
+
abgestellt werden", § 23 Abs. 1b verbatim). The 2-to-11-month bounds are
|
|
700
|
+
cited here to § 10 Abs. 3 FZV 2023 only: whether the 1996 original
|
|
701
|
+
carried the same bounds was not verified (the OCR of the fee-and-annex
|
|
702
|
+
pages is partial) — recorded gap, deliberately not asserted. Its own
|
|
703
|
+
series rather than a variant because the DESIGN differs (an added
|
|
704
|
+
operating-period field) while the serial grammar does not — the
|
|
705
|
+
PRD-PLATES §2.3 test resolves cleanly. It composes with other classes:
|
|
706
|
+
green plates (§ 10 Abs. 2), Oldtimerkennzeichen and E-Kennzeichen can
|
|
707
|
+
all be issued AS seasonal plates, which means class is genuinely
|
|
708
|
+
multi-valued here and the single-`class` schema cannot express the
|
|
709
|
+
combination.
|
|
710
|
+
|
|
711
|
+
# =========================================================================
|
|
712
|
+
# GREEN — TAX-EXEMPT. Green lettering on white, and the class vocabulary has
|
|
713
|
+
# no home for it.
|
|
714
|
+
# =========================================================================
|
|
715
|
+
- id: de-green-taxexempt
|
|
716
|
+
class: agricultural
|
|
717
|
+
categories: [tractor, machine, trailer, truck]
|
|
718
|
+
period: { start: 1956 } # 1.7.1956 — § 60 Abs. 1 Satz 2 StVZO as amended 14.3.1956 (era_instruments.v1956)
|
|
719
|
+
period_evidence: enabling-instrument
|
|
720
|
+
matching: strict
|
|
721
|
+
format:
|
|
722
|
+
pattern: "LL-LL 9999"
|
|
723
|
+
regex: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{4}\z)[A-Z]{1,3}-[A-Z]{1,2} ?\d{1,4}\z'
|
|
724
|
+
regex_strict: '\A(?![A-Z]{3}-[A-Z]{2} ?\d{4}\z)[A-Z]{1,3}-[A-Z]{1,2} ?(?:[1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3})\z'
|
|
725
|
+
design:
|
|
726
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
727
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
728
|
+
foreground: "#008000"
|
|
729
|
+
foreground_note: "§ 10 Abs. 2 FZV, verbatim: 'ein Kennzeichen mit grüner Beschriftung auf weißem Grund (grünes Kennzeichen)'. The statute names the colour GREEN without an RAL or RGB value, so the hex is observed within a named colour."
|
|
730
|
+
border: { color: "#008000", note: "Anlage 4 Abschnitt 1 Nr. 2.1 contemplates black, GREEN or red borders; the green plate takes the green one" }
|
|
731
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
732
|
+
region_encoding: "plates/_decode/de-districts.yml"
|
|
733
|
+
sources:
|
|
734
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__10.html # § 10 Abs. 2: green lettering on white for vehicles whose keeper is exempt from motor-vehicle tax, with the seven-item exclusion list, plus the trailer special rule under § 10 KraftStG"
|
|
735
|
+
- "https://media.offenegesetze.de/bgbl1/1956/bgbl1_1956_15.pdf # V. vom 14.3.1956, BGBl. I S. 199 — § 60 Abs. 1 Satz 2 StVZO, verbatim: 'Bei Fahrzeugen, deren Halten von der Kraftfahrzeugsteuer befreit ist, ist die Beschriftung grün auf weißem Grund; dies gilt nicht für Fahrzeuge von Behörden, für Fahrzeuge des Personals von diplomatischen und konsularischen Vertretungen sowie für Fahrzeuge, deren Haltern Steuererlaß gewährt worden ist.' In force 1.7.1956 (§ 72a). PERIOD START. Fetched 2026-08-02"
|
|
736
|
+
notes: >-
|
|
737
|
+
GRÜNES KENNZEICHEN, and the redate pass's biggest surprise: the green
|
|
738
|
+
tax-exempt colour rule is 1956-ORIGINAL, in the very sentence after
|
|
739
|
+
black-on-white — § 60 Abs. 1 Satz 2 StVZO as amended 14.3.1956, quoted
|
|
740
|
+
verbatim in the source line, in force 1.7.1956, and already with an
|
|
741
|
+
exclusion list of the same shape as today's § 10 Abs. 2 FZV (authority
|
|
742
|
+
vehicles and diplomatic/consular personnel vehicles excluded from
|
|
743
|
+
green). The 32. ÄndVStVR (2000) still carries a transitional headed
|
|
744
|
+
"§ 60 Abs. 1 Satz 2 (grüne amtliche Kennzeichen)" — continuity across
|
|
745
|
+
the era boundary. CLASS CAVEAT, and it is a real one: the legal
|
|
746
|
+
criterion is not agriculture at all — it is that "der Halter von der
|
|
747
|
+
Kraftfahrzeugsteuer befreit ist". _meta/classes.yml has no tax-exempt
|
|
748
|
+
class, so `agricultural` is recorded as the closest fit and the dominant
|
|
749
|
+
population, but the statute's own exclusion list shows how much wider
|
|
750
|
+
the category is: authority vehicles, diplomatic and consular staff
|
|
751
|
+
vehicles, buses and 8-9-seat cars mainly in scheduled service and their
|
|
752
|
+
trailers, Leichtkrafträder and Kleinkrafträder, vehicles of severely
|
|
753
|
+
disabled persons under § 3a KraftStG, particularly low-emission
|
|
754
|
+
vehicles, and any vehicle on a Wechselkennzeichen are all EXCLUDED from
|
|
755
|
+
the green plate. Flagged as a vocabulary gap in the L0 report. DESIGN
|
|
756
|
+
CAVEAT for the period claim: the green plate here carries today's
|
|
757
|
+
Euro-band design; its 1956-1995 execution was the DIN form (green on
|
|
758
|
+
white, no band). The colour RULE is continuous since 1956; the current
|
|
759
|
+
DESIGN is not — same split as de-standard vs de-standard-1956, recorded
|
|
760
|
+
here instead of cutting a low-value historical twin (L4 work).
|
|
761
|
+
|
|
762
|
+
# =========================================================================
|
|
763
|
+
# DEALER — rote Kennzeichen, digits-only beginning 06.
|
|
764
|
+
# =========================================================================
|
|
765
|
+
- id: de-dealer-red
|
|
766
|
+
class: dealer
|
|
767
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
768
|
+
period: { start: 2007 } # UPPER BOUND — the "06" rule verbatim in the
|
|
769
|
+
# FZV 2006, in force 1.3.2007; the series is
|
|
770
|
+
# older and its creating instrument was not
|
|
771
|
+
# secured (see notes)
|
|
772
|
+
period_evidence: instrument-in-force-upper-bound
|
|
773
|
+
matching: strict
|
|
774
|
+
format:
|
|
775
|
+
pattern: "LL-06999"
|
|
776
|
+
regex: '\A[A-Z]{1,3}-06\d{1,4}\z'
|
|
777
|
+
charset: { notes: "the Erkennungsnummer is DIGITS ONLY and begins with 06 — no letters at all, so Anlage 1's letter blocks do not apply" }
|
|
778
|
+
max_positions_note: "the eight-position cap of Anlage 4 Abschnitt 1 Nr. 4 still applies, so a three-letter district code limits the digit tail; the regex quantifies width and the cap is recorded here rather than encoded, because the interaction is not stated in a single provision"
|
|
779
|
+
design:
|
|
780
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
781
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
782
|
+
foreground: "#FF0000"
|
|
783
|
+
foreground_note: "§ 41 Abs. 1 Nr. 2 FZV, verbatim: 'ein Kennzeichen mit roter Beschriftung auf weißem rot gerandetem Grund (rotes Kennzeichen)'. Colour named, not numbered."
|
|
784
|
+
border: { color: "#FF0000" }
|
|
785
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
786
|
+
note: "Anlage 4 Abschnitt 7: executed as the general plates but in red script with a red border; the § 29 StVZO roadworthiness badge is NOT applied"
|
|
787
|
+
binding: business
|
|
788
|
+
sources:
|
|
789
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__41.html # § 41: Prüfungs-, Probe- und Überführungsfahrten; Abs. 1 the red-on-white colour rule; Abs. 2 assignment to trustworthy manufacturers, parts makers, workshops, dealers and trailer makers (plus THW, Bundespolizei, BKA, Länder police, Bundeswehr, customs) for REPEATED use on DIFFERENT vehicles, and 'einer nur aus Ziffern bestehenden und mit \"06\" beginnenden Erkennungsnummer'; Abs. 3 the per-trip Fahrzeugscheinheft log, kept one year"
|
|
790
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 7: red script and red border; Anlage 13 is the Fahrzeugscheinheft"
|
|
791
|
+
- "https://media.offenegesetze.de/bgbl1/2006/bgbl1_2006_21.pdf # FZV vom 25.4.2006, BGBl. I S. 988 — the '06' rule verbatim ('... nur aus Ziffern und beginnt mit \"06\"'), in force 1.3.2007 (Art. 12 Abs. 2). PERIOD UPPER BOUND. Fetched 2026-08-02"
|
|
792
|
+
- "https://media.offenegesetze.de/bgbl1/1998/bgbl1_1998_14.pdf # 27. ÄndVstVR vom 9.3.1998, BGBl. I S. 441 — Art. 1 amends the § 28 StVZO rote-Kennzeichen machinery ('Für die mit roten Kennzeichen versehenen ...') and, per its other articles in force 1.5.1998, ends red-plate transfer use by private persons; evidences the red-plate regime pre-FZV without stating the 06 numbering. Fetched 2026-08-02"
|
|
793
|
+
notes: >-
|
|
794
|
+
ROTE KENNZEICHEN — the German dealer/trade plate, and the cleanest "06"
|
|
795
|
+
identification in the dataset. PERIOD, honestly: 2007 is an UPPER BOUND —
|
|
796
|
+
the earliest instrument secured in this pass that states the digits-only
|
|
797
|
+
"06" rule is the first FZV (25.4.2006, in force 1.3.2007, verbatim in
|
|
798
|
+
era_instruments.v2006_fzv). The regime is decades older: § 28 StVZO
|
|
799
|
+
carried red plates before the FZV (the 1998 instrument amending it is
|
|
800
|
+
pinned above), and the enthusiast/Wikipedia lore that red plates exist
|
|
801
|
+
"since the 1920s" and took district-code + number form in 1956 is
|
|
802
|
+
FLAGGED AS UNSOURCED — the 14.3.1956 instrument was read in full and
|
|
803
|
+
does not touch § 28, so the 1956 story is not asserted. Locating the
|
|
804
|
+
instrument that first fixed the 05/06/07 number blocks (a pre-2006 StVZO
|
|
805
|
+
amendment or a Verkehrsblatt directive) is the recorded gap. BINDING
|
|
806
|
+
NOTE: like Swiss plates but for a different reason, this plate does NOT
|
|
807
|
+
bind to a vehicle — it binds to a BUSINESS and moves between vehicles,
|
|
808
|
+
which is why `binding: business` is set on the series and why a
|
|
809
|
+
vehicle-keyed consumer must not join on it. § 41 Abs. 3 requires a
|
|
810
|
+
written per-trip record (plate, date, start and end, driver and address,
|
|
811
|
+
vehicle class, make, VIN and route), retained for a year — the
|
|
812
|
+
compensating audit trail for an untethered plate. Also worth recording:
|
|
813
|
+
FZV 2023 § 41 Abs. 4 gives technical inspection bodies the "05" block —
|
|
814
|
+
an unmodelled sibling series (05 = Prüfstellen) sharing this format.
|
|
815
|
+
|
|
816
|
+
- id: de-oldtimer-red
|
|
817
|
+
class: dealer
|
|
818
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
819
|
+
period: { start: 2007 } # UPPER BOUND — the "07" rule verbatim in the
|
|
820
|
+
# FZV 2006, in force 1.3.2007 (see notes)
|
|
821
|
+
period_evidence: instrument-in-force-upper-bound
|
|
822
|
+
matching: strict
|
|
823
|
+
format:
|
|
824
|
+
pattern: "LL-07999"
|
|
825
|
+
regex: '\A[A-Z]{1,3}-07\d{1,4}\z'
|
|
826
|
+
charset: { notes: "digits only, beginning 07" }
|
|
827
|
+
design:
|
|
828
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
829
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
830
|
+
foreground: "#FF0000"
|
|
831
|
+
border: { color: "#FF0000" }
|
|
832
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
833
|
+
sources:
|
|
834
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__43.html # § 43: trips to and from Oldtimer events need neither Betriebserlaubnis nor Zulassung if the vehicle carries a rotes Oldtimerkennzeichen; Abs. 2 applies § 41 Abs. 2-6 and requires 'einer nur aus Ziffern bestehenden und mit den Ziffern \"07\" beginnenden Erkennungsnummer', with the Anlage 15 Fahrzeugscheinheft"
|
|
835
|
+
- "https://media.offenegesetze.de/bgbl1/2006/bgbl1_2006_21.pdf # FZV vom 25.4.2006, BGBl. I S. 988 — 'Das rote Oldtimerkennzeichen besteht aus einem Unterscheidungszeichen und einer Erkennungsnummer jeweils nach § 8 Abs. 1, jedoch besteht die Erkennungsnummer nur aus Ziffern und beginnt mit \"07\"', in force 1.3.2007 (Art. 12 Abs. 2). PERIOD UPPER BOUND. Fetched 2026-08-02"
|
|
836
|
+
notes: >-
|
|
837
|
+
ROTES OLDTIMERKENNZEICHEN — the 07 series. PERIOD, honestly: 2007 is an
|
|
838
|
+
UPPER BOUND — the FZV 2006 states the "07" rule verbatim (source line;
|
|
839
|
+
in force 1.3.2007) and is the earliest instrument secured for it. The
|
|
840
|
+
series demonstrably predates that codification: the Wikipedia locator
|
|
841
|
+
records that BEFORE 1 March 2007 (the FZV's own commencement day) the 07
|
|
842
|
+
plate also served 20-year-old Youngtimers — a pre-FZV practice under the
|
|
843
|
+
§ 28 StVZO red-plate machinery — but no StVZO-era instrument stating
|
|
844
|
+
"07" was located; that instrument is the recorded gap. Distinguished
|
|
845
|
+
from the 06 dealer plate by two digits and by one crucial restriction:
|
|
846
|
+
§ 43 Abs. 2 provides that this plate "nur an dem Fahrzeug verwendet
|
|
847
|
+
werden darf, für das es ausgegeben wurde", so unlike the 06 plate it is
|
|
848
|
+
NOT freely transferable between vehicles. CLASS CAVEAT: recorded as
|
|
849
|
+
`dealer` because it shares § 41's machinery, but it is functionally a
|
|
850
|
+
historic-vehicle event plate; a class vocabulary with a `historic` and a
|
|
851
|
+
`dealer` value cannot express "both".
|
|
852
|
+
|
|
853
|
+
# =========================================================================
|
|
854
|
+
# SHORT-TERM AND EXPORT — the two date-bearing German plates.
|
|
855
|
+
# =========================================================================
|
|
856
|
+
- id: de-shortterm
|
|
857
|
+
class: temporary
|
|
858
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
859
|
+
period: { start: 1998 } # 14.3.1998 — 27. ÄndVstVR Art. 1 in force (era_instruments.v1998_kurzzeit)
|
|
860
|
+
period_evidence: enabling-instrument
|
|
861
|
+
matching: strict
|
|
862
|
+
format:
|
|
863
|
+
pattern: "LL-03999"
|
|
864
|
+
regex: '\A[A-Z]{1,3}-0[34]\d{1,4}\z'
|
|
865
|
+
charset: { notes: "digits only, beginning '03' OR '04' — the pattern shows 03 as a representative literal and the regex carries both" }
|
|
866
|
+
fields_note: "the plate additionally bears an EXPIRY DATE as a stacked three-number field (day over month over year), which a single pattern string cannot express"
|
|
867
|
+
design:
|
|
868
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
869
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
870
|
+
foreground: "#000000"
|
|
871
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
872
|
+
extra_field:
|
|
873
|
+
position: right
|
|
874
|
+
content: "day over month over year of expiry"
|
|
875
|
+
background: { color: "#FFFF00" }
|
|
876
|
+
foreground: "#000000"
|
|
877
|
+
note: "Anlage 4 Abschnitt 6 Nr. 4: 'Die Farbe dieses Feldes ist gelb mit schwarzer Beschriftung'; digits in DIN 1451-2:1986-02"
|
|
878
|
+
seal: { diameter_mm: 35, background: "blue per DIN 6171 (blau – Euro-Feld)", note: "Anlage 4 Abschnitt 6 Nr. 4: a 35 mm Stempelplakette with the authority's Dienststempel on a BLUE ground, positioned between prefix and Erkennungsnummer (single-line) or top-left beside the prefix (two-line); the § 29 StVZO badge is not applied" }
|
|
879
|
+
validity: { days: 5, note: "§ 42 Abs. 4: the expiry date is set 'bis zum Ablauf des fünften auf die Zuteilung folgenden Tages'; after it the vehicle may not be operated on public roads" }
|
|
880
|
+
sources:
|
|
881
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__42.html # § 42 Abs. 1: conditions (type-approved or individually approved, valid HU/SP, insurance); Abs. 4: 'einer nur aus Ziffern bestehenden und mit \"03\" oder \"04\" beginnenden Erkennungsnummer' plus the five-day expiry date; Abs. 3: need not be firmly affixed"
|
|
882
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 6: the three Kurzzeitkennzeichen forms, the yellow/black date field, the 35 mm blue seal"
|
|
883
|
+
- "https://media.offenegesetze.de/bgbl1/1998/bgbl1_1998_14.pdf # 27. ÄndVstVR vom 9.3.1998, BGBl. I S. 441 — Art. 1 creates the Kurzzeitkennzeichen in § 28 StVZO ('Kurzzeitkennzeichen sind in schwarzer [Schrift] ... herzustellen') + Anlage Vd; Art. 5: Art. 1 in force 14.3.1998, remainder 1.5.1998. PERIOD START, quotes in era_instruments.v1998_kurzzeit. Fetched 2026-08-02"
|
|
884
|
+
- "https://media.offenegesetze.de/bgbl1/2006/bgbl1_2006_21.pdf # FZV vom 25.4.2006, BGBl. I S. 988 — '... nur aus Ziffern und beginnt mit \"03\" oder \"04\". Das Kurzzeitkennzeichen enthält außerdem ein Ablaufdatum, das längstens auf fünf Tage ab der Zuteilung zu bemessen [ist]', in force 1.3.2007 — the earliest instrument secured that states the 03 option. Fetched 2026-08-02"
|
|
885
|
+
notes: >-
|
|
886
|
+
KURZZEITKENNZEICHEN, created by the 27. ÄndVstVR of 9.3.1998 (Art. 1, in
|
|
887
|
+
force 14 March 1998) as the black-script short-term plate that replaced
|
|
888
|
+
private use of red plates — the same instrument's remaining articles, in
|
|
889
|
+
force 1.5.1998, closed the red-plate route for private transfer runs.
|
|
890
|
+
FORMAT-HISTORY CAVEAT, recorded at the point of use: the "03 oder 04"
|
|
891
|
+
wording in this series' regex is evidenced from 1.3.2007 (FZV 2006,
|
|
892
|
+
verbatim in the source line); the 1998-2007 numbering could not be read
|
|
893
|
+
from the 1998 scan (the Anlage Vd pages' OCR is partial), and the
|
|
894
|
+
widely repeated claim that pre-2007 Kurzzeitkennzeichen began with "04"
|
|
895
|
+
only is SECONDARY (Wikipedia locator) — recorded, not asserted. Five
|
|
896
|
+
days, a yellow expiry field, and a blue seal instead of the usual
|
|
897
|
+
Land-arms Stempelplakette. Unlike the 06 dealer plate it is tied to ONE
|
|
898
|
+
vehicle (§ 42 Abs. 3 Nr. 2) and, unlike an ordinary plate, it need not
|
|
899
|
+
be firmly attached.
|
|
900
|
+
|
|
901
|
+
- id: de-export
|
|
902
|
+
class: export
|
|
903
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
904
|
+
period: { start: 2007 } # UPPER BOUND — digits-then-letter rule
|
|
905
|
+
# verbatim in the FZV 2006, in force
|
|
906
|
+
# 1.3.2007; the regime is much older (see
|
|
907
|
+
# notes: 1998 IntKfzV seal pin, pre-1988
|
|
908
|
+
# design change flagged)
|
|
909
|
+
period_evidence: instrument-in-force-upper-bound
|
|
910
|
+
matching: strict
|
|
911
|
+
format:
|
|
912
|
+
pattern: "LL-9999L"
|
|
913
|
+
regex: '\A[A-Z]{1,3}-\d{1,4}[A-Z]\z'
|
|
914
|
+
regex_strict: '\A[A-Z]{1,3}-(?:[1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3})[A-Z]\z'
|
|
915
|
+
charset:
|
|
916
|
+
notes: >-
|
|
917
|
+
§ 45 Abs. 2 FZV, verbatim: "Die Erkennungsnummer hat zu bestehen aus einer
|
|
918
|
+
ein- bis vierstelligen Zahl und einem nachfolgenden Buchstaben." Digits
|
|
919
|
+
FIRST, letter LAST — the inverse of every other German series, and the
|
|
920
|
+
single most useful structural tell for an export plate.
|
|
921
|
+
fields_note: "plus a stacked three-number expiry field (day over month over year)"
|
|
922
|
+
design:
|
|
923
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
924
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
925
|
+
foreground: "#000000"
|
|
926
|
+
band: { side: none }
|
|
927
|
+
band_note: >-
|
|
928
|
+
NO EURO-FIELD. Anlage 4 Abschnitt 8 Nr. 3 expressly disapplies the Euro-Feld
|
|
929
|
+
provision (Abschnitt 1 Nr. 3), the verkleinerte Mittelschrift and the § 29
|
|
930
|
+
StVZO badge for Ausfuhrkennzeichen. The only German road plate without the EU
|
|
931
|
+
band — which makes sense: the vehicle is leaving the Union's registration.
|
|
932
|
+
extra_field:
|
|
933
|
+
position: right
|
|
934
|
+
content: "day over month over year on which the registration's validity ends in the FZV's territory"
|
|
935
|
+
background: { color: "#FF0000", finish: non-retroreflective }
|
|
936
|
+
foreground: "#000000"
|
|
937
|
+
note: "Anlage 4 Abschnitt 8 Nr. 3: 'Der rote Untergrund darf nicht retroreflektierend sein' — the one field in German plate law required NOT to retroreflect"
|
|
938
|
+
seal: { diameter_mm: 35, background: "RAL 2002 red", note: "Anlage 4 Abschnitt 8 Nr. 3: Stempelplakette with the authority's Dienstsiegel on a red ground, RAL 2002" }
|
|
939
|
+
validity: { max_months: 12, note: "§ 45 Abs. 1 Nr. 2: the registration is limited to the duration of the proven third-party insurance, 'längstens auf ein Jahr'" }
|
|
940
|
+
sources:
|
|
941
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__45.html # § 45: Fahrten zur dauerhaften Verbringung eines Fahrzeuges in das Ausland; Abs. 1 the insurance/HU conditions and the one-year cap; Abs. 2 'einer ein- bis vierstelligen Zahl und einem nachfolgenden Buchstaben' plus the expiry-date field"
|
|
942
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 8: no Euro-Feld, the non-retroreflective red date field, the RAL 2002 seal"
|
|
943
|
+
- "https://media.offenegesetze.de/bgbl1/2006/bgbl1_2006_21.pdf # FZV vom 25.4.2006, BGBl. I S. 988 — the export Erkennungsnummer 'aus einer ein- bis vierstelligen Zahl und einem nachfol[genden Buchstaben]' verbatim, in force 1.3.2007. PERIOD UPPER BOUND for the format as modeled. Fetched 2026-08-02"
|
|
944
|
+
- "https://media.offenegesetze.de/bgbl1/1998/bgbl1_1998_14.pdf # 27. ÄndVstVR vom 9.3.1998, BGBl. I S. 441, Art. 4 — amends § 7 Abs. 2 Nr. 5 IntKfzV: the export plate's Dienstsiegel becomes 'mit einem Durchmesser von 35 mm' beside the pre-existing '(RAL 2002)' — the RAL-2002 red seal the FZV 2023 still prescribes was already law in 1998, under the Verordnung über internationalen Kraftfahrzeugverkehr, not the FZV. LINEAGE PIN, not a start. Fetched 2026-08-02"
|
|
945
|
+
notes: >-
|
|
946
|
+
AUSFUHRKENNZEICHEN. PERIOD, honestly: 2007 is an UPPER BOUND for the
|
|
947
|
+
series AS MODELED (digits-then-letter Erkennungsnummer): that rule's
|
|
948
|
+
earliest secured statement is the FZV 2006 (verbatim, in force
|
|
949
|
+
1.3.2007). The export-plate REGIME is far older and pre-FZV lived in the
|
|
950
|
+
IntKfzV: the 1998 amendment pinned above adjusts its § 7 Dienstsiegel
|
|
951
|
+
and shows RAL 2002 — today's seal colour — already in force, and the
|
|
952
|
+
Wikipedia locator's photo caption dates a distinct older design
|
|
953
|
+
("Ausfuhrkennzeichen bis 1988") — SECONDARY, recorded not asserted.
|
|
954
|
+
Neither the origin of the digits-then-letter serial nor the 1988(?)
|
|
955
|
+
design change was primary-sourced; both are the recorded gaps here.
|
|
956
|
+
Three things make it unique in Germany: the digits-then-letter
|
|
957
|
+
Erkennungsnummer, the absence of the Euro-band, and a field the law
|
|
958
|
+
requires NOT to be retroreflective. § 45 Abs. 1 also carries a nice
|
|
959
|
+
period-logic constraint for a claims model: the plate may only be issued
|
|
960
|
+
if the next roadworthiness inspection date falls AFTER the
|
|
961
|
+
registration's expiry date, otherwise the inspection must be done first.
|
|
962
|
+
|
|
963
|
+
# =========================================================================
|
|
964
|
+
# ANLAGE 2 SERIES — federal, Land, diplomatic, military. § 9 Abs. 1 Satz 7:
|
|
965
|
+
# "Die Erkennungsnummern dieser Fahrzeuge dürfen nur aus höchstens
|
|
966
|
+
# sechsstelligen Zahlen bestehen" — digits only, at most six.
|
|
967
|
+
# =========================================================================
|
|
968
|
+
- id: de-federal-government
|
|
969
|
+
class: government
|
|
970
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
971
|
+
period: { start: 1956 } # 1.7.1956 — Anlage IV StVZO created by the
|
|
972
|
+
# V. vom 14.3.1956 (era_instruments.v1956);
|
|
973
|
+
# the CODE LIST has evolved, see notes
|
|
974
|
+
period_evidence: enabling-instrument
|
|
975
|
+
matching: strict
|
|
976
|
+
format:
|
|
977
|
+
pattern: "BD-999999"
|
|
978
|
+
regex: '\A(?:BD|BG|BP|BW|THW|BBL|BWL|BYL|HEL|LSA|LSN|MVL|NRW|RPL|SAL|THL|HB|HH|NL|B)-\d{1,6}\z'
|
|
979
|
+
charset: { notes: "§ 9 Abs. 1 Satz 7: the Erkennungsnummern of Anlage 2 vehicles 'dürfen nur aus höchstens sechsstelligen Zahlen bestehen' — digits only, maximum six" }
|
|
980
|
+
design:
|
|
981
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
982
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
983
|
+
foreground: "#000000"
|
|
984
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
985
|
+
region_encoding: inline
|
|
986
|
+
region_encoding_note: "decode via region_encoding_tables.anlage2_federal_and_diplomatic (bund + laender) at the top of this file — a closed, primary, 23-row table, unlike the district list"
|
|
987
|
+
sources:
|
|
988
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_2.html # Anlage 2 Nr. 1 (Bund: BD, BG, BP, BW, THW, Y, X with their registering authorities) and Nr. 2 (the 16 Land codes and which organs they cover)"
|
|
989
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__9.html # § 9 Abs. 1 Satz 6-7: which bodies may receive Anlage 2 plates, and the digits-only, max-six-digit Erkennungsnummer rule"
|
|
990
|
+
- "https://media.offenegesetze.de/bgbl1/1956/bgbl1_1956_15.pdf # V. vom 14.3.1956, BGBl. I S. 199 — Anlage IV (zu § 23 Abs. 2): 'A. Bund: BD Dienstfahrzeuge des Bundestages, des Bundesrates und der Bundesregierung; BG Dienstfahrzeuge des Bundesgrenzschutzes; BP Deutsche Bundespost; BW Bundes-Wasser- und Schiffahrtsverwaltung; DB Deutsche Bundesbahn; Y Dienstfahrzeuge der deutschen Streitkräfte' + 'B. Länder' (B, BWL, BYL, HB, HEL, HH, NL, RPL, RWL, SH), and § 23 Abs. 2: 'Die Erkennungsnummern dieser Fahrzeuge ... bestehen nur aus Zahlen; die Zahlen dürfen nicht mehr als fünf - bei Fahrzeugen der deutschen Streitkräfte sechs - Stellen haben.' In force 1.7.1956. PERIOD START. Fetched 2026-08-02"
|
|
991
|
+
- "https://media.offenegesetze.de/bgbl1/1997/bgbl1_1997_52.pdf # 25. ÄndVstVR vom 22.7.1997 — Nr. 8 inserts 'der Bundesanstalt Technisches Hilfswerk,' into the Anlage IV heading: THW joins the table in 1997. Fetched 2026-08-02"
|
|
992
|
+
- "https://media.offenegesetze.de/bgbl1/2006/bgbl1_2006_21.pdf # FZV vom 25.4.2006 — Anlage 3 already carries THW, X and the five new-Land codes (BBL etc.), in force 1.3.2007. Fetched 2026-08-02"
|
|
993
|
+
notes: >-
|
|
994
|
+
FEDERAL AND LAND OFFICIAL SERIES — 1956-original as a SYSTEM: Anlage IV
|
|
995
|
+
of the 14.3.1956 instrument created the official-code table and the
|
|
996
|
+
digits-only rule in the same breath (both verbatim in the source line).
|
|
997
|
+
THE CODE LIST IS THE PART THAT MOVED, and a decode table must carry it
|
|
998
|
+
by period: 1956 had BD/BG/BP/BW/DB/Y and TEN Land codes (RWL for
|
|
999
|
+
Nordrhein-Westfalen — today NRW; no BBL/LSA/LSN/MVL/THL before
|
|
1000
|
+
reunification); BP meant DEUTSCHE BUNDESPOST in 1956 and means
|
|
1001
|
+
Bundespolizei today — the same two letters changed meaning, which is a
|
|
1002
|
+
trap for any historical decode; DB (Deutsche Bundesbahn) left with
|
|
1003
|
+
privatisation (the 32. ÄndVStVR still repeals a Bundespost-successor
|
|
1004
|
+
transitional in 2000); THW was added in 1997 (pinned); the digit cap
|
|
1005
|
+
rose from five (six for the Streitkräfte) to six for all (§ 9 Abs. 1
|
|
1006
|
+
Satz 7 FZV 2023). The exact instruments for the post-1990 Land codes and
|
|
1007
|
+
the NRW/RWL switch were not located — recorded gaps for the decode
|
|
1008
|
+
table, not for this series' start. Two facts a decode table must carry,
|
|
1009
|
+
both verbatim from Anlage 2 (2023): BG (Bundespolizei) is "noch gültig,
|
|
1010
|
+
wird nicht mehr zugeteilt" — still valid, no longer assigned, exactly
|
|
1011
|
+
the ended-but-on-the-road case PRD-PLATES's `ended: true` semantics
|
|
1012
|
+
exist for at the series level and that decode rows need at the row
|
|
1013
|
+
level. And the CONSULAR case has no code of its own: career consular
|
|
1014
|
+
posts carry "das Unterscheidungszeichen des Verwaltungsbezirkes am Sitz
|
|
1015
|
+
des Konsulats", i.e. an ordinary district prefix, so German consular
|
|
1016
|
+
vehicles are NOT identifiable from the plate string. Also here: 1-1 for
|
|
1017
|
+
the Bundestag President's official car (Anlage 2 Nr. 4), the only German
|
|
1018
|
+
plate whose prefix is a digit.
|
|
1019
|
+
|
|
1020
|
+
- id: de-diplomatic
|
|
1021
|
+
class: diplomatic
|
|
1022
|
+
categories: [car, van, motorcycle]
|
|
1023
|
+
period: { start: 1956 } # 1.7.1956 — Anlage IV C StVZO: "0 Fahrzeuge
|
|
1024
|
+
# des Diplomatischen Corps" (era_instruments.v1956)
|
|
1025
|
+
period_evidence: enabling-instrument
|
|
1026
|
+
matching: strict
|
|
1027
|
+
format:
|
|
1028
|
+
pattern: "0-999999"
|
|
1029
|
+
regex: '\A(?:0|B|BN)-\d{1,6}\z'
|
|
1030
|
+
charset: { notes: "digits only, max six (§ 9 Abs. 1 Satz 7); the prefix is 0, B or BN depending on the body and the privileged person's status" }
|
|
1031
|
+
progression: "Anlage 2 Nr. 3 states only that the prefix depends on the body and the status of the privileged person; the mission-number allocation inside the Erkennungsnummer is NOT in the FZV — see notes"
|
|
1032
|
+
design:
|
|
1033
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
1034
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
1035
|
+
foreground: "#000000"
|
|
1036
|
+
band: { side: left, color: "#003399", content: eu-stars+D }
|
|
1037
|
+
region_encoding: inline
|
|
1038
|
+
region_encoding_note: "prefix decode in region_encoding_tables.anlage2_federal_and_diplomatic.diplomatic; the mission-number sub-decode is NOT authored (PRD-PLATES puts diplomatic decode tables at L4)"
|
|
1039
|
+
sources:
|
|
1040
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_2.html # Anlage 2 Nr. 3: '0, B oder BN — Diplomatische Vertretungen oder internationale Organisationen und in Abhängigkeit vom Status der bevorrechtigten Person', registered at Berlin or Bonn"
|
|
1041
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__9.html # § 9 Abs. 1 Satz 6-7"
|
|
1042
|
+
- "https://media.offenegesetze.de/bgbl1/1956/bgbl1_1956_15.pdf # V. vom 14.3.1956, BGBl. I S. 199 — Anlage IV 'C. Diplomatisches Corps: 0 Fahrzeuge des Diplomatischen Corps', with the § 23 Abs. 2 digits-only rule (max five digits then). In force 1.7.1956. PERIOD START. Fetched 2026-08-02"
|
|
1043
|
+
notes: >-
|
|
1044
|
+
GERMAN DIPLOMATIC SERIES — the zero prefix is 1956-original: Anlage IV C
|
|
1045
|
+
of the 14.3.1956 instrument reads, in its entirety, "0 Fahrzeuge des
|
|
1046
|
+
Diplomatischen Corps" (source line), making 0 the founding member of
|
|
1047
|
+
today's 0/B/BN trio. WHAT IS NOT 1956: the B and BN prefixes for
|
|
1048
|
+
diplomatic vehicles registered at Berlin and Bonn appear in Anlage 2 FZV
|
|
1049
|
+
2023 (and B doubles as the Berlin Land code); no instrument dating their
|
|
1050
|
+
introduction was located in this pass — recorded gap, presumably tied to
|
|
1051
|
+
the Bonn/Berlin seat split, deliberately not guessed. The 1956 digit cap
|
|
1052
|
+
was five; today six (§ 9 Abs. 1 Satz 7). Unlike Spain — where
|
|
1053
|
+
CD/OI/CC/TA each get their own background colour — Germany keeps the
|
|
1054
|
+
ordinary black-on-white design and signals status only through the
|
|
1055
|
+
prefix, so a German diplomatic plate is visually a normal plate. The
|
|
1056
|
+
mission-identifying number group inside the Erkennungsnummer is a
|
|
1057
|
+
Foreign Office allocation and is not published in the FZV; it is a
|
|
1058
|
+
recorded gap, deliberately not guessed.
|
|
1059
|
+
|
|
1060
|
+
- id: de-military-bundeswehr
|
|
1061
|
+
class: military
|
|
1062
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
1063
|
+
period: { start: 1956 } # 1.7.1956 — "Y Dienstfahrzeuge der deutschen
|
|
1064
|
+
# Streitkräfte", Anlage IV A (era_instruments.v1956);
|
|
1065
|
+
# the X (NATO HQ) prefix is LATER — gap noted
|
|
1066
|
+
period_evidence: enabling-instrument
|
|
1067
|
+
matching: strict
|
|
1068
|
+
format:
|
|
1069
|
+
pattern: "Y-999999"
|
|
1070
|
+
regex: '\A(?:Y|X)-\d{1,6}\z'
|
|
1071
|
+
charset: { notes: "digits only, max six; Y = Bundeswehr, X = NATO international military headquarters based in Germany" }
|
|
1072
|
+
group_note: "Anlage 4 Abschnitt 3 Nr. 5: on single-line 'andere Kraftfahrzeuge und Anhänger' plates the LAST THREE DIGITS are separated from the preceding digits by a group gap three times the normal spacing — a real grouping rule inside a digits-only serial"
|
|
1073
|
+
design:
|
|
1074
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
1075
|
+
background: { color: "#FFFFFF", finish: painted, hex_basis: spec, spec_note: "Anlage 4 Abschnitt 3 Nr. 5: 'Die Farbtöne des Untergrundes, des Randes und der Beschriftung sind dem Farbregister RAL 840 HR zu entnehmen, und zwar für schwarz RAL 9005 und weiß RAL 9001.' A rare hard RAL pair in EU plate law." }
|
|
1076
|
+
foreground: "#000000"
|
|
1077
|
+
foreground_spec: "RAL 9005"
|
|
1078
|
+
background_spec: "RAL 9001"
|
|
1079
|
+
band: { side: none }
|
|
1080
|
+
band_note: "no Euro-Feld on Bundeswehr plates; § 12 Abs. 2 also exempts them from the DIN 74069 reflectivity requirement and the DIN test mark, as it does plates on NATO headquarters vehicles"
|
|
1081
|
+
font: { name: "DIN 1451-2:1986-02 (Verkehrsschrift)", note: "Anlage 4 Abschnitt 1 Nr. 2.3: Bundeswehr plates and Versicherungskennzeichen use DIN 1451-2, NOT the FE-Schrift; bold Engschrift where the length does not suffice" }
|
|
1082
|
+
federal_colours: { black: "RAL 9005", red: "RAL 3002", gold: "RAL 1006", note: "Anlage 4 Abschnitt 3 Nr. 5 gives the Bundesfarben where they are used" }
|
|
1083
|
+
digit_one_rule: "Anlage 4 Abschnitt 3 Nr. 5: where the digit '1' is used, or a line holds fewer digits than the model, the gaps between that line's digits enlarge uniformly — a layout rule the render layer must honour"
|
|
1084
|
+
region_encoding: none
|
|
1085
|
+
sources:
|
|
1086
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_2.html # Anlage 2 Nr. 1: 'Y Dienstfahrzeuge der Bundeswehr (Zentrale Militärkraftfahrtstelle – ZMK, Hardter Straße 9, 41179 Mönchengladbach/Rheindahlen)' and 'X Dienstfahrzeuge der auf Grund des Nordatlantikvertrages errichteten internationalen militärischen Hauptquartiere'"
|
|
1087
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/anlage_4.html # Anlage 4 Abschnitt 3: Bundeswehr plate forms (Leichtkrafträder/Kleinkrafträder, other Krafträder, other vehicles single- and two-line) plus RAL 9005/9001, the Bundesfarben, the digit-1 spacing rule and the last-three-digits group gap"
|
|
1088
|
+
- "https://www.gesetze-im-internet.de/fzv_2023/__12.html # § 12 Abs. 2 last sentence: Bundeswehr and NATO-HQ plates are exempt from DIN 74069 and the DIN test mark"
|
|
1089
|
+
- "https://media.offenegesetze.de/bgbl1/1956/bgbl1_1956_15.pdf # V. vom 14.3.1956, BGBl. I S. 199 — Anlage IV A: 'Y Dienstfahrzeuge der deutschen Streitkräfte (Auskunft: Bundesministerium für Verteidigung)'; § 23 Abs. 2: digits only, 'bei Fahrzeugen der deutschen Streitkräfte sechs' Stellen — the six-digit military allowance is 1956-original. In force 1.7.1956. PERIOD START (for Y). Fetched 2026-08-02"
|
|
1090
|
+
- "https://media.offenegesetze.de/bgbl1/2006/bgbl1_2006_21.pdf # FZV vom 25.4.2006 — Anlage 3: 'X Dienstfahrzeuge der auf Grund des Nordatlantikvertrages errichteten internationalen militärischen Hauptquartiere, die ihren regelmäßigen Standort im Inland haben' — X's earliest secured appearance; in force 1.3.2007. Fetched 2026-08-02"
|
|
1091
|
+
notes: >-
|
|
1092
|
+
BUNDESWEHR (Y) AND NATO HEADQUARTERS (X). Y IS 1956-ORIGINAL — Anlage IV
|
|
1093
|
+
A of the 14.3.1956 instrument, verbatim in the source line, together
|
|
1094
|
+
with the military six-digit allowance that today applies to all Anlage 2
|
|
1095
|
+
vehicles. PERIOD ASYMMETRY RECORDED AT POINT OF USE: this series' regex
|
|
1096
|
+
accepts Y and X, but the period claim anchors on Y; the X prefix is NOT
|
|
1097
|
+
in the 1956 Anlage IV, and its earliest secured appearance is the FZV
|
|
1098
|
+
2006 Anlage 3 (pinned; in force 1.3.2007) — the instrument that first
|
|
1099
|
+
assigned X to the NATO headquarters (plausibly 1960s, after the 1955
|
|
1100
|
+
NATO accession) was not located and is the recorded gap. Its own series
|
|
1101
|
+
and not a variant of the federal one: the FONT differs (DIN 1451-2
|
|
1102
|
+
instead of FE-Schrift), the Euro-band is absent, the reflectivity
|
|
1103
|
+
standard is disapplied and the colours are given as RAL codes rather
|
|
1104
|
+
than named — and the DIN script on today's Y plate is the direct
|
|
1105
|
+
survival of the 1956-2000 standard lettering (see de-standard-1956).
|
|
1106
|
+
Y is famously a single letter serving the entire armed forces, which is
|
|
1107
|
+
why it looks like a district code and is not one.
|