vehicles 0.6.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +274 -0
- data/README.md +55 -10
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +5 -4
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +1 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +553 -118
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +228 -32
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +44 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +319 -96
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +17 -3
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +21 -2
- data/lib/vehicles/plates/series.rb +172 -18
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +12 -0
- data/lib/vehicles/providers/hosted_provider.rb +28 -55
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +32 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +164 -2
data/data/plates/in.yml
ADDED
|
@@ -0,0 +1,1172 @@
|
|
|
1
|
+
# plates/in.yml — India (PRD-PLATES gate L3). DRAFT for human verification.
|
|
2
|
+
#
|
|
3
|
+
# EVERY format, colour, dimension and class claim in this file comes from one
|
|
4
|
+
# of five primaries, all fetched and quoted verbatim in the dossier:
|
|
5
|
+
#
|
|
6
|
+
# * the Motor Vehicles Act, 1988 (59 of 1988) — the enabling STATUTE, in
|
|
7
|
+
# force 1 July 1989 (S.O. 368(E), 22 May 1989). India Code PDF.
|
|
8
|
+
# * the Central Motor Vehicles Rules, 1989 (G.S.R. 590(E), 2 June 1989) —
|
|
9
|
+
# rules 33-51 (registration + display), 76-80 (diplomatic), 81A-81C
|
|
10
|
+
# (vintage), read from MoRTH's own consolidated chapter PDF.
|
|
11
|
+
# * the Gazette of India (egazette.gov.in) for the instruments that create
|
|
12
|
+
# the newer series: G.S.R. 594(E) 26-8-2021 (BH), G.S.R. 492(E)
|
|
13
|
+
# 15-7-2021 (vintage), G.S.R. 703(E) 14-9-2022 (trade), G.S.R. 240(E)
|
|
14
|
+
# 31-3-2021 (temporary), G.S.R. 749(E) 7-8-2018 (EV green),
|
|
15
|
+
# G.S.R. 633(E) 23-6-2017 (consular colours), S.O. 6052(E) 6-12-2018
|
|
16
|
+
# (High Security Registration Plates Order, 2018).
|
|
17
|
+
# * S.O. 4262(E) 25-11-2019 and S.O. 1306(E) 12-3-2024 — two amendments to
|
|
18
|
+
# the state-code notification, which are how that notification's identity
|
|
19
|
+
# was recovered (see finding 2).
|
|
20
|
+
#
|
|
21
|
+
# FIVE STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
22
|
+
#
|
|
23
|
+
# 1. THE COMPOSITION OF AN ORDINARY INDIAN REGISTRATION MARK IS IN NO RULE.
|
|
24
|
+
# This is the German/British delegation pattern arriving in India by a
|
|
25
|
+
# third route. MVA 1988 § 41(6), verbatim: "The registering authority
|
|
26
|
+
# shall assign to the vehicle, for display thereon, a distinguishing mark
|
|
27
|
+
# (in this Act referred to as the registration mark) consisting of one of
|
|
28
|
+
# the groups of such of those letters and followed by such letters and
|
|
29
|
+
# figures as are allotted to the State by the Central Government from time
|
|
30
|
+
# to time BY NOTIFICATION IN THE OFFICIAL GAZETTE, and displayed and shown
|
|
31
|
+
# on the motor vehicle in such form and in such manner as may be prescribed
|
|
32
|
+
# by the Central Government." So: the LETTERS are a gazette allotment (the
|
|
33
|
+
# state-code notification, finding 2); the FORM AND MANNER are the rules
|
|
34
|
+
# (rule 50, rule 51). Nowhere does any instrument say "two letters, two
|
|
35
|
+
# digits, up to three letters, four numerals". That shape is reconstructed
|
|
36
|
+
# here from four rules that define OTHER marks BY REFERENCE to it, each
|
|
37
|
+
# quoted on its series below:
|
|
38
|
+
# rule 50(3) "the State code and registering authority code forming the
|
|
39
|
+
# first line and the rest forming the second line"
|
|
40
|
+
# rule 35(3) "AB—Represents State Code, 12—Represents RTO Code"
|
|
41
|
+
# rule 53C "AB- Represent State Code; 1234- Serial Number ..."
|
|
42
|
+
# rule 81B "XX stands for State code, YY will be a two letter series"
|
|
43
|
+
# The 1-to-3-letter series group and the 4-digit 0001-9999 serial are
|
|
44
|
+
# therefore recorded as `format.composition_evidence: reconstructed` on the
|
|
45
|
+
# standard series, with the reconstruction spelled out. Do not upgrade that
|
|
46
|
+
# tag without the state-code notification in hand.
|
|
47
|
+
#
|
|
48
|
+
# 2. THE STATE-CODE LIST IS S.O. 444(E), 12 JUNE 1989 — AND IT IS NOT ONLINE.
|
|
49
|
+
# Two gazette notifications fetched for this pass name it in terms:
|
|
50
|
+
# S.O. 4262(E) (25-11-2019) inserts "17A. Ladakh LA" and S.O. 1306(E)
|
|
51
|
+
# (12-3-2024) substitutes "29A. Telangana TG", both "in the Table to the
|
|
52
|
+
# said notification ... number S.O.444(E), dated the 12th June, 1989".
|
|
53
|
+
# e-Gazette's archive does not reach 1989 and MoRTH's site was rebuilt as
|
|
54
|
+
# a single-page app whose document paths now return the app shell, so the
|
|
55
|
+
# TABLE ITSELF was not reached. Consequence, stated plainly: two rows of
|
|
56
|
+
# plates/_decode/in-state-codes.yml are instrument-evidenced and the rest
|
|
57
|
+
# are not. The decode file says so per row. This is the single highest-value
|
|
58
|
+
# verifier target for India.
|
|
59
|
+
#
|
|
60
|
+
# 3. HSRP IS A DESIGN REGIME LAID OVER AN UNCHANGED MARK, AND ITS DATE IS A
|
|
61
|
+
# TRAP. Rule 50(1) was substituted by G.S.R. 221(E) (28-3-2001) "as amended
|
|
62
|
+
# by S.O. 938(E), dated 24-9-2001, S.O. 499(E), dated 9-5-2002 and S.O.
|
|
63
|
+
# 59(E), dated 21-1-2003 (w.e.f. 1-1-2004)" — so the security-licence-plate
|
|
64
|
+
# obligation bites from 1 January 2004, not 2001 and not 2005. The plates
|
|
65
|
+
# did not actually appear nationwide until the Motor Vehicles (High Security
|
|
66
|
+
# Registration Plates) Order, 2018 (S.O. 6052(E), 6-12-2018) forced OEM
|
|
67
|
+
# fitment "for a new vehicle to be sold on or after 1st April, 2019". Both
|
|
68
|
+
# dates are recorded; the ENFORCEMENT gap between them is in the notes and
|
|
69
|
+
# is not modelled as a period.
|
|
70
|
+
#
|
|
71
|
+
# 4. COLOUR IS PRESCRIBED BY CLASS OF USE, NOT BY VEHICLE KIND, AND EVERY
|
|
72
|
+
# COLOUR HERE IS NAMED-BUT-NOT-NUMBERED. Rule 50(2)(d) (substituted by
|
|
73
|
+
# G.S.R. 901(E), 13-12-2001): transport vehicles "in black colour on yellow
|
|
74
|
+
# background", "in other cases, in black colour on white background". Rule
|
|
75
|
+
# 50(2A) (inserted by G.S.R. 749(E), 7-8-2018) adds battery-operated
|
|
76
|
+
# vehicles: yellow on green for transport, white on green otherwise. Rule
|
|
77
|
+
# 39(2) (substituted 2022) makes the trade mark "white colour on red
|
|
78
|
+
# background". Rule 77(1) fixes the diplomatic/consular/CDP colours. NOT ONE
|
|
79
|
+
# of these instruments gives a chromaticity coordinate or a colour standard,
|
|
80
|
+
# so every hex in this file carries `hex_basis: observed` inside a
|
|
81
|
+
# statutorily NAMED colour — the plates/gb.yml and plates/de.yml posture.
|
|
82
|
+
#
|
|
83
|
+
# 5. THE ARMED FORCES ARE OUTSIDE THIS FILE, BY STATUTE. MVA § 60(1):
|
|
84
|
+
# "Such authority as the Central Government may, by notification in the
|
|
85
|
+
# Official Gazette, specify, may register any motor vehicle which is the
|
|
86
|
+
# property or for the time being under the exclusive control of the Central
|
|
87
|
+
# Government and is used for Government purposes relating to the defence of
|
|
88
|
+
# the country ... and any vehicle so registered shall not ... require to be
|
|
89
|
+
# registered otherwise under this Act." The broad-arrow Ministry of Defence
|
|
90
|
+
# mark is therefore issued under a different regime whose instrument was NOT
|
|
91
|
+
# reached in this pass. No military series is invented here; it is a
|
|
92
|
+
# recorded gap.
|
|
93
|
+
#
|
|
94
|
+
# REGEX POLICY (identical to plates/gb.yml, plates/nl.yml, plates/de.yml):
|
|
95
|
+
# `format.regex` is the LINT-ROUND-TRIPPABLE regex — the lint generates
|
|
96
|
+
# serials from `format.pattern` (L -> any A-Z, 9 -> any 0-9) and requires the
|
|
97
|
+
# regex to accept all of them, so `regex` can never be narrower than the
|
|
98
|
+
# pattern's own alphabet. `format.regex_strict` carries the tighter sourced
|
|
99
|
+
# form: the closed state-code alternation, the 01-99 district range, the
|
|
100
|
+
# 0001-9999 serial floor, and — where an instrument says so in terms — the
|
|
101
|
+
# exclusion of I and O. `format.regex_statutory` appears only where an
|
|
102
|
+
# instrument imposes NO digit count and our regex invents a practical bound
|
|
103
|
+
# (the diplomatic series).
|
|
104
|
+
#
|
|
105
|
+
# SEPARATOR NOTE (PRD-PLATES § 2.6): an Indian plate prints NO separator
|
|
106
|
+
# glyph. Rule 50(3) prescribes a two-LINE layout (state+district code above,
|
|
107
|
+
# the rest below) and rule 51 prescribes inter-character spacing in
|
|
108
|
+
# millimetres; the space in every `pattern` here is the conventional textual
|
|
109
|
+
# rendering of that gap, and every regex accepts it as optional, exactly as
|
|
110
|
+
# plates/gb.yml does for the British 33 mm gap. The hyphenated rendering
|
|
111
|
+
# ("MH-12-AB-1234") is a data-entry convention, not a printed feature; a
|
|
112
|
+
# separator-forgiving consumer collapses both to one serial by construction.
|
|
113
|
+
jurisdiction: in
|
|
114
|
+
authority:
|
|
115
|
+
name: Ministry of Road Transport and Highways (MoRTH), Government of India — registering authorities (RTOs) of the States and Union Territories
|
|
116
|
+
url: "https://morth.nic.in/"
|
|
117
|
+
binding: vehicle
|
|
118
|
+
binding_note: >-
|
|
119
|
+
MVA 1988 § 41(6): the registering authority "shall assign TO THE VEHICLE,
|
|
120
|
+
for display thereon, a distinguishing mark". § 47 provides for assignment of
|
|
121
|
+
a NEW registration mark on removal to another State, which is the one place
|
|
122
|
+
the vehicle-binding is broken — and the BH series (rule 50(8), 2021) exists
|
|
123
|
+
precisely to stop that happening to inter-State movers: rule 54(3), inserted
|
|
124
|
+
by the same instrument, disapplies re-registration for a BH vehicle.
|
|
125
|
+
instrument:
|
|
126
|
+
statute:
|
|
127
|
+
citation: "The Motor Vehicles Act, 1988 (59 of 1988), § 41(6) (registration mark), § 39 (necessity for registration), § 43 (temporary registration), § 60 (Central Government / defence vehicles), § 64 (Central Government rule-making power)"
|
|
128
|
+
in_force: "1989-07-01"
|
|
129
|
+
in_force_source: "S.O. 368(E), dated 22 May 1989, Gazette of India, Extraordinary, Pt. II, sec. 3(ii) — the commencement notification, cited in the Act's own footnote 1 to § 1(3)"
|
|
130
|
+
rules:
|
|
131
|
+
citation: "The Central Motor Vehicles Rules, 1989, published vide G.S.R. 590(E), dated the 2nd June, 1989, Gazette of India, Extraordinary, Part II, Section 3, Sub-section (i)"
|
|
132
|
+
key_rules: "rule 33-43 (trade certificate and trade registration mark), rule 47-48 (application and issue of registration), rule 50 (form and manner of display of registration marks), rule 51 (size of letters and numerals), rule 53C (temporary registration marks), rule 76-80 (diplomatic and consular), rule 81A-81C (vintage motor vehicles)"
|
|
133
|
+
state_codes:
|
|
134
|
+
citation: "S.O. 444(E), dated the 12th June, 1989, Gazette of India, Extraordinary, Part II, Section 3, Sub-section (ii) — the TABLE of letters allotted to each State and Union Territory under MVA § 41(6)"
|
|
135
|
+
reached: false
|
|
136
|
+
amendment_chain_named_in_gazette:
|
|
137
|
+
- "S.O. 1486(E), dated 9 June 2014 — named as the then-last amendment by S.O. 4262(E)"
|
|
138
|
+
- "S.O. 4262(E), dated 25 November 2019 — inserts '17A. Ladakh LA' (fetched, verbatim)"
|
|
139
|
+
- "S.O. 2339(E), dated 14 July 2020 — named as the then-last amendment by S.O. 1306(E)"
|
|
140
|
+
- "S.O. 1306(E), dated 12 March 2024 — substitutes '29A. Telangana TG' (fetched, verbatim)"
|
|
141
|
+
source: "https://web.archive.org/web/20210514201915id_/https://morth.nic.in/sites/default/files/notifications_document/S.O.%204262%28E%29%20dated%2025%20th%20November%20Registration%20Mark%20for%20Ladakh%20LA.pdf # 'In the Table to the said notification, after serial number 17 ... 17A. Ladakh LA'; identifies the principal notification as S.O.444(E) dated 12 June 1989; accessed 2026-08-02"
|
|
142
|
+
hsrp:
|
|
143
|
+
citation: "The Motor Vehicles (High Security Registration Plates) Order, 2018, S.O. 6052(E), dated 6 December 2018, made under MVA § 109(3), in supersession of the Motor Vehicles (New High Security Registration Plates) Order, 2001"
|
|
144
|
+
in_force: "2019-04-01"
|
|
145
|
+
companion: "G.S.R. 1162(E), dated 4 December 2018 — the matching amendment to CMVR rules 50 and 124"
|
|
146
|
+
licence: >-
|
|
147
|
+
Gazette of India material and Government of India departmental publications
|
|
148
|
+
are Government of India works. India has no OGL-equivalent blanket licence;
|
|
149
|
+
§ 52(1)(q) of the Copyright Act, 1957 permits reproduction of any Act,
|
|
150
|
+
rule or order made thereunder, and of any report of a Government
|
|
151
|
+
Commission, subject to the conditions there stated. Facts are extracted and
|
|
152
|
+
cited here; no gazette text is redistributed beyond quotation.
|
|
153
|
+
|
|
154
|
+
# ---------------------------------------------------------------------------
|
|
155
|
+
# Jurisdiction-wide facts, cited once and referenced per series.
|
|
156
|
+
# ---------------------------------------------------------------------------
|
|
157
|
+
common:
|
|
158
|
+
mark_composition:
|
|
159
|
+
reconstructed_shape: "SS RR X[X[X]] NNNN — two-letter State/UT code, two-digit registering-authority (RTO) district code, a series group of one to three letters, a four-digit serial 0001-9999"
|
|
160
|
+
evidence: >-
|
|
161
|
+
No instrument states this shape. It is reconstructed from the four rules
|
|
162
|
+
that define OTHER marks by reference to it, each of which is quoted on
|
|
163
|
+
the series that uses it: rule 50(3) (State code + registering authority
|
|
164
|
+
code on the first line, "the rest" on the second), rule 35(3) as
|
|
165
|
+
substituted in 2022 ("AB—Represents State Code, 12—Represents RTO
|
|
166
|
+
Code"), rule 53C as inserted in 2021 ("AB- Represent State Code",
|
|
167
|
+
"1234- Serial Number"), and rule 81B ("XX stands for State code, YY will
|
|
168
|
+
be a two letter series and '****' is a number from 0001 to 9999").
|
|
169
|
+
letter_exclusions: >-
|
|
170
|
+
I and O are excluded from the letter groups of the BH series (rule 50(8),
|
|
171
|
+
verbatim: "excluding 'I' & 'O'") and of the temporary series (rule 53C,
|
|
172
|
+
verbatim: "Alphabet of Temporary Registration (Except O and I)"). NO
|
|
173
|
+
instrument extends that exclusion to the ORDINARY series letters, and the
|
|
174
|
+
exclusion is not asserted for them here — it appears only in
|
|
175
|
+
`regex_strict` on the BH and temporary series, where it is sourced. That
|
|
176
|
+
the ordinary series also avoids I and O is widely repeated and is
|
|
177
|
+
recorded as folklore in the dossier.
|
|
178
|
+
serial_floor: >-
|
|
179
|
+
The 0001-9999 floor is instrument-evidenced for BH (rule 50(8): "4
|
|
180
|
+
numerals 0001 to 9999"), vintage (rule 81B: "a number from 0001 to 9999")
|
|
181
|
+
and trade (rule 35(3): "four digit numerals starting from 0001 to 9999").
|
|
182
|
+
It is applied to the ordinary series' `regex_strict` by the same
|
|
183
|
+
reconstruction, and flagged there.
|
|
184
|
+
state_code_alternations_are_period_scoped: >-
|
|
185
|
+
EVERY `regex_strict` IN THIS FILE CARRIES THE STATE CODES THAT WERE IN
|
|
186
|
+
ALLOTMENT DURING THAT SERIES' OWN PERIOD, and the two lists differ. The
|
|
187
|
+
series that run from 1989 (the ordinary and transport marks, the old
|
|
188
|
+
dealer mark) carry the withdrawn codes too — OR, UA, DN and TS — because
|
|
189
|
+
marks bearing them are on the road and inside those series' periods. The
|
|
190
|
+
series created in 2021 or later (temporary, vintage, the 2022 dealer
|
|
191
|
+
mark) carry neither OR (superseded 2012) nor UA (2007) nor DN (2020),
|
|
192
|
+
which could not be issued after those series began — but they DO carry
|
|
193
|
+
TS, because Telangana was TS until S.O. 1306(E) substituted TG on
|
|
194
|
+
12 March 2024, well inside every one of those periods. TS was missing
|
|
195
|
+
from all three of those alternations in the earlier draft and is
|
|
196
|
+
restored here; a vintage registration is valid ten years and a trade
|
|
197
|
+
certificate five, so TS marks of both kinds remain live into the 2030s.
|
|
198
|
+
source: "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # CMVR rules 33-51 and 76-80, MoRTH's own consolidated text (the live morth.nic.in path now returns the SPA shell; this is the fetched copy, captured 2021-11-30); accessed 2026-08-02"
|
|
199
|
+
colours:
|
|
200
|
+
rule_50_2_d: >-
|
|
201
|
+
Rule 50(2), proviso (d), as substituted by G.S.R. 901(E), dated
|
|
202
|
+
13-12-2001, verbatim: "the letters of the registration mark shall be in
|
|
203
|
+
English and the figures shall be in Arabic numerals and shall be
|
|
204
|
+
shown:— (A) in the case of transport vehicles in black colour on yellow
|
|
205
|
+
background; and (B) in other cases, in black colour on white background,
|
|
206
|
+
the registration mark on the trailer shall be exhibited on the left hand
|
|
207
|
+
side in black colour on yellow background. In addition, the registration
|
|
208
|
+
mark on the drawing vehicle shall be exhibited on the trailer also and
|
|
209
|
+
this shall be done on the right hand side at the rear of the trailer or
|
|
210
|
+
the last trailer as the case may be, in black colour on retro-reflective
|
|
211
|
+
type yellow background". Its own compliance proviso is the source of the
|
|
212
|
+
two dates the secondary web repeats: where the clause had not been
|
|
213
|
+
complied with before the Central Motor Vehicles (8th Amendment) Rules,
|
|
214
|
+
2001, it was to be complied with "(i) in respect of transport vehicle, on
|
|
215
|
+
or before 1st February, 2002; and (ii) in other cases, on or before 1st
|
|
216
|
+
July, 2002."
|
|
217
|
+
rule_50_2A: >-
|
|
218
|
+
Inserted by G.S.R. 749(E), dated 7 August 2018 (Central Motor Vehicles
|
|
219
|
+
(10th Amendment) Rules, 2018), verbatim: "2A. In case of Battery Operated
|
|
220
|
+
Vehicles, the registration mark shall be exhibited in Yellow colour on
|
|
221
|
+
Green background for transport vehicles and for all other cases, in White
|
|
222
|
+
colour on Green background."
|
|
223
|
+
hex_basis_note: >-
|
|
224
|
+
The instruments NAME the colours and never number them: no chromaticity
|
|
225
|
+
coordinates, no colour standard, no reference to AIS-159 or any BIS
|
|
226
|
+
specification for colour. Every hex in this file is therefore
|
|
227
|
+
`hex_basis: observed` inside a statutorily named colour. Do not upgrade
|
|
228
|
+
any of them without a numbered source.
|
|
229
|
+
sources:
|
|
230
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(2)(d) as substituted by G.S.R. 901(E) 13-12-2001, with its 1-2-2002 / 1-7-2002 compliance dates; accessed 2026-08-02"
|
|
231
|
+
- "https://web.archive.org/web/20210514202442id_/https://morth.nic.in/sites/default/files/notifications_document/Notification_no_G_S_R_749E_dated_07_08_2018_regarding_Background_colour_of_registration_plates_for_Electric_vehicles_0.pdf # G.S.R. 749(E) 7-8-2018 inserting rule 50(2A) — the EV green plate; accessed 2026-08-02"
|
|
232
|
+
plate_sizes:
|
|
233
|
+
note: >-
|
|
234
|
+
Rule 50(1)(vi), verbatim heads: "For two and three-wheelers,
|
|
235
|
+
quadricycles, E-rickshaws and E-carts 200 x 100 mm / For Light Motor
|
|
236
|
+
Vehicles/Passenger cars 340x200mm/500x120 mm / For medium commercial
|
|
237
|
+
vehicles, heavy commercial vehicles and Trailer/combination 340 x 200
|
|
238
|
+
mm". Provisos add: agricultural tractors front 285x45 mm, rear
|
|
239
|
+
200x100 mm; combine harvester 340 x 200 mm; power tiller 285x45 mm front
|
|
240
|
+
and 200x100 mm on a coupled trailer; and "in case of a motor cycle, the
|
|
241
|
+
size of 285x45 mm for front registration plate shall also be permitted".
|
|
242
|
+
The two/three-wheeler head reached its present wording through
|
|
243
|
+
G.S.R. 99(E) (19-2-2014, w.e.f. 1-10-2014) and G.S.R. 709(E)
|
|
244
|
+
(8-10-2014).
|
|
245
|
+
source: "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(1)(vi) and its four provisos; accessed 2026-08-02"
|
|
246
|
+
characters:
|
|
247
|
+
note: >-
|
|
248
|
+
Rule 51 ("Size of letters and numerals of the registration mark"), as
|
|
249
|
+
substituted by G.S.R. 338(E) dated 26-3-1993, is a table of minima in
|
|
250
|
+
millimetres — height, thickness, and space between — by class of vehicle.
|
|
251
|
+
Rows, verbatim in the rule's own order: all motor cycles and three-wheeled
|
|
252
|
+
invalid carriages, rear letters 35/7/5 and rear numerals 40/7/5;
|
|
253
|
+
motorcycles under 70 cc, front letters and numerals 15/2.5/2.5; other
|
|
254
|
+
motor cycles, front 30/5/5; three-wheelers not exceeding 500 cc and
|
|
255
|
+
E-rickshaw/E-cart, front and rear 35/7/5; three-wheelers exceeding 500 cc,
|
|
256
|
+
front and rear 40/7/5; ALL OTHER MOTOR VEHICLES, front and rear 65/10/10;
|
|
257
|
+
power tillers front 15/2.5/2.5; trailers coupled to power tillers rear
|
|
258
|
+
30/5/5; combine harvester 65/10/10; trailer for header assembly 65/10/10.
|
|
259
|
+
The rule prescribes NO typeface and publishes NO drawing — unlike the UK,
|
|
260
|
+
German and Spanish Schriftmuster. The Indian plate font is fixed instead
|
|
261
|
+
by the HSRP type-approval chain (AIS/CMVR rule 126 test agencies), whose
|
|
262
|
+
standard was not reached in this pass and is a recorded gap.
|
|
263
|
+
source: "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 51 table, all ten rows; accessed 2026-08-02"
|
|
264
|
+
hsrp_specification:
|
|
265
|
+
note: >-
|
|
266
|
+
Rule 50(1)(i)-(v), as substituted by G.S.R. 221(E) (28-3-2001) and
|
|
267
|
+
amended to commence 1-1-2004, verbatim in outline: the plate is "a solid
|
|
268
|
+
unit made of 1.0 mm aluminium conforming to DIN 1745/DIN 1783 or ISO
|
|
269
|
+
7591", with rounded edges "to the extent of approx. 10 mm" and "an
|
|
270
|
+
embossed border"; it "should bear the letters 'IND' in blue colour on the
|
|
271
|
+
extreme left centre of the plate", one-fourth the rule-51 letter size,
|
|
272
|
+
hot-stamped and "an integral part of the plate"; it is "protected against
|
|
273
|
+
counterfeiting by applying chromium-based hologram, applied by hot
|
|
274
|
+
stamping. Stickers and adhesive labels are not permitted"; it bears "a
|
|
275
|
+
permanent consecutive identification number of minimum seven digits, to
|
|
276
|
+
be laser branded into the reflective sheeting"; a THIRD registration mark
|
|
277
|
+
"in the form of self-destructive type, chromium based hologram sticker"
|
|
278
|
+
goes on the left-hand top of the windshield; and the plate "shall be
|
|
279
|
+
fastened with non-removable/non-reusable snap lock fitting system".
|
|
280
|
+
The 2018 Order tightens two of those numbers: hologram 20 mm x 20 mm
|
|
281
|
+
carrying the CHAKRA in blue; permanent identification number "of minimum
|
|
282
|
+
10 digits ... with the letter size being 5 mm", preceded by two letters
|
|
283
|
+
identifying the vendor from a closed test-agency table; third
|
|
284
|
+
registration mark sticker 100 mm x 60 mm; and the fuel colour code —
|
|
285
|
+
orange for diesel, light blue for petrol and CNG, grey for all others.
|
|
286
|
+
sources:
|
|
287
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(1)(i)-(vi) and footnote 74 dating the substitution to G.S.R. 221(E) 28-3-2001 w.e.f. 1-1-2004; accessed 2026-08-02"
|
|
288
|
+
- "https://web.archive.org/web/20210514202317id_/https://morth.nic.in/sites/default/files/notifications_document/Notification_no_G_S_R_1162E_dated_04_12_2018_regarding_High_Security_Registration_Plate_0.pdf # S.O. 6052(E) 6-12-2018, the Motor Vehicles (High Security Registration Plates) Order, 2018, in force 1-4-2019 — paras 4-6, the test-agency letter table, and the fuel-sticker colours; accessed 2026-08-02"
|
|
289
|
+
- "https://web.archive.org/web/20190919185053id_/http://morth.nic.in/sites/default/files/circulars_document/CMVR%20rules%201989%20for%20HSRP.pdf # MoRTH circular RT-11028/01/2018-MVL to all States: the plates 'are to be affixed through the authorized dealers of OEM w.e.f. 01.04.2019', naming G.S.R. 1162(E) and S.O. 6052(E); accessed 2026-08-02"
|
|
290
|
+
|
|
291
|
+
series:
|
|
292
|
+
|
|
293
|
+
# =========================================================================
|
|
294
|
+
# THE ORDINARY MARK. Same composition throughout; the series cut is by
|
|
295
|
+
# DESIGN ERA (pre-HSRP / HSRP) and by the rule-50(2)(d) colour class, which
|
|
296
|
+
# is a class of USE (transport vs other), not a vehicle kind.
|
|
297
|
+
# =========================================================================
|
|
298
|
+
- id: in-standard-1989
|
|
299
|
+
class: standard
|
|
300
|
+
categories: [car, van, motorcycle, tractor, machine]
|
|
301
|
+
period: { start: 1989, end: 2003 }
|
|
302
|
+
period_evidence: enabling-statute
|
|
303
|
+
matching: strict
|
|
304
|
+
format:
|
|
305
|
+
pattern: "LL 99 LL 9999"
|
|
306
|
+
regex: '\A[A-Z]{2} ?\d{1,2} ?[A-Z](?: ?[A-Z]){0,2} ?\d{4}\z'
|
|
307
|
+
regex_strict: '\A(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|DN|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|OR|PB|PY|RJ|SK|TG|TN|TR|TS|UA|UK|UP|WB) ?(?:0[1-9]|[1-9]\d?) ?[A-Z](?: ?[A-Z]){0,2} ?(?!0000)\d{4}\z'
|
|
308
|
+
composition_evidence: reconstructed
|
|
309
|
+
charset:
|
|
310
|
+
state_codes: "closed list — see plates/_decode/in-state-codes.yml"
|
|
311
|
+
district: "1-99, allotted by the State; NOT nationally closed (see region_encoding_mechanism)"
|
|
312
|
+
notes: >-
|
|
313
|
+
`regex_strict` narrows `regex` in exactly three sourced-by-analogy
|
|
314
|
+
ways and no more: the state code to the closed allotment list, the
|
|
315
|
+
district away from 0 (00 is not allotted anywhere observed), and the
|
|
316
|
+
serial away from 0000 (the 0001-9999 floor is verbatim in rules
|
|
317
|
+
35(3), 50(8) and 81B for the marks that reference this one). It does
|
|
318
|
+
NOT exclude I and O from the series letters, because no instrument
|
|
319
|
+
excludes them from the ORDINARY mark — only from BH and temporary.
|
|
320
|
+
district_width_note: >-
|
|
321
|
+
THE DISTRICT IS ONE OR TWO DIGITS, NOT TWO. Rule 50(3) says only
|
|
322
|
+
"registering authority code" and rule 35(3) only "RTO Code"; neither
|
|
323
|
+
fixes a width, and the zero-padded two-digit form that most States
|
|
324
|
+
print is a convention, not a rule. A regex fixed at `\d{2}` rejects
|
|
325
|
+
every Delhi mark of the "DL 3C AB 1234" shape, which is why both
|
|
326
|
+
`regex` and `regex_strict` here quantify `\d{1,2}`. This was found by
|
|
327
|
+
testing the first draft against real-world plate shapes, and it is
|
|
328
|
+
the single defect that pass caught.
|
|
329
|
+
series_group_note: >-
|
|
330
|
+
THE LETTER RUN IS SPELLED `[A-Z](?: ?[A-Z]){0,2}` — WITH AN INTERNAL
|
|
331
|
+
OPTIONAL GAP — AND THAT IS DELIBERATE. It looks like a candidate for
|
|
332
|
+
tightening to `[A-Z]{1,3}`; it is not, and this pass tried and
|
|
333
|
+
reverted the tightening after probing real shapes. Rule 50(3) puts
|
|
334
|
+
the State code and the REGISTERING-AUTHORITY code on the first line
|
|
335
|
+
and "the rest" on the second. Where a State prints a vehicle-class
|
|
336
|
+
letter immediately after the district digits — Delhi's "DL 3C" over
|
|
337
|
+
"AB 1234" is the standing case — the letter run is split ACROSS the
|
|
338
|
+
two lines, so its linear rendering carries a gap inside it
|
|
339
|
+
("DL 3C AB 1234"). `[A-Z]{1,3}` rejects that string outright. The
|
|
340
|
+
repeated-optional-space form accepts it and still caps the run at
|
|
341
|
+
three letters. Cost of the choice, stated: the regex also accepts
|
|
342
|
+
"MH 12 A B 1234", which no plate prints. That is a recall-side
|
|
343
|
+
looseness inside a `strict` series, and it is preferred to silently
|
|
344
|
+
failing a whole State's plates.
|
|
345
|
+
recall_gap_blank_series: >-
|
|
346
|
+
RECORDED, NOT ASSERTED: the first block issued in a district is
|
|
347
|
+
commonly described as carrying NO series letters at all ("MH 01
|
|
348
|
+
1234"). The only support located is the en-Wikipedia article
|
|
349
|
+
("one to three letters or blank"), which cites no instrument for it,
|
|
350
|
+
and no rule was reached that permits an empty series group. Both
|
|
351
|
+
regexes therefore REQUIRE at least one letter, and a blank-series
|
|
352
|
+
Indian mark will not match. Flagged for the verifier: if a State
|
|
353
|
+
registration manual or a rule proviso is pinned, widen to
|
|
354
|
+
`[A-Z]{0,3}` and say so in the PR.
|
|
355
|
+
progression: >-
|
|
356
|
+
The series group advances within a district as its four-digit block
|
|
357
|
+
exhausts (single letter, then two, then three); the allocation order is
|
|
358
|
+
an administrative matter for each State's registering authority and is
|
|
359
|
+
published by none of them uniformly. A series letter therefore gives a
|
|
360
|
+
LOWER bound on age within a district and nothing stronger.
|
|
361
|
+
design:
|
|
362
|
+
plate: { w: 340, h: 200, unit: mm }
|
|
363
|
+
plate_variants:
|
|
364
|
+
- { w: 500, h: 120, unit: mm, note: "light motor vehicles / passenger cars, the single-line alternative (rule 50(1)(vi))" }
|
|
365
|
+
- { w: 200, h: 100, unit: mm, note: "two- and three-wheelers, quadricycles, E-rickshaws, E-carts" }
|
|
366
|
+
- { w: 285, h: 45, unit: mm, note: "agricultural tractor front; power tiller front; also permitted as a motor cycle front plate" }
|
|
367
|
+
background: { color: "#FFFFFF", finish: painted, hex_basis: observed }
|
|
368
|
+
foreground: "#000000"
|
|
369
|
+
band: { side: none }
|
|
370
|
+
emblem: { present: false }
|
|
371
|
+
rear_differs: false
|
|
372
|
+
layout: >-
|
|
373
|
+
Rule 50(3): "The registration mark shall be exhibited in two lines, the
|
|
374
|
+
State code and registering authority code forming the first line and
|
|
375
|
+
the rest forming the second line, one below the other" — with a proviso
|
|
376
|
+
(substituted by G.S.R. 324(E), 7-5-2014) for the 200x100 mm plate that
|
|
377
|
+
splits the characters evenly, "and where the total number of alpha
|
|
378
|
+
numeric characters in the registration mark is odd, then any extra
|
|
379
|
+
alpha numeric character shall be exhibited on the second line".
|
|
380
|
+
characters: { min_height_mm: 65, min_thickness_mm: 10, min_space_mm: 10, note: "rule 51 row 'All other motor vehicles'; motorcycles and three-wheelers take the smaller rows — see common.characters" }
|
|
381
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
382
|
+
region_encoding_mechanism: >-
|
|
383
|
+
TWO GEOGRAPHIC ELEMENTS, ONE CLOSED AND ONE OPEN, AND A PARSE API MUST
|
|
384
|
+
NOT TREAT THEM ALIKE. (1) The first two letters are the STATE/UT code, a
|
|
385
|
+
closed list allotted by the Central Government under MVA § 41(6) — the
|
|
386
|
+
decode table. (2) The two digits are the REGISTERING AUTHORITY (RTO
|
|
387
|
+
DISTRICT) code, which no central instrument enumerates: rule 50(3) simply
|
|
388
|
+
calls it "registering authority code" and rule 35(3) calls it "RTO Code".
|
|
389
|
+
Each State creates, merges and renumbers its own offices, and there are
|
|
390
|
+
well over a thousand of them, so this dimension is OPEN and is deliberately
|
|
391
|
+
NOT tabled here (PRD-PLATES § 2.4 mechanism-note rule). A decode may
|
|
392
|
+
return the State with confidence and the district only against a
|
|
393
|
+
State-published list of that State's own offices, dated. THIRD ELEMENT,
|
|
394
|
+
FLAGGED AS UNSOURCED: several States are widely reported to spend the
|
|
395
|
+
first letter of the series group on a VEHICLE-CLASS code rather than on
|
|
396
|
+
the series — Delhi's "C" for car in "DL 3C AB 1234" is the famous case.
|
|
397
|
+
No central instrument authorises that, no Delhi instrument was reached
|
|
398
|
+
for it, and this dataset therefore treats every letter after the district
|
|
399
|
+
as series alphabet. A parse API must not decode a class from it.
|
|
400
|
+
sources:
|
|
401
|
+
- "https://web.archive.org/web/20250804185944id_/https://www.indiacode.nic.in/bitstream/123456789/1798/1/aA1988-59.pdf # MVA 1988 § 41(6) verbatim (the letters are allotted 'by notification in the Official Gazette'), § 1(3) footnote (in force 1 July 1989 vide S.O. 368(E) 22-5-1989); accessed 2026-08-02"
|
|
402
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(2)(d)(B) black on white for non-transport; rule 50(3) two-line layout and the state-code/registering-authority-code split; rule 50(1)(vi) sizes; rule 51 character minima; accessed 2026-08-02"
|
|
403
|
+
- "https://web.archive.org/web/20210514201915id_/https://morth.nic.in/sites/default/files/notifications_document/S.O.%204262%28E%29%20dated%2025%20th%20November%20Registration%20Mark%20for%20Ladakh%20LA.pdf # identifies S.O. 444(E) dated 12 June 1989 as the state-code notification made under § 41(6); accessed 2026-08-02"
|
|
404
|
+
notes: >-
|
|
405
|
+
THE PRE-HSRP ORDINARY PLATE for non-transport vehicles — black on white,
|
|
406
|
+
painted or printed on a plain plate, no IND legend, no hologram, no laser
|
|
407
|
+
code. period.start 1989 is the enabling statute: the MV Act 1988 came
|
|
408
|
+
into force 1 July 1989 and the state-code notification S.O. 444(E) is
|
|
409
|
+
dated 12 June 1989, three weeks earlier, exactly as a commencement
|
|
410
|
+
package would be sequenced. period.end 2003 is the LEGAL end and nothing
|
|
411
|
+
more: rule 50(1), as substituted by G.S.R. 221(E) and amended, took
|
|
412
|
+
effect 1 January 2004 and made the security licence plate the only
|
|
413
|
+
lawful plate, with a proviso giving already-registered vehicles two more
|
|
414
|
+
years ("this sub-rule shall apply to already registered vehicles two
|
|
415
|
+
years from the date of commencement"). In fact non-HSRP plates went on
|
|
416
|
+
being made in most States for another fifteen years, until the HSRP Order
|
|
417
|
+
2018 put the obligation on vehicle manufacturers from 1 April 2019. That
|
|
418
|
+
enforcement gap is recorded here and is deliberately NOT modelled as a
|
|
419
|
+
period: the dataset states what the instruments say and lets the note
|
|
420
|
+
carry the messy truth.
|
|
421
|
+
|
|
422
|
+
- id: in-standard-hsrp-2004
|
|
423
|
+
class: standard
|
|
424
|
+
categories: [car, van, motorcycle, tractor, machine]
|
|
425
|
+
period: { start: 2004 }
|
|
426
|
+
period_evidence: enabling-instrument
|
|
427
|
+
matching: strict
|
|
428
|
+
format:
|
|
429
|
+
pattern: "LL 99 LL 9999"
|
|
430
|
+
regex: '\A[A-Z]{2} ?\d{1,2} ?[A-Z](?: ?[A-Z]){0,2} ?\d{4}\z'
|
|
431
|
+
regex_strict: '\A(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|DN|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|OR|PB|PY|RJ|SK|TG|TN|TR|TS|UA|UK|UP|WB) ?(?:0[1-9]|[1-9]\d?) ?[A-Z](?: ?[A-Z]){0,2} ?(?!0000)\d{4}\z'
|
|
432
|
+
composition_evidence: reconstructed
|
|
433
|
+
charset: { notes: "identical to in-standard-1989 — HSRP changed the PLATE, never the MARK" }
|
|
434
|
+
design:
|
|
435
|
+
plate: { w: 340, h: 200, unit: mm }
|
|
436
|
+
plate_variants:
|
|
437
|
+
- { w: 500, h: 120, unit: mm, note: "LMV / passenger car single-line" }
|
|
438
|
+
- { w: 200, h: 100, unit: mm, note: "two- and three-wheelers, quadricycles, E-rickshaws, E-carts" }
|
|
439
|
+
- { w: 285, h: 45, unit: mm, note: "tractor / power tiller / motor cycle front" }
|
|
440
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
441
|
+
foreground: "#000000"
|
|
442
|
+
band: { side: none }
|
|
443
|
+
emblem: { present: false, note: "the CHAKRA appears inside the 20x20 mm chromium hologram, not as a plate emblem (HSRP Order 2018 para 6(v)(b) + Annexure)" }
|
|
444
|
+
material: "1.0 mm aluminium conforming to DIN 1745/DIN 1783 or ISO 7591, embossed border, corners rounded approx. 10 mm (rule 50(1)(i))"
|
|
445
|
+
security:
|
|
446
|
+
ind_legend: "'IND' in blue on the extreme left centre, one-fourth of the rule-51 letter size, hot-stamped, an integral part of the plate (rule 50(1)(ii))"
|
|
447
|
+
hologram: "chromium-based, hot-stamped, 20 mm x 20 mm at the top left of both plates, carrying the CHAKRA in blue (rule 50(1)(iii); HSRP Order 2018 para 6(v))"
|
|
448
|
+
laser_code: "permanent identification number, minimum seven digits in rule 50(1)(iii) and minimum TEN digits under HSRP Order 2018 para 6(vi), laser-branded into the reflective sheeting at the bottom left at 5 mm, preceded by two letters identifying the approved vendor"
|
|
449
|
+
third_mark: "self-destructive chromium-hologram sticker, 100 mm x 60 mm, inside the windscreen at the top left, carrying the registering authority, the registration number, the laser code and the date of first registration; background orange for diesel, light blue for petrol and CNG, grey otherwise (rule 50(1)(iv); HSRP Order 2018 para 6(viii)-(ix))"
|
|
450
|
+
fitment: "non-removable, non-reusable snap-lock fitting, fixed at the premises of the registering authority (rule 50(1)(v)); since G.S.R. 640(E) (18-8-2022) the plate may be issued by 'licence plate manufacturers or their dealers approved by the State Government or Union Territory Administration'"
|
|
451
|
+
rear_differs: false
|
|
452
|
+
characters: { min_height_mm: 65, min_thickness_mm: 10, min_space_mm: 10, note: "rule 51, 'All other motor vehicles' row" }
|
|
453
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
454
|
+
region_encoding_mechanism: "identical to in-standard-1989 — closed State code, open RTO district code"
|
|
455
|
+
sources:
|
|
456
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(1)(i)-(vi) HSRP specification; footnote 74: sub-rule (1) 'substituted by G.S.R. 221(E), dated 28-3-2001 as amended by S.O. 938(E), dated 24-9-2001, S.O. 499(E), dated 9-5-2002 and S.O. 59(E), dated 21-1-2003 (w.e.f. 1-1-2004)'; accessed 2026-08-02"
|
|
457
|
+
- "https://web.archive.org/web/20210514202317id_/https://morth.nic.in/sites/default/files/notifications_document/Notification_no_G_S_R_1162E_dated_04_12_2018_regarding_High_Security_Registration_Plate_0.pdf # HSRP Order 2018 (S.O. 6052(E), 6-12-2018), 'It shall come into force on the 1st day of April, 2019'; paras 4-6; accessed 2026-08-02"
|
|
458
|
+
- "https://web.archive.org/web/20230429221406id_/https://morth.nic.in/sites/default/files/notifications_document/8GSR%20640(E)%2018th%20August%202022%20HSRP%20rule%2050.pdf # G.S.R. 640(E) 18-8-2022 (CMV Thirteenth Amendment Rules 2022) amending rule 50(1)(v) — who may supply the plate; accessed 2026-08-02"
|
|
459
|
+
notes: >-
|
|
460
|
+
THE CURRENT ORDINARY PLATE for non-transport vehicles. period.start 2004
|
|
461
|
+
is the commencement of the substituted rule 50(1), which is the
|
|
462
|
+
instrument that CREATED the security licence plate — not 2001 (the date
|
|
463
|
+
G.S.R. 221(E) was made, before three amendments deferred it) and not 2005
|
|
464
|
+
or 2019 (both of which the secondary web gives). The 1 April 2019 date is
|
|
465
|
+
real but is a DIFFERENT claim: it is when the HSRP Order 2018 moved the
|
|
466
|
+
duty onto vehicle manufacturers and their dealers for new vehicles, which
|
|
467
|
+
is when the plates finally appeared nationwide. Both are recorded; the
|
|
468
|
+
period claim is the rule's. Overlaps in-standard-1989 only at the design
|
|
469
|
+
boundary, and the notes on each state why.
|
|
470
|
+
|
|
471
|
+
- id: in-transport-1989
|
|
472
|
+
class: standard
|
|
473
|
+
categories: [truck, bus, van, car, trailer]
|
|
474
|
+
period: { start: 1989, end: 2003 }
|
|
475
|
+
period_evidence: enabling-statute
|
|
476
|
+
matching: strict
|
|
477
|
+
format:
|
|
478
|
+
pattern: "LL 99 LL 9999"
|
|
479
|
+
regex: '\A[A-Z]{2} ?\d{1,2} ?[A-Z](?: ?[A-Z]){0,2} ?\d{4}\z'
|
|
480
|
+
regex_strict: '\A(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|DN|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|OR|PB|PY|RJ|SK|TG|TN|TR|TS|UA|UK|UP|WB) ?(?:0[1-9]|[1-9]\d?) ?[A-Z](?: ?[A-Z]){0,2} ?(?!0000)\d{4}\z'
|
|
481
|
+
composition_evidence: reconstructed
|
|
482
|
+
design:
|
|
483
|
+
plate: { w: 340, h: 200, unit: mm }
|
|
484
|
+
background: { color: "#FFD200", finish: painted, hex_basis: observed }
|
|
485
|
+
foreground: "#000000"
|
|
486
|
+
band: { side: none }
|
|
487
|
+
rear_differs: false
|
|
488
|
+
display_extras: >-
|
|
489
|
+
Rule 50(2) provisos (a)-(c): the rear mark of a transport vehicle is
|
|
490
|
+
fixed on the right-hand side "at a distance not exceeding one metre
|
|
491
|
+
from the ground"; the mark "shall also be painted on the right and left
|
|
492
|
+
side on the body of the vehicle"; and on a stage or contract carriage
|
|
493
|
+
it is painted again on the driver/passenger partition, or on the
|
|
494
|
+
dash-board of a motor cab or taxi cab.
|
|
495
|
+
characters: { min_height_mm: 65, min_thickness_mm: 10, min_space_mm: 10 }
|
|
496
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
497
|
+
sources:
|
|
498
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(2)(d)(A) 'in the case of transport vehicles in black colour on yellow background' (substituted by G.S.R. 901(E) 13-12-2001) and the compliance date 1 February 2002; rule 50(2) provisos (a)-(c) on where the mark is repeated; accessed 2026-08-02"
|
|
499
|
+
notes: >-
|
|
500
|
+
THE PRE-HSRP TRANSPORT PLATE — the yellow one. Identical mark, identical
|
|
501
|
+
composition, different colour, and the colour is a class of USE:
|
|
502
|
+
"transport vehicle" is an MVA § 2(47) category (goods carriage, stage
|
|
503
|
+
carriage, contract carriage, educational institution bus and so on), so a
|
|
504
|
+
privately-owned car used as a taxi carries yellow while the same model in
|
|
505
|
+
private hands carries white. THE COLOUR CLAIM'S DATE IS NOT THE SERIES'
|
|
506
|
+
DATE: rule 50(2)(d) in its present wording dates from G.S.R. 901(E)
|
|
507
|
+
(13-12-2001) with a compliance deadline of 1 February 2002 for transport
|
|
508
|
+
vehicles, and the pre-2001 text of clause (d) was not reached — so the
|
|
509
|
+
1989 start is the MARK's start, and whether yellow was prescribed for the
|
|
510
|
+
whole of 1989-2001 is a recorded gap, not an assertion. Overlaps
|
|
511
|
+
in-standard-1989 in kind, never in colour class.
|
|
512
|
+
|
|
513
|
+
- id: in-transport-hsrp-2004
|
|
514
|
+
class: standard
|
|
515
|
+
categories: [truck, bus, van, car, trailer]
|
|
516
|
+
period: { start: 2004 }
|
|
517
|
+
period_evidence: enabling-instrument
|
|
518
|
+
matching: strict
|
|
519
|
+
format:
|
|
520
|
+
pattern: "LL 99 LL 9999"
|
|
521
|
+
regex: '\A[A-Z]{2} ?\d{1,2} ?[A-Z](?: ?[A-Z]){0,2} ?\d{4}\z'
|
|
522
|
+
regex_strict: '\A(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|DN|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|OR|PB|PY|RJ|SK|TG|TN|TR|TS|UA|UK|UP|WB) ?(?:0[1-9]|[1-9]\d?) ?[A-Z](?: ?[A-Z]){0,2} ?(?!0000)\d{4}\z'
|
|
523
|
+
composition_evidence: reconstructed
|
|
524
|
+
design:
|
|
525
|
+
plate: { w: 340, h: 200, unit: mm }
|
|
526
|
+
background: { color: "#FFD200", finish: retroreflective, hex_basis: observed }
|
|
527
|
+
foreground: "#000000"
|
|
528
|
+
band: { side: none }
|
|
529
|
+
material: "as in-standard-hsrp-2004 — rule 50(1) applies to every motor vehicle, whatever the colour of the plate"
|
|
530
|
+
rear_differs: false
|
|
531
|
+
characters: { min_height_mm: 65, min_thickness_mm: 10, min_space_mm: 10 }
|
|
532
|
+
variants:
|
|
533
|
+
- class: trailer
|
|
534
|
+
design: { background: { color: "#FFD200", finish: retroreflective, hex_basis: observed }, foreground: "#000000" }
|
|
535
|
+
note: >-
|
|
536
|
+
A trailer carries TWO marks under rule 50(2)(d): its own, "exhibited
|
|
537
|
+
on the left hand side in black colour on yellow background", and the
|
|
538
|
+
DRAWING VEHICLE's, repeated "on the right hand side at the rear of
|
|
539
|
+
the trailer or the last trailer as the case may be, in black colour
|
|
540
|
+
on retro-reflective type yellow background". A parse API reading a
|
|
541
|
+
photograph of an Indian truck-trailer combination will see the same
|
|
542
|
+
mark twice and a second, different mark once; it must not treat the
|
|
543
|
+
repetition as two vehicles. Colour-only variant of this series, hence
|
|
544
|
+
a sub-entry (PRD-PLATES § 2.3). Rule 50(6) exempts agricultural
|
|
545
|
+
tractors: "The registration mark of the drawing agricultural tractor
|
|
546
|
+
may not be exhibited on the agricultural trailer or trailers", and
|
|
547
|
+
rule 50(7) does the same for a modular hydraulic trailer behind a
|
|
548
|
+
puller tractor.
|
|
549
|
+
sources:
|
|
550
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(2)(d) trailer sentence; rule 50(6); rule 50(7) (inserted by G.S.R. 212(E) 20-3-2015 w.e.f. 1-4-2015); accessed 2026-08-02"
|
|
551
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
552
|
+
sources:
|
|
553
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(1) HSRP specification (w.e.f. 1-1-2004) read with rule 50(2)(d)(A) yellow-background rule; accessed 2026-08-02"
|
|
554
|
+
- "https://web.archive.org/web/20210514202317id_/https://morth.nic.in/sites/default/files/notifications_document/Notification_no_G_S_R_1162E_dated_04_12_2018_regarding_High_Security_Registration_Plate_0.pdf # HSRP Order 2018 applies to 'motor vehicles as defined in clause (28) of section 2' — i.e. transport vehicles too; accessed 2026-08-02"
|
|
555
|
+
notes: >-
|
|
556
|
+
THE CURRENT TRANSPORT PLATE. The HSRP specification is colour-blind: rule
|
|
557
|
+
50(1) prescribes the plate, rule 50(2)(d) prescribes the colour, and a
|
|
558
|
+
yellow HSRP is the ordinary sight on an Indian goods carriage or taxi
|
|
559
|
+
today. Distinct from in-standard-hsrp-2004 only in background colour and
|
|
560
|
+
in the repetition rules that follow a transport vehicle around.
|
|
561
|
+
|
|
562
|
+
- id: in-electric-green-2018
|
|
563
|
+
class: electric
|
|
564
|
+
categories: [car, van, motorcycle, truck, bus]
|
|
565
|
+
period: { start: 2018 }
|
|
566
|
+
period_evidence: enabling-instrument
|
|
567
|
+
matching: strict
|
|
568
|
+
format:
|
|
569
|
+
pattern: "LL 99 LL 9999"
|
|
570
|
+
regex: '\A[A-Z]{2} ?\d{1,2} ?[A-Z](?: ?[A-Z]){0,2} ?\d{4}\z'
|
|
571
|
+
regex_strict: '\A(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|DN|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|OR|PB|PY|RJ|SK|TG|TN|TR|TS|UA|UK|UP|WB) ?(?:0[1-9]|[1-9]\d?) ?[A-Z](?: ?[A-Z]){0,2} ?(?!0000)\d{4}\z'
|
|
572
|
+
composition_evidence: reconstructed
|
|
573
|
+
design:
|
|
574
|
+
plate: { w: 340, h: 200, unit: mm }
|
|
575
|
+
plate_variants:
|
|
576
|
+
- { w: 200, h: 100, unit: mm, note: "E-rickshaws and E-carts take the two/three-wheeler size expressly (rule 50(1)(vi), as substituted by G.S.R. 709(E) 8-10-2014)" }
|
|
577
|
+
background: { color: "#00843D", finish: retroreflective, hex_basis: observed }
|
|
578
|
+
foreground: "#FFFFFF"
|
|
579
|
+
band: { side: none }
|
|
580
|
+
rear_differs: false
|
|
581
|
+
characters: { min_height_mm: 65, min_thickness_mm: 10, min_space_mm: 10, note: "E-rickshaw and E-cart take rule 51's 35/7/5 row" }
|
|
582
|
+
variants:
|
|
583
|
+
- class: electric
|
|
584
|
+
design: { background: { color: "#00843D", finish: retroreflective, hex_basis: observed }, foreground: "#FFD200" }
|
|
585
|
+
note: >-
|
|
586
|
+
A battery-operated TRANSPORT vehicle carries the mark "in Yellow
|
|
587
|
+
colour on Green background" (rule 50(2A)) — the same green plate with
|
|
588
|
+
yellow characters instead of white. Colour-only variant of the same
|
|
589
|
+
format and period, hence a sub-entry rather than a series
|
|
590
|
+
(PRD-PLATES § 2.3). This is the one place in Indian plate law where
|
|
591
|
+
the transport/non-transport split changes the FOREGROUND rather than
|
|
592
|
+
the background.
|
|
593
|
+
sources:
|
|
594
|
+
- "https://web.archive.org/web/20210514202442id_/https://morth.nic.in/sites/default/files/notifications_document/Notification_no_G_S_R_749E_dated_07_08_2018_regarding_Background_colour_of_registration_plates_for_Electric_vehicles_0.pdf # rule 50(2A), verbatim; accessed 2026-08-02"
|
|
595
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
596
|
+
sources:
|
|
597
|
+
- "https://web.archive.org/web/20210514202442id_/https://morth.nic.in/sites/default/files/notifications_document/Notification_no_G_S_R_749E_dated_07_08_2018_regarding_Background_colour_of_registration_plates_for_Electric_vehicles_0.pdf # G.S.R. 749(E), 7 August 2018, Central Motor Vehicles (10th Amendment) Rules 2018, inserting rule 50(2A) after rule 50(2); 'They shall come into force on the date of their publication in the Official Gazette'; accessed 2026-08-02"
|
|
598
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 50(1)(vi) sizes including E-rickshaw and E-cart; rule 51 row 5; accessed 2026-08-02"
|
|
599
|
+
notes: >-
|
|
600
|
+
THE GREEN PLATE. Its own series and not a colour variant of the standard
|
|
601
|
+
one, because its PERIOD differs: rule 50(2A) was inserted by G.S.R.
|
|
602
|
+
749(E) and came into force on publication, 7 August 2018 — before that
|
|
603
|
+
date a battery-operated vehicle took the ordinary white or yellow plate,
|
|
604
|
+
and green plates on the road are therefore a hard 2018-or-later signal.
|
|
605
|
+
The mark itself is unchanged: same state code, same district, same
|
|
606
|
+
series, same serial, so a green plate carries no serial-level tell at
|
|
607
|
+
all. Note the rule's own term is "Battery Operated Vehicles", which is
|
|
608
|
+
narrower than "electric": a hybrid does not qualify, and rule 50(2A)
|
|
609
|
+
offers no definition — a recorded gap.
|
|
610
|
+
|
|
611
|
+
- id: in-bh-2021
|
|
612
|
+
class: standard
|
|
613
|
+
categories: [car, van, motorcycle]
|
|
614
|
+
period: { start: 2021 }
|
|
615
|
+
period_evidence: enabling-instrument
|
|
616
|
+
matching: strict
|
|
617
|
+
format:
|
|
618
|
+
pattern: "99 BH 9999 LL"
|
|
619
|
+
regex: '\A\d{2} ?BH ?\d{4} ?[A-Z]{1,2}\z'
|
|
620
|
+
regex_strict: '\A\d{2} ?BH ?(?!0000)\d{4} ?[A-HJ-NP-Z]{1,2}\z'
|
|
621
|
+
composition_evidence: instrument
|
|
622
|
+
charset:
|
|
623
|
+
excluded_letters: [I, O]
|
|
624
|
+
excluded_letters_note: "rule 50(8), verbatim: 'A, B, C …and then AA,AB…..AZ, BA, BB …..to ZZ excluding ‚I‘ & ‚O‘'"
|
|
625
|
+
notes: >-
|
|
626
|
+
Rule 50(8) is the ONLY Indian instrument that lays out a registration
|
|
627
|
+
mark as a labelled table, and it is worth quoting whole because it is
|
|
628
|
+
the model for how the ordinary mark ought to have been written:
|
|
629
|
+
"XX / Last two digits of year of registration | XX / Bharat Series
|
|
630
|
+
code (2) letters as 'BH' | #### XX / 4 numerals 0001 to 9999 followed
|
|
631
|
+
by letter(s) A, B, C …and then AA,AB…..AZ, BA, BB …..to ZZ excluding
|
|
632
|
+
'I' & 'O'".
|
|
633
|
+
progression: >-
|
|
634
|
+
The first two digits are the last two digits of the YEAR of
|
|
635
|
+
registration, which makes BH the only Indian series with an exact age
|
|
636
|
+
in the serial. The trailing letter group advances A..Z then AA..ZZ as
|
|
637
|
+
each year's four-digit block exhausts. The mark is not chosen: rule
|
|
638
|
+
48's new proviso requires it to be "generated randomly through the
|
|
639
|
+
portal after verification of working certificate in Form 60 or Official
|
|
640
|
+
identity card".
|
|
641
|
+
design:
|
|
642
|
+
plate: { w: 340, h: 200, unit: mm }
|
|
643
|
+
plate_variants:
|
|
644
|
+
- { w: 500, h: 120, unit: mm }
|
|
645
|
+
- { w: 200, h: 100, unit: mm, note: "two-wheelers" }
|
|
646
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: observed }
|
|
647
|
+
foreground: "#000000"
|
|
648
|
+
band: { side: none }
|
|
649
|
+
rear_differs: false
|
|
650
|
+
characters: { min_height_mm: 65, min_thickness_mm: 10, min_space_mm: 10 }
|
|
651
|
+
region_encoding: none
|
|
652
|
+
region_encoding_note: >-
|
|
653
|
+
THE ONE INDIAN MARK WITH NO GEOGRAPHY IN IT — that is the entire point of
|
|
654
|
+
the series. There is no state code and no district code; "BH" is Bharat,
|
|
655
|
+
the country. A parse API must not attempt a regional decode on a BH
|
|
656
|
+
string, and must not read the leading two digits as a district: they are
|
|
657
|
+
a year.
|
|
658
|
+
eligibility: >-
|
|
659
|
+
Rule 47(1)(ca)-(cb), inserted by the same instrument: a working
|
|
660
|
+
certificate in Form 60 for a private-sector applicant, whose employer
|
|
661
|
+
declares "we have offices in four States/UTs or more"; an official
|
|
662
|
+
identity card for a government employee. The series is voluntary
|
|
663
|
+
("opted voluntarily by the vehicle owner", rule 48 proviso) and
|
|
664
|
+
non-transport only, since rule 51B's tax scheme is written for
|
|
665
|
+
"non-transport vehicles".
|
|
666
|
+
sources:
|
|
667
|
+
- "https://egazette.gov.in/WriteReadData/2021/229283.pdf # G.S.R. 594(E), New Delhi, 26 August 2021 — Central Motor Vehicles (Twentieth Amendment) Rules, 2021, para 1(2) 'They shall come into force with effect from the 15th day of September, 2021'; para 4 inserting rule 50(8) with the mark table verbatim; para 2 inserting rule 47(1)(ca)-(cb); para 3 inserting the rule 48 proviso; para 6 inserting rule 54(3); Form 60; accessed 2026-08-02"
|
|
668
|
+
notes: >-
|
|
669
|
+
THE BHARAT (BH) SERIES — a genuinely new format, instrument-dated to the
|
|
670
|
+
day. G.S.R. 594(E) is dated 26 August 2021 and its own commencement
|
|
671
|
+
clause says 15 September 2021, so BOTH dates are real and they mean
|
|
672
|
+
different things; period.start records the year, and a verifier
|
|
673
|
+
re-deriving it should expect to find 2021 either way. What the series
|
|
674
|
+
solves is the § 47 re-registration burden on inter-State movers: rule
|
|
675
|
+
54(3), inserted by the same amendment, provides that the
|
|
676
|
+
re-registration rule "shall not apply to a vehicle having BH-Series
|
|
677
|
+
registration mark", the owner instead intimating the new State in
|
|
678
|
+
Form 33 within thirty days. The mark is black on white by rule 50(8) in
|
|
679
|
+
terms — the sub-rule prescribes the colour itself rather than leaning on
|
|
680
|
+
rule 50(2)(d) — and a transport BH plate does not exist.
|
|
681
|
+
|
|
682
|
+
- id: in-temporary-2021
|
|
683
|
+
class: temporary
|
|
684
|
+
categories: [car, van, truck, bus, motorcycle, trailer]
|
|
685
|
+
period: { start: 2021 }
|
|
686
|
+
period_evidence: enabling-instrument
|
|
687
|
+
matching: strict
|
|
688
|
+
format:
|
|
689
|
+
pattern: "T 9999 LL 9999 LL"
|
|
690
|
+
regex: '\AT ?\d{4} ?[A-Z]{2} ?\d{4} ?[A-Z]{2}\z'
|
|
691
|
+
regex_strict: '\AT ?(?:0[1-9]|1[0-2])\d{2} ?(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|PB|PY|RJ|SK|TG|TN|TR|TS|UK|UP|WB) ?(?!0000)\d{4} ?[A-HJ-NP-Z]{2}\z'
|
|
692
|
+
composition_evidence: instrument
|
|
693
|
+
charset:
|
|
694
|
+
excluded_letters: [I, O]
|
|
695
|
+
excluded_letters_note: "rule 53C(1), verbatim: 'AB- Alphabet of Temporary Registration (Except O and I)'"
|
|
696
|
+
progression: >-
|
|
697
|
+
The month and year of ISSUE are in the mark, which makes the Indian
|
|
698
|
+
temporary plate self-dating and its expiry mechanically checkable: rule
|
|
699
|
+
53B gives an initial validity extendable "one or more times by 30 days
|
|
700
|
+
each".
|
|
701
|
+
design:
|
|
702
|
+
band: { side: none }
|
|
703
|
+
note: >-
|
|
704
|
+
NO COLOUR AND NO DIMENSION IS PRESCRIBED FOR THE TEMPORARY MARK, and
|
|
705
|
+
this file does not invent one. Rule 53C(2) says only that "the owner
|
|
706
|
+
shall ensure that the said mark is affixed to the front and rear of the
|
|
707
|
+
motor vehicle". On its face rule 50(2)(d) applies to any registration
|
|
708
|
+
mark, which would make a temporary plate black on white (or yellow for
|
|
709
|
+
a transport vehicle); the red-on-yellow temporary plate that every
|
|
710
|
+
secondary source describes has NO primary and is logged as folklore in
|
|
711
|
+
the dossier. Recorded gap.
|
|
712
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
713
|
+
region_encoding_mechanism: >-
|
|
714
|
+
State code only — rule 53C's legend has no RTO district element, which is
|
|
715
|
+
consistent with a temporary mark being valid for movement rather than
|
|
716
|
+
tied to an office. The decode returns a State and must not attempt a
|
|
717
|
+
district.
|
|
718
|
+
sources:
|
|
719
|
+
- "https://web.archive.org/web/20210421181546id_/https://morth.nic.in/sites/default/files/notifications_document/GSR%20240%28E%29%20dated%2031st%20March%202021%20Committee%20A%20Licensing%20of%20drivers%2C%20Fitness%20and%20Registration%20of%20motor%20vehicles%20%20.pdf # G.S.R. 240(E), 31 March 2021 — Central Motor Vehicles (Sixth Amendment) Rules, 2021, 'They shall come into force with effect from 01st day of April, 2021'; the inserted rule 53C: 'T- Represent temporary certificate; 08- Month of issuance of temporary certificate of registration 20- Year of issuance ...; AB- Represent State Code; 1234- Serial Number of Temporary Registration; AB- Alphabet of Temporary Registration (Except O and I)'; accessed 2026-08-02"
|
|
720
|
+
- "https://web.archive.org/web/20250804185944id_/https://www.indiacode.nic.in/bitstream/123456789/1798/1/aA1988-59.pdf # MVA § 43, the temporary-registration power the rule is made under; accessed 2026-08-02"
|
|
721
|
+
notes: >-
|
|
722
|
+
THE STANDARDISED TEMPORARY MARK, and the reason it is dated 2021 rather
|
|
723
|
+
than 1989: temporary registration has existed since the Act (§ 43), but
|
|
724
|
+
until rule 53C was inserted its mark had NO nationally prescribed shape
|
|
725
|
+
and every State invented one. G.S.R. 240(E) gave it a form for the first
|
|
726
|
+
time. Two consequences for a parse API: a temporary string of this shape
|
|
727
|
+
is a hard 2021-or-later signal, and any earlier Indian temporary mark is
|
|
728
|
+
out of scope of this dataset because no instrument describes it.
|
|
729
|
+
period.start 2021 is the amendment's own commencement, 1 April 2021.
|
|
730
|
+
|
|
731
|
+
- id: in-dealer-1989
|
|
732
|
+
class: dealer
|
|
733
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
734
|
+
period: { start: 1989, end: 2022 }
|
|
735
|
+
period_evidence: enabling-instrument
|
|
736
|
+
matching: strict
|
|
737
|
+
format:
|
|
738
|
+
pattern: "LL 99 LL 999"
|
|
739
|
+
regex: '\A[A-Z]{2} ?\d{1,2} ?[A-Z]{2} ?\d{1,3}\z'
|
|
740
|
+
regex_strict: '\A(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|DN|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|OR|PB|PY|RJ|SK|TG|TN|TR|TS|UA|UK|UP|WB) ?(?:0[1-9]|[1-9]\d?) ?[A-Z]{2} ?[1-9]\d{0,2}\z'
|
|
741
|
+
composition_evidence: instrument
|
|
742
|
+
charset:
|
|
743
|
+
notes: >-
|
|
744
|
+
Rule 35(1) as originally made, verbatim: the registering authority
|
|
745
|
+
"shall assign in respect of each certificate a trade registration
|
|
746
|
+
mark consisting of the registration mark referred to in the
|
|
747
|
+
notification made under sub-section (6) of section 41 and followed by
|
|
748
|
+
two letters and a number containing not more than three digits for
|
|
749
|
+
each vehicle, for example:- AB—Represent State Code. 12—Registration
|
|
750
|
+
District Code. TC[1]—Trade certificate number for the vehicle." The
|
|
751
|
+
rule does NOT fix the two letters as "TC"; only the worked example
|
|
752
|
+
uses them, so `regex_strict` leaves the letter pair open. (The
|
|
753
|
+
example's third token is printed "TCI" in MoRTH's consolidated PDF,
|
|
754
|
+
which is an OCR artefact of "TC1" — flagged, not relied on.)
|
|
755
|
+
design:
|
|
756
|
+
band: { side: none }
|
|
757
|
+
note: >-
|
|
758
|
+
The pre-2022 rule prescribed no colour: rule 39(2) as originally made
|
|
759
|
+
said only that "the trade certificate shall be carried on a motor
|
|
760
|
+
vehicle in a weatherproof circular folder and the trade registration
|
|
761
|
+
mark shall be exhibited in a conspicuous place in the vehicle". No
|
|
762
|
+
colour is asserted for this series. Recorded gap.
|
|
763
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
764
|
+
sources:
|
|
765
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 35(1) as originally made, with the AB / 12 / TC legend; rule 39(2) pre-2022; rule 34(2) classes (a)-(j); accessed 2026-08-02"
|
|
766
|
+
- "https://web.archive.org/web/20230429221141id_/https://morth.nic.in/sites/default/files/notifications_document/GSR%20703(E)%20dt%2014%20September%202022%20for%20Trade%20Certificate.pdf # G.S.R. 703(E) substituting rule 35 entire, which is what ends this series, and its transitional para 1(3): certificates granted before commencement 'shall continue to remain in force till the date of their expiry'; accessed 2026-08-02"
|
|
767
|
+
notes: >-
|
|
768
|
+
THE OLD TRADE (DEALER) MARK. Its shape is instrument-evidenced and its
|
|
769
|
+
end is instrument-evidenced: G.S.R. 703(E) substituted rule 35 with
|
|
770
|
+
effect from 1 November 2022. The transitional clause means marks of this
|
|
771
|
+
shape stayed lawful past that date, on certificates already granted, until
|
|
772
|
+
those certificates expired — under the old rule 37 a trade certificate ran
|
|
773
|
+
for twelve months, so the tail is short. period.end 2022 records the
|
|
774
|
+
substitution; the tail is in this note, not in the period.
|
|
775
|
+
|
|
776
|
+
- id: in-dealer-2022
|
|
777
|
+
class: dealer
|
|
778
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
779
|
+
period: { start: 2022 }
|
|
780
|
+
period_evidence: enabling-instrument
|
|
781
|
+
matching: strict
|
|
782
|
+
format:
|
|
783
|
+
pattern: "LL 99 L 9999 TC 9999"
|
|
784
|
+
regex: '\A[A-Z]{2} ?\d{1,2} ?[A-Z] ?\d{4} ?TC ?\d{4}\z'
|
|
785
|
+
regex_strict: '\A(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|PB|PY|RJ|SK|TG|TN|TR|TS|UK|UP|WB) ?(?:0[1-9]|[1-9]\d?) ?[A-J] ?\d{4} ?TC ?(?!0000)\d{4}\z'
|
|
786
|
+
composition_evidence: instrument
|
|
787
|
+
charset:
|
|
788
|
+
vehicle_class_letters:
|
|
789
|
+
A: "motor cycle"
|
|
790
|
+
B: "invalid carriage"
|
|
791
|
+
C: "light motor vehicle"
|
|
792
|
+
D: "medium passenger motor vehicle"
|
|
793
|
+
E: "medium goods vehicle"
|
|
794
|
+
F: "heavy passenger motor vehicle"
|
|
795
|
+
G: "heavy goods vehicle"
|
|
796
|
+
H: "E-rickshaw"
|
|
797
|
+
I: "E-cart"
|
|
798
|
+
J: "any other motor vehicle of a specified description"
|
|
799
|
+
vehicle_class_letters_note: >-
|
|
800
|
+
Rule 35(3) says the letter "Represents serial number of class of
|
|
801
|
+
vehicle as prescribed in Rule 34(2) i.e. from A to J"; rule 34(2)
|
|
802
|
+
lists those classes as clauses (a) to (j), which is the closed
|
|
803
|
+
primary list inlined above (PRD-PLATES § 2.4 small-inline-table
|
|
804
|
+
rule). NOTE THE TRAP: this is the one Indian series in which the
|
|
805
|
+
letter I IS issued — it is E-cart — while BH and temporary marks
|
|
806
|
+
expressly exclude I. A parse API must not apply a blanket I/O
|
|
807
|
+
exclusion across India.
|
|
808
|
+
design:
|
|
809
|
+
background: { color: "#D22630", finish: retroreflective, hex_basis: observed }
|
|
810
|
+
foreground: "#FFFFFF"
|
|
811
|
+
band: { side: none }
|
|
812
|
+
rear_differs: false
|
|
813
|
+
characters: { note: "rule 39(2) as substituted: 'as per dimensions specified in rule 51'" }
|
|
814
|
+
note: "rule 39(2) as substituted: the mark 'shall be exhibited on front and rear of a motor vehicle'"
|
|
815
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
816
|
+
sources:
|
|
817
|
+
- "https://web.archive.org/web/20230429221141id_/https://morth.nic.in/sites/default/files/notifications_document/GSR%20703(E)%20dt%2014%20September%202022%20for%20Trade%20Certificate.pdf # G.S.R. 703(E), 14 September 2022 — Central Motor Vehicles (Fifteenth Amendment) Rules, 2022, 'They shall come into force with effect from the 1st day of November, 2022'; substituted rule 35(3) with the worked example 'AB 12 A 1234 TC 0001' and its five-line legend; substituted rule 39(2) 'in white colour on red background as per dimensions specified in rule 51'; rule 37(1) validity extended from twelve months to five years; accessed 2026-08-02"
|
|
818
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 34(2) clauses (a)-(j), the class list the letter A-J indexes; accessed 2026-08-02"
|
|
819
|
+
notes: >-
|
|
820
|
+
THE CURRENT TRADE MARK — and the most completely specified registration
|
|
821
|
+
mark in Indian law, which is the irony of this file: the dealer plate has
|
|
822
|
+
a worked example in the rule ("AB 12 A 1234 TC 0001") and the ordinary
|
|
823
|
+
plate every Indian sees does not. period.start 2022 is the amendment's
|
|
824
|
+
own commencement, 1 November 2022. The four-digit tail is the trade
|
|
825
|
+
registration mark number within the certificate, "starting from 0001 to
|
|
826
|
+
9999", and a dealer may hold many: rule 35A, inserted by the same
|
|
827
|
+
instrument, provides for additional marks in Form 17B.
|
|
828
|
+
|
|
829
|
+
- id: in-vintage-2021
|
|
830
|
+
class: historic
|
|
831
|
+
categories: [car, motorcycle]
|
|
832
|
+
period: { start: 2021 }
|
|
833
|
+
period_evidence: enabling-instrument
|
|
834
|
+
matching: strict
|
|
835
|
+
format:
|
|
836
|
+
pattern: "LL VA LL 9999"
|
|
837
|
+
regex: '\A[A-Z]{2} ?VA ?[A-Z]{2} ?\d{4}\z'
|
|
838
|
+
regex_strict: '\A(?:AN|AP|AR|AS|BR|CG|CH|DD|DL|GA|GJ|HP|HR|JH|JK|KA|KL|LA|LD|MH|ML|MN|MP|MZ|NL|OD|PB|PY|RJ|SK|TG|TN|TR|TS|UK|UP|WB) ?VA ?[A-Z]{2} ?(?!0000)\d{4}\z'
|
|
839
|
+
composition_evidence: instrument
|
|
840
|
+
charset:
|
|
841
|
+
fixed_letters: "VA"
|
|
842
|
+
notes: >-
|
|
843
|
+
Rule 81B(1), verbatim: "the Registering Authority shall assign to a
|
|
844
|
+
Vintage Motor Vehicle for display thereon, a registration mark
|
|
845
|
+
consisting of the letters 'XX VA YY ****', where VA stands for
|
|
846
|
+
Vintage, XX stands for State code, YY will be a two letter series and
|
|
847
|
+
'****' is a number from 0001 to 9999 allotted by State Registering
|
|
848
|
+
Authority." Note what is NOT said: nothing excludes I or O from the
|
|
849
|
+
two-letter series, so `regex_strict` does not exclude them.
|
|
850
|
+
design:
|
|
851
|
+
plate: { w: 340, h: 200, unit: mm }
|
|
852
|
+
plate_variants:
|
|
853
|
+
- { w: 200, h: 100, unit: mm, note: "L1/L2 two-wheelers" }
|
|
854
|
+
background: { color: "#FFFFFF", finish: painted, hex_basis: observed }
|
|
855
|
+
foreground: "#000000"
|
|
856
|
+
band: { side: none }
|
|
857
|
+
rear_differs: false
|
|
858
|
+
hsrp_exempt: true
|
|
859
|
+
note: >-
|
|
860
|
+
Rule 81B(2): the mark "shall conform to the specifications spelt out in
|
|
861
|
+
rules 50 and 51 of these rules" — but rule 81B(4) exempts vintage
|
|
862
|
+
vehicles from HSRP entirely: "All such Vintage Motor Vehicles shall be
|
|
863
|
+
exempted from the provisions of High Security Registration Plate as
|
|
864
|
+
mandated under rule 50." So the vintage plate takes rule 50's colours
|
|
865
|
+
and rule 51's character sizes and NONE of rule 50(1)'s security
|
|
866
|
+
features — the only Indian plate in current issue that lawfully has no
|
|
867
|
+
IND legend, no hologram and no laser code.
|
|
868
|
+
region_encoding: "plates/_decode/in-state-codes.yml"
|
|
869
|
+
region_encoding_mechanism: "State code only — rule 81B has no district element, and the mark is allotted by the State Registering Authority rather than by a district office"
|
|
870
|
+
eligibility: >-
|
|
871
|
+
Rule 81A explanation: a vehicle of category L1/L2 (two-wheeler) or M1
|
|
872
|
+
(four-wheeler) "which is more than fifty years old from the date of first
|
|
873
|
+
registration after first sale including any vehicle imported into India
|
|
874
|
+
subject to the condition that such vehicle should be maintained in its
|
|
875
|
+
original form and should not have undergone any substantial overhaul,
|
|
876
|
+
which includes any modification in chassis or body shell or engine".
|
|
877
|
+
Registration is valid ten years, renewable for five (rule 81C).
|
|
878
|
+
sources:
|
|
879
|
+
- "https://egazette.gov.in/WriteReadData/2021/228336.pdf # G.S.R. 492(E), New Delhi, 15 July 2021 — Central Motor Vehicles (Fifteenth Amendment) Rules, 2021, in force 'on the date of their final publication in the Official Gazette'; inserted Chapter IIIA, rules 81A (procedure and the fifty-year definition), 81B(1) (the XX VA YY **** mark), 81B(3) (already-registered vintage vehicles keep their original number), 81B(4) (HSRP exemption) and 81C (validity); accessed 2026-08-02"
|
|
880
|
+
notes: >-
|
|
881
|
+
THE VINTAGE (VA) SERIES. Its own format, its own instrument and its own
|
|
882
|
+
date — and one modelling subtlety that matters to a decoder: rule 81B(3)
|
|
883
|
+
provides that "All those vehicles which are already registered as Vintage
|
|
884
|
+
Motor Vehicle shall continue to retain the original registration number
|
|
885
|
+
and registration plate intact without any change", so a fifty-year-old
|
|
886
|
+
Indian car may lawfully carry EITHER a VA mark or its original ordinary
|
|
887
|
+
mark, and the absence of a VA mark says nothing about the vehicle's
|
|
888
|
+
status. period.start 2021 is the notification's own date, 15 July 2021.
|
|
889
|
+
|
|
890
|
+
# =========================================================================
|
|
891
|
+
# DIPLOMATIC, CONSULAR AND UN. Rules 76-77 are the 1989 principal rules'
|
|
892
|
+
# own text (unfootnoted in MoRTH's consolidation = unamended since 1989)
|
|
893
|
+
# except where an amendment is named. The MARK here is not built from a
|
|
894
|
+
# state code at all: it is [mission number] + [letters] + [vehicle number],
|
|
895
|
+
# and the mission number is allotted by the MINISTRY OF EXTERNAL AFFAIRS,
|
|
896
|
+
# not by MoRTH — a second, entirely separate decode dimension, and one this
|
|
897
|
+
# dataset does NOT hold (recorded gap).
|
|
898
|
+
# =========================================================================
|
|
899
|
+
- id: in-diplomatic-cd-1989
|
|
900
|
+
class: diplomatic
|
|
901
|
+
categories: [car, van]
|
|
902
|
+
period: { start: 1989 }
|
|
903
|
+
period_evidence: enabling-instrument
|
|
904
|
+
matching: strict
|
|
905
|
+
format:
|
|
906
|
+
pattern: "99 CD 999"
|
|
907
|
+
regex: '\A\d{1,3} ?CD ?\d{1,4} ?[A-Z]?\z'
|
|
908
|
+
regex_statutory: '\A\d+ ?CD ?\d+ ?[A-Z]?\z'
|
|
909
|
+
composition_evidence: instrument
|
|
910
|
+
charset:
|
|
911
|
+
fixed_letters: "CD"
|
|
912
|
+
notes: >-
|
|
913
|
+
Rule 76(6), as substituted by G.S.R. 221(E) (28-3-2001), verbatim: a
|
|
914
|
+
vehicle of a Delhi diplomatic mission or its diplomatic officer "shall
|
|
915
|
+
be assigned a registration mark consisting of the letters 'CD'
|
|
916
|
+
preceded by the number allotted to the mission by the Ministry of
|
|
917
|
+
External Affairs of the Government of India and followed by a number
|
|
918
|
+
allotted to the vehicle by the registering authority". NEITHER NUMBER
|
|
919
|
+
HAS A PRESCRIBED WIDTH. `regex` bounds them at three and four digits,
|
|
920
|
+
which is an OBSERVED practical bound and not a legal one;
|
|
921
|
+
`regex_statutory` is the unbounded form the rule actually authorises.
|
|
922
|
+
The optional trailing letter is rule 76(6)(ii): the head of mission's
|
|
923
|
+
PERSONAL vehicles take the number "1" "followed consecutively, in
|
|
924
|
+
alphabetical order, by a letter beginning with the letter 'A'".
|
|
925
|
+
progression: >-
|
|
926
|
+
Rule 76(6)(i)-(vi) is an allocation ladder, and it decodes: "1" is the
|
|
927
|
+
head of mission's official car; "1A", "1B" … are the head of mission's
|
|
928
|
+
personal cars; official vehicles other than the head's start at "2";
|
|
929
|
+
then other officers' vehicles; then vehicles acquired by the mission or
|
|
930
|
+
by non-head diplomatic officers, "irrespective of whether such vehicle
|
|
931
|
+
is for official or personal use". Numbers freed by sale or export may
|
|
932
|
+
be reissued within the same clause.
|
|
933
|
+
design:
|
|
934
|
+
plate: { w: 410, h: 140, unit: mm }
|
|
935
|
+
background: { color: "#00338D", finish: retroreflective, hex_basis: observed }
|
|
936
|
+
foreground: "#FFFFFF"
|
|
937
|
+
band: { side: none }
|
|
938
|
+
rear_differs: false
|
|
939
|
+
characters:
|
|
940
|
+
letters: { min_height_mm: 60, min_thickness_mm: 20 }
|
|
941
|
+
numerals: { min_height_mm: 90, min_thickness_mm: 20 }
|
|
942
|
+
min_space_mm: 10
|
|
943
|
+
note: >-
|
|
944
|
+
Rule 77(2)(i): letters "not less than 6 centimetres high and 2
|
|
945
|
+
centimetres thick at any part", numerals "not less than 9 centimetres
|
|
946
|
+
high and 2 centimetres thick", spacing "not less than 1 centimetre";
|
|
947
|
+
rule 77(2)(ii): on a motor cycle or invalid carriage, two-thirds of
|
|
948
|
+
those. This is the one Indian plate whose NUMERALS are prescribed
|
|
949
|
+
taller than its LETTERS.
|
|
950
|
+
layout: >-
|
|
951
|
+
Rule 77(3): on a transport vehicle, two lines — "the number allotted to
|
|
952
|
+
the mission or post and the letters forming the first line followed by
|
|
953
|
+
the number allotted by the registering authority in the second line";
|
|
954
|
+
in all other cases one or two lines at choice. Rule 77(3) also caps the
|
|
955
|
+
tilt at thirty degrees from the vertical, against rule 50(5)'s
|
|
956
|
+
forty-five for tractors.
|
|
957
|
+
region_encoding: none
|
|
958
|
+
region_encoding_mechanism: >-
|
|
959
|
+
NO GEOGRAPHY AND NO STATE CODE. The leading number is the MISSION number
|
|
960
|
+
allotted by the Ministry of External Affairs, which is a country decode,
|
|
961
|
+
not a place decode — and the MEA list was NOT reached in this pass, so
|
|
962
|
+
this dataset cannot turn "13 CD 1" into a country. That table is the
|
|
963
|
+
single most requested Indian plate decode after the state codes and is a
|
|
964
|
+
recorded gap for gate L4 (PRD-PLATES § 7 lists diplomatic decode tables
|
|
965
|
+
there).
|
|
966
|
+
sources:
|
|
967
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 76(1)-(6) with footnote 96 dating the substitution of sub-rule (6) to G.S.R. 221(E) 28-3-2001; rule 77(1)(i) 'with deep blue background, the registration mark and the number being in white'; rule 77(1) plate size '41 centimetres by 14 centimetres'; rule 77(2)-(3); accessed 2026-08-02"
|
|
968
|
+
notes: >-
|
|
969
|
+
THE CD PLATE. period.start 1989 is the principal rules: rule 77(1)(i) and
|
|
970
|
+
its 41 x 14 cm plate carry no amendment footnote in MoRTH's consolidation,
|
|
971
|
+
so they are the text as made in G.S.R. 590(E) of 2 June 1989; only the
|
|
972
|
+
ALLOCATION ladder in sub-rule (6) was rewritten in 2001, which changes who
|
|
973
|
+
gets which number and not what the plate looks like. Rule 76(8) adds a
|
|
974
|
+
case this dataset does not model as a series: consular posts headed by
|
|
975
|
+
HONORARY consular officers "shall use standard size number plates bearing
|
|
976
|
+
ordinary registration number" and may add "name of the country followed by
|
|
977
|
+
CC (Honorary)" in white on black, smaller than the registration number, on
|
|
978
|
+
at most two vehicles — an ordinary mark with a legend beside it, not a
|
|
979
|
+
series of its own.
|
|
980
|
+
|
|
981
|
+
- id: in-consular-cc-1989
|
|
982
|
+
class: consular
|
|
983
|
+
categories: [car, van]
|
|
984
|
+
period: { start: 1989, end: 2017 }
|
|
985
|
+
period_evidence: enabling-instrument
|
|
986
|
+
matching: strict
|
|
987
|
+
format:
|
|
988
|
+
pattern: "99 CC 999"
|
|
989
|
+
regex: '\A\d{1,3} ?CC ?\d{1,4} ?[A-Z]?\z'
|
|
990
|
+
regex_statutory: '\A\d+ ?CC ?\d+ ?[A-Z]?\z'
|
|
991
|
+
composition_evidence: instrument
|
|
992
|
+
charset:
|
|
993
|
+
fixed_letters: "CC"
|
|
994
|
+
notes: >-
|
|
995
|
+
Rule 76(7): a vehicle of a consular post "headed by a Carrier
|
|
996
|
+
Counsellor Officer" or of its officers takes "the letters 'CC'
|
|
997
|
+
preceded by the number of the post allotted to it by the Ministry of
|
|
998
|
+
External Affairs ... and followed by a number allotted to the vehicle
|
|
999
|
+
by the registering authority out of a block of numbers allotted for
|
|
1000
|
+
that post". Same unbounded digit widths as the CD series, same
|
|
1001
|
+
reason for `regex_statutory`.
|
|
1002
|
+
design:
|
|
1003
|
+
plate: { w: 410, h: 140, unit: mm }
|
|
1004
|
+
background: { color: "#FFD200", finish: retroreflective, hex_basis: observed }
|
|
1005
|
+
foreground: "#000000"
|
|
1006
|
+
band: { side: none }
|
|
1007
|
+
rear_differs: false
|
|
1008
|
+
characters:
|
|
1009
|
+
letters: { min_height_mm: 60, min_thickness_mm: 20 }
|
|
1010
|
+
numerals: { min_height_mm: 90, min_thickness_mm: 20 }
|
|
1011
|
+
min_space_mm: 10
|
|
1012
|
+
region_encoding: none
|
|
1013
|
+
sources:
|
|
1014
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 76(7); rule 77(1)(ii) in its pre-2017 form, 'with yellow background, the registration mark and the number being in black'; accessed 2026-08-02"
|
|
1015
|
+
- "https://web.archive.org/web/20210514203127id_/https://morth.nic.in/sites/default/files/notifications_document/Notification_no_G_S_R_633E_dated_23_6_2017_regarding_registration_mark_under_rule_76_of_the_CMVR_0.pdf # G.S.R. 633(E) 23-6-2017, which substitutes those exact words and so dates the end of this series; accessed 2026-08-02"
|
|
1016
|
+
notes: >-
|
|
1017
|
+
THE OLD CONSULAR PLATE — yellow with black characters, which is why an
|
|
1018
|
+
Indian consular car of that era is easy to mistake for a taxi at a
|
|
1019
|
+
distance. Ended by G.S.R. 633(E) on 23 June 2017; see in-consular-cc-2017.
|
|
1020
|
+
Distinct from in-diplomatic-cd-1989 in letters and, until 2017, in colour.
|
|
1021
|
+
|
|
1022
|
+
- id: in-consular-cc-2017
|
|
1023
|
+
class: consular
|
|
1024
|
+
categories: [car, van]
|
|
1025
|
+
period: { start: 2017 }
|
|
1026
|
+
period_evidence: enabling-instrument
|
|
1027
|
+
matching: strict
|
|
1028
|
+
format:
|
|
1029
|
+
pattern: "99 CC 999"
|
|
1030
|
+
regex: '\A\d{1,3} ?CC ?\d{1,4} ?[A-Z]?\z'
|
|
1031
|
+
regex_statutory: '\A\d+ ?CC ?\d+ ?[A-Z]?\z'
|
|
1032
|
+
composition_evidence: instrument
|
|
1033
|
+
charset: { fixed_letters: "CC", notes: "unchanged by the 2017 amendment, which touched only rule 77(1)(ii)'s colours" }
|
|
1034
|
+
design:
|
|
1035
|
+
plate: { w: 410, h: 140, unit: mm }
|
|
1036
|
+
background: { color: "#00338D", finish: retroreflective, hex_basis: observed }
|
|
1037
|
+
foreground: "#FFD200"
|
|
1038
|
+
band: { side: none }
|
|
1039
|
+
rear_differs: false
|
|
1040
|
+
characters:
|
|
1041
|
+
letters: { min_height_mm: 60, min_thickness_mm: 20 }
|
|
1042
|
+
numerals: { min_height_mm: 90, min_thickness_mm: 20 }
|
|
1043
|
+
min_space_mm: 10
|
|
1044
|
+
region_encoding: none
|
|
1045
|
+
sources:
|
|
1046
|
+
- "https://web.archive.org/web/20210514203127id_/https://morth.nic.in/sites/default/files/notifications_document/Notification_no_G_S_R_633E_dated_23_6_2017_regarding_registration_mark_under_rule_76_of_the_CMVR_0.pdf # G.S.R. 633(E), 23 June 2017 — Central Motor Vehicles (Ninth Amendment) Rules, 2017, in force on publication: 'In the Central Motor Vehicles Rules, 1989, in rule 77, in sub-rule (1), in clause (ii), for the words “with yellow background, the registration mark and the number being in black”, the words “with deep blue background, the registration mark and the number being in yellow” shall be substituted'; its own draft was G.S.R. 40(E) of 17 January 2017; accessed 2026-08-02"
|
|
1047
|
+
notes: >-
|
|
1048
|
+
THE CURRENT CONSULAR PLATE — deep blue with YELLOW characters, against the
|
|
1049
|
+
diplomatic plate's deep blue with WHITE. That one-word difference is the
|
|
1050
|
+
whole distinction between a CD and a CC plate at a glance today, and it
|
|
1051
|
+
is exactly six years old. period.start 2017 is the amendment's own
|
|
1052
|
+
commencement (publication, 23 June 2017); its draft, G.S.R. 40(E) of
|
|
1053
|
+
17 January 2017, is NOT the date — the draft invites objections and
|
|
1054
|
+
creates nothing, which is the classic Indian instrument-date trap.
|
|
1055
|
+
|
|
1056
|
+
- id: in-un-1995
|
|
1057
|
+
class: diplomatic
|
|
1058
|
+
categories: [car, van]
|
|
1059
|
+
period: { start: 1995 }
|
|
1060
|
+
period_evidence: enabling-instrument
|
|
1061
|
+
matching: strict
|
|
1062
|
+
format:
|
|
1063
|
+
pattern: "99 UN 999"
|
|
1064
|
+
regex: '\A\d{1,3} ?UN ?\d{1,4} ?[A-Z]?\z'
|
|
1065
|
+
regex_statutory: '\A\d+ ?UN ?\d+ ?[A-Z]?\z'
|
|
1066
|
+
composition_evidence: instrument
|
|
1067
|
+
charset:
|
|
1068
|
+
fixed_letters: "UN"
|
|
1069
|
+
notes: >-
|
|
1070
|
+
Rule 76-A, inserted by G.S.R. 644 dated 25-9-1995: rules 76 and 77 to
|
|
1071
|
+
80 apply to vehicles of diplomatic officers of organisations notified
|
|
1072
|
+
under the United Nations (Privileges and Immunities) Act, 1947
|
|
1073
|
+
"with the modification that in rule 76,— (a) in sub-rule (6), for the
|
|
1074
|
+
letters 'CD', the letters 'UN' shall be substituted; and (b) in
|
|
1075
|
+
sub-rule (7), for the letters 'CC', the letters 'UN' shall be
|
|
1076
|
+
substituted."
|
|
1077
|
+
design:
|
|
1078
|
+
plate: { w: 410, h: 140, unit: mm }
|
|
1079
|
+
background: { color: "#00338D", finish: retroreflective, hex_basis: observed }
|
|
1080
|
+
foreground: "#FFFFFF"
|
|
1081
|
+
band: { side: none }
|
|
1082
|
+
rear_differs: false
|
|
1083
|
+
note: >-
|
|
1084
|
+
COLOUR CAVEAT, and it is a real ambiguity in the rule: rule 76-A
|
|
1085
|
+
substitutes "UN" into BOTH sub-rule (6) (whose colour is rule 77(1)(i),
|
|
1086
|
+
blue/white) and sub-rule (7) (whose colour is rule 77(1)(ii), now
|
|
1087
|
+
blue/yellow). A UN plate therefore takes blue/white or blue/yellow
|
|
1088
|
+
depending on which sub-rule the vehicle falls under, and the rule gives
|
|
1089
|
+
no way to tell the two apart from the mark. Recorded as an ambiguity,
|
|
1090
|
+
not resolved by invention; the blue/white recorded here is the
|
|
1091
|
+
sub-rule (6) case.
|
|
1092
|
+
region_encoding: none
|
|
1093
|
+
sources:
|
|
1094
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 76-A with footnote 1: 'Inserted by G.S.R. 644, dated 25-9-1995'; accessed 2026-08-02"
|
|
1095
|
+
notes: >-
|
|
1096
|
+
THE UN PLATE. period.start 1995 is the inserting instrument. The
|
|
1097
|
+
footnote in MoRTH's consolidation gives "G.S.R. 644" without the (E)
|
|
1098
|
+
suffix and without a separate commencement date, so the year is what is
|
|
1099
|
+
claimed here and the day is a recorded gap.
|
|
1100
|
+
|
|
1101
|
+
- id: in-nondiplomatic-cdp-1997
|
|
1102
|
+
class: diplomatic
|
|
1103
|
+
categories: [car, van]
|
|
1104
|
+
period: { start: 1997 }
|
|
1105
|
+
period_evidence: enabling-instrument
|
|
1106
|
+
matching: strict
|
|
1107
|
+
format:
|
|
1108
|
+
pattern: "99 CDP 999"
|
|
1109
|
+
regex: '\A\d{1,3} ?CDP ?\d{1,4}\z'
|
|
1110
|
+
regex_statutory: '\A\d+ ?CDP ?\d+\z'
|
|
1111
|
+
composition_evidence: instrument
|
|
1112
|
+
charset:
|
|
1113
|
+
fixed_letters: "CDP"
|
|
1114
|
+
notes: >-
|
|
1115
|
+
Rule 76-B(1), inserted by G.S.R. 395(E) dated 16-7-1997: a vehicle of
|
|
1116
|
+
a NON-DIPLOMATIC official of a mission or post in Delhi "shall be
|
|
1117
|
+
assigned a registration mark consisting of letters 'CDP' preceded by
|
|
1118
|
+
the number allotted to the mission or post by the Ministry of
|
|
1119
|
+
External Affairs ... and followed by a number allotted to the vehicle
|
|
1120
|
+
by the registering authority."
|
|
1121
|
+
design:
|
|
1122
|
+
plate: { w: 410, h: 140, unit: mm }
|
|
1123
|
+
background: { color: "#8DC63F", finish: retroreflective, hex_basis: observed }
|
|
1124
|
+
foreground: "#FFFFFF"
|
|
1125
|
+
band: { side: none }
|
|
1126
|
+
rear_differs: false
|
|
1127
|
+
region_encoding: none
|
|
1128
|
+
sources:
|
|
1129
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 76-B(1) with footnote 2 ('Inserted by G.S.R. 395(E), dated 16-7-1997') and rule 77(1)(iii) with footnote 3 (same instrument): 'with light green background, the registration mark and the number being in white in case of motor vehicles referred to in rule 76-B'; accessed 2026-08-02"
|
|
1130
|
+
notes: >-
|
|
1131
|
+
THE LIGHT-GREEN CDP PLATE — home-based NON-diplomatic staff of a mission
|
|
1132
|
+
in Delhi. Both the mark and its colour arrive in the same instrument,
|
|
1133
|
+
G.S.R. 395(E) of 16 July 1997, so the period claim is unusually clean for
|
|
1134
|
+
this jurisdiction. Do not confuse the light green of rule 77(1)(iii) with
|
|
1135
|
+
the battery-vehicle green of rule 50(2A): different instruments,
|
|
1136
|
+
different regimes, twenty-one years apart, and the CDP plate carries
|
|
1137
|
+
white characters where a private EV plate also carries white — the mark
|
|
1138
|
+
itself is the only reliable discriminator.
|
|
1139
|
+
|
|
1140
|
+
- id: in-nondiplomatic-ccp-1997
|
|
1141
|
+
class: consular
|
|
1142
|
+
categories: [car, van]
|
|
1143
|
+
period: { start: 1997 }
|
|
1144
|
+
period_evidence: enabling-instrument
|
|
1145
|
+
matching: strict
|
|
1146
|
+
format:
|
|
1147
|
+
pattern: "99 CCP 999"
|
|
1148
|
+
regex: '\A\d{1,3} ?CCP ?\d{1,4}\z'
|
|
1149
|
+
regex_statutory: '\A\d+ ?CCP ?\d+\z'
|
|
1150
|
+
composition_evidence: instrument
|
|
1151
|
+
charset:
|
|
1152
|
+
fixed_letters: "CCP"
|
|
1153
|
+
notes: >-
|
|
1154
|
+
Rule 76-B(2): a vehicle of a home-based non-diplomatic official of a
|
|
1155
|
+
consular post OUTSIDE Delhi "shall be assigned a registration mark
|
|
1156
|
+
consisting of the letters 'CCP' preceded by the number of the post
|
|
1157
|
+
allotted to it by the Ministry of External Affairs ... and followed
|
|
1158
|
+
by the number allotted to the vehicle by the registering authority."
|
|
1159
|
+
design:
|
|
1160
|
+
plate: { w: 410, h: 140, unit: mm }
|
|
1161
|
+
background: { color: "#8DC63F", finish: retroreflective, hex_basis: observed }
|
|
1162
|
+
foreground: "#FFFFFF"
|
|
1163
|
+
band: { side: none }
|
|
1164
|
+
rear_differs: false
|
|
1165
|
+
region_encoding: none
|
|
1166
|
+
sources:
|
|
1167
|
+
- "https://web.archive.org/web/20211130113450id_/https://morth.nic.in/sites/default/files/CMVR-chapter3.pdf # rule 76-B(2) and rule 77(1)(iii), both inserted by G.S.R. 395(E) dated 16-7-1997; accessed 2026-08-02"
|
|
1168
|
+
notes: >-
|
|
1169
|
+
THE CCP PLATE — the outside-Delhi twin of CDP, same colour, same
|
|
1170
|
+
instrument, same date. Two series rather than one because the letter
|
|
1171
|
+
group differs and a parse API must be able to score each shape
|
|
1172
|
+
independently (the plates/nl.yml GV-sidecode precedent).
|