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,1431 @@
1
+ # plates/cn.yml — People's Republic of China (mainland), PRD-PLATES gate L3.
2
+ #
3
+ # ============================================================================
4
+ # 1. THE SOURCE SITUATION, STATED FIRST BECAUSE IT SHAPES EVERY CLAIM HERE
5
+ # ============================================================================
6
+ # Chinese plates are defined by ONE mandatory instrument: GA 36
7
+ # 《中华人民共和国机动车号牌》, a 强制性 (mandatory) public-security industry
8
+ # standard issued by 公安部 (the Ministry of Public Security). Its authority is
9
+ # delegated by ministerial rule: 《机动车登记规定》(公安部令第164号) 第八十五条,
10
+ # verbatim — "机动车登记证书、号牌、行驶证、检验合格标志的式样由公安部统一制定并
11
+ # 监制。机动车登记证书、号牌、行驶证、检验合格标志的制作应当符合有关标准。"
12
+ # ("The forms of the vehicle registration certificate, number plates, driving
13
+ # licence and inspection mark are uniformly formulated and supervised by the
14
+ # Ministry of Public Security. Their manufacture shall conform to the relevant
15
+ # standards." — translation ours.)
16
+ #
17
+ # THE EDITION PROBLEM, AND THE ONE PIECE OF LUCK.
18
+ # * The CURRENT edition is GA 36-2018: 发布 2018-04-20, 实施 2018-05-01,
19
+ # 代替 GA 36-2014, 技术归口 公安部道路交通管理标准化技术委员会, 起草单位
20
+ # 公安部交通管理科学研究所. All of that is PINNED from the national standards
21
+ # register. Its TEXT IS WITHHELD: the register's reader answers
22
+ # "您所查询的标准在本系统尚未公开,不公开理由如下:无" and its download
23
+ # endpoint returns zero bytes. GA 36-2014 and GA 36-2007 answer
24
+ # "废止标准不提供标准文本阅读服务".
25
+ # * The luck: GA 36-2007 — the immediately preceding edition, 发布 2007-09-28,
26
+ # 实施 2007-11-01, 代替 GA 36-1992 — is republished IN FULL by a Chinese
27
+ # municipal government, 巩义市人民政府 (www.hngy.gov.cn), 2012-11-15, and
28
+ # that copy survives in the Internet Archive. Clauses 3 to 7 and Annexes A
29
+ # and B of that text are the backbone of this file, quoted verbatim.
30
+ # * CONSEQUENCE, and it is recorded on every affected series: claims taken
31
+ # from GA 36-2007 describe the 92-pattern system AS IT STOOD IN 2007. The
32
+ # 2014 and 2018 revisions' change lists are not public. Where a 2018 fact is
33
+ # needed and only GA 36-2007 has it (colours, dimensions, serial grammar),
34
+ # the claim is made with `standard_edition: GA 36-2007` on the series and is
35
+ # a named verifier target. Where 2018 changed something we CAN see — the new
36
+ # energy vehicle plates — the Ministry's own announcements are the source.
37
+ # * The Wikipedia articles (en + zh) were used as a MANDATORY FINDING AID and
38
+ # nothing else: their citations were mined, the instruments they name were
39
+ # fetched, and those instruments are what is cited. Their CC BY-SA prefix
40
+ # tables and text were never extracted. Everything the finding aid asserted
41
+ # that no instrument confirmed is in the dossier's folklore section, and
42
+ # three of those claims are named in the notes below so a verifier can see
43
+ # what was DELIBERATELY not asserted.
44
+ #
45
+ # ============================================================================
46
+ # 2. THE HAN LINE — where the dataset's serial alphabet stops (PRD-PLATES §2.6)
47
+ # ============================================================================
48
+ # GA 36-2007 § 3.2 defines the thing a plate carries, verbatim:
49
+ # "机动车登记编号 registration number of motor vehicle
50
+ # 按照不同类型的机动车号牌,机动车登记编号包含省、自治区、直辖市的汉字简称、
51
+ # 用英文字母表示发牌机关的代号、由阿拉伯数字和英文字母组成的序号和有特殊性质的
52
+ # 机动车使用的号牌分类用汉字简称。"
53
+ # ("Depending on the type of plate, the registration number comprises the
54
+ # Chinese-character abbreviation of the province / autonomous region /
55
+ # municipality, the issuing-authority code expressed as a Latin letter, a
56
+ # serial composed of Arabic numerals and Latin letters, and — for vehicles of
57
+ # special character — a Chinese-character classification abbreviation."
58
+ # Translation ours; the Chinese is the sourced text.)
59
+ #
60
+ # So a Chinese registration number has FOUR elements, two of them Han. The
61
+ # dataset's serial alphabet is A-Z and 0-9 and PRD-PLATES § 2.6 says a
62
+ # jurisdiction that prints a glyph inside the serial "is a schema amendment,
63
+ # not a data entry". This file does NOT smuggle Han characters into any
64
+ # `format.pattern`, `format.regex`, `format.regex_strict` or
65
+ # `format.regex_statutory`. Instead:
66
+ #
67
+ # format.pattern / format.regex cover the MACHINE-READABLE LATIN+DIGIT
68
+ # remainder — the issuing-authority letter and
69
+ # the serial. This is precisely the substring
70
+ # an ALPR, a car-park barrier or a validation
71
+ # library matches on, so the regex layer stays
72
+ # useful rather than decorative.
73
+ # format.han carries the Han elements as structured data:
74
+ # `prefix` (always the province character,
75
+ # decoded by plates/_decode/cn-provinces.yml),
76
+ # `suffix` (the classification character, when
77
+ # the class has one), `printed`, `script: Han`
78
+ # and an INFORMATIONAL Han-aware regex that is
79
+ # explicitly outside the § 2.6 contract and is
80
+ # NOT lint-validated.
81
+ #
82
+ # A consumer validating "京A·12345" therefore: (1) splits the leading Han
83
+ # character and looks it up in cn-provinces.yml; (2) splits a trailing Han
84
+ # character if present and looks it up in `common.classification_han` below;
85
+ # (3) matches what is left — "A12345" — against `format.regex`. The two decode
86
+ # files make steps 1 and 2 mechanical. The schema amendment PRD-PLATES § 2.6
87
+ # anticipates (a `never_separator` / non-Latin-element ruling in
88
+ # _meta/separators.yml) is REQUESTED in the dossier; until it lands, this is the
89
+ # honest encoding and it is stated here once rather than guessed per series.
90
+ #
91
+ # THE SEPARATOR. GA 36-2007 § 5.11, verbatim: "间隔符对机动车登记编号进行有效
92
+ # 分割。间隔符可以和机动车登记编号同样冲压并着色。" ("The separator effectively
93
+ # divides the registration number. The separator may be embossed and coloured in
94
+ # the same way as the registration number.") It is the raised mid-dot printed
95
+ # between the issuing-authority letter and the serial. U+00B7 MIDDLE DOT is in
96
+ # _meta/separators.yml's FORGIVING set but NOT in its EMITTED set, so this file
97
+ # may not spell it; every regex here accepts an OPTIONAL emitted separator
98
+ # `[- ]?` at that position instead, exactly as plates/gb.yml does for the
99
+ # statutory millimetre gap. Nothing is lost: the dot is forgiving-strippable by
100
+ # construction.
101
+ #
102
+ # ============================================================================
103
+ # 3. THE SERIAL GRAMMAR — the best-sourced thing in this file
104
+ # ============================================================================
105
+ # GA 36-2007 § 5.9.1 序号编码规则, verbatim:
106
+ # "a) 序号的每一位都使用阿拉伯数字;
107
+ # b) 序号的每一位可单独使用英文字母,26个英文字母中O和I不能使用;
108
+ # c) 序号中允许出现2位英文字母,26个英文字母中O和I不能使用。"
109
+ # — the serial is all digits, or carries ONE letter, or carries AT MOST TWO
110
+ # letters, and O and I are never letters in a serial. § 5.9.2 a) then fixes
111
+ # WHICH positions those letters may occupy, in 表 3 "序号用字母和数字组合方式",
112
+ # with two serial widths (四位数 / 五位数) and eleven combinations; the sourced
113
+ # rule for release order is verbatim: "序号用数字和字母组合方式的使用应按表3的
114
+ # 规定依次有序使用。序号的使用率超过60%后,应经省级公安机关交通管理部门批准并报
115
+ # 公安部交通管理局备案后,依次启用下一种组合方式。" Table 3, transcribed:
116
+ #
117
+ # # letters at positions 4-position 5-position
118
+ # 1 (none, all digits) yes yes
119
+ # 2 1 yes yes
120
+ # 3 1,2 yes yes
121
+ # 4 2 yes yes
122
+ # 5 3 yes yes
123
+ # 6 4 yes yes
124
+ # 7 5 NO yes
125
+ # 8 1,5 NO yes
126
+ # 9 4,5 NO yes
127
+ # 10 1,3 yes yes
128
+ # 11 2,3 yes yes
129
+ #
130
+ # EVERY `regex_strict` in this file is that table, mechanically. It is the
131
+ # tightest sourced serial grammar this programme has secured outside the UK's
132
+ # Schedule 3 Table A, and it is why `regex` (which the lint round-trips against
133
+ # `pattern`, and which therefore cannot carry the O/I exclusion or the position
134
+ # rule) has a strict twin nearly everywhere.
135
+ #
136
+ # THE I/O ASYMMETRY, WHICH ALMOST EVERY OTHER DATASET GETS WRONG. The O and I
137
+ # exclusion is a rule about the SERIAL. The ISSUING-AUTHORITY LETTER uses the
138
+ # full alphabet: GA 36-2007's 前言 lists "增加了发牌机关代号"I"" among the
139
+ # changes that edition made, and Annex A gives "O" to the
140
+ # "省、自治区公安厅交通管理局、处车辆管理所" in every province (the famous
141
+ # "O 牌"). So `[A-Z]` for the office letter and `[0-9A-HJ-NP-Z]` for the serial,
142
+ # in the same regex, is not an inconsistency — it is the sourced rule.
143
+ #
144
+ # ============================================================================
145
+ # 4. PERIOD POLICY (PRD-PLATES §2.4, the instrument-date rule)
146
+ # ============================================================================
147
+ # The system in force is the "92-pattern" (92式) created by GA 36-1992, whose
148
+ # existence and designation year are evidenced by GA 36-2007's own 前言 ("本标准
149
+ # 代替GA36-1992") and by the national register's 代替标准 field for GA 36-2007.
150
+ # GA 36-1992 itself PREDATES the industry-standard filing database, so no
151
+ # 发布/实施 date for it could be pinned; series that GA 36-2007 shows unchanged
152
+ # therefore carry `period: { start: 1992 }` with
153
+ # `period_evidence: enabling-instrument` and say so. Where GA 36-2007's 前言
154
+ # records that this edition ADDED a class or its classification character, the
155
+ # series is dated 2007 instead, with the foreword quoted on the series.
156
+ # The much-repeated claim that the 92-pattern was trialled in 乌鲁木齐/大庆 in
157
+ # 1992 and rolled out nationwide in July 1994 is NOT asserted here: no primary
158
+ # was secured for either date (dossier folklore F-1).
159
+ jurisdiction: cn
160
+ authority:
161
+ name: 公安部交通管理局 (Traffic Management Bureau, Ministry of Public Security)
162
+ url: "https://www.mps.gov.cn/"
163
+ url_status: >-
164
+ www.mps.gov.cn returned HTTP 521 on every request from this workstation on
165
+ 2026-08-02 (the ministry's origin, not a block we could route around); every
166
+ ministry page used here is cited through the Internet Archive with its
167
+ archive URL and its original URL, and the archived captures were read in
168
+ full.
169
+ binding: vehicle
170
+ binding_note: >-
171
+ The registration number belongs to the VEHICLE, not the keeper: GA 36-2007
172
+ § 3.1 defines 机动车号牌 as "准予机动车在中华人民共和国境内道路上行驶的法定
173
+ 标志,其号码是机动车登记编号" — "the legal mark permitting a motor vehicle to
174
+ travel on roads within the People's Republic of China; its number is the
175
+ vehicle registration number". 《机动车登记规定》(公安部令第164号) 第四十四条
176
+ lets a former owner re-apply for the OLD number on a new vehicle only if they
177
+ held the vehicle and used that number for at least a year, and 第四十五条
178
+ extends it to a spouse after a year of marriage — the exceptions prove the
179
+ rule. 第四十三条: the number is chosen "通过计算机随机选取或者按照选号规则自行
180
+ 编排的方式" (computer random draw or owner self-composition inside the
181
+ published rules), through a single national number-selection system.
182
+
183
+ instrument:
184
+ standard:
185
+ citation: "GA 36-2018 《中华人民共和国机动车号牌》 (mandatory public-security industry standard)"
186
+ issued: "2018-04-20"
187
+ in_force: "2018-05-01"
188
+ replaces: "GA 36-2014"
189
+ ccs: R82
190
+ ics: "43.040.60"
191
+ technical_committee: 公安部道路交通管理标准化技术委员会
192
+ approving_body: 公安部
193
+ drafting_units: 公安部交通管理科学研究所、公安部交通安全产品质量监督检测中心、常州华日升反光材料股份有限公司
194
+ filing: "备案号 66154-2019, 备案日期 2019-06-06"
195
+ text_status: >-
196
+ NOT PUBLIC. hbba.sacinfo.org.cn's online reader returns "您所查询的标准在
197
+ 本系统尚未公开,不公开理由如下:无" and /portal/download/ returns 0 bytes.
198
+ Every format, colour and dimension claim in this file is therefore sourced
199
+ to GA 36-2007 (full text, government-republished) or to a Ministry
200
+ announcement, and each series records which.
201
+ source: "https://hbba.sacinfo.org.cn/stdDetail/328b77ee80fdee1dee33d20e83d01d2ad128f380aa93c7dbe5c58c67d9d2075e # every field above; accessed 2026-08-02"
202
+ lineage:
203
+ - { code: "GA 36-1992", note: "the 92-pattern's creating edition; evidenced only by GA 36-2007's 前言 ('本标准代替GA36-1992') and the register's 代替标准 field — it predates the filing database and no dates for it were secured" }
204
+ - { code: "GA 36-2007", issued: "2007-09-28", in_force: "2007-11-01", replaces: "GA 36-1992", status: 废止, note: "THE READABLE EDITION — full text republished by 巩义市人民政府" }
205
+ - { code: "GA 36-2014", issued: "2014-01-24", in_force: "2014-01-24", replaces: "GA 36-2007", status: 废止, repealed: "2019-03-11", note: "text withheld; change list unknown — a recorded gap between the readable 2007 text and the current 2018 edition" }
206
+ - { code: "GA 36-2018", issued: "2018-04-20", in_force: "2018-05-01", replaces: "GA 36-2014", status: 现行 }
207
+ lineage_source: "https://hbba.sacinfo.org.cn/stdQueryList # 全国标准信息公共服务平台 (行业标准) query for GA 36 — all four editions with 发布/实施/废止 dates and 代替标准; accessed 2026-08-02"
208
+ enabling_rule:
209
+ citation: "《机动车登记规定》, 公安部令第164号 — 2021年12月4日第8次部务会议审议通过, 公布 2021-12-17 (部长 赵克志), 施行 2022-05-01"
210
+ relevant_articles: "第四十三条 (number selection), 第四十四条-第四十五条 (retaining a number), 第四十六条-第四十八条 (临时行驶车号牌 and its validity ladder), 第四十九条 (临时入境机动车号牌), 第五十条 (uniform national plate management system), 第八十五条 (the MPS sets the FORM of the plate; manufacture follows the relevant standards)"
211
+ source: "https://www.gov.cn/gongbao/content/2022/content_5682413.htm # State Council Gazette 2022 No. 9, full text; accessed 2026-08-02"
212
+ related:
213
+ - "GA 666-2018 《机动车号牌用反光膜》 (发布/实施 2018-05-01, 代替 GA 666-2006) — the retroreflective-film standard GA 36 defers colour and retroreflection to; text not public"
214
+ - "GA/T 804-2024 《机动车号牌专用固封装置》 (实施 2024-12-31, 代替 GA 804-2008) — the anti-theft plate fastener GA 36-2007 § 7.1 c) requires, two per plate face"
215
+ - "GA/T 16.7-2012 《道路交通管理信息代码 第7部分:机动车号牌种类代码》 — the closed CODE LIST for plate types; text not public and a named verifier target"
216
+ - "NY 345.1-2005 《拖拉机号牌》 (农业部, 发布/实施 2005-01-17, 现行) — GA 36-2007 表 1 row 19 delegates tractor plates to it in terms ('按 NY 345.1-2005 执行'). Its PDF is downloadable from the register but is a scanned image with no text layer, so no tractor series is modelled here (recorded gap)"
217
+ - "《警车管理规定》, 公安部令第89号 (2007), as amended by 公安部令第174号 (公布 2025-11-25, 施行 2025-12-29) — police plates"
218
+ - "《临时入境机动车和驾驶人管理规定》, 公安部令第90号 (通过 2006-11-08, 公布 2006-12-01, 施行 2007-01-01, replacing 公安部令第4号 of 1989-05-01) — temporary-entry plates"
219
+ - "《国务院办公厅关于国家综合性消防救援车辆悬挂应急救援专用号牌有关事项的通知》, 国办发〔2018〕114号 (成文 2018-12-04, 发布 2018-12-11) — the emergency-rescue plates, and the only Chinese plate whose full encoding rule is published in an accessible instrument"
220
+
221
+ # ---------------------------------------------------------------------------
222
+ # Jurisdiction-wide facts, cited once and referenced per series.
223
+ # ---------------------------------------------------------------------------
224
+ common:
225
+ registration_number_elements:
226
+ order: [province_han, office_letter, serial, classification_han]
227
+ note: >-
228
+ GA 36-2007 § 3.2, quoted in full in the header. The fourth element appears
229
+ only on the classes GA 36-2007 § 5.10 lists. The emergency-rescue plates
230
+ (国办发〔2018〕114号) are the one class that departs from this order: the
231
+ motorcycle plate puts its TWO-character classification pair 应急 FIRST.
232
+ source: "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 § 3.2; accessed 2026-08-02"
233
+ province_han:
234
+ decode: "plates/_decode/cn-provinces.yml"
235
+ count: 31
236
+ note: "GA 36-2007 § 5.7 表 2 — 31 rows, one character each, closed and primary. Hong Kong, Macau and Taiwan have no row."
237
+ office_letter:
238
+ alphabet: "A-Z"
239
+ includes_i_and_o: true
240
+ decode: "plates/_decode/cn-issuing-offices.yml"
241
+ rules: >-
242
+ GA 36-2007 § 5.8.1-5.8.3 (quoted in the decode file): the code identifies
243
+ the vehicle-management office; the four directly-administered
244
+ municipalities hold the whole alphabet A-Z in sequence; anywhere else a
245
+ new code needs MPS Traffic Management Bureau approval, so the allocation
246
+ is OPEN and Annex A is a 2007 snapshot.
247
+ source: "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 § 5.8 + 附录 A 表 A.1; accessed 2026-08-02"
248
+ serial:
249
+ letters_excluded: [I, O]
250
+ max_letters: 2
251
+ widths_defined: [4, 5]
252
+ combinations_source: "GA 36-2007 § 5.9.2 a) 表 3 — transcribed in this file's header and encoded in every regex_strict below"
253
+ release_rule: >-
254
+ "序号的使用率超过60%后,应经省级公安机关交通管理部门批准并报公安部交通管理
255
+ 局备案后,依次启用下一种组合方式" — a combination is opened only once the
256
+ previous ones are 60% consumed, in Table 3's order. This is the Chinese
257
+ equivalent of an age identifier and the reason a letter-bearing serial
258
+ implies a LATER issue than an all-digit one within the same office code.
259
+ It is a one-sided inference and this dataset makes no year claim from it.
260
+ recycling_rule: "GA 36-2007 § 5.9.2 b): '机动车登记中收回的号牌,其机动车登记编号6个月后可重新使用。' — a surrendered number returns to the pool after six months"
261
+ source: "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 § 5.9; accessed 2026-08-02"
262
+ classification_han:
263
+ note: >-
264
+ GA 36-2007 § 5.10, verbatim and complete: "领馆汽车号牌和摩托车号牌的机动车
265
+ 登记编号中使用汉字简称"领"字;使馆汽车号牌和摩托车号牌的机动车登记编号中使用
266
+ 汉字简称"使"字;警用汽车号牌和摩托车号牌的机动车登记编号使用汉字简称"警"字;
267
+ 教练汽车号牌和摩托车号牌的机动车登记编号中使用汉字简称"学"字;挂车号牌的机动车
268
+ 登记编号使用汉字简称"挂"字;香港特别行政区入出内地车辆号牌的机动车登记编号使用
269
+ 汉字简称"港"字;澳门特别行政区入出内地车辆号牌的机动车登记编号使用汉字简称"澳"
270
+ 字;试验车的临时行驶车号牌的机动车登记编号中使用汉字简称"试"字;特型车的临时
271
+ 行驶车号牌的机动车登记编号中使用汉字简称"超"字。"
272
+ characters:
273
+ - { han: 领, script: Han, pinyin: "lǐng", meaning: "consular corps (驻华领事馆)" }
274
+ - { han: 使, script: Han, pinyin: "shǐ", meaning: "diplomatic corps (驻华使馆)" }
275
+ - { han: 警, script: Han, pinyin: "jǐng", meaning: "police vehicle (警车)" }
276
+ - { han: 学, script: Han, pinyin: "xué", meaning: "driving-instruction vehicle (教练车)" }
277
+ - { han: 挂, script: Han, pinyin: "guà", meaning: "trailer / semi-trailer (挂车)" }
278
+ - { han: 港, script: Han, pinyin: "gǎng", meaning: "Hong Kong vehicle entering/leaving the mainland" }
279
+ - { han: 澳, script: Han, pinyin: "ào", meaning: "Macau vehicle entering/leaving the mainland" }
280
+ - { han: 试, script: Han, pinyin: "shì", meaning: "test vehicle, on a temporary-travel plate" }
281
+ - { han: 超, script: Han, pinyin: "chāo", meaning: "over-dimension/over-mass special vehicle, on a temporary-travel plate" }
282
+ - { han: 应急, script: Han, pinyin: "yìngjí", meaning: "national comprehensive fire-and-rescue vehicle", source_note: "NOT in GA 36-2007 § 5.10 — created later by 国办发〔2018〕114号, and the only TWO-character classification element" }
283
+ source: "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 § 5.10; accessed 2026-08-02"
284
+ materials:
285
+ metal: "GA 36-2007 § 6.1.1.1: aluminium of at least 1.0 mm (1.2 mm, or steel, for the large-vehicle rear plate and the trailer plate), to GB/T 3880.1 / GB/T 3880.2; surface film to GA 666-2006"
286
+ paper: "§ 6.1.1.2: temporary-ENTRY plates are printed on 200-220 g watermarked paper and laminated. § 6.1.1.3: the domestic temporary-travel plate is 125 g white card"
287
+ service_life: "§ 6.3: '金属材料号牌的使用寿命不得少于四年。' — a metal plate's service life shall be not less than four years"
288
+ embossing: "§ 6.6.3: characters and the separator stand proud of the plate face by more than 1 mm, inside a stiffening rib of more than 1 mm"
289
+ fastening: "§ 7.1 c): every plate face except the temporary-entry and temporary-travel plates is fixed with at least two uniform anti-theft fasteners embossed with the issuing-authority code (GA/T 804)"
290
+ enlarged_number: "§ 7.3: heavy and medium goods vehicles and their trailers carry the registration number painted on the body at 2.5x plate size"
291
+ source: "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 §§ 6, 7; accessed 2026-08-02"
292
+ colour_basis:
293
+ note: >-
294
+ GA 36 NAMES colours and never numbers them for the metal plates: § 6.8.2
295
+ and § 6.8.3 defer the day and night chromaticity coordinates to
296
+ GA 666-2006 § 4.4, a standard whose text is not public. Only two colours
297
+ are numbered anywhere in the readable text, and both are on the PAPER
298
+ plates and the red characters: § 6.8.1 fixes the red paint as GB/T
299
+ 3181-1995 大红 (R03); § 6.4 fixes the temporary plates' ground tints as
300
+ GB/T 3181-1995 天(酞)蓝 (PB09) and 棕黄 (YR06). EVERY hex value in this
301
+ file is therefore `hex_basis: observed` — a rendering convenience, not a
302
+ sourced fact — and re-sourcing them from GA 666 is a named verifier
303
+ target.
304
+ named_colours_source: "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 §§ 6.4, 6.8, and 表 1's colour column; accessed 2026-08-02"
305
+
306
+ series:
307
+
308
+ # =========================================================================
309
+ # THE CIVIL 92-PATTERN CORE. GA 36-2007 表 1 "号牌的分类、规格、颜色及适用
310
+ # 范围" is the closed classification; rows 1-19 of that table are the source
311
+ # for every dimension, colour and scope claim in this block, and each series
312
+ # quotes its own row.
313
+ # =========================================================================
314
+
315
+ - id: cn-small-car-1992
316
+ class: standard
317
+ categories: [car, van]
318
+ period: { start: 1992 }
319
+ period_evidence: enabling-instrument
320
+ standard_edition: "GA 36-2007 表 1 row 3 (format/design); GA 36-1992 (period)"
321
+ matching: strict
322
+ format:
323
+ pattern: "L99999"
324
+ regex: '\A[A-Z][- ]?[A-Z0-9]{5}\z'
325
+ regex_strict: '\A[A-Z][- ]?(?:\d{5}|[A-HJ-NP-Z]\d{4}|[A-HJ-NP-Z]{2}\d{3}|\d[A-HJ-NP-Z]\d{3}|\d{2}[A-HJ-NP-Z]\d{2}|\d{3}[A-HJ-NP-Z]\d|\d{4}[A-HJ-NP-Z]|[A-HJ-NP-Z]\d{3}[A-HJ-NP-Z]|\d{3}[A-HJ-NP-Z]{2}|[A-HJ-NP-Z]\d[A-HJ-NP-Z]\d{2}|\d[A-HJ-NP-Z]{2}\d{2})\z'
326
+ charset:
327
+ office_letter: "A-Z (I and O included — see the header's I/O asymmetry note)"
328
+ serial_letters_excluded: [I, O]
329
+ notes: "regex_strict is GA 36-2007 表 3's five-position column, all eleven rows"
330
+ progression: "combinations open in 表 3 order once the previous is 60% consumed (§ 5.9.2 a)); the inference is one-sided and no year claim is made from it"
331
+ han:
332
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
333
+ suffix: none
334
+ printed: "<province>·<office letter><5-position serial>"
335
+ printed_example: "京A·12345"
336
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{5}\z'
337
+ regex_informational_note: >-
338
+ NOT part of the PRD-PLATES § 2.6 contract, NOT lint-validated, and NOT
339
+ a substitute for format.regex — provided because a consumer holding a
340
+ whole Chinese plate string needs one expression to split it. The Han
341
+ class is the 31 characters of cn-provinces.yml in Table 2's order.
342
+ design:
343
+ plate: { w: 440, h: 140, unit: mm }
344
+ count: 2
345
+ background: { color: "#1C3F94", finish: retroreflective, hex_basis: observed }
346
+ foreground: "#FFFFFF"
347
+ border: { color: "#FFFFFF", note: "白框线 — the white keyline is part of the sourced colour description" }
348
+ band: { side: none }
349
+ emblem: { present: false }
350
+ rear_differs: false
351
+ note: >-
352
+ GA 36-2007 表 1 row 3, verbatim: 小型汽车号牌 / 440×140 / 蓝底白字白框线
353
+ / 2 / 中型以下的载客、载货汽车和专项作业车。 § 6.5 b) adds that on the
354
+ small-car plate BOTH the ground colour and the characters are
355
+ retroreflective ("小型汽车号牌和轻便摩托车号牌底色和字符均为反光") —
356
+ which is not true of the yellow plates, whose ground is retroreflective
357
+ but whose black characters are not.
358
+ region_encoding:
359
+ type: province-and-office
360
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
361
+ note: >-
362
+ Two independent geographic elements: the Han character gives the
363
+ province-level jurisdiction (closed, 31 values); the Latin letter gives
364
+ the issuing vehicle-management office within it (open list, MPS-approved
365
+ additions). For the four directly-administered municipalities the letter
366
+ is a BATCH marker with no place meaning at all (§ 5.8.2).
367
+ sources:
368
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 3 (dimensions, colours, count, scope); § 5.1.1 (the 440x140 layout group); § 5.9 (serial grammar, regex_strict); § 6.5 b) (both ground and characters retroreflective); accessed 2026-08-02"
369
+ - "https://web.archive.org/web/20161122160811/http://www.mps.gov.cn/n2254098/n4904352/c5550094/content.html # 公安部交通管理局, 2016-11-21: '与普通汽车号牌相比,新能源汽车号牌号码由5位升为6位' — the primary that fixes the ORDINARY car serial at FIVE positions; accessed 2026-08-02"
370
+ - "https://hbba.sacinfo.org.cn/stdDetail/12b7710b682f0e13dfc423a325751920 # GA 36-2007 register entry: 代替 GA 36-1992 — the evidence for period.start 1992; accessed 2026-08-02"
371
+ notes: >-
372
+ The ordinary blue plate: light passenger and goods vehicles and special
373
+ operating vehicles below medium size, two plates per vehicle, 440x140 mm,
374
+ white on blue with a white keyline. period.start 1992 is the designation
375
+ year of GA 36-1992, the edition that created the 92-pattern; that
376
+ standard's own issue and in-force dates could not be pinned (it predates
377
+ the industry-standard filing database), and the widely repeated
378
+ "trial 1992, nationwide July 1994" pair has NO primary and is not asserted
379
+ (dossier folklore F-1). The five-position serial is sourced twice over —
380
+ GA 36-2007 表 3's 五位数 column and the Ministry's 2016 NEV announcement,
381
+ which contrasts the ordinary plate's five positions with the NEV plate's
382
+ six. Colours are named, not numbered, in the readable text; the hex is
383
+ observed (see common.colour_basis).
384
+
385
+ - id: cn-large-car-1992
386
+ class: standard
387
+ categories: [truck, bus]
388
+ period: { start: 1992 }
389
+ period_evidence: enabling-instrument
390
+ standard_edition: "GA 36-2007 表 1 row 1"
391
+ matching: strict
392
+ format:
393
+ pattern: "L99999"
394
+ regex: '\A[A-Z][- ]?[A-Z0-9]{5}\z'
395
+ regex_strict: '\A[A-Z][- ]?(?:\d{5}|[A-HJ-NP-Z]\d{4}|[A-HJ-NP-Z]{2}\d{3}|\d[A-HJ-NP-Z]\d{3}|\d{2}[A-HJ-NP-Z]\d{2}|\d{3}[A-HJ-NP-Z]\d|\d{4}[A-HJ-NP-Z]|[A-HJ-NP-Z]\d{3}[A-HJ-NP-Z]|\d{3}[A-HJ-NP-Z]{2}|[A-HJ-NP-Z]\d[A-HJ-NP-Z]\d{2}|\d[A-HJ-NP-Z]{2}\d{2})\z'
396
+ charset: { serial_letters_excluded: [I, O], notes: "GA 36-2007 表 3, five-position column" }
397
+ han:
398
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
399
+ suffix: none
400
+ printed: "<province>·<office letter><5-position serial>"
401
+ printed_example: "沪A·12345"
402
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{5}\z'
403
+ design:
404
+ plate: { w: 440, h: 140, unit: mm, position: front }
405
+ plate_variants:
406
+ - { w: 440, h: 220, unit: mm, position: rear, note: "the two-line rear plate" }
407
+ count: 2
408
+ background: { color: "#FFD500", finish: retroreflective, hex_basis: observed }
409
+ foreground: "#000000"
410
+ border: { color: "#000000", note: "黑框线" }
411
+ band: { side: none }
412
+ emblem: { present: false }
413
+ rear_differs: true
414
+ rear_differs_note: >-
415
+ Not a colour or format difference — a SHAPE difference. GA 36-2007
416
+ 表 1 row 1 gives 前:440×140 / 后:440×220, and § 5.2 assigns the
417
+ 440x220 layout to "大型汽车后号牌和挂车号牌". China is the dataset's
418
+ clearest case of front/rear asymmetry by dimension rather than by
419
+ colour (contrast the UK, where the asymmetry is colour).
420
+ region_encoding:
421
+ type: province-and-office
422
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
423
+ sources:
424
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 1: 大型汽车号牌 / 前 440x140 后 440x220 / 黄底黑字黑框线 / 2 / 中型(含)以上载客、载货汽车和专项作业车;半挂牵引车;电车; §§ 5.1.1, 5.2; accessed 2026-08-02"
425
+ - "https://web.archive.org/web/20161122160811/http://www.mps.gov.cn/n2254098/n4904352/c5550094/content.html # the five-position ordinary-car serial; accessed 2026-08-02"
426
+ notes: >-
427
+ The yellow plate: medium and larger passenger and goods vehicles and
428
+ special operating vehicles, semi-trailer tractors, and TROLLEYBUSES
429
+ (电车 — named in the table's scope column and easy to miss). Same
430
+ registration-number grammar as the small-car plate; different colour and a
431
+ taller rear plate. Note the scope boundary is the vehicle SIZE CLASS, not
432
+ commercial use: a privately owned medium bus is yellow-plated.
433
+
434
+ - id: cn-trailer-1992
435
+ class: trailer
436
+ categories: [trailer, semitrailer]
437
+ period: { start: 1992 }
438
+ period_evidence: enabling-instrument
439
+ standard_edition: "GA 36-2007 表 1 row 2"
440
+ # RECALL-ONLY (PRD-PLATES §2.7): the readable text fixes the trailer plate's
441
+ # DESIGN and its classification character but never states which of the two
442
+ # serial widths 表 3 defines applies to it — that lives in Annex C's
443
+ # figures, which the government republication reproduces as headings only.
444
+ # The regex therefore spans both widths and a match is a SHAPE hit.
445
+ matching: recall-only
446
+ format:
447
+ pattern: "L9999"
448
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
449
+ width_note: >-
450
+ GA 36-2007 表 3 defines four-position and five-position serials and does
451
+ not say which classes take which. On a trailer plate the trailing 挂
452
+ occupies a character cell, which is why the four-position reading is the
453
+ likely one; it is NOT asserted. Pin it and this series becomes strict
454
+ with 表 3's four-position column as its regex_strict.
455
+ han:
456
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
457
+ suffix: { han: 挂, script: Han, pinyin: "guà", role: classification }
458
+ printed: "<province>·<office letter><serial>挂"
459
+ printed_example: "京A·1234挂"
460
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}挂\z'
461
+ design:
462
+ plate: { w: 440, h: 220, unit: mm, lines: 2, lines_note: "PHOTOGRAPHED two-row (wave-3 render pass): an issued Beijing trailer plate reads 京·C over 0544挂 — Commons File:Yellow vehicle registration plate 拖挂车 Trailer in Beijing, P.R. China.jpg (CC-BY-SA-4.0). ONE witness; a second photo upgrades this to confirmed." }
463
+ count: 1
464
+ background: { color: "#FFD500", finish: retroreflective, hex_basis: observed }
465
+ foreground: "#000000"
466
+ border: { color: "#000000" }
467
+ band: { side: none }
468
+ emblem: { present: false }
469
+ rear_differs: false
470
+ note: "ONE plate only (表 1 row 2's 数量 column), the same 440x220 two-line layout as the large-vehicle rear plate (§ 5.2). Base material is at least 1.2 mm aluminium or steel (§ 6.1.1.1 b))."
471
+ region_encoding:
472
+ type: province-and-office
473
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
474
+ sources:
475
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 2: 挂车号牌 / 440x220 / 黄底黑字黑框线 / 1 / 全挂车和不与牵引车固定使用的半挂车; § 5.10 (the 挂 character); § 6.1.1.1 b); accessed 2026-08-02"
476
+ - "https://www.gov.cn/gongbao/content/2022/content_5682413.htm # 《机动车登记规定》(公安部令第164号) 第九条: '车辆管理所办理注册登记时,应当对牵引车和挂车分别核发机动车登记证书、号牌、行驶证和检验合格标志' — tractor and trailer are separately registered and separately plated; accessed 2026-08-02"
477
+ notes: >-
478
+ Full trailers and semi-trailers not permanently coupled to their tractor.
479
+ The scope wording matters: a semi-trailer that IS permanently coupled is
480
+ not separately plated. 《机动车登记规定》第九条 confirms the separate
481
+ registration at rule level. One plate, rear only, on the tall 440x220
482
+ layout it shares with the large-vehicle rear plate.
483
+
484
+ - id: cn-motorcycle-1992
485
+ class: motorcycle
486
+ categories: [motorcycle]
487
+ period: { start: 1992 }
488
+ period_evidence: enabling-instrument
489
+ standard_edition: "GA 36-2007 表 1 row 9"
490
+ # RECALL-ONLY: as with the trailer plate, the serial WIDTH for this class is
491
+ # in Annex C's figures and not in the readable text.
492
+ matching: recall-only
493
+ format:
494
+ pattern: "L99999"
495
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
496
+ han:
497
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
498
+ suffix: none
499
+ printed: "<province><office letter><serial>"
500
+ printed_example: "京A12345"
501
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}\z'
502
+ design:
503
+ plate: { w: 220, h: 95, unit: mm, position: front }
504
+ plate_variants:
505
+ - { w: 220, h: 140, unit: mm, position: rear, note: "the two-line rear plate" }
506
+ count: 2
507
+ background: { color: "#FFD500", finish: retroreflective, hex_basis: observed }
508
+ foreground: "#000000"
509
+ border: { color: "#000000" }
510
+ band: { side: none }
511
+ emblem: { present: false }
512
+ rear_differs: true
513
+ rear_differs_note: "220x95 single-line front, 220x140 two-line rear (表 1 row 9; §§ 5.3, 5.4.1)"
514
+ region_encoding:
515
+ type: province-and-office
516
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
517
+ sources:
518
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 9: 普通摩托车号牌 / 前 220x95 后 220x140 / 黄底黑字黑框线 / 普通二轮摩托车和普通三轮摩托车; §§ 5.3, 5.4.1; accessed 2026-08-02"
519
+ notes: >-
520
+ Ordinary two-wheel and three-wheel motorcycles. THE FRONT PLATE IS A
521
+ 2007 FACT AND MAY NOT BE A 2018 ONE: GA 36-2007 表 1 gives this class a
522
+ front plate of 220x95 mm as well as the rear 220x140, and the count
523
+ column reads 2. Whether GA 36-2014 or GA 36-2018 withdrew the front
524
+ motorcycle plate cannot be checked — neither text is public — and this is
525
+ a named verifier target. The dataset records what the readable edition
526
+ says and flags the exposure rather than quietly modernising it.
527
+
528
+ - id: cn-moped-1992
529
+ class: moped
530
+ categories: [moped]
531
+ period: { start: 1992 }
532
+ period_evidence: enabling-instrument
533
+ standard_edition: "GA 36-2007 表 1 row 10"
534
+ matching: recall-only
535
+ format:
536
+ pattern: "L99999"
537
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
538
+ han:
539
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
540
+ suffix: none
541
+ printed: "<province><office letter><serial>"
542
+ printed_example: "沪A12345"
543
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}\z'
544
+ design:
545
+ plate: { w: 220, h: 95, unit: mm, position: front }
546
+ plate_variants:
547
+ - { w: 220, h: 140, unit: mm, position: rear }
548
+ count: 2
549
+ background: { color: "#1C3F94", finish: retroreflective, hex_basis: observed }
550
+ foreground: "#FFFFFF"
551
+ border: { color: "#FFFFFF" }
552
+ band: { side: none }
553
+ emblem: { present: false }
554
+ rear_differs: true
555
+ region_encoding:
556
+ type: province-and-office
557
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
558
+ sources:
559
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 10: 轻便摩托车号牌 / 蓝底白字白框线 / 轻便摩托车 (dimensions merged with row 9); § 6.5 b) (ground AND characters retroreflective, as on the small-car plate); accessed 2026-08-02"
560
+ notes: >-
561
+ 轻便摩托车 (light motorcycle / moped) plates are the motorcycle plate in
562
+ the SMALL-CAR colourway — blue ground, white characters, white keyline —
563
+ and GA 36-2007 § 6.5 b) names them alongside the small-car plate as the
564
+ two classes whose ground AND characters are both retroreflective. The
565
+ dimensions cell of 表 1 row 10 is merged with row 9's, which is how the
566
+ 220x95 front / 220x140 rear pair is read here. Same width caveat as the
567
+ motorcycle plate, hence recall-only.
568
+
569
+ - id: cn-lowspeed-1992
570
+ class: agricultural
571
+ categories: [truck, machine]
572
+ period: { start: 1992 }
573
+ period_evidence: enabling-instrument
574
+ standard_edition: "GA 36-2007 表 1 row 15"
575
+ matching: recall-only
576
+ format:
577
+ pattern: "L99999"
578
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
579
+ han:
580
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
581
+ suffix: none
582
+ printed: "<province><office letter><serial>"
583
+ printed_example: "冀A12345"
584
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}\z'
585
+ design:
586
+ plate: { w: 300, h: 165, unit: mm }
587
+ count: 2
588
+ background: { color: "#FFD500", finish: retroreflective, hex_basis: observed }
589
+ foreground: "#000000"
590
+ border: { color: "#000000" }
591
+ band: { side: none }
592
+ emblem: { present: false }
593
+ rear_differs: false
594
+ region_encoding:
595
+ type: province-and-office
596
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
597
+ sources:
598
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 15: 低速车号牌 / 300x165 / 黄底黑字黑框线 / 2 / 低速载货汽车、三轮汽车和轮式自行机械车; § 5.5; accessed 2026-08-02"
599
+ notes: >-
600
+ 低速车号牌 — low-speed goods vehicles, three-wheeled vehicles and wheeled
601
+ self-propelled machinery. The 300x165 mm plate is unique to this class and
602
+ is the squarest metal plate in the Chinese range. CLASS CAVEAT: the
603
+ dataset's _meta/classes.yml has no term for a low-speed-vehicle regime;
604
+ `agricultural` is the closest existing term because this is the plate on
605
+ rural three-wheelers and wheeled machinery, and the dossier requests a
606
+ `low-speed` vocabulary addition rather than leaving the choice implicit.
607
+ Tractors proper are NOT this class: 表 1 row 19 sends them to
608
+ NY 345.1-2005, whose text is a scanned image, so no tractor series is
609
+ modelled (recorded gap).
610
+
611
+ - id: cn-driving-school-car-1992
612
+ class: standard
613
+ class_note: >-
614
+ 教练汽车号牌 is a distinct legal issuance category in GA 36-2007 表 1
615
+ (row 7) with its own classification character, but _meta/classes.yml has
616
+ no term for a driving-instruction regime. `standard` is used because the
617
+ vehicle is an ordinary civil registration whose plate carries a
618
+ permitted-use marker, and the dossier requests a `driving-school`
619
+ vocabulary addition. A consumer must read class_note, not just class.
620
+ categories: [car, bus]
621
+ period: { start: 1992 }
622
+ period_evidence: enabling-instrument
623
+ standard_edition: "GA 36-2007 表 1 row 7"
624
+ matching: recall-only
625
+ format:
626
+ pattern: "L9999"
627
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
628
+ han:
629
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
630
+ suffix: { han: 学, script: Han, pinyin: "xué", role: classification }
631
+ printed: "<province>·<office letter><serial>学"
632
+ printed_example: "京A·1234学"
633
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}学\z'
634
+ design:
635
+ plate: { w: 440, h: 140, unit: mm }
636
+ count: 2
637
+ background: { color: "#FFD500", finish: retroreflective, hex_basis: observed }
638
+ foreground: "#000000"
639
+ border: { color: "#000000" }
640
+ band: { side: none }
641
+ emblem: { present: false }
642
+ rear_differs: false
643
+ note: "表 1 row 7: 黄底黑字,黑'学'字黑框线 — the 学 character is BLACK like the rest, unlike the red 使/领/警 of the diplomatic and police plates"
644
+ region_encoding:
645
+ type: province-and-office
646
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
647
+ sources:
648
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 7: 教练汽车号牌 / 黄底黑字,黑'学'字黑框线 / 教练用汽车 (dimensions and count merged from row 3's 440x140 / 2); § 5.1.1 (the 440x140 layout group includes 教练汽车号牌); § 5.10 (the 学 character); accessed 2026-08-02"
649
+ notes: >-
650
+ Driving-instruction cars. The class shares the 440x140 layout group with
651
+ the small-car, consular and cross-boundary plates (§ 5.1.1 names all of
652
+ them together), which is how the dimensions and the count of 2 are read
653
+ from 表 1's merged cells. recall-only for the serial-width reason given on
654
+ the trailer series.
655
+
656
+ - id: cn-driving-school-motorcycle-1992
657
+ class: motorcycle
658
+ categories: [motorcycle]
659
+ period: { start: 1992 }
660
+ period_evidence: enabling-instrument
661
+ standard_edition: "GA 36-2007 表 1 row 13"
662
+ matching: recall-only
663
+ format:
664
+ pattern: "L9999"
665
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
666
+ han:
667
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
668
+ suffix: { han: 学, script: Han, pinyin: "xué", role: classification }
669
+ printed: "<province><office letter><serial>学"
670
+ printed_example: "京A1234学"
671
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}学\z'
672
+ design:
673
+ plate: { w: 220, h: 95, unit: mm, position: front }
674
+ plate_variants:
675
+ - { w: 220, h: 140, unit: mm, position: rear }
676
+ count: 2
677
+ background: { color: "#FFD500", finish: retroreflective, hex_basis: observed }
678
+ foreground: "#000000"
679
+ border: { color: "#000000" }
680
+ band: { side: none }
681
+ emblem: { present: false }
682
+ rear_differs: true
683
+ region_encoding:
684
+ type: province-and-office
685
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
686
+ sources:
687
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 13: 教练摩托车号牌 / 黄底黑字,黑'学'字黑框线 / 教练用摩托车; §§ 5.3, 5.4.1 name 教练摩托车前/后号牌 in the 220x95 and 220x140 layout groups; accessed 2026-08-02"
688
+ notes: >-
689
+ Driving-instruction motorcycles — the motorcycle plate carrying 学. Listed
690
+ separately from the car version because the standard lists it separately
691
+ and because the plate dimensions differ, which is the § 2.3 test.
692
+
693
+ - id: cn-police-car-2007
694
+ class: police
695
+ categories: [car, van, truck, bus]
696
+ period: { start: 2007 }
697
+ period_evidence: enabling-instrument
698
+ standard_edition: "GA 36-2007 表 1 row 8"
699
+ matching: recall-only
700
+ format:
701
+ pattern: "L9999"
702
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
703
+ han:
704
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
705
+ suffix: { han: 警, script: Han, pinyin: "jǐng", role: classification, colour: red }
706
+ printed: "<province>·<office letter><serial>警"
707
+ printed_example: "京A·1234警"
708
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}警\z'
709
+ design:
710
+ plate: { w: 440, h: 140, unit: mm }
711
+ count: 2
712
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
713
+ foreground: "#000000"
714
+ accent: { color: "#D7000F", element: "the 警 character", hex_basis: observed, named_colour: "GB/T 3181-1995 大红 (R03), per GA 36-2007 § 6.8.1" }
715
+ border: { color: "#000000" }
716
+ band: { side: none }
717
+ emblem: { present: false }
718
+ rear_differs: true
719
+ rear_differs_note: "GA 36-2007 § 5.1.3 gives the police car plate SEPARATE front and rear layouts (图 3 / 图 4) at the same 440x140 size — the drawings are not reproduced in the government republication, so what differs is a recorded gap"
720
+ region_encoding:
721
+ type: province-and-office
722
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
723
+ sources:
724
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 8: 警用汽车号牌 / 白底黑字,红'警'字黑框线 / 汽车类警车; § 5.1.3 (separate front and rear layouts); 前言 '增加了警用汽车号牌和警用摩托车号牌式样' — the evidence for period.start 2007; accessed 2026-08-02"
725
+ - "https://www.gov.cn/gongbao/2026/issue_12586/202602/content_7059934.html # 《警车管理规定》 as republished with 公安部令第174号 (公布 2025-11-25, 施行 2025-12-29): 第七条 '警车号牌分为汽车、摩托车两种。均为铝质材,底色为白底反光。号牌应当符合《警车号牌式样》和机动车号牌的行业标准。'; 第十一条 (car: one plate front and one rear; motorcycle: one at the rear); 第十条 (issued by PROVINCIAL-level traffic management, not the local office); accessed 2026-08-02"
726
+ notes: >-
727
+ Police cars. period.start 2007 is instrument-dated on GA 36-2007's own
728
+ 前言, which lists "增加了警用汽车号牌和警用摩托车号牌式样" among that
729
+ edition's changes — the police plate LAYOUTS are a 2007 addition to the
730
+ standard. 《警车管理规定》第七条 independently confirms the white
731
+ retroreflective ground and the two-type split, and 第十条 adds a fact GA 36
732
+ does not carry: police plates are issued by the PROVINCIAL public security
733
+ department's traffic management arm, so the issuing-office letter on a
734
+ police plate does not decode the way a civil one does. The 《警车号牌式样》
735
+ annex to 公安部令第174号 is marked "(以上附件略,详情请登录公安部网站)" in
736
+ the Gazette and www.mps.gov.cn was unreachable — the exact serial grammar
737
+ is therefore a recorded gap and this series is recall-only.
738
+ NOT ASSERTED: the widely repeated claim that police-adjacent civil plates
739
+ use the office letter "O" as a de-facto police segment. GA 36-2007
740
+ Annex A does give O to the provincial department's own vehicle office in
741
+ every province, which is a real and sourced fact recorded in the decode
742
+ file; every further claim about O is folklore (dossier F-3).
743
+
744
+ - id: cn-police-motorcycle-2007
745
+ class: police
746
+ categories: [motorcycle]
747
+ period: { start: 2007 }
748
+ period_evidence: enabling-instrument
749
+ standard_edition: "GA 36-2007 表 1 row 14"
750
+ matching: recall-only
751
+ format:
752
+ pattern: "L9999"
753
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
754
+ han:
755
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
756
+ suffix: { han: 警, script: Han, pinyin: "jǐng", role: classification, colour: red }
757
+ printed: "<province><office letter><serial>警"
758
+ printed_example: "京A1234警"
759
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}警\z'
760
+ design:
761
+ plate: { w: 220, h: 140, unit: mm }
762
+ count: 1
763
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
764
+ foreground: "#000000"
765
+ accent: { color: "#D7000F", element: "the 警 character", hex_basis: observed }
766
+ border: { color: "#000000" }
767
+ band: { side: none }
768
+ emblem: { present: false }
769
+ rear_differs: false
770
+ note: "ONE plate, at the rear — 表 1 row 14's count column reads 1, and 《警车管理规定》第十一条 says '摩托车号牌应当在车身后部安装一面'. The police motorcycle is the one motorcycle class with no front plate in the 2007 text."
771
+ region_encoding:
772
+ type: province-and-office
773
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
774
+ sources:
775
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 14: 警用摩托车号牌 / 220x140 / 白底黑字,红'警'字黑框线 / 1 / 摩托车类警车; § 5.4.3; 前言 (2007 addition); accessed 2026-08-02"
776
+ - "https://www.gov.cn/gongbao/2026/issue_12586/202602/content_7059934.html # 《警车管理规定》第七条 and 第十一条; accessed 2026-08-02"
777
+ notes: >-
778
+ Police motorcycles. The only class in 表 1 whose count column reads 1 among
779
+ the motorcycle rows, and the rule-level confirmation is in the police
780
+ regulation itself. Same serial-width gap as the police car plate.
781
+
782
+ - id: cn-embassy-car-1992
783
+ class: diplomatic
784
+ categories: [car, van]
785
+ period: { start: 1992 }
786
+ period_evidence: instrument-in-force
787
+ standard_edition: "GA 36-2007 表 1 row 4"
788
+ # RECALL-ONLY, and this one is the most deliberate in the file. GA 36-2007
789
+ # § 5.1.2 gives the EMBASSY car plate a layout of its own (图 2), separate
790
+ # from the single layout (图 1) that every other 440x140 class shares. That
791
+ # separation is the strongest evidence in the readable text that the embassy
792
+ # registration number is NOT built on the province + office-letter pattern —
793
+ # and the readable text never says what it IS built on. The regex is
794
+ # therefore a deliberately wide digits-only shape and a match is a shape hit.
795
+ matching: recall-only
796
+ format:
797
+ pattern: "999999"
798
+ regex: '\A\d{4,6}\z'
799
+ han:
800
+ prefix: none
801
+ prefix_note: >-
802
+ NO province character. This is the one civil class where the leading
803
+ element of GA 36-2007 § 3.2's structure is absent — § 5.1.2's separate
804
+ layout is the evidence, and Annex C.4's drawing (not reproduced) would
805
+ settle it.
806
+ suffix: { han: 使, script: Han, pinyin: "shǐ", role: classification, colour: red }
807
+ printed: "<digits>使"
808
+ printed_example: "123456使"
809
+ regex_informational: '\A\d{4,6}使\z'
810
+ design:
811
+ plate: { w: 440, h: 140, unit: mm }
812
+ count: 2
813
+ background: { color: "#000000", finish: retroreflective, hex_basis: observed }
814
+ foreground: "#FFFFFF"
815
+ accent: { color: "#D7000F", element: "the 使 character", hex_basis: observed, named_colour: "GB/T 3181-1995 大红 (R03)" }
816
+ border: { color: "#FFFFFF", note: "白框线" }
817
+ band: { side: none }
818
+ emblem: { present: false }
819
+ rear_differs: false
820
+ region_encoding: none
821
+ region_encoding_note: "No province character and no issuing-office letter — an embassy plate encodes no Chinese geography at all."
822
+ sources:
823
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 4: 使馆汽车号牌 / 黑底白字,红'使'、'领'字白框线 / 驻华使馆的汽车 (dimensions and count merged from row 3); § 5.1.2 (the embassy plate has its OWN 440x140 layout, 图 2); § 5.10 (the 使 character); 前言 (the 使 glyph was ADDED in this edition); accessed 2026-08-02"
824
+ notes: >-
825
+ Embassy cars. Black ground, white characters, a RED 使, white keyline,
826
+ 440x140, two plates. Everything in the previous sentence is sourced;
827
+ the SERIAL GRAMMAR IS NOT. The commonly repeated form — a three-digit
828
+ mission/country code followed by a three-digit serial — has no primary in
829
+ the accessible record and is NOT asserted here (dossier folklore F-2);
830
+ the regex is a deliberately wide four-to-six-digit shape so that a
831
+ consumer gets recall without being told a lie about validity.
832
+ period_evidence is instrument-in-force, not enabling-instrument: China had
833
+ diplomatic plates long before 2007, but GA 36-2007's 前言 records the 使
834
+ glyph as an addition to that edition's character annex, so the only
835
+ instrument date available documents an older practice.
836
+
837
+ - id: cn-embassy-motorcycle-1992
838
+ class: diplomatic
839
+ categories: [motorcycle]
840
+ period: { start: 1992 }
841
+ period_evidence: instrument-in-force
842
+ standard_edition: "GA 36-2007 表 1 row 11"
843
+ matching: recall-only
844
+ format:
845
+ pattern: "999999"
846
+ regex: '\A\d{4,6}\z'
847
+ han:
848
+ prefix: none
849
+ suffix: { han: 使, script: Han, pinyin: "shǐ", role: classification, colour: red }
850
+ printed: "<digits>使"
851
+ regex_informational: '\A\d{4,6}使\z'
852
+ design:
853
+ plate: { w: 220, h: 95, unit: mm, position: front }
854
+ plate_variants:
855
+ - { w: 220, h: 140, unit: mm, position: rear, note: "§ 5.4.2 gives the embassy motorcycle REAR plate its own layout (图 8), separate from the other motorcycle rear plates (图 7)" }
856
+ count: 2
857
+ background: { color: "#000000", finish: retroreflective, hex_basis: observed }
858
+ foreground: "#FFFFFF"
859
+ accent: { color: "#D7000F", element: "the 使 character", hex_basis: observed }
860
+ border: { color: "#FFFFFF" }
861
+ band: { side: none }
862
+ emblem: { present: false }
863
+ rear_differs: true
864
+ region_encoding: none
865
+ sources:
866
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 11: 使馆摩托车号牌 / 黑底白字,红'使'、'领'字白框线 / 驻华使馆的摩托车; §§ 5.3, 5.4.2; accessed 2026-08-02"
867
+ notes: >-
868
+ Embassy motorcycles. Same grammar gap as the embassy car plate, hence
869
+ recall-only. Modelled separately because § 5.4.2 gives it a distinct rear
870
+ layout and the dimensions differ.
871
+
872
+ - id: cn-consulate-car-1992
873
+ class: consular
874
+ categories: [car, van]
875
+ period: { start: 1992 }
876
+ period_evidence: enabling-instrument
877
+ standard_edition: "GA 36-2007 表 1 row 5"
878
+ matching: recall-only
879
+ format:
880
+ pattern: "L9999"
881
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
882
+ han:
883
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
884
+ suffix: { han: 领, script: Han, pinyin: "lǐng", role: classification, colour: red }
885
+ printed: "<province>·<office letter><serial>领"
886
+ printed_example: "沪A·1234领"
887
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}领\z'
888
+ design:
889
+ plate: { w: 440, h: 140, unit: mm }
890
+ count: 2
891
+ background: { color: "#000000", finish: retroreflective, hex_basis: observed }
892
+ foreground: "#FFFFFF"
893
+ accent: { color: "#D7000F", element: "the 领 character", hex_basis: observed, named_colour: "GB/T 3181-1995 大红 (R03)" }
894
+ border: { color: "#FFFFFF" }
895
+ band: { side: none }
896
+ emblem: { present: false }
897
+ rear_differs: false
898
+ region_encoding:
899
+ type: province-and-office
900
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
901
+ note: >-
902
+ THE STRUCTURAL DIFFERENCE FROM THE EMBASSY PLATE, and it is sourced:
903
+ § 5.1.1 puts 领馆汽车号牌 in the SHARED 440x140 layout group (图 1)
904
+ together with the small-car, cross-boundary and driving-school plates,
905
+ while § 5.1.2 gives 使馆汽车号牌 a layout of its OWN (图 2). Consular
906
+ plates therefore carry the province character and the issuing-office
907
+ letter and decode geographically; embassy plates do not.
908
+ sources:
909
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 5: 领馆汽车号牌 / 黑底白字,红'使'、'领'字白框线 / 驻华领事馆的汽车; § 5.1.1 (shared layout group — the geographic decode); § 5.10 (the 领 character); accessed 2026-08-02"
910
+ notes: >-
911
+ Consular cars. The consulate's host city is decodable because the plate is
912
+ built on the ordinary province + office-letter frame — § 5.1.1's layout
913
+ grouping is the evidence, and it is the single most useful sourced fact
914
+ about Chinese diplomatic plates. Serial width unpinned, hence recall-only.
915
+ Unlike 使, the 领 character is NOT in GA 36-2007's list of characters that
916
+ edition added, so this class is dated to the 1992 enabling instrument.
917
+
918
+ - id: cn-consulate-motorcycle-1992
919
+ class: consular
920
+ categories: [motorcycle]
921
+ period: { start: 1992 }
922
+ period_evidence: enabling-instrument
923
+ standard_edition: "GA 36-2007 表 1 row 12"
924
+ matching: recall-only
925
+ format:
926
+ pattern: "L9999"
927
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
928
+ han:
929
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
930
+ suffix: { han: 领, script: Han, pinyin: "lǐng", role: classification, colour: red }
931
+ printed: "<province><office letter><serial>领"
932
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}领\z'
933
+ design:
934
+ plate: { w: 220, h: 95, unit: mm, position: front }
935
+ plate_variants:
936
+ - { w: 220, h: 140, unit: mm, position: rear }
937
+ count: 2
938
+ background: { color: "#000000", finish: retroreflective, hex_basis: observed }
939
+ foreground: "#FFFFFF"
940
+ accent: { color: "#D7000F", element: "the 领 character", hex_basis: observed }
941
+ border: { color: "#FFFFFF" }
942
+ band: { side: none }
943
+ emblem: { present: false }
944
+ rear_differs: true
945
+ region_encoding:
946
+ type: province-and-office
947
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
948
+ sources:
949
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 12: 领馆摩托车号牌; §§ 5.3, 5.4.1 (the consular motorcycle sits in the SHARED motorcycle layout groups, unlike the embassy motorcycle); accessed 2026-08-02"
950
+ notes: >-
951
+ Consular motorcycles. Note the parallel with the cars: § 5.4.1 puts the
952
+ consular motorcycle rear plate in the shared layout (图 7) while § 5.4.2
953
+ gives the embassy motorcycle its own (图 8).
954
+
955
+ - id: cn-hkmacau-crossborder-2007
956
+ class: standard
957
+ class_note: >-
958
+ 港澳入出境车号牌 is a cross-boundary regime for vehicles registered in Hong
959
+ Kong or Macau that enter the mainland; _meta/classes.yml has no term for
960
+ it (`temporary` is wrong — these are multi-year permits; `export` and
961
+ `transit` are wrong in the opposite direction). `standard` is used and the
962
+ dossier requests a `cross-border` vocabulary addition.
963
+ categories: [car, van, truck, bus]
964
+ period: { start: 2007 }
965
+ period_evidence: instrument-in-force
966
+ standard_edition: "GA 36-2007 表 1 row 6"
967
+ matching: recall-only
968
+ format:
969
+ pattern: "Z9999"
970
+ regex: '\AZ[- ]?[A-Z0-9]{4,5}\z'
971
+ charset:
972
+ office_letter: [Z]
973
+ notes: >-
974
+ The office letter is FIXED at Z by Annex A footnote 9, verbatim:
975
+ "表示广东省公安厅交通管理局车辆管理所核发的港澳入出境车号牌使用的发牌机关
976
+ 代号为"Z"。" This is the only class in the file whose issuing-office
977
+ letter is a literal, which is why it is written into the pattern.
978
+ han:
979
+ prefix: { han: 粤, role: province, script: Han, fixed: true, note: "always Guangdong — the plates are issued by 广东省公安厅交通管理局车辆管理所" }
980
+ suffix: { han: [港, 澳], script: Han, role: classification, note: "港 for a Hong Kong vehicle, 澳 for a Macau vehicle (§ 5.10); the printed Latin/digit portion is identical, which is why one series carries both" }
981
+ printed: "粤Z·<serial>港 or 粤Z·<serial>澳"
982
+ printed_example: "粤Z·1234港"
983
+ regex_informational: '\A粤Z[·\- ]?[A-Z0-9]{4,5}[港澳]\z'
984
+ design:
985
+ plate: { w: 440, h: 140, unit: mm }
986
+ count: 2
987
+ background: { color: "#000000", finish: retroreflective, hex_basis: observed }
988
+ foreground: "#FFFFFF"
989
+ accent: { color: "#FFFFFF", element: "the 港/澳 character", hex_basis: observed, note: "WHITE, not red — 表 1 row 6 reads 黑底白字,白'港'、'澳'字白框线, which is exactly how this class is told apart from the diplomatic plates that share its black ground" }
990
+ border: { color: "#FFFFFF" }
991
+ band: { side: none }
992
+ emblem: { present: false }
993
+ rear_differs: false
994
+ region_encoding:
995
+ type: fixed
996
+ note: "粤 + Z always; the plate encodes the ISSUING regime, not a Guangdong location."
997
+ sources:
998
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 6: 港澳入出境车号牌 / 黑底白字,白'港'、'澳'字白框线 / 港澳地区入出内地的汽车; § 5.1.1 (shared 440x140 layout); § 5.10 (the 港/澳 characters); 附录 A footnote 9 (the Z code); 前言 ('增加了...'港'、'澳'...' — the evidence for period.start 2007); accessed 2026-08-02"
999
+ notes: >-
1000
+ Hong Kong and Macau vehicles entering the mainland. period.start 2007 is
1001
+ an instrument-in-force date: GA 36-2007's 前言 lists 港 and 澳 among the
1002
+ characters that edition added, but the regime itself is older — the widely
1003
+ repeated claim that 粤Z港/粤Z澳 replaced the 86-pattern "广东02"/"广东03"
1004
+ plates in 2001 has no primary and is NOT asserted (dossier folklore F-4).
1005
+ Mainland-registered vehicles crossing the OTHER way are outside GA 36
1006
+ entirely. Serial width unpinned, hence recall-only; the fixed Z is
1007
+ sourced, and it makes this the most identifiable Chinese plate of all.
1008
+
1009
+ # =========================================================================
1010
+ # NEW ENERGY VEHICLES. The one part of the current standard whose creation is
1011
+ # documented by accessible primaries — the Ministry's own announcements —
1012
+ # because GA 36-2018's text is withheld.
1013
+ # =========================================================================
1014
+
1015
+ - id: cn-nev-small-2016
1016
+ class: electric
1017
+ categories: [car, van]
1018
+ period:
1019
+ start: 2016
1020
+ rollout:
1021
+ pilot: "2016-12-01 — 上海、南京、无锡、济南、深圳"
1022
+ expansion_1: "2017-11 — plus 河北保定、吉林长春、福建福州、山东青岛、河南郑州、广东中山、广西柳州、重庆、四川成都、云南昆明"
1023
+ expansion_2: "by end 2017 — every municipality, provincial capital and autonomous-region capital, plus at least one or two further cities per province"
1024
+ national: "first half of 2018 — '全国所有城市全面启用新号牌'"
1025
+ national_note: >-
1026
+ The Ministry's August 2017 announcement gives the national step as a
1027
+ HALF-YEAR, not a date. The specific date 2018-06-15 that circulates
1028
+ widely has no primary in the accessible record and is not asserted
1029
+ (dossier folklore F-5).
1030
+ period_evidence: enabling-instrument
1031
+ standard_edition: "GA 36-2018 incorporates the NEV plates; its text is withheld, so every claim here is the Ministry's own announcements"
1032
+ matching: strict
1033
+ format:
1034
+ pattern: "L999999"
1035
+ regex: '\A[A-Z][- ]?[A-Z0-9]{6}\z'
1036
+ regex_strict: '\A[A-Z][- ]?[0-9A-HJ-NP-Z]{6}\z'
1037
+ regex_strict_note: >-
1038
+ The strict twin carries ONLY the I/O exclusion, and that is carried
1039
+ forward from GA 36-2007 § 5.9.1 b)/c) — it is NOT verified against
1040
+ GA 36-2018, whose text is withheld. It deliberately does NOT encode a
1041
+ letter POSITION: see the powertrain note below.
1042
+ charset:
1043
+ serial_positions: 6
1044
+ serial_letters_excluded: [I, O]
1045
+ notes: "six positions is sourced verbatim; the position rule is not"
1046
+ han:
1047
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
1048
+ suffix: none
1049
+ printed: "<province><office letter><6-position serial>"
1050
+ printed_example: "京AD12345"
1051
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{6}\z'
1052
+ design:
1053
+ background:
1054
+ color: "#A9D8A0"
1055
+ gradient: { from: "#F5FAF2", to: "#57B948", note: "渐变绿 — a graded green; the Ministry names the colour and numbers nothing" }
1056
+ finish: retroreflective
1057
+ hex_basis: observed
1058
+ foreground: "#000000"
1059
+ band: { side: none }
1060
+ emblem: { present: true, kind: mark, note: "专用标识 — the dedicated NEV identifier mark (MPS 2017-08-13 announcement), a plug-and-E icon AT the separator position, not a heraldic emblem. Flipped from false (wave-3 render pass): present:false was written when emblem meant heraldry; the mark IS on every issued NEV plate — Commons 小型新能源汽车号牌示例.jpg, credited to the MPS design explanation itself." }
1061
+ marking: { note: "'增加了专用标识' — the Ministry's announcement records a dedicated NEV identifier mark on the plate; the readable sources do not describe or place it" }
1062
+ rear_differs: false
1063
+ dimensions_status: >-
1064
+ DELIBERATELY ABSENT. GA 36-2007 predates this class and GA 36-2018's
1065
+ text is withheld, so no plate size for the NEV plate is sourced. The
1066
+ 480x140 mm figure that circulates is not asserted (dossier folklore
1067
+ F-6). Note that the emergency-rescue CAR plate, created two years later
1068
+ by 国办发〔2018〕114号, IS 480x140 mm and IS sourced — which makes the
1069
+ NEV figure plausible and still unproven.
1070
+ region_encoding:
1071
+ type: province-and-office
1072
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
1073
+ sources:
1074
+ - "https://web.archive.org/web/20161122160811/http://www.mps.gov.cn/n2254098/n4904352/c5550094/content.html # 公安部交通管理局, 2016-11-21, '新能源汽车专用号牌将在5城市试点启用': '自2016年12月1日起,上海、南京、无锡、济南、深圳5个城市将率先试点启用新能源汽车号牌'; '小型新能源汽车号牌底色采用渐变绿色,大型新能源汽车号牌底色采用黄绿双拼色'; '与普通汽车号牌相比,新能源汽车号牌号码由5位升为6位'; '字母“D”代表纯电动汽车,字母“F”代表非纯电动汽车(包括插电式混合动力和燃料电池汽车等)'; original www.mps.gov.cn URL now HTTP 521; accessed via archive 2026-08-02"
1075
+ - "https://web.archive.org/web/20181024152732/http://www.mps.gov.cn/n2253534/n2253535/n2253537/c5757013/content.html # 公安部交通管理局, 2017-08-13, '公安部将在全国逐步推广新能源汽车专用号牌': the full rollout ladder quoted in period.rollout, verbatim, including '2018年上半年,全国所有城市全面启用新号牌'; also '新号牌签注唯一的生产序列标识' and the 50-选-1 random draw; accessed 2026-08-02"
1076
+ - "https://hbba.sacinfo.org.cn/stdDetail/328b77ee80fdee1dee33d20e83d01d2ad128f380aa93c7dbe5c58c67d9d2075e # GA 36-2018 register entry — the standard that carries the NEV plate into the mandatory standard, 实施 2018-05-01, text withheld; accessed 2026-08-02"
1077
+ notes: >-
1078
+ The small new-energy vehicle plate — the graded-green plate. FOUR THINGS
1079
+ ARE SOURCED VERBATIM and they are the four that matter: the serial went
1080
+ from five positions to SIX; the small-vehicle ground is 渐变绿 (graded
1081
+ green) while the large-vehicle ground is 黄绿双拼 (a yellow-green split);
1082
+ the letter D means 纯电动 (battery electric) and F means 非纯电动
1083
+ (plug-in hybrid, fuel cell and the rest); and the plate carries a
1084
+ dedicated identifier mark. THE POSITION OF THAT LETTER IS NOT SOURCED.
1085
+ Every popular account says the letter is the FIRST serial position on a
1086
+ small NEV plate and the LAST on a large one; no Ministry document, no
1087
+ instrument and no standard text in the accessible record says so, and this
1088
+ dataset does not assert it (dossier folklore F-7). It is the single
1089
+ highest-value verifier target for China: pin it, and this series' regex
1090
+ tightens to a genuinely diagnostic expression in one line. period.start
1091
+ 2016 is the enabling instrument — the Ministry's announcement creating the
1092
+ pilot — with the whole rollout ladder recorded in period.rollout rather
1093
+ than averaged into one date, which is exactly the Mercosur pattern
1094
+ PRD-PLATES § 2.2 anticipates.
1095
+
1096
+ - id: cn-nev-large-2016
1097
+ class: electric
1098
+ categories: [truck, bus]
1099
+ period:
1100
+ start: 2016
1101
+ rollout:
1102
+ pilot: "2016-12-01 — 上海、南京、无锡、济南、深圳"
1103
+ national: "first half of 2018"
1104
+ period_evidence: enabling-instrument
1105
+ matching: strict
1106
+ format:
1107
+ pattern: "L999999"
1108
+ regex: '\A[A-Z][- ]?[A-Z0-9]{6}\z'
1109
+ regex_strict: '\A[A-Z][- ]?[0-9A-HJ-NP-Z]{6}\z'
1110
+ han:
1111
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
1112
+ suffix: none
1113
+ printed: "<province><office letter><6-position serial>"
1114
+ printed_example: "京A12345D"
1115
+ printed_example_note: "illustrative only — the example places the powertrain letter last because that is the reported convention for large NEV plates, and the convention is NOT asserted as fact anywhere in this record"
1116
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{6}\z'
1117
+ design:
1118
+ background:
1119
+ color: "#57B948"
1120
+ split: { left: "#FFD500", right: "#57B948", note: "黄绿双拼色 — a two-tone yellow/green ground; the proportions are not sourced" }
1121
+ finish: retroreflective
1122
+ hex_basis: observed
1123
+ foreground: "#000000"
1124
+ band: { side: none }
1125
+ emblem: { present: true, kind: mark, note: "same 专用标识 as cn-nev-small-2016 — Commons 大型新能源汽车号牌示例.jpg, same MPS credit" }
1126
+ rear_differs: false
1127
+ dimensions_status: "absent for the same reason as the small NEV plate"
1128
+ region_encoding:
1129
+ type: province-and-office
1130
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
1131
+ sources:
1132
+ - "https://web.archive.org/web/20161122160811/http://www.mps.gov.cn/n2254098/n4904352/c5550094/content.html # 公安部交通管理局, 2016-11-21: '大型新能源汽车号牌底色采用黄绿双拼色'; the six-position serial; the D/F meanings; accessed 2026-08-02"
1133
+ - "https://web.archive.org/web/20181024152732/http://www.mps.gov.cn/n2253534/n2253535/n2253537/c5757013/content.html # 公安部交通管理局, 2017-08-13: national rollout; accessed 2026-08-02"
1134
+ notes: >-
1135
+ The large new-energy vehicle plate — the yellow-and-green split plate,
1136
+ for the vehicle sizes that would otherwise take the yellow large-vehicle
1137
+ plate. Modelled as its own series rather than a colour variant because the
1138
+ Ministry names the two grounds separately and because the two are scoped
1139
+ to different vehicle sizes; the split proportions and the plate dimensions
1140
+ are unsourced. The powertrain-letter position caveat on
1141
+ cn-nev-small-2016 applies here identically and with the opposite reported
1142
+ convention, which is precisely why neither is asserted.
1143
+
1144
+ # =========================================================================
1145
+ # TEMPORARY REGIMES. Paper plates, and the only Chinese classes whose ground
1146
+ # colours are NUMBERED in a public standard (GB/T 3181-1995 designations).
1147
+ # =========================================================================
1148
+
1149
+ - id: cn-temporary-travel-1992
1150
+ class: temporary
1151
+ categories: [car, van, truck, bus, motorcycle, moped, trailer, machine]
1152
+ period: { start: 1992 }
1153
+ period_evidence: enabling-instrument
1154
+ standard_edition: "GA 36-2007 表 1 row 16 (the 式样 was MODIFIED in that edition — 前言: '修改了临时行驶车号牌式样')"
1155
+ matching: recall-only
1156
+ format:
1157
+ pattern: "L99999"
1158
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
1159
+ derivation_note: >-
1160
+ The registration number's ELEMENTS come from GA 36-2007 § 3.2 and the
1161
+ widths from § 5.9's four- and five-position serial types; the class's own
1162
+ grammar lives in Annex C.16's drawings, which the government
1163
+ republication reproduces as headings only. The regex is therefore a
1164
+ derivation, not a transcription, and the series is recall-only.
1165
+ han:
1166
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
1167
+ suffix: { han: [试, 超], script: Han, role: classification, optional: true, note: "试 on a TEST vehicle's temporary plate, 超 on an over-dimension/over-mass special vehicle's; absent on the two ordinary variants" }
1168
+ printed: "<province><office letter><serial>[试|超]"
1169
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}[试超]?\z'
1170
+ design:
1171
+ plate: { w: 220, h: 140, unit: mm }
1172
+ count: 1
1173
+ background: { color: "#CFE4F5", finish: paper, hex_basis: observed, named_colour: "GB/T 3181-1995 天(酞)蓝 PB09 — the ground TINT of the within-jurisdiction variant, per GA 36-2007 § 6.4 c)" }
1174
+ foreground: "#000000"
1175
+ border: { color: "#000000" }
1176
+ band: { side: none }
1177
+ emblem: { present: false }
1178
+ rear_differs: false
1179
+ material: "125 g white card (§ 6.1.1.3), placed inside the windscreen on the right (§ 7.1 e)) — not fixed, not fastened"
1180
+ variants:
1181
+ - class: temporary
1182
+ design: { background: { color: "#E3C08A", finish: paper, hex_basis: observed, named_colour: "GB/T 3181-1995 棕黄 YR06" }, foreground: "#000000" }
1183
+ note: >-
1184
+ BROWN-YELLOW TINT, three uses distinguished only by the classification
1185
+ character: cross-jurisdiction movement (no character), a TEST vehicle
1186
+ (试), and an over-dimension/over-mass special vehicle (超). The blue
1187
+ tint above is for movement WITHIN one administrative jurisdiction.
1188
+ A tint-and-character variant of one format and period, so a sub-entry
1189
+ per PRD-PLATES § 2.3.
1190
+ sources:
1191
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 16 (all four uses and their tints); § 6.4 c)-d) (the two GB/T 3181-1995 colour designations); accessed 2026-08-02"
1192
+ validity:
1193
+ note: >-
1194
+ Set by rule, not by standard. 《机动车登记规定》(公安部令第164号)
1195
+ 第四十七条: 30 days for an unsold vehicle, a newly acquired but
1196
+ unregistered vehicle, or a new vehicle for export sale; SIX MONTHS for
1197
+ research and type testing; 90 days for the over-dimension special
1198
+ vehicles that cannot be registered at all; and 15 days where the plate
1199
+ itself cannot be made in time. No more than three temporary plates for
1200
+ the first two cases, one for the export case; never longer than the
1201
+ compulsory insurance; and void three days after the permanent plates
1202
+ arrive. 第四十八条 adds a separate temporary plate for intelligent
1203
+ connected vehicle road testing and demonstration, matching the test
1204
+ permit and capped at six months.
1205
+ region_encoding:
1206
+ type: province-and-office
1207
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
1208
+ sources:
1209
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 16: 临时行驶车号牌 / 220x140 / 天(酞)蓝底纹黑字黑框线 (行政辖区内) and 棕黄底纹黑字黑框线 (跨行政辖区 / 试 / 超) / 1; §§ 5.4.5, 6.1.1.3, 6.4 c)-d), 7.1 e); § 5.10 (试 and 超); accessed 2026-08-02"
1210
+ - "https://www.gov.cn/gongbao/content/2022/content_5682413.htm # 《机动车登记规定》第四十六条-第四十八条: the five qualifying situations and the whole validity ladder quoted above; accessed 2026-08-02"
1211
+ notes: >-
1212
+ The domestic temporary-travel plate: a printed card, one per vehicle,
1213
+ behind the windscreen. It is the only Chinese class whose colours are
1214
+ NUMBERED in a public standard, because paper printing is specified against
1215
+ GB/T 3181-1995 rather than against the withheld retroreflective-film
1216
+ standard — which is why its two hexes are the only ones in this file with a
1217
+ named colour designation behind them. Its serial grammar is derived rather
1218
+ than transcribed, so it is recall-only. GA 36-2007's 前言 records that this
1219
+ edition MODIFIED the temporary plate's 式样, so the 2007 description is not
1220
+ necessarily the 1992 one and certainly not necessarily the 2018 one.
1221
+
1222
+ - id: cn-temporary-entry-car-1992
1223
+ class: temporary
1224
+ categories: [car, van, truck, bus]
1225
+ period: { start: 1992 }
1226
+ period_evidence: enabling-instrument
1227
+ standard_edition: "GA 36-2007 表 1 row 17 (式样 MODIFIED in that edition per its 前言)"
1228
+ matching: recall-only
1229
+ format:
1230
+ pattern: "L99999"
1231
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
1232
+ derivation_note: "as on cn-temporary-travel-1992 — elements from § 3.2, widths from § 5.9, class grammar in Annex C.17's drawings which are not reproduced"
1233
+ han:
1234
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
1235
+ suffix: none
1236
+ printed: "<province><office letter><serial>, with the permitted area/route and expiry printed on the plate"
1237
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}\z'
1238
+ design:
1239
+ plate: { w: 220, h: 140, unit: mm }
1240
+ count: 1
1241
+ background: { color: "#CFE4F5", finish: paper, hex_basis: observed, named_colour: "GB/T 3181-1995 天(酞)蓝 PB09 for the WITHIN-AREA variant (§ 6.4 a)); 棕黄 YR06 for the cross-area variant (§ 6.4 b))" }
1242
+ foreground: "#000000"
1243
+ border: { color: "#000000" }
1244
+ band: { side: none }
1245
+ emblem: { present: false }
1246
+ rear_differs: false
1247
+ material: "200-220 g watermarked paper, laminated (§ 6.1.1.2); placed inside the windscreen on the right (§ 7.1 e))"
1248
+ note: "表 1 row 17's colour cell reads 白底棕蓝色专用底纹,黑字黑边框 — a white ground carrying a dedicated brown/blue security tint"
1249
+ validity:
1250
+ note: >-
1251
+ 《临时入境机动车和驾驶人管理规定》(公安部令第90号) 第五条, verbatim:
1252
+ "临时入境机动车号牌为纸质号牌,载明允许行驶的区域、线路和有效期。临时入境
1253
+ 机动车号牌背面为临时入境机动车行驶证,签注车辆类型、号牌号码、厂牌型号、行驶
1254
+ 区域或者线路、有效期等信息。" — the plate IS the vehicle licence, printed
1255
+ on its back. 第六条: validity matches the entry approval and never
1256
+ exceeds three months, and may not be extended. 第七条: the car plate goes
1257
+ inside the windscreen on the right; the motorcycle plate is carried with
1258
+ the vehicle. 第二十二条: printed centrally by the Ministry.
1259
+ region_encoding:
1260
+ type: province-and-office
1261
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
1262
+ note: "issued by the municipal or prefecture-level traffic management department at the point of entry or the point of departure (公安部令第90号 第三条)"
1263
+ sources:
1264
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 17: 临时入境汽车号牌 / 220x140 / 白底棕蓝色专用底纹,黑字黑边框 / 临时入境汽车; §§ 5.4.4, 6.1.1.2, 6.4 a)-b), 7.1 e); accessed 2026-08-02"
1265
+ - "http://www.gov.cn/gongbao/content/2007/content_772748.htm # 《临时入境机动车和驾驶人管理规定》 (公安部令第90号, 施行 2007-01-01, replacing 公安部令第4号 of 1989-05-01): 第三条, 第五条, 第六条, 第七条, 第二十二条, and 第二十一条 (Hong Kong, Macau and Taiwan vehicles are handled 参照 this rule); accessed 2026-08-02"
1266
+ notes: >-
1267
+ The temporary-entry plate for a foreign-registered car. It is a laminated
1268
+ watermarked card whose REVERSE is the vehicle licence, it states the area
1269
+ or route the vehicle may use, and it never lasts more than three months.
1270
+ Two ground tints, distinguished by whether the vehicle stays inside one
1271
+ area or crosses between areas — the same blue/brown-yellow logic as the
1272
+ domestic temporary plate, and sourced to the same clause of GA 36-2007.
1273
+ Hong Kong, Macau and Taiwan vehicles on organised trips are handled by
1274
+ reference to this rule (公安部令第90号 第二十一条), which is a different
1275
+ regime from the 粤Z 港/澳 cross-boundary plates above.
1276
+
1277
+ - id: cn-temporary-entry-motorcycle-1992
1278
+ class: temporary
1279
+ categories: [motorcycle]
1280
+ period: { start: 1992 }
1281
+ period_evidence: enabling-instrument
1282
+ standard_edition: "GA 36-2007 表 1 row 18"
1283
+ matching: recall-only
1284
+ format:
1285
+ pattern: "L99999"
1286
+ regex: '\A[A-Z][- ]?[A-Z0-9]{4,5}\z'
1287
+ derivation_note: "as on the temporary-entry car plate"
1288
+ han:
1289
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
1290
+ suffix: none
1291
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][A-Z][·\- ]?[A-Z0-9]{4,5}\z'
1292
+ design:
1293
+ plate: { w: 88, h: 60, unit: mm }
1294
+ count: 1
1295
+ background: { color: "#CFE4F5", finish: paper, hex_basis: observed, named_colour: "GB/T 3181-1995 天(酞)蓝 PB09 / 棕黄 YR06 as for the car plate" }
1296
+ foreground: "#000000"
1297
+ border: { color: "#000000" }
1298
+ band: { side: none }
1299
+ emblem: { present: false }
1300
+ rear_differs: false
1301
+ note: >-
1302
+ THE SMALLEST PLATE IN THE CHINESE RANGE at 88x60 mm, and the only one
1303
+ whose dimensional tolerance the standard states in absolute terms
1304
+ (§ 6.6.1: +/-0.5 mm, where every other size gets +/-0.5%). Annex B.5
1305
+ makes the reason plain: its characters are the temporary-entry car
1306
+ plate's glyphs reduced 2.5 times. Carried with the vehicle rather than
1307
+ displayed (§ 7.1 e); 公安部令第90号 第七条).
1308
+ validity: { note: "as for the temporary-entry car plate — 公安部令第90号 第六条, maximum three months, not extendable" }
1309
+ region_encoding:
1310
+ type: province-and-office
1311
+ decode: ["plates/_decode/cn-provinces.yml", "plates/_decode/cn-issuing-offices.yml"]
1312
+ sources:
1313
+ - "https://web.archive.org/web/20150701102419/http://www.hngy.gov.cn/sitepublish/site1/wsbs/lyfwzl/jtfw/jdc/jdcfw/content_25106.html # GA 36-2007 表 1 row 18: 临时入境摩托车号牌 / 88x60; §§ 5.6, 6.6.1, 附录 B.5 (the 2.5x reduction); accessed 2026-08-02"
1314
+ - "http://www.gov.cn/gongbao/content/2007/content_772748.htm # 公安部令第90号 第六条, 第七条; accessed 2026-08-02"
1315
+ notes: >-
1316
+ The temporary-entry motorcycle plate. Modelled separately from the car
1317
+ plate purely because of the dimensions — a 20-fold difference in area is
1318
+ the clearest possible § 2.3 design difference.
1319
+
1320
+ # =========================================================================
1321
+ # EMERGENCY RESCUE. Created outside GA 36 by a State Council instrument, and
1322
+ # for that reason the ONLY Chinese plate whose complete encoding rule is
1323
+ # published in text this programme could read.
1324
+ # =========================================================================
1325
+
1326
+ - id: cn-emergency-rescue-car-2018
1327
+ class: government
1328
+ class_note: >-
1329
+ The national comprehensive fire-and-rescue force is a civil state service
1330
+ (it moved out of the armed police in 2018), so `government` is the right
1331
+ term in _meta/classes.yml; it is not `police` and not `military`.
1332
+ categories: [car, van, truck, bus]
1333
+ period: { start: 2018 }
1334
+ period_evidence: enabling-instrument
1335
+ matching: strict
1336
+ format:
1337
+ pattern: "L9999"
1338
+ regex: '\A(?:[A-Z]\d{4}|\d{5})\z'
1339
+ regex_strict: '\A(?:[XS]\d{4}|\d{5})\z'
1340
+ charset:
1341
+ force_codes: { X: 消防救援 (fire and rescue), S: 森林消防 (forest fire) }
1342
+ no_letter_form: "a serial with NO force letter and five digits marks a vehicle belonging to the Ministry of Emergency Management itself"
1343
+ han:
1344
+ prefix: { role: province, script: Han, decode: "plates/_decode/cn-provinces.yml" }
1345
+ suffix: { han: 应急, script: Han, pinyin: "yìngjí", role: classification, colour: red, note: "the only TWO-character classification element in the Chinese range" }
1346
+ printed: "<province>·<force letter><4 digits>应急 or <province>·<5 digits>应急"
1347
+ printed_example: "京·X2345应急"
1348
+ regex_informational: '\A[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新][·\- ]?(?:[XS]\d{4}|\d{5})应急\z'
1349
+ total_characters: 8
1350
+ design:
1351
+ plate: { w: 480, h: 140, unit: mm }
1352
+ count: 2
1353
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
1354
+ foreground: "#000000"
1355
+ accent: { color: "#D7000F", element: "the 应急 pair, and — on the FRONT plate only — the force letter", hex_basis: observed }
1356
+ border: { color: "#000000" }
1357
+ band: { side: none }
1358
+ emblem: { present: false }
1359
+ rear_differs: true
1360
+ rear_differs_note: >-
1361
+ Verbatim: "汽车号牌分为前牌和后牌,前牌的所属救援队伍代号为红色,后牌的所属
1362
+ 救援队伍代号为黑色。" — the force letter is RED on the front plate and
1363
+ BLACK on the rear. The dataset has no other series where front and rear
1364
+ differ by the colour of a single character.
1365
+ region_encoding:
1366
+ type: province-only
1367
+ decode: "plates/_decode/cn-provinces.yml"
1368
+ note: >-
1369
+ There is NO issuing-office letter on this plate: the second position is
1370
+ the force code, not an office code. A parse API that reaches for
1371
+ cn-issuing-offices.yml on an 应急 plate will produce confident nonsense.
1372
+ sources:
1373
+ - "https://www.gov.cn/zhengce/zhengceku/2018-12/11/content_5347765.htm # 《国务院办公厅关于国家综合性消防救援车辆悬挂应急救援专用号牌有关事项的通知》 国办发〔2018〕114号 (成文 2018-12-04, 发布 2018-12-11), 二 and 附件 一(一): '字符共8位,依次为省(自治区、直辖市)汉字简称、所属救援队伍代号、四位序号和汉字“应急”组成。其中,所属救援队伍代号用X代表消防救援、S代表森林消防。应急部的专用号牌不用英文字母,以与地方的专用号牌区别,如“京·12345应急”表示车辆归属应急部,“京·X2345应急”表示车辆归属北京市应急管理部门。'; 附件 二 '汽车号牌规格为480毫米×140毫米'; 附件 三 (front/rear colour difference); 二 '专用号牌为白底黑字,配以红色汉字“应急”'; accessed 2026-08-02"
1374
+ notes: >-
1375
+ The emergency-rescue plate, and the best-documented Chinese plate in this
1376
+ file: a State Council General Office notice publishes the complete
1377
+ encoding rule, the dimensions and the front/rear difference in TEXT, which
1378
+ GA 36 does only in withheld drawings. Eight characters: province, force
1379
+ code, four digits, 应急 — or, for the Ministry of Emergency Management's
1380
+ own vehicles, province, FIVE digits, 应急, with no letter at all, and the
1381
+ notice gives both worked examples itself. The scope is set by the same
1382
+ notice: fire engines, aerial platforms, special-duty and logistics fire
1383
+ vehicles, fire motorcycles, rescue command vehicles, rescue transport,
1384
+ fire publicity vehicles and fire-scene survey vehicles, with the Ministry
1385
+ of Emergency Management as issuing authority. Vehicles moved to these
1386
+ plates from military plates get a one-off vehicle-and-vessel tax
1387
+ exemption in the year of the change, which is how the notice quietly dates
1388
+ the transfer of the force out of the armed police.
1389
+
1390
+ - id: cn-emergency-rescue-motorcycle-2018
1391
+ class: government
1392
+ categories: [motorcycle]
1393
+ period: { start: 2018 }
1394
+ period_evidence: enabling-instrument
1395
+ matching: strict
1396
+ format:
1397
+ pattern: "999L"
1398
+ regex: '\A\d{3}[A-Z]\z'
1399
+ regex_strict: '\A\d{3}[XS]\z'
1400
+ han:
1401
+ prefix: { han: 应急, script: Han, role: classification, colour: red, note: "THE ONLY CHINESE PLATE WHOSE CLASSIFICATION CHARACTERS COME FIRST" }
1402
+ province: { role: province, script: Han, position: 3, decode: "plates/_decode/cn-provinces.yml" }
1403
+ suffix: none
1404
+ printed: "应急<province><3 digits><force letter>"
1405
+ printed_example: "应急京123X"
1406
+ regex_informational: '\A应急[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新]\d{3}[XS]\z'
1407
+ total_characters: 7
1408
+ design:
1409
+ plate: { w: 220, h: 140, unit: mm }
1410
+ count: 1
1411
+ background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
1412
+ foreground: "#000000"
1413
+ accent: { color: "#D7000F", element: "the 应急 pair", hex_basis: observed }
1414
+ border: { color: "#000000" }
1415
+ band: { side: none }
1416
+ emblem: { present: false }
1417
+ rear_differs: false
1418
+ note: "one plate, at the rear; the force letter is BLACK (the front/rear red-letter rule applies only to the car plate)"
1419
+ region_encoding:
1420
+ type: province-only
1421
+ decode: "plates/_decode/cn-provinces.yml"
1422
+ note: "the province character is the THIRD character, not the first — the 应急 pair leads"
1423
+ sources:
1424
+ - "https://www.gov.cn/zhengce/zhengceku/2018-12/11/content_5347765.htm # 国办发〔2018〕114号 附件 一(二): '字符共7位,依次为汉字“应急”、省(自治区、直辖市)汉字简称、三位序号和所属救援队伍代号组成。其中,所属救援队伍代号用X代表消防救援、S代表森林消防。'; 附件 二 '摩托车号牌规格为220毫米×140毫米'; 附件 三(二)(single rear plate, black force letter); accessed 2026-08-02"
1425
+ notes: >-
1426
+ The emergency-rescue motorcycle plate, and the one Chinese registration
1427
+ number that inverts the § 3.2 element order: the two-character 应急 pair
1428
+ leads, the province character follows it, and the force letter closes.
1429
+ Seven characters against the car plate's eight. Any parser that assumes
1430
+ "first character = province" for China is wrong exactly here, which is
1431
+ why the rule is spelled out on the series rather than left to the header.