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.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +164 -0
  3. data/CHANGELOG.md +321 -0
  4. data/README.md +88 -15
  5. data/data/PROVENANCE-vehicles.md +12 -0
  6. data/data/plates/PROVENANCE.md +10 -0
  7. data/data/plates/_decode/at-districts.yml +287 -0
  8. data/data/plates/_decode/ch-cantons.yml +110 -0
  9. data/data/plates/_decode/cn-issuing-offices.yml +463 -0
  10. data/data/plates/_decode/cn-provinces.yml +614 -0
  11. data/data/plates/_decode/cz-kraj.yml +159 -0
  12. data/data/plates/_decode/dk-serial-blocks.yml +327 -0
  13. data/data/plates/_decode/es-provinces.yml +116 -0
  14. data/data/plates/_decode/fr-departements.yml +191 -0
  15. data/data/plates/_decode/gb-age-identifiers.yml +170 -0
  16. data/data/plates/_decode/gb-memory-tags.yml +202 -0
  17. data/data/plates/_decode/gr-prefectures.yml +1408 -0
  18. data/data/plates/_decode/hr-cities.yml +315 -0
  19. data/data/plates/_decode/ie-counties.yml +227 -0
  20. data/data/plates/_decode/in-state-codes.yml +169 -0
  21. data/data/plates/_decode/is-districts-1938.yml +116 -0
  22. data/data/plates/_decode/it-provinces.yml +348 -0
  23. data/data/plates/_decode/jp-office-marks.yml +960 -0
  24. data/data/plates/_decode/jp-use-marks.yml +205 -0
  25. data/data/plates/_decode/kr-authority-marks.yml +146 -0
  26. data/data/plates/_decode/kr-use-syllables.yml +194 -0
  27. data/data/plates/_decode/lu-series-order.yml +638 -0
  28. data/data/plates/_decode/mx-entity-series.yml +380 -0
  29. data/data/plates/_decode/my-index-marks.yml +271 -0
  30. data/data/plates/_decode/no-counties-1913.yml +148 -0
  31. data/data/plates/_decode/no-districts.yml +901 -0
  32. data/data/plates/_decode/pl-powiats.yml +567 -0
  33. data/data/plates/_decode/pt-trailer-services.yml +96 -0
  34. data/data/plates/_decode/ro-counties.yml +213 -0
  35. data/data/plates/_decode/se-diplomatic.yml +220 -0
  36. data/data/plates/_decode/si-regions.yml +123 -0
  37. data/data/plates/_decode/sk-districts.yml +314 -0
  38. data/data/plates/_decode/th-registration-elements.yml +208 -0
  39. data/data/plates/_decode/ua-regions.yml +393 -0
  40. data/data/plates/_decode/za-licence-marks.yml +215 -0
  41. data/data/plates/_meta/classes.yml +26 -0
  42. data/data/plates/_meta/separators.yml +102 -0
  43. data/data/plates/ad.yml +961 -0
  44. data/data/plates/ar.yml +762 -0
  45. data/data/plates/at.yml +1424 -0
  46. data/data/plates/au-act.yml +472 -0
  47. data/data/plates/au-nsw.yml +282 -0
  48. data/data/plates/au-nt.yml +431 -0
  49. data/data/plates/au-qld.yml +272 -0
  50. data/data/plates/au-sa.yml +248 -0
  51. data/data/plates/au-tas.yml +302 -0
  52. data/data/plates/au-vic.yml +215 -0
  53. data/data/plates/au-wa.yml +309 -0
  54. data/data/plates/be.yml +1840 -0
  55. data/data/plates/br.yml +1152 -0
  56. data/data/plates/ca-ab.yml +430 -0
  57. data/data/plates/ca-bc.yml +697 -0
  58. data/data/plates/ca-mb.yml +499 -0
  59. data/data/plates/ca-nb.yml +537 -0
  60. data/data/plates/ca-nl.yml +743 -0
  61. data/data/plates/ca-ns.yml +808 -0
  62. data/data/plates/ca-nt.yml +610 -0
  63. data/data/plates/ca-nu.yml +280 -0
  64. data/data/plates/ca-on.yml +881 -0
  65. data/data/plates/ca-pe.yml +592 -0
  66. data/data/plates/ca-qc.yml +1036 -0
  67. data/data/plates/ca-sk.yml +256 -0
  68. data/data/plates/ca-yt.yml +656 -0
  69. data/data/plates/ch.yml +1273 -0
  70. data/data/plates/cn.yml +1431 -0
  71. data/data/plates/cy.yml +688 -0
  72. data/data/plates/cz.yml +1179 -0
  73. data/data/plates/de.yml +1107 -0
  74. data/data/plates/dk.yml +1647 -0
  75. data/data/plates/ee.yml +1275 -0
  76. data/data/plates/es.yml +888 -0
  77. data/data/plates/fi.yml +1271 -0
  78. data/data/plates/fr.yml +1265 -0
  79. data/data/plates/gb.yml +1188 -0
  80. data/data/plates/gr.yml +721 -0
  81. data/data/plates/hr.yml +860 -0
  82. data/data/plates/hu.yml +959 -0
  83. data/data/plates/ie.yml +775 -0
  84. data/data/plates/in.yml +1172 -0
  85. data/data/plates/is.yml +667 -0
  86. data/data/plates/it.yml +1317 -0
  87. data/data/plates/jp.yml +3650 -0
  88. data/data/plates/kr.yml +1375 -0
  89. data/data/plates/li.yml +1010 -0
  90. data/data/plates/lt.yml +879 -0
  91. data/data/plates/lu.yml +842 -0
  92. data/data/plates/lv.yml +924 -0
  93. data/data/plates/mc.yml +1024 -0
  94. data/data/plates/mt.yml +854 -0
  95. data/data/plates/mx.yml +1372 -0
  96. data/data/plates/my.yml +685 -0
  97. data/data/plates/nl.yml +1016 -0
  98. data/data/plates/no.yml +1018 -0
  99. data/data/plates/nz.yml +1699 -0
  100. data/data/plates/pl.yml +1296 -0
  101. data/data/plates/pt.yml +847 -0
  102. data/data/plates/ro.yml +785 -0
  103. data/data/plates/se.yml +1091 -0
  104. data/data/plates/si.yml +1105 -0
  105. data/data/plates/sk.yml +1439 -0
  106. data/data/plates/sm.yml +1119 -0
  107. data/data/plates/th.yml +1150 -0
  108. data/data/plates/ua.yml +1672 -0
  109. data/data/plates/us-ak.yml +763 -0
  110. data/data/plates/us-al.yml +457 -0
  111. data/data/plates/us-ar.yml +427 -0
  112. data/data/plates/us-as.yml +454 -0
  113. data/data/plates/us-az.yml +430 -0
  114. data/data/plates/us-ca.yml +892 -0
  115. data/data/plates/us-co.yml +452 -0
  116. data/data/plates/us-ct.yml +427 -0
  117. data/data/plates/us-dc.yml +614 -0
  118. data/data/plates/us-de.yml +551 -0
  119. data/data/plates/us-fl.yml +741 -0
  120. data/data/plates/us-ga.yml +644 -0
  121. data/data/plates/us-gu.yml +658 -0
  122. data/data/plates/us-hi.yml +585 -0
  123. data/data/plates/us-ia.yml +438 -0
  124. data/data/plates/us-id.yml +531 -0
  125. data/data/plates/us-il.yml +516 -0
  126. data/data/plates/us-in.yml +324 -0
  127. data/data/plates/us-ks.yml +351 -0
  128. data/data/plates/us-ky.yml +770 -0
  129. data/data/plates/us-la.yml +568 -0
  130. data/data/plates/us-ma.yml +379 -0
  131. data/data/plates/us-md.yml +536 -0
  132. data/data/plates/us-me.yml +445 -0
  133. data/data/plates/us-mi.yml +408 -0
  134. data/data/plates/us-mn.yml +411 -0
  135. data/data/plates/us-mo.yml +356 -0
  136. data/data/plates/us-mp.yml +402 -0
  137. data/data/plates/us-ms.yml +432 -0
  138. data/data/plates/us-mt.yml +619 -0
  139. data/data/plates/us-nc.yml +602 -0
  140. data/data/plates/us-nd.yml +419 -0
  141. data/data/plates/us-ne.yml +483 -0
  142. data/data/plates/us-nh.yml +394 -0
  143. data/data/plates/us-nj.yml +547 -0
  144. data/data/plates/us-nm.yml +574 -0
  145. data/data/plates/us-nv.yml +655 -0
  146. data/data/plates/us-ny.yml +592 -0
  147. data/data/plates/us-oh.yml +404 -0
  148. data/data/plates/us-ok.yml +513 -0
  149. data/data/plates/us-or.yml +392 -0
  150. data/data/plates/us-pa.yml +506 -0
  151. data/data/plates/us-pr.yml +507 -0
  152. data/data/plates/us-ri.yml +445 -0
  153. data/data/plates/us-sc.yml +605 -0
  154. data/data/plates/us-sd.yml +428 -0
  155. data/data/plates/us-tn.yml +471 -0
  156. data/data/plates/us-tx.yml +535 -0
  157. data/data/plates/us-ut.yml +384 -0
  158. data/data/plates/us-va.yml +567 -0
  159. data/data/plates/us-vi.yml +489 -0
  160. data/data/plates/us-vt.yml +458 -0
  161. data/data/plates/us-wa.yml +484 -0
  162. data/data/plates/us-wi.yml +509 -0
  163. data/data/plates/us-wv.yml +446 -0
  164. data/data/plates/us-wy.yml +523 -0
  165. data/data/plates/va.yml +604 -0
  166. data/data/plates/za.yml +1141 -0
  167. data/data/vehicles.json +160653 -105090
  168. data/lib/vehicles/configuration.rb +18 -2
  169. data/lib/vehicles/dataset.rb +73 -18
  170. data/lib/vehicles/fuzzy.rb +115 -0
  171. data/lib/vehicles/http.rb +48 -0
  172. data/lib/vehicles/make.rb +36 -6
  173. data/lib/vehicles/mcp_server.rb +5 -5
  174. data/lib/vehicles/model.rb +42 -6
  175. data/lib/vehicles/plates/jurisdiction.rb +32 -0
  176. data/lib/vehicles/plates/series.rb +291 -0
  177. data/lib/vehicles/plates/template_fill.rb +188 -0
  178. data/lib/vehicles/plates/templates.rb +162 -0
  179. data/lib/vehicles/plates.rb +122 -0
  180. data/lib/vehicles/providers/hosted_provider.rb +49 -58
  181. data/lib/vehicles/providers/local_provider.rb +4 -3
  182. data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
  183. data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
  184. data/lib/vehicles/version.rb +1 -1
  185. data/lib/vehicles.rb +53 -16
  186. data/rakelib/data_refresh.rake +109 -0
  187. data/rakelib/plates_refresh.rake +29 -0
  188. data/sig/vehicles.rbs +18 -0
  189. metadata +174 -2
@@ -0,0 +1,1188 @@
1
+ # plates/gb.yml — United Kingdom (PRD-PLATES gate L1).
2
+ #
3
+ # EVERY layout, colour, character-metric and class claim here comes from the
4
+ # Road Vehicles (Display of Registration Marks) Regulations 2001 (S.I. 2001
5
+ # No. 561, ROAD TRAFFIC), made 26 February 2001, laid before Parliament
6
+ # 28 February 2001, in force 21 March 2001 for regulations 1(1)(a) and 17 and
7
+ # 1 September 2001 for all other purposes, as revised on legislation.gov.uk
8
+ # ("Latest available (revised); there are currently no known outstanding
9
+ # effects"), together with its enabling Act (Vehicle Excise and Registration
10
+ # Act 1994 c. 22, ss. 23(3), (4) and 57) and the DVLA leaflet INF104 (4/22).
11
+ # Trailer claims come from the Trailer Registration Regulations 2018
12
+ # (S.I. 2018 No. 1203) and DVLA INF291 (2/26).
13
+ #
14
+ # FIVE STRUCTURAL FACTS THAT SHAPE THIS FILE
15
+ #
16
+ # 1. THE COMPOSITION OF A BRITISH REGISTRATION MARK IS NOT IN ANY REGULATION.
17
+ # VERA 1994 § 23(1), verbatim: "Where the Secretary of State registers a
18
+ # vehicle under section 21(1) he shall assign to the vehicle a mark (a
19
+ # 'registration mark') indicating the registered number of the vehicle."
20
+ # The regulation-making power in § 23(4) reaches only "(a) the size, shape
21
+ # and character of registration marks to be fixed on any vehicle, and
22
+ # (b) the manner in which registration marks are to be displayed and
23
+ # rendered easily distinguishable". WHICH letters and digits a mark is made
24
+ # of — the memory tag, the age identifier, the random triple — is therefore
25
+ # an ADMINISTRATIVE allocation by the Secretary of State, published by DVLA
26
+ # in INF104 and nowhere in law. This is the German pattern exactly (§ 9
27
+ # Abs. 3 FZV delegates the district codes to the Bundesanzeiger), arriving
28
+ # in Britain by a different route.
29
+ # What the law DOES fix, and fixes completely, is the set of NINE permitted
30
+ # LAYOUTS in Schedule 3 Table A. Table A is small, closed, primary and
31
+ # directly regex-able: it is the single best statutory format source
32
+ # secured for any jurisdiction in this programme, and every `format.regex`
33
+ # in this file is anchored on one of its nine rows.
34
+ #
35
+ # 2. THE PLATE HAS NO PRESCRIBED SIZE — SO NO SERIES HERE CARRIES ONE.
36
+ # Regulation 14 and Schedule 3 Table B prescribe character height, character
37
+ # width, stroke width, inter-character spacing, inter-group spacing and
38
+ # MINIMUM margins, in millimetres. They never prescribe a plate width or a
39
+ # plate height, and neither does Schedule 2. The 520 x 111 mm oblong every
40
+ # British motorist can draw from memory is a BRITISH STANDARD dimension
41
+ # (BS AU 145e), and BS AU 145e is a copyrighted, paywalled BSI publication
42
+ # which PRD-PLATES § 6 permits us to build to and forbids us to reproduce.
43
+ # Consequently `design.plate` is ABSENT from every series in this file and
44
+ # its absence is a sourced finding, not an omission. `design.characters`
45
+ # carries the metrics the Regulations do give.
46
+ #
47
+ # 3. FRONT AND REAR DIFFER, AND BRITAIN IS THE SCHEMA'S REFERENCE CASE FOR IT.
48
+ # Schedule 2 Part A1, verbatim: "2. Where the registration mark is displayed
49
+ # on the front of the vehicle, it must have black characters on a white
50
+ # background." / "3. Where the registration mark is displayed on the back of
51
+ # a vehicle, it must have black characters on a yellow background." The
52
+ # identical pair appears in Part 1 (1.9.2001-31.8.2021, BS AU 145d) and in
53
+ # Part 2 (optional specification for 1.1.1973-31.8.2001 vehicles, BS AU
54
+ # 145a). `rear_differs: true` therefore appears on every road series here.
55
+ #
56
+ # 4. PERIOD CLAIMS ARE INSTRUMENT-DATED, AND THE ONE FOLKLORE YEAR IS NAMED.
57
+ # The current format's start is PRIMARY twice over: INF104 § 03 — "The
58
+ # current vehicle registration format was introduced on 1 September 2001" —
59
+ # and S.I. 2001/561 reg. 1(1)(b), which brings the Regulations into force
60
+ # "for all other purposes, on 1st September 2001". The PREFIX system's start
61
+ # is not. It is recorded here as 1984, the year of The Road Vehicles
62
+ # (Registration and Licensing) (Amendment) Regulations 1984 (S.I. 1984/814),
63
+ # which S.I. 2001/561's own marginal citation M2 identifies as one of the
64
+ # "relevant amendments" to regulations 17 to 22 of the 1971 Regulations (the
65
+ # revoked format-and-display provisions) — an instrument date, carrying
66
+ # `period_evidence: instrument-in-force`, and stated in terms in that
67
+ # series' notes. S.I. 1984/814 is available on legislation.gov.uk ONLY as a
68
+ # scanned PDF with no text layer; it was fetched and could not be read. The
69
+ # universally repeated "August 1983" A-prefix start is NOT asserted here:
70
+ # no primary for it was secured, and it is logged as folklore in the
71
+ # jurisdiction dossier.
72
+ #
73
+ # 5. NORTHERN IRELAND LIVES INSIDE THIS FILE, NOT BESIDE IT. ISO 3166-1 gives
74
+ # the United Kingdom one code; Northern Ireland has no ISO 3166-1 code of
75
+ # its own, and — decisive for us — the Northern Irish mark shapes are
76
+ # prescribed BY THE UK-WIDE INSTRUMENT: Schedule 3 Table A rows 8 and 9 are
77
+ # each qualified "being a form of mark issued only in Northern Ireland".
78
+ # So NI is modelled as its own SERIES in this file rather than as a separate
79
+ # jurisdiction file, which is also what the id contract wants (a UK consumer
80
+ # asking "is this a British mark?" must get one answer from one file). Two
81
+ # further NI facts carry real consequences and are recorded on those series:
82
+ # reg. 16(8)(b) forbids the national flag and identifier letters on a
83
+ # vehicle "recorded in the part of the register relating to Northern
84
+ # Ireland", and reg. 2(1)'s "relevant date" is 1st January 1948 in Northern
85
+ # Ireland against 1st October 1938 in Great Britain.
86
+ #
87
+ # REGEX POLICY (identical to plates/de.yml and plates/nl.yml): `format.regex`
88
+ # is the LINT-ROUND-TRIPPABLE regex — the lint generates serials from
89
+ # `format.pattern` (L -> any A-Z, 9 -> any 0-9) and requires the regex to
90
+ # accept all of them, so `regex` can never be narrower than the pattern's
91
+ # alphabet. `format.regex_strict` carries the tighter, sourced form — here the
92
+ # DVLA memory-tag alphabet and the age-identifier value set from INF104, which
93
+ # `regex` cannot carry because the lint generates "I", "Q" and "00".
94
+ #
95
+ # SEPARATOR NOTE (PRD-PLATES § 2.6): a British mark prints NO separator glyph.
96
+ # What Table B line 5 prescribes is a GAP in millimetres — 33 mm between the
97
+ # age identifier and the random letters on a current-style plate. The space in
98
+ # every `pattern` here is the conventional textual rendering of that gap (and
99
+ # is how INF104, HMRC and the Regulations themselves write the examples:
100
+ # "DE51 ABC", "A123 ABC", "XA51 ABC", "A123 4567"); every regex accepts it as
101
+ # optional, exactly as plates/de.yml does for the Plaketten gap.
102
+ jurisdiction: gb
103
+ authority:
104
+ name: Driver and Vehicle Licensing Agency (DVLA), for the Secretary of State for Transport
105
+ url: "https://www.gov.uk/government/organisations/driver-and-vehicle-licensing-agency"
106
+ binding: vehicle
107
+ binding_note: >-
108
+ INF104 § 01, verbatim: "The registration number is given to the vehicle, not
109
+ the registered keeper. It will stay with the vehicle (until the vehicle is
110
+ broken up, destroyed or exported permanently out of the country) unless the
111
+ registered keeper applies to take it off and put it on another vehicle or on
112
+ to a retention certificate (V778)." Note the ownership twist § 01 opens with,
113
+ which no other jurisdiction in this dataset states so bluntly: "Vehicle
114
+ registration numbers ... are owned by the Secretary of State."
115
+ instrument:
116
+ citation: "The Road Vehicles (Display of Registration Marks) Regulations 2001, S.I. 2001 No. 561 (ROAD TRAFFIC), made under the Vehicle Excise and Registration Act 1994 (c. 22), ss. 23(3), (4) and 57"
117
+ made: "2001-02-26"
118
+ laid_before_parliament: "2001-02-28"
119
+ in_force_partial: "2001-03-21" # regs 1(1)(a) and 17 only
120
+ in_force_general: "2001-09-01" # all other purposes
121
+ revision_status: "Latest available (revised) on legislation.gov.uk; there are currently no known outstanding effects"
122
+ revokes: "Road Vehicles (Registration and Licensing) Regulations 1971 (S.I. 1971/450) regs 17-22 and Schs 2-3; Road Vehicles (Registration and Licensing) Regulations (Northern Ireland) 1973 (S.R. & O. (N.I.) 1973 No. 490) regs 18-23 and Schs 2-3; S.I. 1972/1865 reg 6; S.I. 1975/1089; S.I. 1976/2180 reg 2(6),(8),(9); S.I. 1984/814 (whole instrument)"
123
+ amended_by:
124
+ - "S.I. 2001/1079 (reg 14(11) wording, 1.9.2001)"
125
+ - "S.I. 2002/2687 (reg 11(1A) design/pattern/texture ban; reg 14A imported-vehicle sizes, 22.11.2002)"
126
+ - "S.I. 2009/811 (reg 16 substituted — flags, identifiers, 27.4.2009)"
127
+ - "S.I. 2018/1295 (EU Exit definitions, 28.12.2018 / 31.12.2020)"
128
+ - "S.I. 2020/1276 (reg 16(4A)-(4D), (11) — green plates for zero-emission vehicles, 8.12.2020)"
129
+ - "S.I. 2020/1363 (Sch 2 Part A1 / BS AU 145e; reg 10(1A),(4A); reg 17A; reg 18(a) 'constructed on or before 1st January 1980', 1.1.2021)"
130
+ - "S.I. 2021/831 (reg 10(2) wording, 27.8.2021)"
131
+ - "S.I. 2025/82 (assimilated-law wording, 27.2.2025)"
132
+ source: "https://www.legislation.gov.uk/uksi/2001/561 # front matter (Made / Laid / Coming into force), reg 1(1)(a)-(b), Sch 1 revocations, and every F-note amendment listed above"
133
+ licence: "legislation.gov.uk: 'All content is available under the Open Government Licence v3.0 except where otherwise stated.' DVLA leaflets (INF104, INF291) are Crown copyright under OGL v3.0."
134
+
135
+ # ---------------------------------------------------------------------------
136
+ # Jurisdiction-wide facts, cited once and referenced per series.
137
+ # ---------------------------------------------------------------------------
138
+ common:
139
+ layouts:
140
+ note: >-
141
+ Schedule 3 Part 1 (Table A) — "PERMITTED LAYOUTS FOR REGISTRATION MARKS",
142
+ column (1) verbatim. This is the closed, statutory list of mark SHAPES a
143
+ British plate may display. Reg 13(1): "a registration mark of a
144
+ description specified in column (1) of Table A must be laid out on the
145
+ registration plate in conformity with one of the diagrams specified in
146
+ relation to that description in column (2)".
147
+ rows:
148
+ - "1. A group consisting of two letters and two numbers followed by a group of 3 letters (for example DE51 ABC)."
149
+ - "2. A group consisting of a single letter and not more than 3 numbers followed by a group of 3 letters (for example A123 ABC)."
150
+ - "3. A group of 3 letters followed by a group consisting of not more than 3 numbers and a single letter (for example ABC 123A)."
151
+ - "4. A group of 4 numbers followed by a single letter or a group of 2 letters (for example 1234 AB, 1234 A)."
152
+ - "5. A group of not more than 3 numbers followed by a group of not more than 3 letters (for example 123 ABC, 123 AB, 12 A)."
153
+ - "6. A group of not more than 3 letters followed by a group of not more than 3 numbers (for example ABC 123, AB 123, A 12)."
154
+ - "7. A single letter or group of 2 letters followed by a group of 4 numbers (for example AB 1234, A 1234)."
155
+ - "8. A group of 3 letters followed by a group of 4 numbers (for example ABZ 1234, being a form of mark issued only in Northern Ireland)."
156
+ - "9. A group of 4 numbers followed by a group of 3 letters (for example 1234 ABZ, being a form of mark issued only in Northern Ireland)."
157
+ line_rules: >-
158
+ Reg 13(2): "A mark displayed on a motor cycle may not be laid out in
159
+ conformity with diagram 1a, 2a, 3a, 4a, 5a, 6a, 7a, 8a or 9a" — the "a"
160
+ diagrams are the single-line ones, so a motorcycle mark is ALWAYS
161
+ two-line. Reg 13(3): diagrams 2c, 3c, 4b and 7b (the three-line and
162
+ other legacy arrangements) may not be used on a plate fixed to a vehicle
163
+ first registered on or after 1.9.2001, nor on a replacement plate fitted
164
+ on or after that date, "except where the vehicle was first registered
165
+ before 1st January 1973". The DIAGRAMS THEMSELVES are line drawings in
166
+ Schedule 3 Part 2 and are not reproduced here (PRD-PLATES § 6: cite,
167
+ never embed) — but note they are Crown-copyright material published
168
+ inside a statutory instrument under OGL v3.0, not a paywalled standard.
169
+ source: "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Part 1 Table A rows 1-9 verbatim; Part 2 diagram list; Part 3 Table B"
170
+ colours:
171
+ standard: >-
172
+ Schedule 2 Part A1 paras 2-3 (vehicles first registered, and new plates
173
+ fitted, on or after 1.9.2021), verbatim: "Where the registration mark is
174
+ displayed on the front of the vehicle, it must have black characters on a
175
+ white background." / "Where the registration mark is displayed on the
176
+ back of a vehicle, it must have black characters on a yellow background."
177
+ Schedule 2 Part 1 paras 2-3 say the same for 1.9.2001-31.8.2021, and
178
+ Part 2 paras 2-3 for the optional 1.1.1973-31.8.2001 specification.
179
+ hex_basis_note: >-
180
+ The Regulations NAME the colours and never number them. The chromaticity
181
+ coordinates live in BS AU 145d/145e, which are copyrighted BSI documents
182
+ (Sch 2 Part 1 marginal citation M5 even gives the ISBN and tells the
183
+ reader to buy a copy). Under PRD-PLATES § 6 we build to them and never
184
+ reproduce them, so every hex in this file is `hex_basis: observed` inside
185
+ a statutorily named colour — the same posture plates/de.yml takes for
186
+ "grünes Kennzeichen" and "rotes Kennzeichen".
187
+ source: "https://www.legislation.gov.uk/uksi/2001/561/schedule/2 # Sch 2 Parts A1, 1, 2 and 3"
188
+ standards:
189
+ current: "BS AU 145e — 'the British Standard specification for retroreflecting number plates published on 28th February 2018 under number BS AU 145e' (Sch 2 Part A1 para 1(a)); mandatory for vehicles first registered on or after 1.9.2021 (reg 10(1A)) and for ANY replacement plate fitted on or after 1.9.2021 (reg 10(4A))"
190
+ previous: "BS AU 145d — 'published on 15 January 1998' (Sch 2 Part 1 para 1(a), marginal citation M5: British Standards Institution, 389 Chiswick High Road, London W4 4AL, ISBN 0 580 28985 0); mandatory 1.9.2001-31.8.2021"
191
+ older: "BS AU 145a (published 11 September 1972, Sch 2 Part 2 para 1(a)) and BS AU 145 (published 31 October 1967, Sch 2 Part 3 B.1)"
192
+ equivalence: "each Part also admits 'any other relevant standard or specification recognised for use in an EEA State and which, when in use, offers a performance equivalent'"
193
+ markings: >-
194
+ Sch 2 Part A1 paras 5-7: each plate must display BELOW the mark the
195
+ standard's number, the name of the supplier or manufacturer of the parts,
196
+ and the name and postcode of the supplying outlet; those markings must be
197
+ permanently marked, NON-retroreflecting, of a single shade, 3-10 mm high,
198
+ and at least 7 mm below the mark. Para 8 permits a border that is
199
+ permanent, non-retroreflecting, single-shade, at least 10 mm clear of any
200
+ character, not above the other markings, and no more than 5 mm wide.
201
+ ip_note: "BS AU 145e is paywalled BSI copyright. PRD-PLATES § 6 applies: cite, build to, never redistribute. No dimension in this file is taken from it."
202
+ source: "https://www.legislation.gov.uk/uksi/2001/561/schedule/2 # Sch 2 Part A1 paras 1, 5-8; Part 1 para 1 + M5; Part 2 para 1 + M6; Part 3 B.1 + M7"
203
+ characters:
204
+ current_style:
205
+ height_mm: 79
206
+ width_mm: 50
207
+ stroke_mm: 14
208
+ space_within_group_mm: 11
209
+ space_between_groups_mm: 33
210
+ vertical_space_between_groups_mm: 19
211
+ min_margin_mm: 11
212
+ pre_2001_style:
213
+ height_mm: 89
214
+ width_mm: 64
215
+ stroke_mm: 16
216
+ space_within_group_mm: 13
217
+ space_between_groups_mm: 38
218
+ vertical_space_between_groups_mm: 19
219
+ min_margin_mm: 13
220
+ reduced_style:
221
+ height_mm: 64
222
+ width_mm: 44
223
+ stroke_mm: 10
224
+ space_within_group_mm: 10
225
+ space_between_groups_mm: 30
226
+ vertical_space_between_groups_mm: 13
227
+ min_margin_mm: 11
228
+ applies_to: "motor cycle, motor tricycle, quadricycle, agricultural machine, works truck, road roller (reg 14(3)); also every vehicle within reg 14A"
229
+ letter_i_and_figure_1: "excepted from the width rule throughout (reg 14(4)); Table B lines 8-9 give the 13-37 / 11-33 mm and 13-60 / 11-54 mm spacing ranges permitted on pressed or embossed plates fixed before 1.9.2001 and on 'classic' plates"
230
+ tolerance: "reg 12(2): character height may be +/- 1 mm; any other dimension +/- 0.5 mm"
231
+ dossier_correction: >-
232
+ THE SOURCE APPENDIX IS WRONG ON ONE NUMBER AND THIS FILE CORRECTS IT.
233
+ aux/research/plates-2026-07/plates-research-eu-intl.md § 2.6 tabulates
234
+ "Character width (except 1 / I) ... Current style: 57". It is 50 mm.
235
+ Table B line 1 ("Character width (all new registration plates from 1.9.01
236
+ except replacement of 'classic' plates)") gives 50 mm at 79 mm height and
237
+ 44 mm at 64 mm height; 57 mm is Table B LINE 2 — the width for "other
238
+ registration plates", i.e. the pre-1.9.2001 and classic-replacement case.
239
+ INF104 § 07 agrees with the Regulations: "characters (except the number 1
240
+ or letter I) must be 50mm wide".
241
+ source: "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Part 3 Table B lines 1-9, columns (2) 89 mm / (3) 79 mm / (4) 64 mm"
242
+ source_secondary: "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 (4/22) § 07, character dimensions and the Group 1 / Group 2 table"
243
+ font:
244
+ name: "the prescribed font (statutory drawing — no named typeface)"
245
+ statutory_basis: >-
246
+ Reg 2(1), verbatim: "'prescribed font' means the style shown in Schedule 4
247
+ for a character of the height specified in that Schedule." Schedule 4 has
248
+ two Parts — "FONT DESCRIBED FOR CHARACTERS 79 MILIMETRES IN HEIGHT" and
249
+ "FONT PRESCRIBED FOR CHARACTERS 64 MILIMETRES IN HEIGHT" (the
250
+ Regulations' own spelling of "millimetres") — and each Part is a DRAWING.
251
+ Reg 15(1) makes the prescribed font mandatory on any plate fixed to a
252
+ vehicle first registered on or after 1.9.2001 and on any replacement
253
+ plate fitted on or after that date (except for pre-1.1.1973 vehicles);
254
+ reg 15(2) allows older plates a style "substantially similar", and
255
+ reg 15(4) lists the six disqualifying formations: italic script, any
256
+ non-vertical font, a font whose stroke curvature or alignment is
257
+ substantially different, multiple strokes, broken strokes, and any
258
+ formation making one character look like another. Reg 15(3): serifs are
259
+ neither required nor disqualifying.
260
+ licence: >-
261
+ NO LICENSABLE FONT IS MANDATED — the same structural finding as Germany
262
+ and Spain. The legal object is the Schedule 4 drawing, published inside a
263
+ statutory instrument and available under the Open Government Licence
264
+ v3.0, so the render layer derives glyphs FROM THE STATUTORY DRAWING and
265
+ never from a third-party "UK number plate" TTF whose own licence is
266
+ unstated. "Charles Wright" appears NOWHERE in the Regulations; see the
267
+ folklore note in the dossier.
268
+ source: "https://www.legislation.gov.uk/uksi/2001/561/regulation/15 # reg 15(1)-(4)"
269
+ source_schedule: "https://www.legislation.gov.uk/uksi/2001/561/schedule/4 # Sch 4 Parts 1 and 2 — the two prescribed-font drawings"
270
+ flags_and_identifiers:
271
+ rule: >-
272
+ Reg 16(1): "No material other than a registration mark and material
273
+ complying with the requirements of any of the relevant standards
274
+ mentioned in Schedule 2 may be displayed on a registration plate."
275
+ Reg 16(4) then permits, on a plate or device TO THE LEFT of the
276
+ registration plate (reg 16(5)(a)) and not encroaching into the margin
277
+ (reg 16(5)(b)), one arrangement of letters from reg 16(9) with one
278
+ emblem from reg 16(10) positioned above it (reg 16(6)); neither may
279
+ exceed 50 mm in width (reg 16(7)).
280
+ identifiers: ["United Kingdom", "UNITED KINGDOM", "UK", "Great Britain", "GREAT BRITAIN", "GB", "England", "ENGLAND", "Eng", "ENG", "Scotland", "SCOTLAND", "Sco", "SCO", "Wales", "WALES", "Cymru", "CYMRU", "Cym", "CYM"]
281
+ emblems: ["Union flag", "Cross of Saint George (flag of England)", "Cross of Saint Andrew / the Saltire (flag of Scotland)", "Red Dragon of Wales (flag of Wales)"]
282
+ eu_band_status: >-
283
+ THE EU BAND IS LEGACY-ONLY IN THE UNITED KINGDOM. Reg 16(3) permits the
284
+ letters "GB" on a plate or device "in accordance with the Annex to
285
+ Council Regulation (EC) No. 2411/98" only "provided the plate or other
286
+ device was originally fixed to the vehicle, and complied with the Annex,
287
+ before IP completion day" (words inserted by S.I. 2020/1363). No new
288
+ British plate may carry the EU band, and reg 16(8)(a) makes the flag
289
+ route unavailable to a vehicle that carries the old GB band. The
290
+ international distinguishing sign itself changed from GB to UK on
291
+ 28 September 2021 by depositary notification under the 1968 Convention
292
+ (see the EU/intl dossier § 2.8).
293
+ northern_ireland_exclusion: >-
294
+ Reg 16(8)(b), verbatim: paragraph (4) "does not apply ... if the relevant
295
+ vehicle is recorded in the part of the register relating to Northern
296
+ Ireland." A Northern Irish registration may therefore display NO flag and
297
+ NO identifier letters — a design fact that follows the REGISTER, not the
298
+ mark, and one a renderer must honour.
299
+ source: "https://www.legislation.gov.uk/uksi/2001/561/regulation/16 # reg 16(1)-(11), as substituted by S.I. 2009/811 and amended by S.I. 2020/1276 and S.I. 2020/1363"
300
+ source_secondary: "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 § 08; also the UK-sticker matrix: a vehicle showing the UK identifier with the Union flag needs no separate sticker in the EU 'unless they are travelling to Spain, Malta or Cyprus'"
301
+ age_identifiers:
302
+ rule: >-
303
+ INF104 § 05, complete: a vehicle registered March-August of year YY takes
304
+ the two-digit code YY; a vehicle registered September of YY to February of
305
+ YY+1 takes YY+50. The table runs from "Sept 2001 - Feb 2002 = 51" and
306
+ "March 2002 - Aug 2002 = 02" to "March 2029 - Aug 2029 = 29 / Sept 2029 -
307
+ Feb 2030 = 79", closing with "This pattern will continue until all
308
+ possible variations have been used." HMRC's export-plate table
309
+ (VATNINMT3500) continues the identical rule to "March 2049 - August 2049
310
+ = 49 / Sept 2049 - Feb 2050 = 99", which is the same rule stated by a
311
+ second government source and is why this file treats the value set as
312
+ 02-49 and 51-99 rather than 00-99.
313
+ excluded_values: ["00", "01", "50"]
314
+ excluded_values_note: >-
315
+ DERIVED, NOT QUOTED: 00 and 50 cannot arise from the rule (no year 00 was
316
+ reached before the format existed); 01 would mean March-August 2001, which
317
+ predates the format's 1 September 2001 start, and 51 (September 2001 -
318
+ February 2002) is the first identifier the DVLA table prints. The
319
+ exclusion is encoded only in `regex_strict`, never in `regex`.
320
+ decode_reference: "plates/_decode/gb-age-identifiers.yml"
321
+ source: "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 (4/22) § 05, 'Age identifiers' table, Sept 2001 - Feb 2030"
322
+ source_secondary: "https://www.gov.uk/hmrc-internal-manuals/vat-new-means-transport-northern-ireland/vatninmt3500 # HMRC VATNINMT3500 continues the same age-identifier rule to Sept 2049 - Feb 2050 = 99"
323
+ memory_tags:
324
+ rule: >-
325
+ INF104 § 03: the current mark opens with a "2 letter memory tag (these
326
+ refer to the region in the country where a vehicle is FIRST registered)".
327
+ The first letter is the postal area, the second selects the DVLA office
328
+ within it. INF104 § 05 tabulates every tag; the three closing bullets are
329
+ the charset law: "We will not use I, Q or Z in local memory tags
330
+ identifiers"; "We will still issue existing 'Q' marks"; "We will only use
331
+ Z as a random letter."
332
+ caveat: >-
333
+ A memory tag records WHERE THE VEHICLE WAS FIRST REGISTERED, not where it
334
+ is kept now and not where its keeper lives. Any Geoguessr-style or
335
+ insurance use that reads it as a current-location signal is reading it
336
+ wrong, and a parse API must say so.
337
+ edge_cases:
338
+ - "HW — INF104: '(HW will be used exclusively for Isle of Wight residents)'. The one genuinely sub-regional British tag."
339
+ - "MN and MAN — INF104: '(MN + MAN Reserved for the Isle of Man)'. The Isle of Man is a separate jurisdiction (ISO 3166-1 IM) with its own registration system; DVLA reserves these so no British mark collides with it."
340
+ decode_reference: "plates/_decode/gb-memory-tags.yml"
341
+ source: "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 (4/22) § 05, 'DVLA memory tags and age identifiers', all 19 postal areas and their office tag lists"
342
+
343
+ # ---------------------------------------------------------------------------
344
+ # Classes the United Kingdom HAS but this file deliberately does not model,
345
+ # each with the primary that proves the class exists and the reason no
346
+ # `format` is authored. Inventing a regex for any of these was declined.
347
+ # ---------------------------------------------------------------------------
348
+ classes_not_modelled:
349
+ dealer:
350
+ exists: true
351
+ mechanism: >-
352
+ VERA 1994 § 23(5)(a): the Secretary of State may by regulations "make
353
+ provision for assigning general registration marks to persons holding
354
+ trade licences and (in particular) prescribe the registration marks to be
355
+ carried by vehicles the use of which is authorised by a trade licence".
356
+ Road Vehicles (Registration and Licensing) Regulations 2002 (S.I.
357
+ 2002/2742) reg 39: "On issuing a trade licence the Secretary of State
358
+ shall assign to the holder of the licence a general registration mark in
359
+ respect of that licence." Reg 40(1)-(2): a SET of trade plates is issued
360
+ per licence and "Each trade plate shall show the general registration
361
+ mark assigned to the holder". Reg 40(3)-(4): an extra plate where the
362
+ licence covers motorcycles and other vehicles; only ONE plate where it
363
+ covers motorcycles alone. Reg 42(2): the plates must be displayed so that
364
+ regs 5 and 6 of the 2001 Display Regulations would be satisfied "if the
365
+ general registration mark assigned to the holder were a registration mark
366
+ assigned to the vehicle". Reg 40(5): the plates remain the property of
367
+ the Secretary of State. Sch 6 Part I paras 2-7: no altering, defacing or
368
+ adding to a plate; nothing that could be mistaken for one.
369
+ binding: business
370
+ why_not_modelled: >-
371
+ NEITHER THE FORMAT NOR THE COLOUR OF A GENERAL REGISTRATION MARK IS
372
+ PUBLISHED IN ANY PRIMARY LOCATED IN THIS PASS. S.I. 2002/2742 prescribes
373
+ the issue, the display and the offences and never the appearance;
374
+ S.I. 2001/561 governs marks assigned to VEHICLES; gov.uk's trade-licence
375
+ pages and DVLA form guidance VTL301G cover permitted uses and display
376
+ positions ("put them on both the front and back of the vehicle, or just
377
+ the back for motorcycles"; "visible and easily readable from a distance
378
+ of 20 metres"; "not cover the existing number plates, unless it's a
379
+ motorcycle") and never the mark's shape. The red-on-white trade plate is
380
+ universally described on the enthusiast web; it is NOT asserted here.
381
+ sources:
382
+ - "https://www.legislation.gov.uk/ukpga/1994/22/section/23 # VERA 1994 s 23(5)(a)-(b): general registration marks and trade plates"
383
+ - "https://www.legislation.gov.uk/uksi/2002/2742 # RVRL 2002 regs 39-42 and Sch 6 Part I paras 2-7"
384
+ - "https://www.gov.uk/trade-licence-plates/rules # display positions and the 20-metre legibility rule"
385
+ - "https://assets.publishing.service.gov.uk/media/69c552b0cdfd19de13d0f71f/vtl301g-guidance-notes.pdf # VTL301G guidance notes: permitted uses and display of trade plates; no format or colour"
386
+ diplomatic:
387
+ exists: true
388
+ mechanism: >-
389
+ HMRC Diplomatic Privileges manual DIPPRIV6700 ("Motor vehicles:
390
+ registration"), verbatim: "Diplomatic vehicles may be registered through
391
+ the DVLA on either diplomatic or normal British plates. A special
392
+ registration document will be issued in both cases." The page routes
393
+ applications to the DVLA Specialist Registrations team (Swansea SA99 1DR)
394
+ and the Protocol Directorate at the FCDO.
395
+ why_not_modelled: >-
396
+ A government primary confirms a DIPLOMATIC SERIES EXISTS and none
397
+ publishes its grammar. The mission-code-plus-D-or-X shape everyone
398
+ repeats is not in the Display Regulations at all: Schedule 3 Table A has
399
+ no digits-letter-digits layout, so if the diplomatic series really takes
400
+ that shape it does so outside Table A and the discrepancy itself needs
401
+ explaining before anything is asserted. Recorded as a gap for L2/L4,
402
+ exactly as plates/de.yml records the German mission-number sub-decode.
403
+ sources:
404
+ - "https://www.gov.uk/hmrc-internal-manuals/diplomatic-privileges/dippriv6700 # DIPPRIV6700, updated 20 February 2019: diplomatic or normal British plates, special registration document, DVLA Specialist Registrations + FCDO Protocol Directorate"
405
+ temporary:
406
+ exists: false
407
+ mechanism: >-
408
+ THE UNITED KINGDOM HAS NO TEMPORARY REGISTRATION PLATE. There is no
409
+ British analogue of the German Kurzzeitkennzeichen or the Spanish placa
410
+ verde: a vehicle is either registered (and carries its assigned mark
411
+ permanently) or moved under a trade licence. The two things closest to a
412
+ temporary regime are the trade plate (above) and the tax-free / personal
413
+ export mark (modelled below as gb-export-x, which is a genuine
414
+ registration with an end date rather than a permit). INF104 § 06 mentions
415
+ a "temporary registration certificate (V379)" only as an identity
416
+ document a plate supplier may accept.
417
+ sources:
418
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 § 06 lists V379 among the documents proving entitlement; no temporary plate series appears anywhere in the leaflet"
419
+ moped:
420
+ exists: false
421
+ mechanism: >-
422
+ NO DISTINCT BRITISH MOPED PLATE. The Display Regulations know "motor
423
+ cycle" (reg 2(1): "a vehicle having 2 wheels and includes a vehicle of
424
+ that description in combination with a sidecar"), "motor tricycle" (three
425
+ wheels symmetrically arranged) and "quadricycle" (four wheels, max net
426
+ engine power 15 kW, unladen mass not exceeding 550 kg for a goods vehicle
427
+ or 400 kg otherwise) — and nothing else in that family. A moped carries
428
+ an ordinary mark on a motorcycle plate; see gb-motorcycle-2001.
429
+ sources:
430
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/2 # reg 2(1) definitions of motor cycle, motor tricycle and quadricycle — no moped category"
431
+ military:
432
+ exists: true
433
+ why_not_modelled: >-
434
+ Ministry of Defence vehicles carry MoD-assigned marks that fit no
435
+ Schedule 3 Table A description, and no primary for their grammar was
436
+ located. HMRC VATNINMT3500 touches the edge of it — "For security
437
+ reasons, UK forces personnel are issued with standard index numbers" —
438
+ which tells us forces PERSONNEL get ordinary marks and says nothing about
439
+ service VEHICLES. Recorded as a gap.
440
+ sources:
441
+ - "https://www.gov.uk/hmrc-internal-manuals/vat-new-means-transport-northern-ireland/vatninmt3500 # 'For security reasons, UK forces personnel are issued with standard index numbers'"
442
+ personalised:
443
+ exists: true
444
+ why_not_modelled: >-
445
+ A British personalised mark has NO FORMAT OF ITS OWN — it is an ordinary
446
+ mark from one of the Table A layouts, transferred between vehicles.
447
+ INF104 § 01-02: marks are "owned by the Secretary of State"; a purchaser
448
+ buys "the right to apply to put it on a vehicle registered in your name
449
+ or someone else's name (the nominee)"; the mark stays with the vehicle
450
+ unless taken off onto a retention certificate (V778). The one hard rule
451
+ a parse API must carry: "You can't use a registration number to make your
452
+ vehicle appear younger than it actually is" — so a mark's age identifier
453
+ is an UPPER bound on the vehicle's age, never a lower one, and any
454
+ Table A shape may legally sit on a much newer vehicle.
455
+ sources:
456
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 §§ 01-02 and § 04 (the no-younger rule, the GBP 1,000 fine and MOT failure for misrepresentation)"
457
+
458
+ legacy_layouts_not_modelled: >-
459
+ Table A rows 3 to 7 describe the SUFFIX system (ABC 123A), the four-number
460
+ and dateless arrangements (1234 AB, 123 ABC, ABC 123, AB 1234) that Britain
461
+ issued before 1963 and that survive in enormous numbers on personalised and
462
+ historic vehicles. They are DELIBERATELY not authored as series in this L1
463
+ pass: PRD-PLATES scopes L1 at the current standard series plus ONE series
464
+ back, and no primary dating ANY of them was secured (the suffix system's
465
+ 1963 start and the prefix system's 1983 start are both folklore in this
466
+ pass). Their SHAPES are nevertheless fully sourced in `common.layouts` above
467
+ and are carried in the union regex of gb-historic-blacksilver, so a parse
468
+ API can already recognise them as British without this file inventing a
469
+ period for them. Authoring them is L4 work (PRD-PLATES § 7, "Historical
470
+ depth (the pre-2000 world)").
471
+
472
+ series:
473
+
474
+ # =========================================================================
475
+ # THE CURRENT STANDARD SERIES — 1 September 2001. Table A row 1.
476
+ # =========================================================================
477
+ - id: gb-standard-2001
478
+ class: standard
479
+ categories: [car, van, truck, bus]
480
+ period: { start: 2001 }
481
+ period_evidence: enabling-instrument
482
+ matching: strict
483
+ format:
484
+ pattern: "LL99 LLL"
485
+ regex: '\A[A-Z]{2}\d{2} ?[A-Z]{3}\z'
486
+ regex_strict: '\A[ABCDEFGHKLMNOPRSVWY][ABCDEFGHJKLMNOPRSTUVWXY](?:0[2-9]|[1-4]\d|5[1-9]|[6-9]\d) ?[ABCDEFGHJKLMNOPRSTUVWXYZ]{3}\z'
487
+ structure:
488
+ - "characters 1-2: DVLA memory tag (region of FIRST registration)"
489
+ - "characters 3-4: age identifier (six-month issue period)"
490
+ - "characters 5-7: three letters chosen at random"
491
+ charset:
492
+ memory_tag_first_letter: [A, B, C, D, E, F, G, H, K, L, M, N, O, P, R, S, V, W, Y]
493
+ letters_excluded_from_memory_tag: [I, Q, Z]
494
+ letters_excluded_everywhere: [I, Q]
495
+ notes: >-
496
+ INF104 § 05, the three closing bullets verbatim: "We will not use I, Q
497
+ or Z in local memory tags identifiers" / "We will still issue existing
498
+ 'Q' marks" / "We will only use Z as a random letter." The first-letter
499
+ set above is the CLOSED list of postal-area letters INF104 § 05
500
+ actually tabulates (19 of them — J, T, U and X never appear as a first
501
+ letter either, alongside the excluded I, Q and Z). THE ONE INFERENCE
502
+ IN THIS FILE, flagged as such for the verifier: the three bullets read
503
+ together exclude I and Q from the random triple as well, because Z is
504
+ the only one of the three given an explicit random-letter carve-out.
505
+ INF104 does not say so in terms. `regex_strict` encodes the inference;
506
+ `regex` does not, so a consumer who distrusts it loses nothing.
507
+ progression: >-
508
+ The age identifier advances twice a year, on 1 March and 1 September
509
+ (INF104 § 05). Within a six-month period the random triple advances;
510
+ DVLA does not publish the intra-period allocation order. Because a mark
511
+ may be transferred to any vehicle (INF104 § 02) and may never make a
512
+ vehicle "appear younger than it actually is" (§ 04), the age identifier
513
+ is an UPPER bound on a vehicle's age and never a lower one.
514
+ separator_note: >-
515
+ The gap is a MEASUREMENT, not a glyph: Table B line 5 requires 33 mm of
516
+ horizontal space between the age identifier and the random letters at
517
+ 79 mm character height (38 mm at 89 mm, 30 mm at 64 mm). The space in
518
+ `pattern` renders that gap as INF104 and the Regulations themselves
519
+ write it ("DE51 ABC"); both regexes accept it as optional.
520
+ design:
521
+ plate_note: >-
522
+ NO PLATE DIMENSIONS ARE RECORDED, AND THAT IS THE FINDING: neither
523
+ S.I. 2001/561 nor its Schedules prescribe a plate width or height. Only
524
+ characters, spacings and MINIMUM margins are regulated (reg 14,
525
+ Table B). Plate sizes live in BS AU 145e, which is paywalled BSI
526
+ copyright (PRD-PLATES § 6).
527
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec_note: "Sch 2 Part A1 para 2: black characters on a white background at the FRONT. Retroreflection per BS AU 145e (para 1)." }
528
+ background_rear: { color: "#FFFF00", finish: retroreflective, hex_basis: observed, spec_note: "Sch 2 Part A1 para 3: black characters on a yellow background at the BACK. The statute names 'yellow' and gives no coordinates." }
529
+ foreground: "#000000"
530
+ rear_differs: true
531
+ characters: { height_mm: 79, width_mm: 50, stroke_mm: 14, space_within_group_mm: 11, space_between_groups_mm: 33, min_margin_mm: 11, source_note: "reg 14(1),(4)(a),(5)-(7),(9) with Table B column (3) lines 1, 3, 4, 5, 7" }
532
+ font: { name: "prescribed font (Sch 4 Part 1, 79 mm)", mandatory: true, note: "reg 15(1): mandatory on any plate fixed to a vehicle first registered on or after 1.9.2001" }
533
+ band: { side: left, optional: true, content: "one emblem from reg 16(10) above one identifier from reg 16(9)", max_width_mm: 50, note: "OPTIONAL. There is no mandatory band on a British plate. The EU/GB band is legacy-only: reg 16(3) allows it only where the plate was fixed and compliant before IP completion day." }
534
+ emblem: { present: false, rendered: placeholder, note: "no emblem, seal or coat of arms appears on a British registration plate. The optional flag under reg 16(10) sits on a separate plate or device to the LEFT of the registration plate, not on it (reg 16(1),(5)(a))." }
535
+ display: "front and rear (regs 5 and 6). Rear plate must be lit between sunset and sunrise (reg 9)."
536
+ surface_rules: "reg 11(1): no reflex-reflecting material may be applied to any part of the plate and the characters must not be made retroreflective; reg 11(1A): no design, pattern or texture; reg 11(2)-(3): nothing that impairs a true photographic image, including the fixing screws."
537
+ spec_history:
538
+ - { from: 2001, to: 2021, standard: "BS AU 145d", basis: "Sch 2 Part 1, mandatory under reg 10(2) for vehicles first registered 1.9.2001-31.8.2021" }
539
+ - { from: 2021, standard: "BS AU 145e", basis: "Sch 2 Part A1, mandatory under reg 10(1A) for vehicles first registered on or after 1.9.2021 and under reg 10(4A) for ANY replacement plate fitted on or after that date; reg 17A allowed voluntary early compliance from 1.1.2021" }
540
+ region_encoding: "plates/_decode/gb-memory-tags.yml"
541
+ region_encoding_mechanism: >-
542
+ Characters 1-2 are the memory tag. The FIRST letter is a postal area, the
543
+ SECOND selects the DVLA office inside it, and the pair together names the
544
+ office where the vehicle was FIRST registered — never its current
545
+ location and never the keeper's address. The table is DVLA's, published
546
+ in INF104 § 05 and in no statutory instrument: VERA 1994 § 23(4) does not
547
+ empower regulations over the composition of a mark, only over its size,
548
+ shape, character and display. That is why the decode lives in a _decode
549
+ file citing a leaflet rather than a schedule.
550
+ age_encoding: "characters 3-4; decode via plates/_decode/gb-age-identifiers.yml and common.age_identifiers above"
551
+ sources:
552
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 (4/22) § 03: 'The current vehicle registration format was introduced on 1 September 2001. It consists of: 2 letter memory tag (these refer to the region in the country where a vehicle is first registered); 2 numbers (these tell you when it was issued); a space and 3 letters chosen at random'; § 05 memory tags, age identifiers and the I/Q/Z bullets; § 07 character dimensions"
553
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Table A row 1: 'A group consisting of two letters and two numbers followed by a group of 3 letters (for example DE51 ABC)'; Table B column (3) for the 79 mm metrics"
554
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/2 # Sch 2 Part A1 paras 1-8 (BS AU 145e, white front / yellow rear, supplier markings, border) and Part 1 paras 1-3 (BS AU 145d)"
555
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/15 # reg 15(1): the prescribed font is mandatory from 1.9.2001"
556
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/16 # reg 16: the optional flag/identifier device, its 50 mm cap, and the legacy-only GB band"
557
+ - "https://www.legislation.gov.uk/ukpga/1994/22/section/23 # VERA 1994 s 23(1) (the mark is assigned to the vehicle) and s 23(4) (the regulation-making power reaches size, shape, character and display only)"
558
+ notes: >-
559
+ THE CURRENT BRITISH MARK, and the strongest combined DATE-plus-REGION
560
+ signal in the entire dataset: two characters say where a vehicle was first
561
+ registered and two say when, to within six months, from a table that runs
562
+ to 2050. period.start 2001 is a REAL start, not an instrument date — it is
563
+ stated twice, by INF104 § 03 and by reg 1(1)(b) of the very instrument
564
+ that prescribes the layout, which is why `period_evidence` is
565
+ `enabling-instrument` and not `instrument-in-force`. MODELLING DECISION,
566
+ stated because a verifier will ask: the 1 September 2021 switch from
567
+ BS AU 145d to BS AU 145e is NOT cut as a second series. The MARK did not
568
+ change, the colours did not change and the character metrics did not
569
+ change; what changed is the plate-manufacturing standard and the
570
+ supplier-marking and border rules. Under PRD-PLATES § 2.3 that is a
571
+ specification change inside one design, so it is recorded in
572
+ `design.spec_history` with both instruments cited. Splitting it would
573
+ have created two series with byte-identical regexes and no consumer-
574
+ visible difference.
575
+
576
+ # =========================================================================
577
+ # MOTORCYCLES — same mark, different plate. Its own series because the
578
+ # DESIGN differs on four axes at once (two lines only, rear only, 64 mm
579
+ # characters, 30 mm group gap).
580
+ # =========================================================================
581
+ - id: gb-motorcycle-2001
582
+ class: motorcycle
583
+ categories: [motorcycle, tricycle, quadricycle]
584
+ period: { start: 2001 }
585
+ period_evidence: enabling-instrument
586
+ matching: strict
587
+ format:
588
+ pattern: "LL99 LLL"
589
+ regex: '\A[A-Z]{2}\d{2} ?[A-Z]{3}\z'
590
+ regex_strict: '\A[ABCDEFGHKLMNOPRSVWY][ABCDEFGHJKLMNOPRSTUVWXY](?:0[2-9]|[1-4]\d|5[1-9]|[6-9]\d) ?[ABCDEFGHJKLMNOPRSTUVWXYZ]{3}\z'
591
+ charset: { notes: "identical to gb-standard-2001 — a motorcycle mark is an ordinary mark; only the plate differs" }
592
+ layout_note: >-
593
+ TWO LINES, ALWAYS. Reg 13(2): "A mark displayed on a motor cycle may not
594
+ be laid out in conformity with diagram 1a, 2a, 3a, 4a, 5a, 6a, 7a, 8a or
595
+ 9a" — the single-line diagrams — so the mark is stacked, the memory tag
596
+ and age identifier above and the random triple below, separated by the
597
+ 13 mm vertical space of Table B line 6. INF104 § 07 says the same in
598
+ plain words: "Motorcycle and motor tricycle number plate characters
599
+ (registered on or after 1 January 1973) must be set on 2 lines."
600
+ design:
601
+ plate_note: "no prescribed plate dimensions — see gb-standard-2001 and the header"
602
+ background: { color: "#FFFF00", finish: retroreflective, hex_basis: observed, spec_note: "Sch 2 Part A1 para 3: the mark is displayed on the BACK, so the background is yellow. A post-1.9.2001 motorcycle has no front plate at all, which is why this series' primary background is the yellow one." }
603
+ foreground: "#000000"
604
+ rear_differs: false
605
+ rear_differs_note: "false BECAUSE there is only one plate: reg 6(5)(a) — 'a registration plate must not be fixed on the front of a vehicle if it was first registered on or after 1st September 2001' (motor cycles and motor tricycles without a four-wheeled-type body). Reg 6(5)(b): a pre-1.9.2001 machine MAY carry a front plate but need not."
606
+ characters: { height_mm: 64, width_mm: 44, stroke_mm: 10, space_within_group_mm: 10, space_between_groups_mm: 30, vertical_space_between_groups_mm: 13, min_margin_mm: 11, source_note: "reg 14(3) permits 64 mm on a motor cycle, motor tricycle, quadricycle, agricultural machine, works truck or road roller; Table B column (4) lines 1, 3, 4, 5, 6, 7" }
607
+ font: { name: "prescribed font (Sch 4 Part 2, 64 mm)", mandatory: true, note: "Schedule 4 has a SECOND drawing specifically for 64 mm characters — the reduced set is a distinct statutory font, not a scaled copy of the 79 mm one" }
608
+ band: { side: left, optional: true, max_width_mm: 50 }
609
+ display: "rear only for machines first registered on or after 1.9.2001 (reg 6(5)(a)); rear plate lit between sunset and sunrise (reg 9), with the relevant-area diagonal reduced to 15 metres for 44 mm characters (reg 9(5)(a))"
610
+ region_encoding: "plates/_decode/gb-memory-tags.yml"
611
+ sources:
612
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/6 # reg 6(5)(a)-(b): no front plate on a motor cycle or non-car-bodied motor tricycle first registered on or after 1.9.2001"
613
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/13 # reg 13(2): the nine single-line diagrams are unavailable to a motor cycle"
614
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/14 # reg 14(3): 64 mm characters permitted for motor cycles, motor tricycles, quadricycles, agricultural machines, works trucks and road rollers"
615
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Table B column (4): 44 mm width, 10 mm stroke, 10 mm within group, 30 mm between groups, 13 mm vertical, 11 mm margin"
616
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 § 07 'Motorcycles and tricycles': rear only from 1.9.2001; two lines from 1.1.1973; the quadricycle 15 kW / 400 kg (550 kg goods) threshold"
617
+ notes: >-
618
+ BRITISH MOTORCYCLES CARRY AN ORDINARY MARK ON AN EXTRAORDINARY PLATE.
619
+ A separate series and not a variant because the design differs on four
620
+ axes at once — rear-only, two-line-only, 64 mm characters and a second
621
+ statutory font drawing — which is exactly the PRD-PLATES § 2.3 test.
622
+ Two edge cases INF104 § 07 states and this series carries: a tricycle
623
+ "made from four-wheeled bodies, such as saloon cars" may use EITHER the
624
+ car or the motorcycle requirements, while a tricycle built from a
625
+ motorcycle must use the motorcycle rules; and a quadricycle must display
626
+ FRONT AND REAR plates but may use the reduced 64 mm set if its net engine
627
+ power is 15 kW or less and its unladen weight is 400 kg or less (550 kg
628
+ for a goods vehicle). Mopeds are not a British plate category at all —
629
+ see classes_not_modelled.moped.
630
+
631
+ # =========================================================================
632
+ # ZERO-EMISSION GREEN FLASH — 8 December 2020. The only British plate
633
+ # feature that carries a numbered colour.
634
+ # =========================================================================
635
+ - id: gb-green-zev-2020
636
+ class: electric
637
+ categories: [car, van, truck, bus, motorcycle]
638
+ period: { start: 2020 }
639
+ period_evidence: enabling-instrument
640
+ matching: strict
641
+ format:
642
+ pattern: "LL99 LLL"
643
+ regex: '\A[A-Z]{2}\d{2} ?[A-Z]{3}\z'
644
+ regex_strict: '\A[ABCDEFGHKLMNOPRSVWY][ABCDEFGHJKLMNOPRSTUVWXY](?:0[2-9]|[1-4]\d|5[1-9]|[6-9]\d) ?[ABCDEFGHJKLMNOPRSTUVWXYZ]{3}\z'
645
+ charset: { notes: "identical to gb-standard-2001 — the green flash marks the vehicle, never the mark" }
646
+ format_note: >-
647
+ THE MARK IS UNCHANGED AND THAT IS THE POINT: a British zero-emission
648
+ vehicle is NOT identifiable from its registration string. Contrast the
649
+ German E-Kennzeichen, which appends a literal "E" to the
650
+ Erkennungsnummer and is therefore parseable. Any consumer trying to
651
+ infer powertrain from a British mark will fail, and a parse API must
652
+ say so rather than guess.
653
+ design:
654
+ plate_note: "no prescribed plate dimensions"
655
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
656
+ background_rear: { color: "#FFFF00", finish: retroreflective, hex_basis: observed }
657
+ foreground: "#000000"
658
+ rear_differs: true
659
+ band:
660
+ side: left
661
+ color: "#00B140"
662
+ hex_basis: observed
663
+ spec: "Pantone 7481c"
664
+ width_min_mm: 40
665
+ width_max_mm: 50
666
+ finish: retroreflective
667
+ note: >-
668
+ Reg 16(4B), verbatim: the plate or device "must be— (a) made from
669
+ retroreflective material; (b) colour Pantone 7481c or a colour match
670
+ that is as close as possible to this colour; (c) no less than forty
671
+ millimetres and no more than fifty millimetres in width." A PANTONE
672
+ REFERENCE IS NOT AN RGB VALUE: the hex above is an sRGB approximation
673
+ of Pantone 7481 C and is marked observed accordingly. This is the only
674
+ numbered colour anywhere in British plate law, and it arrived by
675
+ amendment in 2020.
676
+ band_content: "reg 16(4D): the green device may itself carry one reg 16(9) identifier with one reg 16(10) emblem above it, subject to the same 50 mm and margin limits"
677
+ exclusivity: "reg 16(4C): 'No other vehicle may display a plate or other device which is green in colour.'"
678
+ trailer_rule: "reg 16(11)(b): where an eligible vehicle is towing a trailer, the green-device paragraphs may also apply to the plate fixed to that trailer"
679
+ eligibility: >-
680
+ Reg 16(11)(a), verbatim: an "'eligible vehicle' means a vehicle to which
681
+ these regulations apply and which cannot produce any tailpipe emissions."
682
+ Note what this is NOT: it is not a tax class, not a CO2 threshold and not
683
+ a battery-capacity test, so a plug-in hybrid is excluded by construction.
684
+ region_encoding: "plates/_decode/gb-memory-tags.yml"
685
+ sources:
686
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/16 # reg 16(4A)-(4D) and (11), inserted by The Road Vehicles (Display of Registration Marks) (Amendment) Regulations 2020 (S.I. 2020/1276) regs 1, 4, in force 8.12.2020: Pantone 7481c, 40-50 mm, retroreflective, exclusivity, the tailpipe definition and the trailer extension"
687
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 § 09: 'From 8 December 2020 eligible zero emission vehicles (ZEVs) are permitted to display a green flash on the left hand side of the number plate'"
688
+ - "https://www.gov.uk/displaying-number-plates/rules-number-plates # 'display a green flash, if you have a zero-emission vehicle'"
689
+ notes: >-
690
+ THE GREEN FLASH. period.start 2020 is a REAL start with a day attached:
691
+ S.I. 2020/1276 came into force on 8 December 2020 and INF104 § 09 gives
692
+ the same date, so this is `enabling-instrument`, not folklore. Its own
693
+ series rather than a sub-entry of gb-standard-2001 because BOTH the
694
+ period and the design differ (PRD-PLATES § 2.3), and because the class
695
+ vocabulary's `electric` value would otherwise have no British home. The
696
+ flash is OPTIONAL — a zero-emission vehicle without one is entirely
697
+ lawful — so a green flash is evidence of a ZEV and its absence is
698
+ evidence of nothing.
699
+
700
+ # =========================================================================
701
+ # NORTHERN IRELAND — Table A rows 8 and 9, each "issued only in Northern
702
+ # Ireland". Two shapes, therefore two series (one pattern = one series).
703
+ # =========================================================================
704
+ - id: gb-ni-standard
705
+ class: standard
706
+ categories: [car, van, truck, bus, motorcycle]
707
+ period: { start: 2001 }
708
+ period_evidence: instrument-in-force
709
+ matching: strict
710
+ format:
711
+ pattern: "LLL 9999"
712
+ regex: '\A[A-Z]{3} ?\d{4}\z'
713
+ charset:
714
+ notes: >-
715
+ NO STRICT TWIN IS AUTHORED. The Northern Irish letter triple is
716
+ universally described as a district code (the second and third letters,
717
+ always including an I or a Z, naming the council area of issue) plus a
718
+ leading serial letter — and NO PRIMARY FOR THAT TABLE WAS LOCATED in
719
+ this pass. DVLA's INF104 memory-tag table is Great Britain only and
720
+ says nothing about Northern Ireland; nidirect routes registration
721
+ questions to DVLA and publishes no format page. Rather than launder
722
+ the enthusiast tables into a `regex_strict`, this series carries only
723
+ the statutory shape, and the decode is recorded as a gap.
724
+ layout_note: "reg 13(2) applies here too: a Northern Irish motorcycle mark may not use diagram 8a (the single-line one), so it is stacked like any other motorcycle mark"
725
+ design:
726
+ plate_note: "no prescribed plate dimensions"
727
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
728
+ background_rear: { color: "#FFFF00", finish: retroreflective, hex_basis: observed }
729
+ foreground: "#000000"
730
+ rear_differs: true
731
+ characters: { height_mm: 79, width_mm: 50, stroke_mm: 14, space_within_group_mm: 11, space_between_groups_mm: 33, min_margin_mm: 11 }
732
+ font: { name: "prescribed font (Sch 4 Part 1, 79 mm)", mandatory: true }
733
+ band:
734
+ side: none
735
+ note: >-
736
+ NO FLAG AND NO IDENTIFIER LETTERS. Reg 16(8)(b): the flag-and-
737
+ identifier permission in reg 16(4) "does not apply ... if the relevant
738
+ vehicle is recorded in the part of the register relating to Northern
739
+ Ireland." This is the single most visible design difference between a
740
+ Northern Irish plate and a British one, and it keys off the REGISTER
741
+ entry rather than the mark, so it survives the vehicle moving to Great
742
+ Britain. The green zero-emission device of reg 16(4A) is NOT excluded
743
+ by reg 16(8) — reg 16(8) disapplies only paragraph (4) — which is
744
+ worth a verifier's eye.
745
+ display: "front and rear (regs 5 and 6). Reg 2(1) fixes the 'relevant date' — the boundary between the two fixing regimes — at 1st January 1948 in Northern Ireland against 1st October 1938 in Great Britain."
746
+ region_encoding: mechanism-only
747
+ region_encoding_mechanism: >-
748
+ The three-letter group is understood to carry a district identifier in its
749
+ second and third letters, one of which is always I or Z (which is why the
750
+ Regulations' own examples are "ABZ 1234" and "1234 ABZ"). The allocation
751
+ table is NOT published by DVLA on gov.uk and was not located in any
752
+ primary in this pass. Recorded as a gap; no _decode file is authored,
753
+ because an unsourced decode is worse than none.
754
+ sources:
755
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Table A row 8, verbatim: 'A group of 3 letters followed by a group of 4 numbers (for example ABZ 1234, being a form of mark issued only in Northern Ireland).'"
756
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/16 # reg 16(8)(b): no flag or identifier on a vehicle recorded in the Northern Ireland part of the register"
757
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/2 # reg 2(1): 'relevant date' means 1st October 1938 in Great Britain and 1st January 1948 in Northern Ireland"
758
+ - "https://www.gov.uk/hmrc-internal-manuals/vat-new-means-transport-northern-ireland/vatninmt3500 # 'Since 2014 the DVLA (Driver and Vehicle Licensing Agency) has been responsible for Vehicle Excise Duty and licensing of vehicles in Northern Ireland'"
759
+ notes: >-
760
+ THE NORTHERN IRISH STANDARD MARK — three letters and four numbers, and
761
+ the reason a British plate parser cannot be a two-letter-memory-tag
762
+ parser. Modelled inside gb.yml rather than as its own jurisdiction file
763
+ because Northern Ireland has no ISO 3166-1 code and because the shape is
764
+ prescribed by the UK-wide instrument itself. PERIOD CAVEAT, stated
765
+ plainly: 2001 is the date of the instrument that STATES this shape, not
766
+ the date Northern Ireland began issuing it — the Northern Irish system is
767
+ decades older (the 1973 Northern Irish Regulations it replaced are in
768
+ Schedule 1's revocation list), and no primary for its origin was secured.
769
+ Unlike the Great Britain series this one encodes NO DATE AT ALL: a
770
+ Northern Irish mark is dateless, which is exactly why Northern Irish marks
771
+ are prized as personalised marks in Great Britain.
772
+
773
+ - id: gb-ni-reversed
774
+ class: standard
775
+ categories: [car, van, truck, bus, motorcycle]
776
+ period: { start: 2001 }
777
+ period_evidence: instrument-in-force
778
+ matching: strict
779
+ format:
780
+ pattern: "9999 LLL"
781
+ regex: '\A\d{4} ?[A-Z]{3}\z'
782
+ charset: { notes: "as gb-ni-standard: no sourced district table, so no strict twin" }
783
+ design:
784
+ plate_note: "no prescribed plate dimensions"
785
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
786
+ background_rear: { color: "#FFFF00", finish: retroreflective, hex_basis: observed }
787
+ foreground: "#000000"
788
+ rear_differs: true
789
+ band: { side: none, note: "reg 16(8)(b) as for gb-ni-standard" }
790
+ region_encoding: mechanism-only
791
+ sources:
792
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Table A row 9, verbatim: 'A group of 4 numbers followed by a group of 3 letters (for example 1234 ABZ, being a form of mark issued only in Northern Ireland).'"
793
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/16 # reg 16(8)(b)"
794
+ notes: >-
795
+ THE REVERSED NORTHERN IRISH SHAPE. A separate series from gb-ni-standard
796
+ because a series is one PATTERN — the parse API must be able to score
797
+ "1234 ABZ" and "ABZ 1234" independently, exactly as plates/nl.yml scores
798
+ the three alternating 1951 GV shapes separately. Table A row 9 is the
799
+ only primary secured for it, so like row 8 it carries an instrument date
800
+ and no district decode.
801
+
802
+ # =========================================================================
803
+ # THE PREVIOUS STANDARD FORMAT — the PREFIX system. Table A row 2. This is
804
+ # the "one series back" PRD-PLATES L1 requires, and the one period claim in
805
+ # this file that is NOT firmly dated at its start.
806
+ # =========================================================================
807
+ - id: gb-prefix-1984
808
+ class: standard
809
+ categories: [car, van, truck, bus, motorcycle]
810
+ period: { start: 1984, end: 2001 }
811
+ period_evidence: instrument-in-force
812
+ matching: strict
813
+ format:
814
+ pattern: "L999 LLL"
815
+ regex: '\A[A-Z]\d{1,3} ?[A-Z]{3}\z'
816
+ structure:
817
+ - "character 1: year prefix letter (changed annually, later twice-yearly)"
818
+ - "characters 2-4: one to three numbers"
819
+ - "final 3 characters: area code letters"
820
+ charset:
821
+ notes: >-
822
+ NO STRICT TWIN IS AUTHORED. The prefix era's letter restrictions (the
823
+ excluded prefix letters, the local-office area-code table) are not in
824
+ INF104, which covers only the current format, and not in the
825
+ Regulations, which prescribe shape and not composition. Table A row 2
826
+ is the whole of the sourced grammar, so `regex` IS the grammar and
827
+ `matching` is `strict`.
828
+ layout_note: "reg 13(3): diagram 2c — one of the three arrangements permitted for this shape — may NOT be used on a plate fixed to a vehicle first registered on or after 1.9.2001, nor on a replacement plate fitted on or after that date unless the vehicle was first registered before 1.1.1973"
829
+ design:
830
+ plate_note: "no prescribed plate dimensions"
831
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed, spec_note: "Sch 2 Part 2 para 2 (the optional specification for vehicles registered 1.1.1973-31.8.2001, BS AU 145a): black characters on a white background at the front" }
832
+ background_rear: { color: "#FFFF00", finish: retroreflective, hex_basis: observed, spec_note: "Sch 2 Part 2 para 3: black characters on a yellow background at the back" }
833
+ foreground: "#000000"
834
+ rear_differs: true
835
+ characters: { height_mm: 89, width_mm: 64, stroke_mm: 16, space_within_group_mm: 13, space_between_groups_mm: 38, vertical_space_between_groups_mm: 19, min_margin_mm: 13, source_note: "reg 14(2) permits 89 mm on a vehicle first registered before 1.9.2001; Table B column (2). A REPLACEMENT plate fitted on or after 1.9.2001 to such a vehicle must drop to 79 mm/50 mm (reg 14(2)(a) and (4)(a)(ii)), so a 1990s car wearing new plates is metrically a modern plate." }
836
+ font: { name: "prescribed font, or a style substantially similar", mandatory: false, note: "reg 15(2): plates outside reg 15(1) may use a style 'substantially similar to the prescribed font'; reg 15(4) still forbids italics, non-vertical fonts, multiple or broken strokes and lookalike formations. A REPLACEMENT plate fitted from 1.9.2001 must use the prescribed font (reg 15(1)(b))." }
837
+ band: { side: left, optional: true, max_width_mm: 50 }
838
+ rear_differs_history: "the yellow rear plate is the 1.1.1973 boundary the Regulations use throughout (Sch 2 Parts 2 and 3, reg 18), not a 2001 innovation"
839
+ region_encoding: mechanism-only
840
+ region_encoding_mechanism: >-
841
+ The final two of the three trailing letters were the LOCAL OFFICE code
842
+ under the pre-2001 system; the first was a serial letter. No primary for
843
+ the office table was located in this pass — INF104 documents only the
844
+ current memory tags — so no decode file is authored and the mechanism is
845
+ recorded instead.
846
+ sources:
847
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Table A row 2, verbatim: 'A group consisting of a single letter and not more than 3 numbers followed by a group of 3 letters (for example A123 ABC).' Table B column (2) for the 89 mm metrics"
848
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/13 # reg 13(3): diagram 2c unavailable to plates fixed from 1.9.2001"
849
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/14 # reg 14(2): 89 mm characters permitted on pre-1.9.2001 vehicles, but not on a replacement plate"
850
+ - "https://www.legislation.gov.uk/uksi/2001/561 # reg 17 marginal citation M2: 'S.I. 1971/450. The Relevant amendments are by S.I. 1972/1865, 1975/1089 and 1984/814' — the instrument trail for the pre-2001 format provisions; Sch 1 revokes S.I. 1984/814 in whole"
851
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 § 03: the current format 'was introduced on 1 September 2001' — which dates the END of prefix issuance to 31 August 2001"
852
+ notes: >-
853
+ THE PREFIX SYSTEM — the format Britain replaced on 1 September 2001, and
854
+ the one series in this file whose START IS NOT PRIMARY-SOURCED. The END is
855
+ firm: INF104 § 03 dates the current format to 1 September 2001, so prefix
856
+ issuance stopped on 31 August 2001. The START is recorded as 1984 on
857
+ INSTRUMENT EVIDENCE ONLY: S.I. 2001/561's own marginal citation M2 names
858
+ The Road Vehicles (Registration and Licensing) (Amendment) Regulations
859
+ 1984 (S.I. 1984/814) as a relevant amendment to regulations 17 to 22 of
860
+ the 1971 Regulations — the format-and-display provisions these Regulations
861
+ revoked — and Schedule 1 revokes it in whole. THE TEXT OF S.I. 1984/814
862
+ COULD NOT BE READ: legislation.gov.uk carries it only as a scanned PDF
863
+ with no text layer ("This item of legislation is only available to
864
+ download and view as PDF"), it was fetched (401 KB) and `pdftotext`
865
+ extracted four bytes. So 1984 is the year of an instrument in the right
866
+ chain, not a quoted commencement, and it is flagged for the verifier. The
867
+ universally repeated "August 1983" A-prefix start is NOT asserted here —
868
+ it is logged as folklore in the dossier. A verifier who pins 1983 from a
869
+ primary should move this start and say so in the PR.
870
+
871
+ # =========================================================================
872
+ # 'Q' MARKS — Table A row 2 with a literal Q. Age unknown by design.
873
+ # =========================================================================
874
+ - id: gb-q
875
+ class: standard
876
+ categories: [car, van, truck, bus, motorcycle]
877
+ period: { start: 2001 }
878
+ period_evidence: instrument-in-force
879
+ matching: strict
880
+ format:
881
+ pattern: "Q999 LLL"
882
+ regex: '\AQ\d{1,3} ?[A-Z]{3}\z'
883
+ charset:
884
+ fixed_letters: "Q"
885
+ notes: >-
886
+ The prefix letter is the literal Q, which is why this series needs no
887
+ strict twin for its first character. INF104 § 05 confirms Q marks are
888
+ live: "We will still issue existing 'Q' marks", set immediately beside
889
+ "We will not use I, Q or Z in local memory tags identifiers" — i.e. Q
890
+ is excluded from the CURRENT format precisely so that it can go on
891
+ meaning this.
892
+ design:
893
+ plate_note: "no prescribed plate dimensions"
894
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
895
+ background_rear: { color: "#FFFF00", finish: retroreflective, hex_basis: observed }
896
+ foreground: "#000000"
897
+ rear_differs: true
898
+ band: { side: left, optional: true, max_width_mm: 50 }
899
+ region_encoding: none
900
+ region_encoding_note: "a Q mark encodes neither region nor date — that is its entire semantic content"
901
+ sources:
902
+ - "https://www.gov.uk/vehicle-registration/q-registration-numbers # 'DVLA issues Q registration numbers to vehicles whose age or identity is in doubt' and 'To get a Q registration number, your vehicle has to pass a type approval process'"
903
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 § 05: 'We will still issue existing Q marks'; 'We will not use I, Q or Z in local memory tags identifiers'"
904
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Table A row 2 supplies the layout a Q mark is displayed in"
905
+ notes: >-
906
+ THE Q MARK — the British answer to "we cannot establish what this vehicle
907
+ is or when it was built": kit cars, rebuilt write-offs, imports without
908
+ provenance. CLASS CAVEAT, and it is a real one: _meta/classes.yml has no
909
+ value for "identity or age indeterminate", so `standard` is recorded as
910
+ the closest fit. It is emphatically NOT `temporary` — a Q mark is a
911
+ permanent registration, and the common belief that Q means "temporary
912
+ import" describes a regime that no longer applies. Flagged as a
913
+ vocabulary gap, in the same terms plates/de.yml flags the green
914
+ tax-exempt plate. period.start is an instrument date: Table A row 2 is the
915
+ only primary secured for the layout, and DVLA publishes no start year for
916
+ the Q series.
917
+
918
+ # =========================================================================
919
+ # EXPORT — the tax-free / personal-export mark. X + month letter + age
920
+ # identifier + random triple. Table A row 1's shape, carrying two dates.
921
+ # =========================================================================
922
+ - id: gb-export-x
923
+ class: export
924
+ categories: [car, van, truck, bus, motorcycle]
925
+ period: { start: 2001 }
926
+ period_evidence: first-age-identifier
927
+ matching: strict
928
+ format:
929
+ pattern: "XL99 LLL"
930
+ regex: '\AX[A-Z]\d{2} ?[A-Z]{3}\z'
931
+ regex_strict: '\AX[A-F](?:0[2-9]|[1-4]\d|5[1-9]|[6-9]\d) ?[A-Z]{3}\z'
932
+ structure:
933
+ - "character 1: literal X, 'Indicates export'"
934
+ - "character 2: month of issue, A-F"
935
+ - "characters 3-4: age identifier, same six-month rule as the standard series"
936
+ - "characters 5-7: 'Random' alpha characters, 'For security reasons'"
937
+ charset:
938
+ fixed_letters: "X"
939
+ month_letters: { A: "March or September", B: "April or October", C: "May or November", D: "June or December", E: "July or January", F: "August or February" }
940
+ notes: >-
941
+ HMRC VATNINMT3500, verbatim: "Vehicles supplied in the UK under the
942
+ new means of transport regime will be registered on export plates with
943
+ the DVLA if they are to be used on the UK's roads prior to removal. A
944
+ special series of index numbers are used in the format below." The
945
+ table gives X = "Indicates export"; the second letter = "Month in
946
+ which mark is issued" with the six values above; the two digits =
947
+ "Age identifier" on the same rule as the ordinary series, tabulated
948
+ from March 2002 = 02 through "Sept 2049 - Feb 2050 = 99"; and the
949
+ trailing three = "Alpha characters ... Random".
950
+ month_letter_note: >-
951
+ THE MONTH LETTER IS AMBIGUOUS BY CONSTRUCTION and a parse API must not
952
+ resolve it alone: A means March OR September, B April OR October, and
953
+ so on. The disambiguation comes from the age identifier beside it —
954
+ March-August takes YY, September-February takes YY+50 — so the PAIR
955
+ resolves to a single month, and neither character does on its own.
956
+ This is the tightest date encoding anywhere in this dataset: a British
957
+ export mark names the month.
958
+ design:
959
+ plate_note: "no prescribed plate dimensions"
960
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
961
+ background_rear: { color: "#FFFF00", finish: retroreflective, hex_basis: observed }
962
+ foreground: "#000000"
963
+ rear_differs: true
964
+ colour_gap_note: >-
965
+ NO PRIMARY PRESCRIBING A DISTINCTIVE COLOUR FOR THIS SERIES WAS LOCATED.
966
+ The colours above are the general rule of Sch 2 Part A1 paras 2-3, which
967
+ applies to any registration plate unless another instrument provides
968
+ otherwise, and HMRC's page says only "export plates" without describing
969
+ them. Enthusiast references describe a red-on-white personal-export
970
+ plate carrying an expiry date; that is NOT asserted here and is recorded
971
+ as a gap.
972
+ band: { side: left, optional: true, max_width_mm: 50 }
973
+ region_encoding: none
974
+ region_encoding_note: "characters 1-2 are export and month, NOT a memory tag — an X-series mark carries no region signal at all, and a consumer decoding 'XA' against the memory-tag table will get a wrong answer (X is not even a valid memory-tag first letter, which is the tell)"
975
+ sources:
976
+ - "https://www.gov.uk/hmrc-internal-manuals/vat-new-means-transport-northern-ireland/vatninmt3500 # HMRC VAT New Means of Transport (Northern Ireland) manual, VATNINMT3500 'The format of the tax-free registration mark': the worked example 'XA51 ABC', the X/month/age/random breakdown, the month-letter table, the age table to Sept 2049 - Feb 2050 = 99, and 'For security reasons, UK forces personnel are issued with standard index numbers'"
977
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Table A row 1 supplies the layout: two letters and two numbers followed by three letters"
978
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 § 05 age-identifier table, against which the '51' in HMRC's own example resolves to September 2001 - February 2002"
979
+ notes: >-
980
+ THE TAX-FREE / PERSONAL EXPORT MARK — Britain's export series, and the
981
+ only British mark that encodes a MONTH. period.start 2001 is derived, not
982
+ quoted, and the derivation is recorded so a verifier can check it in one
983
+ step: HMRC's own worked example is "XA51 ABC", and INF104's age table maps
984
+ 51 to September 2001 - February 2002, which is the first six-month period
985
+ of the current format. Hence `period_evidence: first-age-identifier`. The
986
+ series in its CURRENT shape therefore cannot predate 1 September 2001;
987
+ earlier British export plates existed under the old formats and are not
988
+ modelled. Note the jurisdictional oddity worth keeping: the clearest
989
+ published description of a UK-wide export mark sits in an HMRC manual
990
+ about NORTHERN IRELAND, because the Northern Ireland Protocol made the
991
+ new-means-of-transport regime a Northern Irish VAT question — and the same
992
+ page records that "Since 2014 the DVLA ... has been responsible for
993
+ Vehicle Excise Duty and licensing of vehicles in Northern Ireland."
994
+
995
+ # =========================================================================
996
+ # TRAILERS — a wholly separate statute, a wholly separate mark space, and
997
+ # the only British plate with its own prescribed layout diagram.
998
+ # =========================================================================
999
+ - id: gb-trailer-2018
1000
+ class: trailer
1001
+ categories: [trailer]
1002
+ period: { start: 2018 }
1003
+ period_evidence: enabling-instrument
1004
+ matching: strict
1005
+ format:
1006
+ pattern: "L999 9999"
1007
+ regex: '\A[A-Z]\d{3} ?\d{4}\z'
1008
+ regex_strict: '\A[ABD-Z]\d{3} ?\d{4}\z'
1009
+ charset:
1010
+ letters_excluded: [C]
1011
+ notes: >-
1012
+ Trailer Registration Regulations 2018 reg 15(1), verbatim: the
1013
+ Secretary of State "must as soon as practicable assign a registration
1014
+ mark of one letter followed by seven numbers to the trailer."
1015
+ Schedule 2 para 1(1): "A registration mark must be displayed as a
1016
+ group consisting of one letter and three numbers followed by a group
1017
+ consisting of four numbers (for example A123 4567)". The C exclusion
1018
+ is DVLA's, from INF291: "Please note that a DVLA issued trailer
1019
+ registration number will never start with the letter 'C'." No further
1020
+ letter exclusion is published, so `regex_strict` excludes C and
1021
+ nothing else.
1022
+ layout_note: >-
1023
+ TWO LINES, PRESCRIBED. Schedule 2 para 1(1) prescribes the stacked
1024
+ layout in the regulation itself (one letter and three numbers over four
1025
+ numbers), with 5 mm of vertical space between the groups (para 1(4)) —
1026
+ a tighter stack than any Display Regulations layout. INF291 renders it
1027
+ as "A123 / 4567".
1028
+ design:
1029
+ plate_note: >-
1030
+ INF291: "A trailer registration plate is the same shape as the standard
1031
+ motorcycle plate" — a SHAPE statement, not a dimension, and no width or
1032
+ height is prescribed here either.
1033
+ background: { color: "#FFFFFF", finish: painted, hex_basis: observed, spec_note: "Sch 2 para 2(1), verbatim: 'A registration plate must have solid black characters on a white background.' NOTE WHAT IS MISSING: the trailer regulations do not require retroreflecting material and do not reference BS AU 145 at all. The finish is recorded as painted for that reason and flagged for the verifier." }
1034
+ foreground: "#000000"
1035
+ rear_differs: false
1036
+ rear_differs_note: "there is only one plate, and it is white front-style even though it is displayed at the REAR — the one British plate that breaks the white-front/yellow-rear rule, because it is issued under a different statute"
1037
+ characters: { height_mm: 64, width_mm: 44, width_mm_i_and_1: 10, stroke_mm: 10, space_within_group_mm: 10, vertical_space_between_groups_mm: 5, min_margin_top_and_lateral_mm: 5, min_margin_bottom_mm: 13, source_note: "Sch 2 para 1(3)-(6). Para 1(7) repeats the Display Regulations' measuring conventions and para 1(8) the +/-1 mm / +/-0.5 mm tolerances." }
1038
+ font: { name: "prescribed font (drawing in Sch 2 para 1(2)(a))", mandatory: false, note: "Sch 2 para 1(2): the prescribed font OR 'a style which is substantially similar'; paras 1(9)-(10), inserted by S.I. 2021/1043, carry the same serif tolerance and the same six forbidden formations as reg 15(3)-(4) of the Display Regulations" }
1039
+ band: { side: none, note: "Sch 2 para 2(5): 'No material, other than a registration mark, may be displayed on a registration plate except for information that identifies the manufacturer of the registration plate.' No flag, no identifier, no band. INF291 accordingly instructs that a UK sticker 'must not be displayed on the trailer registration plate'." }
1040
+ surface_rules: "Sch 2 para 2(2)-(3): no design, pattern or texture, and nothing that impairs a true photographic image"
1041
+ display: "Reg 17(1): on the rear, vertically, as far as reasonably practicable from the towing vehicle's own plate, distinguishable from behind in normal daylight. Reg 17(2): if a rear plate is impossible, one on BOTH SIDES."
1042
+ validity:
1043
+ certificate_years: 10
1044
+ note: "INF291: 'Your trailer registration certificate is valid for 10 years.' Registration is compulsory for trailers over 750 kg used in most of Europe and is unavailable to trailers of 750 kg or less and to A-frame trailers."
1045
+ binding: vehicle
1046
+ region_encoding: none
1047
+ sources:
1048
+ - "https://www.legislation.gov.uk/uksi/2018/1203 # The Trailer Registration Regulations 2018, made 20 November 2018 under the Haulage Permits and Trailer Registration Act 2018 (c. 19) ss 13-25 and the Vehicles (Crime) Act 2001 ss 25(1), 41(2)(a); reg 15 in force 21.11.2018 (Sch 1 para 1(j)); reg 15(1) the one-letter-seven-numbers mark; Sch 2 para 1 the layout, font and metrics; Sch 2 para 2 the black-on-white plate; reg 17 fixing"
1049
+ - "https://assets.publishing.service.gov.uk/media/69df60e8a68b527bd9408e8a/trailer-registration-service-guidance-inf291.pdf # DVLA INF291 (2/26): 'The format of the trailer registration number is one letter followed by 7 numbers, which are set out over 2 lines'; 'a DVLA issued trailer registration number will never start with the letter C'; the same plate metrics; the 10-year certificate; the over-750 kg scope and the A-frame exclusion"
1050
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/5 # reg 5(2)(b)-(c): where a vehicle tows a trailer the TOWING VEHICLE's rear mark is displayed on the trailer (or the rearmost trailer) — the ordinary British rule the 2018 scheme sits on top of, not in place of"
1051
+ notes: >-
1052
+ THE BRITISH TRAILER MARK — a genuinely separate registration space under a
1053
+ genuinely separate statute, and the newest British series. Two facts make
1054
+ it structurally unlike every other entry here. FIRST, it does not replace
1055
+ the ordinary rule: reg 5(2) of the Display Regulations still requires the
1056
+ TOWING VEHICLE's mark to be repeated on the rearmost trailer, so a
1057
+ registered trailer travelling abroad carries TWO plates showing TWO
1058
+ DIFFERENT MARKS, and INF291 says exactly that ("It must be displayed as
1059
+ well as the towing vehicle's registration plate and must be fixed as far
1060
+ as reasonably possible from this plate"). SECOND, its purpose is
1061
+ international: the scheme exists to satisfy the 1968 Convention on Road
1062
+ Traffic, which reg 2(1) of the 2018 Regulations defines as "the
1063
+ Convention", and INF291 lists Ireland, Cyprus, Malta and Spain as the
1064
+ European countries that do not require it. period.start 2018 is the
1065
+ commencement of reg 15 (21 November 2018), not the date the public service
1066
+ opened.
1067
+
1068
+ # =========================================================================
1069
+ # HISTORIC — the black-and-silver regime. A DESIGN laid over whatever mark
1070
+ # the vehicle already holds, so RECALL-ONLY (PRD-PLATES § 2.7).
1071
+ # =========================================================================
1072
+ - id: gb-historic-blacksilver
1073
+ class: historic
1074
+ categories: [car, van, truck, bus, motorcycle]
1075
+ period: { start: 2001 }
1076
+ period_evidence: instrument-in-force
1077
+ # RECALL-ONLY: this series has no format of its own. The black-and-silver
1078
+ # plate is a permitted SPECIFICATION for a vehicle old enough to qualify,
1079
+ # and the vehicle keeps whichever mark it already holds — which may be any
1080
+ # of the nine Table A shapes. The regex is therefore the union of all nine,
1081
+ # and a match says only "this string has a shape Britain has issued".
1082
+ matching: recall-only
1083
+ format:
1084
+ pattern: "LLL 999"
1085
+ regex: '\A(?:[A-Z]{2}\d{2} ?[A-Z]{3}|[A-Z]\d{1,3} ?[A-Z]{3}|[A-Z]{3} ?\d{1,3}[A-Z]|\d{4} ?[A-Z]{1,2}|\d{1,3} ?[A-Z]{1,3}|[A-Z]{1,3} ?\d{1,3}|[A-Z]{1,2} ?\d{4}|[A-Z]{3} ?\d{4}|\d{4} ?[A-Z]{3})\z'
1086
+ pattern_note: >-
1087
+ The pattern shown is ONE representative shape (Table A row 6, the
1088
+ dateless letters-then-numbers arrangement most pre-1980 British vehicles
1089
+ wear). The regex is the union of all NINE Table A descriptions, in Table
1090
+ A's own order, because the black-and-silver specification attaches to
1091
+ the VEHICLE's age and not to the mark's shape.
1092
+ design:
1093
+ plate_note: "no prescribed plate dimensions"
1094
+ background: { color: "#000000", finish: painted, hex_basis: observed, spec_note: "Sch 2 Part 3 B.2: 'A plate displaying white, silver or light grey letters and numbers on a black surface'" }
1095
+ foreground: "#FFFFFF"
1096
+ foreground_alternatives: ["white", "silver", "light grey"]
1097
+ foreground_note: >-
1098
+ Sch 2 Part 3 B.2, verbatim: "A plate displaying white, silver or light
1099
+ grey letters and numbers on a black surface having every character
1100
+ indelibly inscribed on the surface or so attached to the surface that it
1101
+ cannot readily be detached from it". THREE colours are permitted for the
1102
+ characters and the statute names them without numbering them, so the hex
1103
+ is the first-named alternative, marked observed. Four constructions are
1104
+ allowed: (a) cast or pressed metal with raised characters, (b) a plate
1105
+ with separate characters attached, (c) a plastic plate with reverse
1106
+ engraved or foil characters, or (d) "an unbroken rectangular area on the
1107
+ surface of the vehicle" where it is flat or almost flat — the last being
1108
+ the only place British law contemplates a mark painted directly onto the
1109
+ bodywork.
1110
+ rear_differs: false
1111
+ rear_differs_note: "black and silver front AND rear — the historic regime is the one British case where the two plates match"
1112
+ illuminated_variant:
1113
+ note: "Sch 2 Part 3 A: where the plate is built so the mark can be illuminated from behind through translucent characters, the mark 'must be formed of white translucent characters on a black background' and must appear white on black when lit during the hours of darkness"
1114
+ font: { name: "prescribed font, or a style substantially similar", mandatory: false, note: "reg 15(1)(b) expressly excepts a vehicle first registered before 1.1.1973 from the prescribed-font requirement even on a replacement plate, so a genuine period style is lawful here and nowhere else" }
1115
+ band: { side: none }
1116
+ characters:
1117
+ height_mm: 79
1118
+ width_mm: 57
1119
+ stroke_mm: 14
1120
+ space_within_group_mm: 11
1121
+ space_between_groups_mm: 33
1122
+ vertical_space_between_groups_mm: 19
1123
+ min_margin_mm: 11
1124
+ note: >-
1125
+ THESE ARE INF104 § 07's "GROUP 2" METRICS — the column headed
1126
+ "Traditional number plates for vehicles manufactured before 1 January
1127
+ 1973" — and they are the ones that belong on a black-and-silver plate.
1128
+ They are Table B COLUMN (3) with LINE 2 for the width: 57 mm, not the
1129
+ 50 mm of line 1, because line 1 is expressly "all new registration
1130
+ plates from 1.9.01 EXCEPT replacement of 'classic' plates". A classic
1131
+ plate is therefore the one modern British plate that keeps the wider
1132
+ 57 mm character. INF104's "Group 1" column (89 / 64 / 16 / 13 / 38 /
1133
+ 13 / 13 / 19) remains available under reg 14(2) to any plate on a
1134
+ vehicle first registered before 1.9.2001 that was itself fitted before
1135
+ that date. Table B lines 8-9 additionally give pressed or embossed
1136
+ plates fixed before 1.9.2001 and "classic" plates their unique "I"/"1"
1137
+ spacing latitude — 13-37 mm and 13-60 mm at 89 mm height, 11-33 mm and
1138
+ 11-54 mm at 79 mm — which exists nowhere else in British plate law and
1139
+ is why period cast plates with widely-spaced 1s are lawful.
1140
+ alternative_group1: { height_mm: 89, width_mm: 64, stroke_mm: 16, space_within_group_mm: 13, space_between_groups_mm: 38, min_margin_mm: 13, basis: "reg 14(2) + Table B column (2); INF104 § 07 'Group 1'" }
1141
+ eligibility:
1142
+ base_rule: "Sch 2 Part 3 applies to a vehicle FIRST REGISTERED before 1st January 1973 (reg 10(5))"
1143
+ extension: >-
1144
+ Reg 18, verbatim: "For the purposes of these Regulations a vehicle which
1145
+ was first registered on or after 1st January 1973 shall be treated as if
1146
+ it was first registered before that date if— (a) it is an exempt vehicle
1147
+ for the purposes of paragraph 1A(1) of Schedule 2 to the Act and was
1148
+ constructed on or before 1st January 1980, or (b) not being such a
1149
+ vehicle, it was constructed before 1st January 1973." The words "and was
1150
+ constructed on or before 1st January 1980" were INSERTED by S.I.
1151
+ 2020/1363 reg 6 with effect from 1 January 2021.
1152
+ source_disagreement: >-
1153
+ RECORDED, NOT AVERAGED (PRD-PLATES § 5.3). INF104 § 07 says: "From April
1154
+ 2020 vehicles manufactured before 1 January 1980 are also able to display
1155
+ traditional 'black and white' number plates. You must: have applied to
1156
+ DVLA; be registered within the 'historic vehicles' tax class." The
1157
+ instrument says "constructed ON OR BEFORE 1st January 1980" and its
1158
+ amendment took effect on 1 January 2021. Both are consistent with the
1159
+ underlying mechanism — reg 18(a) keys off the historic-vehicle tax class
1160
+ in Sch 2 para 1A(1) VERA, which was a ROLLING 40-year exemption, so April
1161
+ 2020 is when the rolling class first reached 1980-built vehicles and
1162
+ January 2021 is when the amendment FROZE the cut-off there — but the two
1163
+ dates and the before/on-or-before wording differ on their face and the
1164
+ difference is recorded rather than resolved.
1165
+ region_encoding: mechanism-only
1166
+ region_encoding_note: "whatever the underlying mark encodes; a pre-1980 British mark is generally a local-office code with no memory tag"
1167
+ sources:
1168
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/2 # Sch 2 Part 3 A.1-2 and B.1-2: the illuminated white-on-black variant, the BS AU 145 reflective option, and the white/silver/light-grey-on-black plate with its four permitted constructions"
1169
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/10 # reg 10(5): a vehicle first registered before 1.1.1973 may use Part 3, Part 2, Part A1 or Part 1"
1170
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/18 # reg 18(a)-(b) and the S.I. 2020/1363 insertion of 'constructed on or before 1st January 1980'"
1171
+ - "https://www.legislation.gov.uk/uksi/2001/561/regulation/15 # reg 15(1)(b): the prescribed font is not forced onto a replacement plate for a pre-1.1.1973 vehicle"
1172
+ - "https://www.legislation.gov.uk/uksi/2001/561/schedule/3 # Sch 3 Table A rows 1-9, the nine shapes the union regex is built from; Table B lines 8-9 for the 'classic' plate spacing latitude"
1173
+ - "https://assets.publishing.service.gov.uk/media/6694e379fc8e12ac3edafc60/inf104-vehicle-registration-numbers-and-number-plates.pdf # INF104 § 07 'Traditional number plates for vehicles made before 1 January 1973', the April 2020 extension and the two DVLA conditions"
1174
+ notes: >-
1175
+ THE BLACK-AND-SILVER PLATE — Britain's historic regime, and a textbook
1176
+ `recall-only` series: it is a permitted PLATE SPECIFICATION, not an
1177
+ issuance series, so it has no grammar of its own and its regex is the
1178
+ union of every shape Table A admits. A match means "this string is
1179
+ British-shaped", never "this is a valid historic registration", and a
1180
+ consumer reading `matching` gets that without inferring it. period.start
1181
+ 2001 is the instrument date of the Regulations that state the
1182
+ specification, NOT the date black plates began (they are older than the
1183
+ yellow ones — the 1.1.1973 boundary in Sch 2 Part 3 is precisely the date
1184
+ after which reflective white/yellow became the norm). Two DVLA conditions
1185
+ sit outside the Regulations and are recorded from INF104 because a claims
1186
+ model needs them: the keeper must have APPLIED to DVLA and the vehicle
1187
+ must be REGISTERED IN THE HISTORIC VEHICLES TAX CLASS. Age alone is not
1188
+ enough.