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/br.yml
ADDED
|
@@ -0,0 +1,1152 @@
|
|
|
1
|
+
# plates/br.yml — Brazil (PRD-PLATES gate L3, DRAFT for human verification).
|
|
2
|
+
#
|
|
3
|
+
# PASS 2 (2026-08-02, second Opus researcher over the same jurisdiction). This
|
|
4
|
+
# file supersedes a pass-1 draft, preserved beside it as `pass1/br.pass1.yml`
|
|
5
|
+
# with its own dossier. Pass 1 established the instrument chain and is where
|
|
6
|
+
# most of the research below comes from; pass 2 re-read every instrument text
|
|
7
|
+
# and changed five things, each of which is argued at the point of change:
|
|
8
|
+
#
|
|
9
|
+
# 1. LLLNLNN IS A 2018 ARRANGEMENT, NOT A 2019 ONE. Res. CONTRAN 741/2018
|
|
10
|
+
# (17-09-2018) Anexo III item 1 spells it, together with the pre-Mercosul
|
|
11
|
+
# shape LLLNNNN and the whole 0→A…9→J conversion table. Pass 1 credited
|
|
12
|
+
# Res. 780/2019 with the first appearance. Corrected on the series and in
|
|
13
|
+
# the chain below.
|
|
14
|
+
# 2. THE NATIVE-ALLOCATION `regex_strict` [K-Z] IS WITHDRAWN. It was an
|
|
15
|
+
# entailment from Res. 969/2022 Anexo II item 2, and Res. 741/2018 Anexo
|
|
16
|
+
# III item 3 contradicts it in terms. See fact 2.
|
|
17
|
+
# 3. NEW SERIES `br-mercosul-uf-brasao-2018` — the nine-month 2018 design
|
|
18
|
+
# that carried the state flag, a coat of arms and the municipality name,
|
|
19
|
+
# created by Res. 729/2018 Anexo I items 1.7-1.8.1 and killed by
|
|
20
|
+
# Res. 748/2018 art. 4. The only entry here with an instrument at both
|
|
21
|
+
# ends of its period.
|
|
22
|
+
# 4. PNU DIPLOMATIC STARTS 2008, NOT 1990. Res. 45/98's colour table has no
|
|
23
|
+
# diplomatic row at all; the blue rows and the CMD/CD/CC/OI/ADM/CI codes
|
|
24
|
+
# begin with Res. 231/2007, in force 1 January 2008. Draft id
|
|
25
|
+
# `br-pnu-diplomatic-1990` retired for `br-pnu-diplomatic-2008`.
|
|
26
|
+
# 5. EVERY PNU COLOUR IS RAL-SOURCED, not observed. Res. 45/98 Anexo item 11
|
|
27
|
+
# publishes the full six-colour RAL table (7001/3000/6016/9010/5019/9011),
|
|
28
|
+
# which pass 1 read only in its truncated Res. 231/2007 form.
|
|
29
|
+
#
|
|
30
|
+
# EVERY format, dimension, colour, class and period claim in this file comes
|
|
31
|
+
# from an instrument whose TEXT WAS FETCHED AND READ, in this order of
|
|
32
|
+
# authority:
|
|
33
|
+
#
|
|
34
|
+
# * Lei nº 9.503, de 23 de setembro de 1997 (Código de Trânsito Brasileiro,
|
|
35
|
+
# CTB), art. 115 — the ENABLING STATUTE. It delegates the whole subject to
|
|
36
|
+
# CONTRAN in one sentence, verbatim: "O veículo será identificado
|
|
37
|
+
# externamente por meio de placas dianteira e traseira, sendo esta lacrada
|
|
38
|
+
# em sua estrutura, obedecidas as especificações e modelos estabelecidos
|
|
39
|
+
# pelo CONTRAN." (Planalto consolidated text, accessed 2026-08-02.)
|
|
40
|
+
# * MERCOSUL/GMC/RES. Nº 33/14, "Patente e Sistema de Consultas sobre
|
|
41
|
+
# Veículos do MERCOSUL" — the supranational instrument Brazil implements.
|
|
42
|
+
# * Resolução CONTRAN nº 969, de 20 de junho de 2022 (DOU 24/06/2022,
|
|
43
|
+
# Edição 118, Seção 1, p. 57; in force 1 July 2022) — THE CURRENT
|
|
44
|
+
# BRAZILIAN INSTRUMENT. Its art. 64 revoked BOTH the Mercosul resolution
|
|
45
|
+
# (nº 780/2019) AND the pre-Mercosul plate standard (nº 231/2007), so one
|
|
46
|
+
# instrument now governs both plate systems still on Brazilian roads.
|
|
47
|
+
# * Resolução CONTRAN nº 729, de 6 de março de 2018 (DOU 08/03/2018) and its
|
|
48
|
+
# amendment chain (733/2018, 741/2018, 745/2018, 748/2018, 770/2018) —
|
|
49
|
+
# where the Mercosul TRANSITION DATES live, and nowhere else.
|
|
50
|
+
# * Resolução CONTRAN nº 741, de 17 de setembro de 2018 — the FIRST
|
|
51
|
+
# instrument to spell the letter/number ARRANGEMENT "LLLNLNN" and to
|
|
52
|
+
# publish the PNU→PIV character-conversion table, both in its Anexo III
|
|
53
|
+
# ("REGRA DE TRANSIÇÃO PARA EMPLACAMENTOS").
|
|
54
|
+
# * Resolução CONTRAN nº 780, de 26 de junho de 2019 (DOU 28/06/2019) — the
|
|
55
|
+
# consolidation that re-enacted both, unchanged, as its Anexo I item 1.2
|
|
56
|
+
# and Anexo II.
|
|
57
|
+
# * Resolução CONTRAN nº 231, de 15 de março de 2007 (consolidated text with
|
|
58
|
+
# the amendments made by nº 241/07, 309/09 and 372/11) and Resolução
|
|
59
|
+
# CONTRAN nº 45/98 — the PRE-MERCOSUL standard, i.e. the one-series-back
|
|
60
|
+
# layer of this file.
|
|
61
|
+
#
|
|
62
|
+
# SIX STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
63
|
+
#
|
|
64
|
+
# 1. BRAZIL RUNS TWO PLATE SYSTEMS SIMULTANEOUSLY, AND WILL FOR DECADES.
|
|
65
|
+
# Res. 969/2022 art. 57, verbatim: "Os veículos em circulação que utilizem
|
|
66
|
+
# a PNU poderão circular até o seu sucateamento sem necessidade de
|
|
67
|
+
# substituição das placas e, a qualquer tempo, optar voluntariamente pelo
|
|
68
|
+
# novo modelo de PIV de que trata esta Resolução". PNU = "Placa Nacional
|
|
69
|
+
# Única", the 1990-generation plate, defined in the same Resolution
|
|
70
|
+
# (art. 2 § 3) as "uma sequência de três caracteres alfabéticos e quatro
|
|
71
|
+
# caracteres numéricos no padrão 'AAA-1111'". So the one-back series is
|
|
72
|
+
# not history: it is a large, legally current part of the fleet that is
|
|
73
|
+
# simply NOT ISSUED any more. `period.end` on those series is an ISSUANCE
|
|
74
|
+
# end, never a validity end; every such series says so in its notes.
|
|
75
|
+
#
|
|
76
|
+
# 2. THE FIFTH CHARACTER IS THE SINGLE BEST ERA SIGNAL IN THE AMERICAS.
|
|
77
|
+
# Res. 969/2022 Anexo II, item 1, prescribes the PNU→PIV conversion as a
|
|
78
|
+
# substitution of "o antepenúltimo caractere, de número para letra"
|
|
79
|
+
# (0→A, 1→B … 9→J), "Ex.: A placa anterior ABC1234 será substituída pela
|
|
80
|
+
# nova placa com o padrão alfanumérico ABC1C34." Item 2 then closes the
|
|
81
|
+
# loop, verbatim: "A faixa de letras de 'A' a 'J' será utilizada apenas
|
|
82
|
+
# para a conversão da PNU para o novo sistema de PIV constante desta
|
|
83
|
+
# Resolução, de forma a permitir a convivência entre ambos os modelos e
|
|
84
|
+
# possibilitar a consulta por ambos os critérios de placas."
|
|
85
|
+
# Consequence, and it is a strong one IN ONE DIRECTION ONLY: a CONVERTED
|
|
86
|
+
# plate necessarily carries A–J at position 5, because the table says so and
|
|
87
|
+
# leaves no other value; so from a converted plate the original PNU is
|
|
88
|
+
# mechanically recoverable as plate[0,4] + (letter − 'A') + plate[5,2].
|
|
89
|
+
# `br-mercosul-converted-2018` and `br-mercosul-motorcycle-converted-2018`
|
|
90
|
+
# carry that sourced grammar as their `regex_strict`.
|
|
91
|
+
#
|
|
92
|
+
# THE CONVERSE IS *NOT* SOURCED, AND PASS 2 REMOVED IT. An earlier draft of
|
|
93
|
+
# this file asserted `regex_strict: \A[A-Z]{3}\d[K-Z]\d{2}\z` on the two
|
|
94
|
+
# NATIVE series, reading item 2's "apenas para a conversão" as reserving
|
|
95
|
+
# A–J away from native allocations. That reading is contradicted by the
|
|
96
|
+
# instrument that introduced the table. Res. CONTRAN 741/2018, Anexo III
|
|
97
|
+
# item 3, verbatim: "Durante todo o período de transição será utilizada
|
|
98
|
+
# apenas a faixa de letras de 'A' a 'J' para o antepenúltimo caractere, de
|
|
99
|
+
# forma a permitir a conversão dos emplacamentos e a convivência entre ambos
|
|
100
|
+
# os modelos" — i.e. from September 2018 EVERY Brazilian Mercosul plate,
|
|
101
|
+
# native or converted, took A–J at position 5. Res. 780/2019 and Res.
|
|
102
|
+
# 969/2022 narrowed the sentence to conversions without ever enacting a K–Z
|
|
103
|
+
# rule for natives, and the observed per-UF allocation blocks still run
|
|
104
|
+
# 0A01→9J99 (secondary). The two readings are reconciled by the ALLOCATION,
|
|
105
|
+
# not by the alphabet: native Mercosul combinations are issued out of FRESH
|
|
106
|
+
# three-letter blocks that the PNU never used, so no collision with a
|
|
107
|
+
# converted plate is possible even though both use A–J.
|
|
108
|
+
# PRD-PLATES § 5.3 forbids averaging a disagreement, so the native series
|
|
109
|
+
# carry NO `regex_strict` and the whole question is recorded here, in
|
|
110
|
+
# `common.fifth_character_rule`, and as verifier target #1 in the dossier.
|
|
111
|
+
# NET EFFECT FOR A CONSUMER: an A–J fifth character is NOT proof of
|
|
112
|
+
# conversion; a fifth character outside A–J, if one is ever observed, IS
|
|
113
|
+
# proof of a native allocation.
|
|
114
|
+
#
|
|
115
|
+
# 3. THE MERCOSUL PLATE DELETED THE ONLY NON-COLOUR CATEGORY MARKER, SO SIX
|
|
116
|
+
# LEGAL CATEGORIES COLLAPSED INTO COLOUR-ONLY VARIANTS. Under the PNU,
|
|
117
|
+
# Res. 231/2007 art. 1 § 1 required removable "tarjetas" carrying "a sigla
|
|
118
|
+
# identificadora da Unidade da Federação e o nome do Município de registro
|
|
119
|
+
# do veículo", with § 2 substituting BRASIL / the state name / the
|
|
120
|
+
# diplomatic codes (CMD, CD, CC, OI, ADM, CI) for official and diplomatic
|
|
121
|
+
# vehicles. The Mercosul plate has no tarjeta at all: Res. 969/2022
|
|
122
|
+
# Anexo I Tabela III distinguishes Particular, Comercial (Aluguel e
|
|
123
|
+
# Aprendizagem), Oficial e Representação, Diplomático/Consular, Especiais
|
|
124
|
+
# and Coleção by CHARACTER COLOUR ALONE, on an identical white plate with
|
|
125
|
+
# an identical LLLNLNN combination. PRD-PLATES § 2.3 is explicit that a
|
|
126
|
+
# colour-only variant of the same format+period is a SUB-ENTRY, so those
|
|
127
|
+
# six live in `variants:` with a `class:` flag each — while the PNU-era
|
|
128
|
+
# official and diplomatic plates, whose tarjeta content differed, are
|
|
129
|
+
# their own series. `common.class_map` below is the index of where each
|
|
130
|
+
# legal category lives, because a class-keyed consumer needs one.
|
|
131
|
+
#
|
|
132
|
+
# 4. THERE IS NO GEOGRAPHY IN A BRAZILIAN SERIAL — TODAY IT IS RANDOM BY
|
|
133
|
+
# INSTRUMENT. Res. 969/2022 Anexo I item 1.2, verbatim: "O padrão de
|
|
134
|
+
# estampagem é composto de 7 (sete) caracteres alfanuméricos, em alto
|
|
135
|
+
# relevo, na sequência LLLNLNN, com espaçamento equidistante e combinação
|
|
136
|
+
# aleatória, distribuída e controlada pelo órgão máximo executivo de
|
|
137
|
+
# trânsito da União." Two things follow. (a) "espaçamento equidistante" is
|
|
138
|
+
# why the current pattern carries NO separator: the seven characters are
|
|
139
|
+
# evenly spaced, there is no group. (b) "combinação aleatória" is why
|
|
140
|
+
# `region_encoding: none` is a sourced claim and not an omission.
|
|
141
|
+
# Under the PNU the three-letter group WAS allocated per state, but by
|
|
142
|
+
# delegation, not by instrument: Res. 231/2007 art. 4, verbatim, "O Órgão
|
|
143
|
+
# Maximo Executivo de Transito da União estabelecerá normas técnicas para
|
|
144
|
+
# a distribuição e controle das series alfanuméricas". The resulting
|
|
145
|
+
# UF→letter-range table is administrative and was NOT found published;
|
|
146
|
+
# it is recorded as a gap, not guessed. What the pre-2018 plate showed of
|
|
147
|
+
# geography, it showed IN WORDS on the tarjeta.
|
|
148
|
+
#
|
|
149
|
+
# 5. PERIODS ARE INSTRUMENT-DATED, AND THE ONE SOFT YEAR IS NAMED AS SOFT.
|
|
150
|
+
# The Mercosul dates are primary and unambiguous: Res. 729/2018 art. 8 § 3
|
|
151
|
+
# ("até 1º de setembro de 2018", first registrations / transfers /
|
|
152
|
+
# replacements) → Res. 748/2018 art. 2, a per-state cronograma running from
|
|
153
|
+
# Rio de Janeiro ("Até 3 de dezembro de 2018") to the last thirteen states
|
|
154
|
+
# ("Até 31 de dezembro de 2018") → Res. 770/2018 art. 1 ("até 30 de junho
|
|
155
|
+
# de 2019") → Res. 780/2019 art. 21 ("deverá ser implementada pelos DETRAN
|
|
156
|
+
# até o dia 31 de janeiro de 2020, sendo exigida nos casos de primeiro
|
|
157
|
+
# emplacamento do veículo"). The PNU's 1990 start is NOT of that quality:
|
|
158
|
+
# the instrument is Resolução CONTRAN nº 742, de 31 de outubro de 1989
|
|
159
|
+
# ("Dispõe sobre sistema de placas de identificação de veículos", revoked
|
|
160
|
+
# by Res. 754/91), whose existence, date and title come from DENATRAN's own
|
|
161
|
+
# catalogue *100 anos de Legislação de Trânsito no Brasil* (2010) and whose
|
|
162
|
+
# TEXT COULD NOT BE RETRIEVED. It is recorded on the series, in terms.
|
|
163
|
+
#
|
|
164
|
+
# 6. TWO KINDS OF BRAZILIAN PLATE ARE DELIBERATELY NOT SERIES HERE, because
|
|
165
|
+
# they carry no alphanumeric combination at all and a series without a
|
|
166
|
+
# serial is not a series: the CTB art. 115 § 2 green-and-yellow plates of
|
|
167
|
+
# the President, Vice-President and the other named authorities, and the
|
|
168
|
+
# CTB art. 115 § 3 / Res. 969/2022 arts. 26-30 bronze representation
|
|
169
|
+
# plates (Anexo I figures 9 and 10: "Placa em Bronze / Letras em
|
|
170
|
+
# alto-relevo/dourada / Fundo Preto / Dimensões: 35 cm x 16 cm / Brasão",
|
|
171
|
+
# lettered with the office — GOVERNADOR DO ESTADO, COMANDANTE DA MARINHA,
|
|
172
|
+
# OFICIAL GENERAL). They are recorded in `special_plates:` instead.
|
|
173
|
+
#
|
|
174
|
+
# REGEX POLICY (identical to plates/gb.yml, plates/de.yml, plates/nl.yml):
|
|
175
|
+
# `format.regex` is the LINT-ROUND-TRIPPABLE regex — the lint generates
|
|
176
|
+
# serials from `format.pattern` (L → any A-Z, 9 → any 0-9) and requires the
|
|
177
|
+
# regex to accept all of them, so `regex` can never be narrower than the
|
|
178
|
+
# pattern's own alphabet. `format.regex_strict` carries the tighter, sourced
|
|
179
|
+
# form, which here is only ever the fifth-character range of Anexo II item 2.
|
|
180
|
+
#
|
|
181
|
+
# SEPARATOR NOTE (PRD-PLATES § 2.6): the CURRENT plate prints no separator
|
|
182
|
+
# ("espaçamento equidistante", above) and its pattern has none. The PNU does:
|
|
183
|
+
# Res. 969/2022 art. 2 § 3 writes the old standard as "AAA-1111", while the
|
|
184
|
+
# instrument that actually prescribed it (Res. 231/2007 art. 1) describes two
|
|
185
|
+
# groups — "o primeiro grupo composto por 3 (três) ... e o segundo grupo
|
|
186
|
+
# composto por 4 (quatro)" — and prescribes no separator GLYPH. The PNU
|
|
187
|
+
# regexes therefore spell the gap as the sanctioned separator-only class
|
|
188
|
+
# `[- ]?` (PRD-PLATES § 2.8, the es-consular-cc-1999 precedent), and
|
|
189
|
+
# `pattern` shows the canonical printed form `LLL-9999`.
|
|
190
|
+
jurisdiction: br
|
|
191
|
+
authority:
|
|
192
|
+
name: SENATRAN (Secretaria Nacional de Trânsito), órgão máximo executivo de trânsito da União, Ministério dos Transportes; normative authority CONTRAN (Conselho Nacional de Trânsito)
|
|
193
|
+
url: "https://www.gov.br/transportes/pt-br/assuntos/transito"
|
|
194
|
+
contran_url: "https://www.gov.br/transportes/pt-br/assuntos/transito/contran"
|
|
195
|
+
note: >-
|
|
196
|
+
Plates are SPECIFIED nationally by CONTRAN, ISSUED by the 27 state/DF
|
|
197
|
+
DETRANs, and the combination pool is "distribuída e controlada pelo órgão
|
|
198
|
+
máximo executivo de trânsito da União" (Res. 969/2022 Anexo I 1.2).
|
|
199
|
+
Brazil is federated for issuance but NOT for format, which is why this is
|
|
200
|
+
one national file and not 27 (contrast us-*.yml, where each state legislates
|
|
201
|
+
its own format).
|
|
202
|
+
binding: vehicle
|
|
203
|
+
binding_note: >-
|
|
204
|
+
CTB art. 115 § 1, verbatim: "Os caracteres das placas serão individualizados
|
|
205
|
+
para cada veículo e o acompanharão até a baixa do registro, sendo vedado seu
|
|
206
|
+
reaproveitamento." The mark belongs to the vehicle for its whole life and may
|
|
207
|
+
never be recycled onto another — the strongest statutory statement of
|
|
208
|
+
vehicle-binding in this dataset. Res. 969/2022 art. 57 § 1 preserves it
|
|
209
|
+
across the Mercosul conversion: the old combination is kept in the record and
|
|
210
|
+
printed in the CRLV-e field "placa anterior", and both combinations remain
|
|
211
|
+
queryable.
|
|
212
|
+
|
|
213
|
+
instrument:
|
|
214
|
+
current:
|
|
215
|
+
citation: "Resolução CONTRAN nº 969, de 20 de junho de 2022 — 'Dispõe sobre o sistema de Placas de Identificação de Veículos (PIV) registrados no território nacional'"
|
|
216
|
+
made: "2022-06-20"
|
|
217
|
+
published: "2022-06-24" # DOU Edição 118, Seção 1, p. 57
|
|
218
|
+
in_force: "2022-07-01" # art. 65
|
|
219
|
+
made_under: "Lei nº 9.503/1997 (CTB), art. 12, incisos I e X; art. 115"
|
|
220
|
+
revokes:
|
|
221
|
+
- "Resolução CONTRAN nº 231, de 15 de março de 2007 (the PNU standard)"
|
|
222
|
+
- "Resolução CONTRAN nº 780, de 26 de junho de 2019 (the Mercosul standard it replaces)"
|
|
223
|
+
- "Resoluções nº 493/1975, 793/1994, 32/1998, 60/1998, 88/1999, 241/2007, 275/2008, 286/2008, 309/2009, 342/2010, 372/2011, 527/2015, 670/2017, 742/2018, 786/2020, 792/2020, 887/2021; Deliberação CONTRAN nº 260/2022"
|
|
224
|
+
annexes: "Anexo I (specifications), Anexo II (conversion table), Anexo III (accreditation) — published separately per art. 63; fetched from the SENATRAN site"
|
|
225
|
+
sources:
|
|
226
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # DOU text: arts. 1-65, revocation list, in-force date"
|
|
227
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022.pdf # same text, SENATRAN PDF"
|
|
228
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexos I-III: Tabelas I-VI, Figuras 1-10"
|
|
229
|
+
supranational:
|
|
230
|
+
citation: "MERCOSUL/GMC/RES. Nº 33/14 — 'Patente e Sistema de Consultas sobre Veículos do MERCOSUL'"
|
|
231
|
+
key_articles: >-
|
|
232
|
+
Art. 1: the Patente MERCOSUL is mandatory in all States Parties for
|
|
233
|
+
vehicles registered for the first time from 1 January 2016. Art. 2: the
|
|
234
|
+
distribution of the alphanumeric characters belongs to each State Party
|
|
235
|
+
and must not coincide with any other State Party's. Annex: seven
|
|
236
|
+
characters, white background, FE Engschrift at 65 mm (vehicles) /
|
|
237
|
+
53 mm (motorcycles), 400x130 and 200x170 mm, blue Pantone 286 band
|
|
238
|
+
30x390 / 30x196 mm, and the same six-row colour-by-use table Brazil
|
|
239
|
+
transposed verbatim.
|
|
240
|
+
amended_by: "MERCOSUL/GMC/RES. Nº 12/17"
|
|
241
|
+
text_status: >-
|
|
242
|
+
FETCHED as a scanned PDF with NO text layer; read by local OCR
|
|
243
|
+
(tesseract, English model, Portuguese source) — so its wording is
|
|
244
|
+
paraphrased here and never quoted as verbatim law. Every fact taken from
|
|
245
|
+
it is independently carried by the Brazilian instruments, which is why
|
|
246
|
+
nothing in this file depends on the OCR.
|
|
247
|
+
sources:
|
|
248
|
+
- "https://web.archive.org/web/20220220015017/https://www.cartillaciudadania.mercosur.int/oldAssets/uploads/54478_RES_033-2014_PT_Patente%20MERCOSUL.pdf # GMC 33/14 (PT), scanned"
|
|
249
|
+
- "https://web.archive.org/web/20220220015054/https://www.cartillaciudadania.mercosur.int/oldAssets/uploads/65491_RES_012-2017_PT_Placa%20MERCOSUL-ModifRes.33-14.pdf # GMC 12/17 (PT), scanned"
|
|
250
|
+
transition_chain:
|
|
251
|
+
- { citation: "Resolução CONTRAN nº 510, de 27 de novembro de 2014", holds: "first Brazilian adoption of the Mercosul plate; art. 1 § 2 c) 'conter 7 (sete) caracteres alfanuméricos estampados em alto relevo, com combinação aleatória, a ser fornecida e controlada pelo DENATRAN' — SEVEN CHARACTERS BUT NO ARRANGEMENT; art. 6: all vehicles registered from 1 January 2016, states free to anticipate. The Anexo's sample combination is 'BRA0000', i.e. still the PNU shape.", source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao5102014.pdf" }
|
|
252
|
+
- { citation: "Resolução CONTRAN nº 729, de 6 de março de 2018 (DOU 08/03/2018)", holds: "the operative Mercosul system; art. 1 § 3 III still gives only '7 (sete) caracteres alfanuméricos ... com o último caractere obrigatoriamente numeral'; art. 8 § 3 sets the first mandatory date, 1 September 2018; art. 8 caput sets full-fleet implementation by 31 December 2023.", source: "https://www.in.gov.br/en/web/dou/-/resolucao-n-729-de-6-de-marco-de-2018-5755402" }
|
|
253
|
+
- { citation: "Resolução CONTRAN nº 733, de 10 de maio de 2018", holds: "stamping-company accreditation rules inserted into 729/2018.", source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7332018.pdf" }
|
|
254
|
+
- { citation: "Resolução CONTRAN nº 741, de 17 de setembro de 2018", holds: "PASS-2 CORRECTION — this is the FORMAT instrument, not merely a chip amendment. Arts. 1-2 insert the SINIAV chip / QR Code provisions into 729/2018 (art. 1 §§ 6-7); art. 3 inserts ANEXO III, 'REGRA DE TRANSIÇÃO PARA EMPLACAMENTOS', which is where the Brazilian Mercosul grammar first appears: item 1 'A placa MERCOSUL terá a seguinte disposição: LLLNLNN, onde L é letra e N é número'; item 2 names the old shape 'LLLNNNN'; item 3 puts every transition-period plate on A-J at the antepenultimate character; item 4 is the ten-row 0→A…9→J conversion table with the worked example 'um veículo com a placa ABC1234 tem equivalência no Padrão Mercosul de ABC1C34'. It carries NO DATES — the transition dates are in 729/2018 art. 8 as amended by 748/2018 and 770/2018 — which is what an earlier draft's note was reaching for, but the arrangement and the conversion table ARE here, ten months before Res. 780/2019.", source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7412018.pdf" }
|
|
255
|
+
- { citation: "Resolução CONTRAN nº 745, de 12 de novembro de 2018 — OR nº 742 of the same date", holds: "amends art. 1 § 4-A (the 15% size reduction). NUMBERING DISCREPANCY IN THE INSTRUMENTS THEMSELVES, recorded rather than resolved: Res. 748/2018 art. 1 cites it as 'Resolução CONTRAN nº 745, de 12 de novembro de 2018', while Res. 969/2022 art. 64 XV revokes 'nº 742, de 12 de novembro de 2018'. Neither text was fetched. Note also that a DIFFERENT Res. 742, of 31 October 1989, is the probable creator of the PNU — see br-pnu-standard-1990.", source: "cited, not fetched — discrepancy visible in the texts of Res. 748/2018 art. 1 and Res. 969/2022 art. 64 XV" }
|
|
256
|
+
- { citation: "Resolução CONTRAN nº 748, de 30 de novembro de 2018", holds: "replaces art. 8 caput with a PER-STATE CRONOGRAMA: Rio de Janeiro by 3 December 2018; AM, ES, GO, PE, RO by 10 December; BA, RN, RS by 17 December; AC, AL, MA, PR, PI by 24 December; AP, CE, DF, MT, MS, MG, PA, PB, RR, SC, SP, SE, TO by 31 December 2018. This is the primary evidence that Rio de Janeiro was the first state.", source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7482018.pdf" }
|
|
257
|
+
- { citation: "Resolução CONTRAN nº 770, de 20 de dezembro de 2018", holds: "replaces the cronograma with a single date, 30 June 2019.", source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7702018.pdf" }
|
|
258
|
+
- { citation: "Resolução CONTRAN nº 780, de 26 de junho de 2019 (DOU 28/06/2019)", holds: "FIRST instrument to spell the arrangement — Anexo I 1.2, 'na sequência LLLNLNN'; introduces the Anexo II conversion table; art. 21 sets DETRAN implementation by 31 January 2020 for first registrations; art. 22 lets PNU plates run to scrapping.", source: "https://www.in.gov.br/en/web/dou/-/resolucao-n-780-de-26-de-junho-de-2019-179414765" }
|
|
259
|
+
previous_standard:
|
|
260
|
+
citation: "Resolução CONTRAN nº 231, de 15 de março de 2007 (republished DOU 21/03/2007 Seção 1 p. 30), consolidated with Resoluções nº 241/2007, 309/2009 and 372/2011 — 'Estabelece o Sistema de Placas de Identificação de Veículos'"
|
|
261
|
+
in_force_from: "2008-01-01" # art. 11, as amended by Res. 241/07
|
|
262
|
+
revoked_by: "Resolução CONTRAN nº 969/2022 art. 64, VI"
|
|
263
|
+
predecessors: "Res. 45/98 (21 May 1998, itself revoking Res. 754/91, 755/91, 813/96 and 09/98); Res. 99/99 (extending the national re-plating deadline to 31 December 1999); and, before them, Res. 742/1989 — see the pnu series notes"
|
|
264
|
+
sources:
|
|
265
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # DENATRAN consolidated text of Res. 231/2007 with 241/07, 309/09, 372/11"
|
|
266
|
+
- "https://web.archive.org/web/20070421095524/http://www.denatran.gov.br/download/Resolucoes/RESOLUCAO_231.pdf # original 2007 text as first published"
|
|
267
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao045_98.zip # Res. 45/98 (Word), art. 1 and the 1998-99 national re-plating"
|
|
268
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao099_99.doc # Res. 99/99: substitution deadline moved to 31 December 1999"
|
|
269
|
+
enabling_statute:
|
|
270
|
+
citation: "Lei nº 9.503, de 23 de setembro de 1997 (Código de Trânsito Brasileiro), art. 115"
|
|
271
|
+
source: "https://www.planalto.gov.br/ccivil_03/leis/l9503compilado.htm # art. 115 caput and §§ 1, 2, 3, 5, 6, 9; art. 12 I and X"
|
|
272
|
+
licence: >-
|
|
273
|
+
Brazilian official acts are outside copyright by statute — Lei nº 9.610/1998
|
|
274
|
+
art. 8º, IV excludes "os textos de tratados ou convenções, leis, decretos,
|
|
275
|
+
regulamentos, decisões judiciais e demais atos oficiais" from protection.
|
|
276
|
+
CONTRAN resolutions are atos oficiais. NOTE the one exception encountered:
|
|
277
|
+
DENATRAN's compilation *100 anos de Legislação de Trânsito no Brasil*
|
|
278
|
+
(2010) asserts "É totalmente proibida a reprodução total ou parcial deste
|
|
279
|
+
material" — only the official ACT titles and dates are taken from it here,
|
|
280
|
+
never its editorial text.
|
|
281
|
+
|
|
282
|
+
# ---------------------------------------------------------------------------
|
|
283
|
+
# Jurisdiction-wide facts, cited once and referenced per series.
|
|
284
|
+
# ---------------------------------------------------------------------------
|
|
285
|
+
common:
|
|
286
|
+
serial_grammar_current:
|
|
287
|
+
arrangement: LLLNLNN
|
|
288
|
+
quote: >-
|
|
289
|
+
"O padrão de estampagem é composto de 7 (sete) caracteres alfanuméricos,
|
|
290
|
+
em alto relevo, na sequência LLLNLNN, com espaçamento equidistante e
|
|
291
|
+
combinação aleatória, distribuída e controlada pelo órgão máximo
|
|
292
|
+
executivo de trânsito da União." / "1.2.1 O caracter 'L' refere-se à
|
|
293
|
+
letra, e o caracter 'N' refere-se ao numeral."
|
|
294
|
+
charset: "A-Z and 0-9; no letter is excluded by any instrument read — Brazil publishes no vowel/lookalike exclusion, unlike NL, GB and several US states"
|
|
295
|
+
source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I 1.2, 1.2.1"
|
|
296
|
+
fifth_character_rule:
|
|
297
|
+
sound_direction: >-
|
|
298
|
+
CONVERTED ⇒ A-J. Anexo II's table maps 0→A … 9→J and offers no other
|
|
299
|
+
value, so a plate that replaced a PNU registration always carries A-J at
|
|
300
|
+
position 5 and its original PNU is plate[0,4] + (letter − 'A') +
|
|
301
|
+
plate[5,2]. This is the direction `regex_strict` encodes, on
|
|
302
|
+
br-mercosul-converted-2018 and br-mercosul-motorcycle-converted-2018.
|
|
303
|
+
unsound_direction: >-
|
|
304
|
+
A-J ⇏ CONVERTED. Res. 741/2018 Anexo III item 3 put EVERY transition-period
|
|
305
|
+
plate on A-J; Res. 780/2019 and 969/2022 narrowed the sentence to
|
|
306
|
+
conversions but never enacted a range for native allocations; and the
|
|
307
|
+
observed per-UF blocks still run 0A01→9J99. Native and converted plates
|
|
308
|
+
are kept apart by the THREE-LETTER BLOCK (natives are issued out of blocks
|
|
309
|
+
the PNU never used), not by the fifth character. No K-Z claim is made
|
|
310
|
+
anywhere in this file — an earlier draft made one and pass 2 removed it.
|
|
311
|
+
quote_current: >-
|
|
312
|
+
Res. 969/2022 Anexo II item 2: "A faixa de letras de 'A' a 'J' será
|
|
313
|
+
utilizada apenas para a conversão da PNU para o novo sistema de PIV
|
|
314
|
+
constante desta Resolução, de forma a permitir a convivência entre ambos
|
|
315
|
+
os modelos e possibilitar a consulta por ambos os critérios de placas."
|
|
316
|
+
quote_2018: >-
|
|
317
|
+
Res. 741/2018 Anexo III item 3: "Durante todo o período de transição será
|
|
318
|
+
utilizada apenas a faixa de letras de 'A' a 'J' para o antepenúltimo
|
|
319
|
+
caractere, de forma a permitir a conversão dos emplacamentos e a
|
|
320
|
+
convivência entre ambos os modelos."
|
|
321
|
+
example: "ABC1234 (PNU) → ABC1C34 (PIV) — the worked example given by Res. 741/2018 Anexo III item 4.1 and repeated by Res. 969/2022 Anexo II item 1"
|
|
322
|
+
source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo II items 1 and 2, and the worked example"
|
|
323
|
+
source_2018: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7412018.pdf # Anexo III items 1-4.1"
|
|
324
|
+
observed_blocks: "SECONDARY (pt.wikipedia 'Placas de identificação de veículos no Brasil', accessed 2026-08-02): per-UF Mercosul sequences 'todas as sequências se iniciam em 0A01 e terminam em 9J99', and the Rio de Janeiro commemorative block RIO0A01-RIO9J99 opened in September 2018. Tagged secondary; it corroborates the 741/2018 reading and is not itself relied on for any regex."
|
|
325
|
+
colour_by_use:
|
|
326
|
+
note: >-
|
|
327
|
+
Res. 969/2022 Anexo I Tabela III fixes the CHARACTER colour by the
|
|
328
|
+
vehicle's use, on an otherwise identical white plate. The hexes below are
|
|
329
|
+
nominal sRGB renderings of the Pantone Coated values the instrument
|
|
330
|
+
names; the instrument itself specifies Pantone and, for the retro-
|
|
331
|
+
reflective film, CIE 1964 chromaticity boxes (Tabela V) — never a hex.
|
|
332
|
+
Every `hex_basis: pantone-converted` in this file means exactly that.
|
|
333
|
+
table:
|
|
334
|
+
- { use: "Particular", colour: "Preta", spec: "-", hex: "#000000" }
|
|
335
|
+
- { use: "Comercial (Aluguel e Aprendizagem)", colour: "Vermelha", spec: "Pantone Fórmula Sólido Brilhante 186C", hex: "#C8102E" }
|
|
336
|
+
- { use: "Oficial e Representação", colour: "Azul", spec: "Sólido Brilhante 286C", hex: "#0033A0" }
|
|
337
|
+
- { use: "Diplomático/Consular (Missão Diplomática, Corpo Consular, Corpo Diplomático, Organismo Consular e/ou Internacional e Acordo Cooperação Internacional)", colour: "Dourada", spec: "Pantone Fórmula Sólido Brilhante 130C", hex: "#F2A900" }
|
|
338
|
+
- { use: "Especiais (Experiência / Fabricantes de veículos, peças e implementos)", colour: "Verde", spec: "Pantone Fórmula Sólido Brilhante 341C", hex: "#007A53" }
|
|
339
|
+
- { use: "Coleção (uso no âmbito do Mercosul)", colour: "Cinza Prata", spec: "Swop Pantone Grey", hex: "#8C8C8C" }
|
|
340
|
+
- { use: "Coleção (uso restrito em território nacional)", colour: "Branco", spec: "-", hex: "#FFFFFF" }
|
|
341
|
+
source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela III"
|
|
342
|
+
security_elements_current:
|
|
343
|
+
band: "blue Pantone 286 strip on the upper margin, 30 mm high, 390 mm (vehicles) / 196 mm (two- and three-wheelers) long, carrying the MERCOSUL logo left, the Brazilian flag right and BRASIL voided in white at centre"
|
|
344
|
+
flag: "28x20 mm (vehicles) / 23x16 mm (two-wheelers), upper-right, 4 mm from the top and right edges, rounded corners, 1 mm white border"
|
|
345
|
+
emblem: "official MERCOSUL emblem, Pantone blue 286 + green 347, 32x22 mm (vehicles) / 25x20 mm (two-wheelers), left edge at 15 mm"
|
|
346
|
+
distinguishing_sign: "'BR' in Gill Sans, black, heat-applied or printed in the lower-left corner (white on the national-only collector plate)"
|
|
347
|
+
watermark: "MERCOSUL emblem in circular form inside the retroreflective film, repeating every 72 mm"
|
|
348
|
+
qr_code: "16-22 mm square, indelible, upper-left below the blue band; per art. 3 the QR Code IS the electronic seal and replaces the physical lacre of CTB art. 115"
|
|
349
|
+
microtext: "the words 'MERCOSUR BRASIL MERCOSUL' printed over the characters in Gill Sans at 5 mm, in the per-use Pantone of Tabela VI (447C particular, 187C comercial, 288C oficial, 131C diplomático, 342C especiais, Warm Grey 11C coleção)"
|
|
350
|
+
source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I 1.1, 2.3.2, 2.3.4, 3.1-3.5, Tabela II, Tabela VI, Figuras 2-6"
|
|
351
|
+
fonts:
|
|
352
|
+
current_serial: { name: "FE Engschrift", height_mm: { vehicles: 65, two_wheelers: 53 }, stroke: "proportional to the typeface standard", source: "Res. 969/2022 Anexo I 2.4.1" }
|
|
353
|
+
current_country_name: { name: "Gill Sans Standard Bold Condensed 50 Interletrado", source: "Res. 969/2022 Anexo I 2.4.2" }
|
|
354
|
+
pnu_serial: { name: "Mandatory", source: "Res. 231/2007 Anexo item 4 — 'A Tipologia dos caracteres das placas e tarjetas devem seguir o modelo abaixo especificado na fonte: Mandatory'" }
|
|
355
|
+
licence_posture: >-
|
|
356
|
+
Both current fonts are NAMED third-party typefaces, which is unusual —
|
|
357
|
+
most surveyed jurisdictions prescribe a statutory drawing (PRD-PLATES
|
|
358
|
+
§ 6). Neither instrument grants any licence. The render layer must
|
|
359
|
+
therefore derive glyphs from the instrument's own figures and the
|
|
360
|
+
published character-width tables (Res. 231/2007 Anexo item 2 gives a full
|
|
361
|
+
per-character advance-width table in mm for the PNU), never from a
|
|
362
|
+
third-party FE-Schrift or Gill Sans binary.
|
|
363
|
+
class_map:
|
|
364
|
+
note: >-
|
|
365
|
+
Where each legal issuance category lives in this file. PRD-PLATES § 2.3
|
|
366
|
+
sends colour-only variants to `variants:`; Brazil's current system makes
|
|
367
|
+
six categories colour-only, so a class-keyed consumer must read variants.
|
|
368
|
+
current:
|
|
369
|
+
standard: "series br-mercosul-standard-2018 / br-mercosul-converted-2018 (black characters, Particular); br-mercosul-uf-brasao-2018 for the 2018-only design that additionally carried the state flag, arms and municipality name"
|
|
370
|
+
motorcycle: "series br-mercosul-motorcycle-2018 / br-mercosul-motorcycle-converted-2018"
|
|
371
|
+
taxi: "variant 'aluguel-aprendizagem' (red characters) on the standard and motorcycle series"
|
|
372
|
+
government: "variant 'oficial-representacao' (blue characters)"
|
|
373
|
+
diplomatic: "variant 'diplomatico-consular' (gold characters)"
|
|
374
|
+
consular: "variant 'diplomatico-consular' (gold characters) — Brazil issues one gold class for both"
|
|
375
|
+
dealer: "variant 'especiais-experiencia-fabricante' (green characters) — PIV-Exp, Res. 969/2022 arts. 39-49"
|
|
376
|
+
historic: "variant 'colecao-mercosul' (silver-grey characters) for Mercosul-wide circulation; series br-mercosul-collection-national-2022 for the black national-only plate"
|
|
377
|
+
previous:
|
|
378
|
+
standard: "series br-pnu-standard-1990 (grey plate) + its colour variants"
|
|
379
|
+
government: "series br-pnu-official-1990 (white plate, BRASIL / state / municipality tarjeta)"
|
|
380
|
+
diplomatic: "series br-pnu-diplomatic-2008 (blue plate, CMD/CD/CC/OI/ADM/CI tarjeta)"
|
|
381
|
+
motorcycle: "series br-pnu-motorcycle-1990 (187x136 mm) and br-pnu-motorcycle-2012 (200x170 mm)"
|
|
382
|
+
|
|
383
|
+
special_plates:
|
|
384
|
+
note: >-
|
|
385
|
+
Brazilian plates that carry NO alphanumeric combination, and therefore no
|
|
386
|
+
`format.pattern`/`format.regex` and no series record. Recorded here so the
|
|
387
|
+
jurisdiction-completeness detector does not read their absence as a gap.
|
|
388
|
+
presidential_and_high_authority:
|
|
389
|
+
basis: "CTB art. 115 § 2"
|
|
390
|
+
quote: >-
|
|
391
|
+
"As placas com as cores verde e amarela da Bandeira Nacional serão usadas
|
|
392
|
+
somente pelos veículos de representação pessoal do Presidente e do
|
|
393
|
+
Vice-Presidente da República, dos Presidentes do Senado Federal e da
|
|
394
|
+
Câmara dos Deputados, do Presidente e dos Ministros do Supremo Tribunal
|
|
395
|
+
Federal, dos Ministros de Estado, do Advogado-Geral da União e do
|
|
396
|
+
Procurador-Geral da República."
|
|
397
|
+
source: "https://www.planalto.gov.br/ccivil_03/leis/l9503compilado.htm # art. 115 § 2"
|
|
398
|
+
representation_bronze:
|
|
399
|
+
basis: "CTB art. 115 § 3; Res. 969/2022 arts. 26-30 and Anexo I Figuras 9-10"
|
|
400
|
+
spec: "Placa em Bronze; letters in gold high relief; black ground; 350 x 160 mm; coat of arms in official colours or in bronze. Lettered with the office (e.g. GOVERNADOR DO ESTADO, COMANDANTE DA MARINHA, COMANDANTE DA AERONÁUTICA, OFICIAL GENERAL, and the Secretários de Estado do Governo Federal model of Figura 10). The vehicle is separately registered in RENAVAM (art. 28) and carries ordinary PIV as well."
|
|
401
|
+
source: "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Figuras 9 and 10 + INFORMAÇÕES COMPLEMENTARES"
|
|
402
|
+
military:
|
|
403
|
+
basis: "CTB art. 115 § 5, verbatim: 'O disposto neste artigo não se aplica aos veículos de uso bélico.'"
|
|
404
|
+
note: "Armed-forces vehicles of war are excluded from the CTB plate regime altogether, so their identification (EB/FAB/MB registration systems) is set by the services, not by CONTRAN, and is out of scope for this file. Res. 969/2022 art. 30 covers only the bronze REPRESENTATION plates of the service Commanders and Oficiais Generais."
|
|
405
|
+
source: "https://www.planalto.gov.br/ccivil_03/leis/l9503compilado.htm # art. 115 § 5"
|
|
406
|
+
judicial_protected:
|
|
407
|
+
basis: "CTB art. 115 § 7 (Incluído pela Lei nº 12.694, de 2012)"
|
|
408
|
+
note: "Judges and prosecutors with criminal jurisdiction may TEMPORARILY carry special plates that defeat identification, under a joint CNJ/CNMP/CONTRAN regulation. No format is published, by design; not modelled."
|
|
409
|
+
source: "https://www.planalto.gov.br/ccivil_03/leis/l9503compilado.htm # art. 115 § 7"
|
|
410
|
+
|
|
411
|
+
series:
|
|
412
|
+
|
|
413
|
+
# =========================================================================
|
|
414
|
+
# CURRENT — PLACA DE IDENTIFICAÇÃO VEICULAR (PIV), MERCOSUL PATTERN.
|
|
415
|
+
# Res. 969/2022 (in force 1 July 2022), continuing the system created by
|
|
416
|
+
# Res. 729/2018 and specified as LLLNLNN by Res. 780/2019.
|
|
417
|
+
# =========================================================================
|
|
418
|
+
- id: br-mercosul-standard-2018
|
|
419
|
+
class: standard
|
|
420
|
+
categories: [car, van, truck, bus, trailer, semitrailer]
|
|
421
|
+
period: { start: 2018 }
|
|
422
|
+
period_evidence: enabling-instrument
|
|
423
|
+
matching: strict
|
|
424
|
+
format:
|
|
425
|
+
pattern: "LLL9L99"
|
|
426
|
+
regex: '\A[A-Z]{3}\d[A-Z]\d{2}\z'
|
|
427
|
+
charset:
|
|
428
|
+
letters: "A-Z, no exclusions published"
|
|
429
|
+
fifth_character: >-
|
|
430
|
+
NO NARROWING IS ASSERTED, and the absence is sourced. Res. 741/2018
|
|
431
|
+
Anexo III item 3 put EVERY transition-period plate on A-J at this
|
|
432
|
+
position; Res. 780/2019 and Res. 969/2022 Anexo II item 2 reserve A-J
|
|
433
|
+
"apenas para a conversão" without enacting any range for native
|
|
434
|
+
allocations. Natively-allocated blocks are observed running 0A01 to
|
|
435
|
+
9J99 (secondary), which is consistent with the 741/2018 reading and
|
|
436
|
+
inconsistent with a K-Z rule. See the file header, fact 2, and
|
|
437
|
+
`common.fifth_character_rule`. A `regex_strict` here would be an
|
|
438
|
+
inference, so there is none.
|
|
439
|
+
progression: >-
|
|
440
|
+
"combinação aleatória, distribuída e controlada pelo órgão máximo
|
|
441
|
+
executivo de trânsito da União" (Anexo I 1.2). There is no published
|
|
442
|
+
allocation order and no geographic block: a Brazilian PIV combination
|
|
443
|
+
carries no state, city or date information of its own. The only
|
|
444
|
+
inference the combination supports is the fifth-character one.
|
|
445
|
+
design:
|
|
446
|
+
plate: { w: 400, h: 130, unit: mm, tolerance_mm: 2 }
|
|
447
|
+
plate_variants:
|
|
448
|
+
- { note: "up to 15% reduction permitted where the plate does not fit the vehicle's homologated receptacle (Anexo I 2.1.2)" }
|
|
449
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
450
|
+
foreground: "#000000"
|
|
451
|
+
band: { side: top, color: "#0033A0", hex_basis: pantone-converted, h: 30, w: 390, unit: mm, content: "MERCOSUL emblem (left) + BRASIL voided white (centre) + Brazilian flag (right)" }
|
|
452
|
+
emblem: { present: true, rendered: placeholder, note: "MERCOSUL emblem per DEC CMC nº 17/02 corporate identity manual; national flag; PRD-PLATES § 3 placeholder rule applies until the emblem licence is affirmatively cleared" }
|
|
453
|
+
characters: { height_mm: 65, font: "FE Engschrift", relief: "alto relevo", process: "hot stamp thermal film, non-retroreflective, non-diffractive, overprinted with the words MERCOSUR BRASIL MERCOSUL at 5 mm" }
|
|
454
|
+
material: { substrate: "non-galvanised aluminium 1 mm ± 0.2", film: "microprismatic or microspherical retroreflective, ISO 7591:1982 tested, ASTM E-810 measured" }
|
|
455
|
+
rear_differs: false
|
|
456
|
+
note: "front and rear plates are identical; trailers, semi-trailers, two- and three-wheelers, quadricycles and cranes carry the rear plate only (art. 2 § 1)"
|
|
457
|
+
region_encoding: none
|
|
458
|
+
variants:
|
|
459
|
+
- class: taxi
|
|
460
|
+
name: aluguel-aprendizagem
|
|
461
|
+
design: { foreground: "#C8102E", hex_basis: pantone-converted, note: "Pantone Fórmula Sólido Brilhante 186C; micro-inscriptions Pantone 187C" }
|
|
462
|
+
note: >-
|
|
463
|
+
"Comercial (Aluguel e Aprendizagem)" — hire vehicles (taxis, ride-hail,
|
|
464
|
+
rental) AND driving-school vehicles share one red-character category.
|
|
465
|
+
Colour-only variant of this series per PRD-PLATES § 2.3: same plate,
|
|
466
|
+
same LLLNLNN combination, same period. Under the PNU these were two
|
|
467
|
+
DIFFERENT designs (red ground / white ground, see br-pnu-standard-1990
|
|
468
|
+
variants) — the Mercosul plate merged them.
|
|
469
|
+
sources:
|
|
470
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela III row 2, Tabela VI row 2"
|
|
471
|
+
- class: government
|
|
472
|
+
name: oficial-representacao
|
|
473
|
+
design: { foreground: "#0033A0", hex_basis: pantone-converted, note: "Sólido Brilhante 286C; micro-inscriptions Pantone 288C" }
|
|
474
|
+
note: >-
|
|
475
|
+
"Oficial e Representação" — federal, state and municipal fleets, and
|
|
476
|
+
the ordinary plates of representation vehicles. Colour-only variant.
|
|
477
|
+
The BRONZE representation plate of CTB art. 115 § 3 is a different
|
|
478
|
+
object entirely and is recorded in `special_plates`.
|
|
479
|
+
sources:
|
|
480
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela III row 3"
|
|
481
|
+
- class: diplomatic
|
|
482
|
+
name: diplomatico-consular
|
|
483
|
+
design: { foreground: "#F2A900", hex_basis: pantone-converted, note: "Pantone Fórmula Sólido Brilhante 130C; micro-inscriptions Pantone 131C" }
|
|
484
|
+
note: >-
|
|
485
|
+
One gold-character category covers Missão Diplomática, Corpo Consular,
|
|
486
|
+
Corpo Diplomático, Organismo Consular e/ou Internacional and Acordo de
|
|
487
|
+
Cooperação Internacional (Res. 969/2022 art. 6º VIII and art. 31).
|
|
488
|
+
Registration requires an authorisation from the Cerimonial do
|
|
489
|
+
Ministério das Relações Exteriores (art. 32). DECODE LOSS WORTH
|
|
490
|
+
RECORDING: the PNU carried a two- or three-letter tarjeta code
|
|
491
|
+
(CMD/CD/CC/OI/ADM/CI) that told you WHICH corps; the Mercosul plate
|
|
492
|
+
does not, so the sub-category is no longer readable off the plate.
|
|
493
|
+
sources:
|
|
494
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela III row 4"
|
|
495
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # arts. 6º VIII, 31-34 (who qualifies, MRE authorisation, annual licensing)"
|
|
496
|
+
- class: dealer
|
|
497
|
+
name: especiais-experiencia-fabricante
|
|
498
|
+
design: { foreground: "#007A53", hex_basis: pantone-converted, note: "Pantone Fórmula Sólido Brilhante 341C; micro-inscriptions Pantone 342C" }
|
|
499
|
+
note: >-
|
|
500
|
+
Green characters cover BOTH special plates: PIV-Exp (trade plates for
|
|
501
|
+
establishments that repair, buy, sell or dismantle vehicles, CTB
|
|
502
|
+
art. 330; circulation restricted to the issuing state, art. 42) and
|
|
503
|
+
PIV-Fab (manufacturer/bodybuilder test plates, arts. 35-38, valid
|
|
504
|
+
without geographic or time restriction). Class `dealer` is the closest
|
|
505
|
+
entry in _meta/classes.yml; the manufacturer half has no exact class.
|
|
506
|
+
sources:
|
|
507
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela III row 5"
|
|
508
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # arts. 6º III-IV, 35-49"
|
|
509
|
+
- class: historic
|
|
510
|
+
name: colecao-mercosul
|
|
511
|
+
design: { foreground: "#8C8C8C", hex_basis: observed, note: "the instrument says only 'Cinza Prata / Swop Pantone Grey', which has no single sRGB definition — hex is an observation, flagged" }
|
|
512
|
+
note: >-
|
|
513
|
+
Collector vehicles circulating Mercosul-wide keep the white plate with
|
|
514
|
+
silver-grey characters. Collector vehicles "classificados como
|
|
515
|
+
originais" may instead take the BLACK national-only plate, which is a
|
|
516
|
+
different design and therefore its own series
|
|
517
|
+
(br-mercosul-collection-national-2022).
|
|
518
|
+
sources:
|
|
519
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela III row 6, Tabela VI row 6"
|
|
520
|
+
sources:
|
|
521
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I 1.1, 1.2 (LLLNLNN), 2.1 Tabela I (400x130), 2.3 (white ground, Pantone 286 band), 2.4 (FE Engschrift 65 mm), 3.1-3.5 (security elements)"
|
|
522
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # arts. 2 (front+rear, rear-only categories), 3 (QR Code replaces the lacre), 56 (when the PIV is required)"
|
|
523
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-n-729-de-6-de-marco-de-2018-5755402 # art. 8 § 3: PIV required for new registrations, transfers and replacements from 1 September 2018 — the period.start evidence"
|
|
524
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7412018.pdf # Res. CONTRAN 741/2018 of 17-09-2018, Anexo III item 1 — the FIRST instrument to spell LLLNLNN (pass-2 correction; an earlier draft credited Res. 780/2019)"
|
|
525
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-n-780-de-26-de-junho-de-2019-179414765 # Res. 780/2019 Anexo I 1.2, which re-enacts LLLNLNN unchanged; art. 21 (31 January 2020 deadline)"
|
|
526
|
+
notes: >-
|
|
527
|
+
The current Brazilian standard-issue plate, black characters on white with
|
|
528
|
+
the Mercosul blue band. period.start 2018 is the year the plate became
|
|
529
|
+
MANDATORY for new registrations under Res. 729/2018 art. 8 § 3 ("até 1º de
|
|
530
|
+
setembro de 2018"), and the year the first states issued it: the per-state
|
|
531
|
+
cronograma of Res. 748/2018 art. 2 gave Rio de Janeiro until 3 December
|
|
532
|
+
2018 and every other state until 31 December 2018, which is the primary
|
|
533
|
+
evidence for the widely repeated "Rio de Janeiro first, 2018" claim. The
|
|
534
|
+
deadline then moved twice (30 June 2019 by Res. 770/2018; 31 January 2020
|
|
535
|
+
by Res. 780/2019 art. 21), so 2018-2020 is a genuine transition window in
|
|
536
|
+
which BOTH systems were being issued, state by state — modelled here as
|
|
537
|
+
the deliberate overlap with br-pnu-standard-1990. THE ARRANGEMENT LLLNLNN
|
|
538
|
+
WAS FIRST SPELLED BY RES. CONTRAN 741/2018 (17 September 2018), Anexo III
|
|
539
|
+
item 1, verbatim: "A placa MERCOSUL terá a seguinte disposição: LLLNLNN,
|
|
540
|
+
onde L é letra e N é número", with item 2 naming the old shape in the same
|
|
541
|
+
breath — "os demais DETRANs continuarão a emplacar no padrão pré-Mercosul,
|
|
542
|
+
ou seja, LLLNNNN". (PASS-2 CORRECTION: an earlier draft of this file
|
|
543
|
+
credited Res. 780/2019 with the first appearance of LLLNLNN. It is
|
|
544
|
+
741/2018, ten months earlier, and the difference matters because 741/2018
|
|
545
|
+
also carries the A-J rule — see the file header, fact 2.) Before
|
|
546
|
+
September 2018 the instruments were genuinely looser: Res. 510/2014
|
|
547
|
+
required only seven characters and Res. 729/2018 art. 1 § 3 III added only
|
|
548
|
+
"com o último caractere obrigatoriamente numeral", which is why the
|
|
549
|
+
2014-2018 pre-production samples in circulation show other shapes and why
|
|
550
|
+
no series in this file claims a pre-2018 Mercosul format for Brazil.
|
|
551
|
+
|
|
552
|
+
- id: br-mercosul-converted-2018
|
|
553
|
+
class: standard
|
|
554
|
+
categories: [car, van, truck, bus, trailer, semitrailer]
|
|
555
|
+
period: { start: 2018 }
|
|
556
|
+
period_evidence: enabling-instrument
|
|
557
|
+
matching: strict
|
|
558
|
+
format:
|
|
559
|
+
pattern: "LLL9L99"
|
|
560
|
+
regex: '\A[A-Z]{3}\d[A-Z]\d{2}\z'
|
|
561
|
+
regex_strict: '\A[A-Z]{3}\d[A-J]\d{2}\z'
|
|
562
|
+
charset:
|
|
563
|
+
fifth_character: "A-J only — the letter is the ENCODED FORM of the PNU's second numeral (A=0 … J=9)"
|
|
564
|
+
decode:
|
|
565
|
+
note: "invert the fifth character to recover the vehicle's pre-Mercosul PNU registration"
|
|
566
|
+
map: { A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6, H: 7, I: 8, J: 9 }
|
|
567
|
+
worked_example: "ABC1C34 (PIV) ⇄ ABC-1234 (PNU)"
|
|
568
|
+
progression: "not an allocation at all — the combination is DERIVED from the vehicle's existing PNU by a fixed one-character substitution"
|
|
569
|
+
design:
|
|
570
|
+
plate: { w: 400, h: 130, unit: mm, tolerance_mm: 2 }
|
|
571
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
572
|
+
foreground: "#000000"
|
|
573
|
+
band: { side: top, color: "#0033A0", hex_basis: pantone-converted, h: 30, w: 390, unit: mm, content: "MERCOSUL emblem + BRASIL + Brazilian flag" }
|
|
574
|
+
characters: { height_mm: 65, font: "FE Engschrift" }
|
|
575
|
+
rear_differs: false
|
|
576
|
+
note: "physically identical to br-mercosul-standard-2018 — the difference is the origin of the combination, and it is readable in the fifth character"
|
|
577
|
+
region_encoding: none
|
|
578
|
+
variants:
|
|
579
|
+
- class: taxi
|
|
580
|
+
name: aluguel-aprendizagem
|
|
581
|
+
design: { foreground: "#C8102E", hex_basis: pantone-converted }
|
|
582
|
+
note: "the six colour categories of Tabela III apply to converted plates exactly as to native ones; enumerated in full on br-mercosul-standard-2018"
|
|
583
|
+
sources:
|
|
584
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela III"
|
|
585
|
+
sources:
|
|
586
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo II items 1 and 2: the 0→A…9→J table, the ABC1234→ABC1C34 example, and the reservation of A-J to conversion"
|
|
587
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # art. 2 § 4 (automatic substitution of the second numeral) and art. 57 § 1 (old combination kept in the record as 'placa anterior', both queryable)"
|
|
588
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7412018.pdf # Res. CONTRAN 741/2018 of 17-09-2018, Anexo III items 1, 3 and 4: LLLNLNN, the A-J rule and the 0→A…9→J conversion table with the worked example 'um veículo com a placa ABC1234 tem equivalência no Padrão Mercosul de ABC1C34' — the table's FIRST appearance, which is this series' period.start"
|
|
589
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-n-780-de-26-de-junho-de-2019-179414765 # Res. 780/2019 art. 2 § 3 and Anexo II, which re-enact the same table"
|
|
590
|
+
notes: >-
|
|
591
|
+
Mercosul plates that REPLACED a PNU registration rather than being newly
|
|
592
|
+
allocated. THE SOURCED CLAIM IS ONE-WAY: every converted plate carries
|
|
593
|
+
A-J at position 5, because Anexo II's table produces nothing else, so
|
|
594
|
+
`regex_strict` here is the authority's own grammar. It does NOT follow
|
|
595
|
+
that an A-J plate is converted (file header, fact 2), so this series is a
|
|
596
|
+
PROPER SUBSET of br-mercosul-standard-2018 and not an alternative to it —
|
|
597
|
+
a string alone cannot decide between them, and only the letter block's
|
|
598
|
+
allocation history can. PASS-2 CORRECTION: an earlier draft dated this
|
|
599
|
+
series 2019 on the belief that the conversion table first appeared in
|
|
600
|
+
Res. 780/2019. It first appears in Res. CONTRAN 741/2018 Anexo III item 4
|
|
601
|
+
(17 September 2018), with the same ten rows and the same worked example,
|
|
602
|
+
so period.start is 2018 and the draft id `br-mercosul-converted-2018` is
|
|
603
|
+
retired in favour of `br-mercosul-converted-2018`. Conversion is compulsory
|
|
604
|
+
only on a category change, on plate theft/loss/damage, on a change of
|
|
605
|
+
municipality or state, or when a second rear plate must be fitted
|
|
606
|
+
(Res. 969/2022 art. 56 § 1); otherwise it is the owner's option, at any
|
|
607
|
+
time, for the life of the vehicle — so this series will keep receiving
|
|
608
|
+
new members for as long as pre-2018 vehicles survive.
|
|
609
|
+
|
|
610
|
+
- id: br-mercosul-motorcycle-2018
|
|
611
|
+
class: motorcycle
|
|
612
|
+
categories: [motorcycle, moped, tricycle, quadricycle]
|
|
613
|
+
period: { start: 2018 }
|
|
614
|
+
period_evidence: enabling-instrument
|
|
615
|
+
matching: strict
|
|
616
|
+
format:
|
|
617
|
+
pattern: "LLL9L99"
|
|
618
|
+
regex: '\A[A-Z]{3}\d[A-Z]\d{2}\z'
|
|
619
|
+
charset:
|
|
620
|
+
fifth_character: "no narrowing asserted — the same reasoning as br-mercosul-standard-2018; see the file header, fact 2"
|
|
621
|
+
progression: "random, allocated and controlled by SENATRAN (Anexo I 1.2)"
|
|
622
|
+
design:
|
|
623
|
+
plate: { w: 200, h: 170, unit: mm, tolerance_mm: 2 }
|
|
624
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
625
|
+
foreground: "#000000"
|
|
626
|
+
band: { side: top, color: "#0033A0", hex_basis: pantone-converted, h: 30, w: 196, unit: mm, content: "MERCOSUL emblem + BRASIL + Brazilian flag" }
|
|
627
|
+
characters: { height_mm: 53, font: "FE Engschrift" }
|
|
628
|
+
emblem: { present: true, rendered: placeholder, note: "on the motorcycle plate the MERCOSUL emblem's angle bisector coincides with the plate corner's bisector (Anexo I 3.1); flag 23x16 mm" }
|
|
629
|
+
layout: two-line
|
|
630
|
+
layout_basis: photographic-observed
|
|
631
|
+
layout_note: >-
|
|
632
|
+
The instrument fixes the plate at 200 x 170 mm and the characters at
|
|
633
|
+
53 mm but does NOT spell the line arrangement, and Figura 2 is a
|
|
634
|
+
dimensioned drawing with an empty character field. Seven 53 mm
|
|
635
|
+
characters cannot fit on a 200 mm line, so the combination is printed
|
|
636
|
+
on two lines. UPGRADED (wave-1 render pass) from "observed, not
|
|
637
|
+
sourced" to photographically confirmed: an issued motorcycle plate
|
|
638
|
+
reads "RJJ" on the upper row and "2J41" on the lower — Commons
|
|
639
|
+
File:License plate of Brazil 04.jpg (CC BY 4.0, photographer
|
|
640
|
+
Dickelbers), serial RJJ2J41. The 3+4 split this note already named
|
|
641
|
+
now has a citable photograph.
|
|
642
|
+
rear_differs: false
|
|
643
|
+
note: "rear plate only — CTB art. 115 § 6 ('Os veículos de duas ou três rodas são dispensados da placa dianteira') and Res. 969/2022 art. 2 § 1"
|
|
644
|
+
region_encoding: none
|
|
645
|
+
variants:
|
|
646
|
+
- class: taxi
|
|
647
|
+
name: aluguel-aprendizagem
|
|
648
|
+
design: { foreground: "#C8102E", hex_basis: pantone-converted }
|
|
649
|
+
note: "moto-taxi and moto-boy hire registrations, and driving-school motorcycles, take the red characters of Tabela III; full colour table on br-mercosul-standard-2018"
|
|
650
|
+
sources:
|
|
651
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela III"
|
|
652
|
+
sources:
|
|
653
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I Tabela I (200x170), Tabela II (band 30x196), 2.4.1.2 (53 mm), 3.1-3.2, Figura 2"
|
|
654
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # art. 2 § 1: motocicletas, motonetas, ciclomotores, cicloelétricos, triciclos and quadriciclos carry the rear plate only"
|
|
655
|
+
- "https://www.planalto.gov.br/ccivil_03/leis/l9503compilado.htm # CTB art. 115 § 6"
|
|
656
|
+
notes: >-
|
|
657
|
+
The Mercosul plate for two-, three- and four-wheeled light vehicles:
|
|
658
|
+
same seven-character combination and same colour rules as the car plate,
|
|
659
|
+
on a near-square 200 x 170 mm plate. Note the category breadth — the same
|
|
660
|
+
plate serves motorcycles, motonetas, ciclomotores, cicloelétricos,
|
|
661
|
+
triciclos and quadriciclos, so a Brazilian moped is NOT separately
|
|
662
|
+
formatted (contrast NL and IT, where moped plates are their own grammar).
|
|
663
|
+
period.start follows the same instrument chain as the car series; a
|
|
664
|
+
converted motorcycle plate carries the A-J fifth character exactly as
|
|
665
|
+
br-mercosul-converted-2018 does.
|
|
666
|
+
|
|
667
|
+
- id: br-mercosul-motorcycle-converted-2018
|
|
668
|
+
class: motorcycle
|
|
669
|
+
categories: [motorcycle, moped, tricycle, quadricycle]
|
|
670
|
+
period: { start: 2018 }
|
|
671
|
+
period_evidence: enabling-instrument
|
|
672
|
+
matching: strict
|
|
673
|
+
format:
|
|
674
|
+
pattern: "LLL9L99"
|
|
675
|
+
regex: '\A[A-Z]{3}\d[A-Z]\d{2}\z'
|
|
676
|
+
regex_strict: '\A[A-Z]{3}\d[A-J]\d{2}\z'
|
|
677
|
+
charset: { fifth_character: "A-J only — the encoded second numeral of the vehicle's PNU" }
|
|
678
|
+
decode:
|
|
679
|
+
map: { A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6, H: 7, I: 8, J: 9 }
|
|
680
|
+
worked_example: "XYZ9H88 (PIV) ⇄ XYZ-9788 (PNU)"
|
|
681
|
+
design:
|
|
682
|
+
plate: { w: 200, h: 170, unit: mm, tolerance_mm: 2 }
|
|
683
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
684
|
+
foreground: "#000000"
|
|
685
|
+
band: { side: top, color: "#0033A0", hex_basis: pantone-converted, h: 30, w: 196, unit: mm }
|
|
686
|
+
characters: { height_mm: 53, font: "FE Engschrift" }
|
|
687
|
+
layout: two-line
|
|
688
|
+
layout_basis: observed
|
|
689
|
+
rear_differs: false
|
|
690
|
+
region_encoding: none
|
|
691
|
+
sources:
|
|
692
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo II items 1-2 (conversion table and the A-J reservation) + Anexo I Tabela I for the two-wheeler dimensions"
|
|
693
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # art. 2 § 4"
|
|
694
|
+
notes: >-
|
|
695
|
+
The motorcycle half of the PNU→PIV conversion, kept as its own series for
|
|
696
|
+
the same reason as br-mercosul-converted-2018: the fifth-character
|
|
697
|
+
alphabet is a sourced grammar for THIS subset. Same one-way reading as the
|
|
698
|
+
car conversion — a converted plate necessarily carries A-J, but an A-J
|
|
699
|
+
plate is not necessarily converted (file header, fact 2). Draft id
|
|
700
|
+
`br-mercosul-motorcycle-converted-2018` retired with its period, for the
|
|
701
|
+
same Res. 741/2018 reason. No
|
|
702
|
+
stronger inference is available: Brazilian motorcycles have been
|
|
703
|
+
registered throughout the PNU era, and Res. 231/2007 art. 6's 2008/2012
|
|
704
|
+
dates concern REFLECTIVE FILM, not registration (see
|
|
705
|
+
br-pnu-motorcycle-1990).
|
|
706
|
+
|
|
707
|
+
# -------------------------------------------------------------------------
|
|
708
|
+
# THE NINE-MONTH MERCOSUL PLATE. Pass-2 addition: the assignment brief asks
|
|
709
|
+
# for "state/municipality shown on plate pre-2018 (mechanism note)", and the
|
|
710
|
+
# research turned up the fact that the MERCOSUL plate ALSO showed them, for
|
|
711
|
+
# nine months, and lost them by a dated instrument. That is a design regime
|
|
712
|
+
# with an instrument at both ends, so PRD-PLATES § 2.3 makes it a series.
|
|
713
|
+
# -------------------------------------------------------------------------
|
|
714
|
+
- id: br-mercosul-uf-brasao-2018
|
|
715
|
+
class: standard
|
|
716
|
+
categories: [car, van, truck, bus]
|
|
717
|
+
period: { start: 2018, end: 2018 }
|
|
718
|
+
period_evidence: instrument-dated-both-ends
|
|
719
|
+
matching: strict
|
|
720
|
+
format:
|
|
721
|
+
pattern: "LLL9L99"
|
|
722
|
+
regex: '\A[A-Z]{3}\d[A-Z]\d{2}\z'
|
|
723
|
+
charset: { letters: "A-Z, no exclusions published", fifth_character: "as br-mercosul-standard-2018" }
|
|
724
|
+
design:
|
|
725
|
+
plate: { w: 400, h: 130, unit: mm, tolerance_mm: 2 }
|
|
726
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
727
|
+
foreground: "#000000"
|
|
728
|
+
band: { side: top, color: "#0033A0", hex_basis: pantone-converted, h: 30, w: 390, unit: mm, content: "MERCOSUL emblem + BRASIL + Brazilian flag" }
|
|
729
|
+
characters: { height_mm: 65, font: "FE Engschrift" }
|
|
730
|
+
uf_flag:
|
|
731
|
+
w: 26
|
|
732
|
+
h: 21
|
|
733
|
+
unit: mm
|
|
734
|
+
position: "right edge, below the blue band"
|
|
735
|
+
border_mm: 0.5
|
|
736
|
+
note: >-
|
|
737
|
+
Res. 729/2018 Anexo I item 1.7, verbatim: "Bandeira da Unidade da
|
|
738
|
+
Federação (Figuras I e II): deverá ser inserida nas cores originais e
|
|
739
|
+
aplicada por estampagem por calor com medidas de 26mm por 21mm e para
|
|
740
|
+
motocicletas, motonetas, triciclos, ciclo elétricos, quadriciclos e
|
|
741
|
+
ciclomotores, 21mm por 14mm, ao lado da borda direita da placa com uma
|
|
742
|
+
borda preta de 0,5mm (±0,1mm) de largura."
|
|
743
|
+
emblem:
|
|
744
|
+
present: true
|
|
745
|
+
rendered: placeholder
|
|
746
|
+
max_diameter_mm: 26
|
|
747
|
+
note: >-
|
|
748
|
+
Item 1.8: a coat of arms, Ø 26 mm maximum, in its original colours,
|
|
749
|
+
heat-applied, at the right edge below the UF flag. Item 1.7.1 assigns
|
|
750
|
+
it: federal fleets the Brasão de Armas Federal; state fleets the state
|
|
751
|
+
flag and state arms; municipal fleets the state flag and the MUNICIPAL
|
|
752
|
+
arms. PRD-PLATES § 3 placeholder rule applies.
|
|
753
|
+
municipality_legend:
|
|
754
|
+
font: "Gill Sans"
|
|
755
|
+
note: >-
|
|
756
|
+
Item 1.8.1, verbatim: "Brasão do Município: deverá medir no máximo
|
|
757
|
+
Ø 26mm e constar abaixo, o nome do Município (fonte Gill Sans),
|
|
758
|
+
identificando o domicílio do registro do veículo."
|
|
759
|
+
diplomatic_sigla:
|
|
760
|
+
note: >-
|
|
761
|
+
Item 1.7.1 d) also placed, on the plates of foreign-entity vehicles, a
|
|
762
|
+
VERTICAL GOLD SIGLA in Gill Sans at 15 mm — CMD, CD, CC, OI, ADM or
|
|
763
|
+
CI, the same six codes the PNU tarjeta carried. It died with the rest
|
|
764
|
+
of item 1.7.1, which is why a Brazilian diplomatic plate has carried
|
|
765
|
+
no textual marking of corps since December 2018.
|
|
766
|
+
rear_differs: false
|
|
767
|
+
region_encoding: inline
|
|
768
|
+
region_encoding_note: >-
|
|
769
|
+
THE ONLY BRAZILIAN PLATE SINCE 2018 THAT DECODES GEOGRAPHICALLY, and it
|
|
770
|
+
does so by printing the answer rather than by encoding it: the state flag
|
|
771
|
+
identified the Unidade da Federação and the legend under the arms named
|
|
772
|
+
the municipality of registration in words. There is no code table to ship.
|
|
773
|
+
sources:
|
|
774
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7292018_nova.pdf # Res. CONTRAN 729/2018 of 06-03-2018, Anexo I items 1.7 (UF flag 26x21 mm), 1.7.1 a)-d) (federal arms / state flag+arms / state flag+municipal arms / the gold CMD-CD-CC-OI-ADM-CI sigla), 1.8 (arms Ø 26 mm), 1.8.1 (municipality name in Gill Sans); accessed 2026-08-02"
|
|
775
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7482018.pdf # Res. CONTRAN 748/2018 of 30-11-2018 art. 4, verbatim: 'Revogar os itens 1.7, 1.7.1, 1.8 e 1.8.1 do Anexo I da Resolução CONTRAN nº 729, de 6 de março de 2018.' — the instrument that closes this series' period"
|
|
776
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao7482018.pdf # art. 2, the per-state December 2018 cronograma these plates were issued across, Rio de Janeiro first"
|
|
777
|
+
notes: >-
|
|
778
|
+
THE NINE-MONTH PLATE. Between Res. CONTRAN 729/2018 (6 March 2018) and
|
|
779
|
+
Res. CONTRAN 748/2018 (30 November 2018) the Brazilian Mercosul plate
|
|
780
|
+
carried, at its right edge below the blue band, the flag of the state of
|
|
781
|
+
registration, a coat of arms, and beneath the arms the NAME OF THE
|
|
782
|
+
MUNICIPALITY of registration. Rio de Janeiro — the first state to issue,
|
|
783
|
+
from September 2018 — issued these, and so did the states that started
|
|
784
|
+
before the 748/2018 timetable ran out. Res. 748/2018 art. 4 revoked all
|
|
785
|
+
four Anexo I items in a single line and Brazilian plates have shown no
|
|
786
|
+
geography at all since. THE PERIOD IS CLOSED BY INSTRUMENTS AT BOTH ENDS,
|
|
787
|
+
which is why this is the only entry in the file carrying
|
|
788
|
+
`instrument-dated-both-ends`; the calendar window inside 2018 is
|
|
789
|
+
2018-03-06 to 2018-11-30, and neither boundary is inferred. Modelled as
|
|
790
|
+
its own series and not as a variant because the difference is structural
|
|
791
|
+
(three printed elements added and removed), not a colour swap, and because
|
|
792
|
+
a consumer dating a photograph needs it: a Mercosul plate with a state
|
|
793
|
+
flag on it is a 2018 artefact and nothing else. Distinct from
|
|
794
|
+
br-mercosul-standard-2018, which is the design as it has stood since
|
|
795
|
+
December 2018.
|
|
796
|
+
|
|
797
|
+
- id: br-mercosul-collection-national-2022
|
|
798
|
+
class: historic
|
|
799
|
+
categories: [car, van, truck, bus, motorcycle]
|
|
800
|
+
period: { start: 2022 }
|
|
801
|
+
period_evidence: enabling-instrument
|
|
802
|
+
matching: strict
|
|
803
|
+
format:
|
|
804
|
+
pattern: "LLL9L99"
|
|
805
|
+
regex: '\A[A-Z]{3}\d[A-Z]\d{2}\z'
|
|
806
|
+
charset: { fifth_character: "both ranges occur — a collector vehicle is by definition old, so most carry the A-J converted form, but the resolution imposes no restriction" }
|
|
807
|
+
design:
|
|
808
|
+
plate: { w: 400, h: 130, unit: mm, tolerance_mm: 2 }
|
|
809
|
+
plate_variants:
|
|
810
|
+
- { w: 200, h: 170, unit: mm, note: "motorcycles, motonetas, ciclomotores, cicloelétricos, triciclos and quadriciclos — Anexo I Figura 7" }
|
|
811
|
+
background: { color: "#000000", finish: non-retroreflective, hex_basis: spec }
|
|
812
|
+
foreground: "#FFFFFF"
|
|
813
|
+
band: { side: top, color: "#0033A0", hex_basis: pantone-converted, h: 30, unit: mm, content: "Brazilian flag (right) + BRASIL voided white (centre) — NO MERCOSUL emblem" }
|
|
814
|
+
emblem: { present: true, rendered: placeholder, note: "national flag only; Anexo I 3.1 expressly forbids the MERCOSUL emblem on this plate" }
|
|
815
|
+
distinguishing_sign: { text: "BR", color: "#FFFFFF", note: "white here, black on every other Brazilian plate (Anexo I 3.3)" }
|
|
816
|
+
characters: { height_mm: 65, font: "FE Engschrift", note: "WITHOUT the 'MERCOSUR BRASIL MERCOSUL' micro-inscriptions, which Anexo I 2.2.3 excludes for this plate" }
|
|
817
|
+
watermark: { present: false, note: "Anexo I 3.4 excludes the MERCOSUL watermark from this plate" }
|
|
818
|
+
qr_code: { side_mm: "17-23", note: "slightly larger than the standard 16-22 mm, permitted by Anexo I 3.5.3 for contrast on the black ground" }
|
|
819
|
+
rear_differs: false
|
|
820
|
+
region_encoding: none
|
|
821
|
+
sources:
|
|
822
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao9692022anexos.pdf # Anexo I 1.1.1 (black film, blue band, flag right, BRASIL centre), 2.2.3, 2.3.1, 2.3.3 Tabela III last row ('Coleção (uso restrito em território nacional)' — Branco), 3.1, 3.3, 3.4, 3.5.3, Figuras 7-8"
|
|
823
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # art. 2 § 5: collector vehicles classified as ORIGINAL may take a plate 'para uso restrito ao território nacional'"
|
|
824
|
+
notes: >-
|
|
825
|
+
Brazil's black plate — white characters on a black ground, blue band, no
|
|
826
|
+
MERCOSUL emblem, no watermark, no micro-inscriptions, white BR — created
|
|
827
|
+
by Res. 969/2022 and NOT present in Res. 780/2019, which is why
|
|
828
|
+
period.start is 2022 and the evidence is the enabling instrument itself.
|
|
829
|
+
It is available only to collector vehicles "classificados como originais"
|
|
830
|
+
under separate CONTRAN collector rules, and the trade-off is explicit in
|
|
831
|
+
the plate: dropping the Mercosul identity means the vehicle may not use
|
|
832
|
+
it outside Brazil ("uso restrito ao território nacional"). Collector
|
|
833
|
+
vehicles that want Mercosul-wide circulation keep the white plate with
|
|
834
|
+
silver-grey characters (variant `colecao-mercosul` on
|
|
835
|
+
br-mercosul-standard-2018). NOTE for the render layer: this is the only
|
|
836
|
+
Brazilian plate whose background is non-retroreflective by specification.
|
|
837
|
+
|
|
838
|
+
# =========================================================================
|
|
839
|
+
# ONE SERIES BACK — PLACA NACIONAL ÚNICA (PNU), the 1990-generation plate.
|
|
840
|
+
# Grammar and design from Res. 231/2007 (consolidated) and Res. 45/98;
|
|
841
|
+
# still legally current on the road, no longer issued.
|
|
842
|
+
# =========================================================================
|
|
843
|
+
- id: br-pnu-standard-1990
|
|
844
|
+
class: standard
|
|
845
|
+
categories: [car, van, truck, bus, trailer, semitrailer]
|
|
846
|
+
period: { start: 1990, end: 2020 }
|
|
847
|
+
period_evidence: enabling-instrument
|
|
848
|
+
matching: strict
|
|
849
|
+
format:
|
|
850
|
+
pattern: "LLL-9999"
|
|
851
|
+
regex: '\A[A-Z]{3}[- ]?\d{4}\z'
|
|
852
|
+
charset:
|
|
853
|
+
letters: "A-Z, no exclusions — Res. 231/2007 art. 1 defines the first group as 'o arranjo, com repetição de 26 (vinte e seis) letras, tomadas três a três', i.e. all 17,576 triples are legal"
|
|
854
|
+
digits: "0-9, all 10,000 combinations — 'o arranjo, com repetição, de 10 (dez) algarismos, tomados quatro a quatro'"
|
|
855
|
+
separator_note: >-
|
|
856
|
+
Res. 231/2007 art. 1 prescribes two GROUPS and no separator glyph;
|
|
857
|
+
Res. 969/2022 art. 2 § 3, describing the same plate 15 years later,
|
|
858
|
+
writes it "AAA-1111". The regex therefore accepts hyphen, space or
|
|
859
|
+
nothing at the group boundary (PRD-PLATES § 2.8 separator-only class),
|
|
860
|
+
and `pattern` shows the canonical printed hyphen.
|
|
861
|
+
separator_printed_form: >-
|
|
862
|
+
SETTLED PHOTOGRAPHICALLY (wave-1 render pass): issued plates print a
|
|
863
|
+
small SQUARE DOT between the letter and digit groups — not a hyphen,
|
|
864
|
+
and not a bare gap. Close-up: Commons File:Placa de veículo Brasil
|
|
865
|
+
Pernambuco-Jaboatão dos Guararapes KLV-8465 atrás.jpg (public domain,
|
|
866
|
+
photographer Ralf1963) reads "KLV·8465" with the square dot clearly
|
|
867
|
+
resolved. The canonical hyphen above stays the PARSE form; this field
|
|
868
|
+
records the DEPICTION form, exactly as Portugal's square-dot
|
|
869
|
+
settlement did (pt.yml). Evidence: photographic-observed, single
|
|
870
|
+
close-up witness for the standard series; whether the official and
|
|
871
|
+
diplomatic PNU faces print the same glyph is unconfirmed.
|
|
872
|
+
progression: >-
|
|
873
|
+
Sequential inside a three-letter block allocated to each state.
|
|
874
|
+
Res. 231/2007 art. 4, verbatim: "O Órgão Maximo Executivo de Transito da
|
|
875
|
+
União estabelecerá normas técnicas para a distribuição e controle das
|
|
876
|
+
series alfanuméricas" — the allocation is delegated to DENATRAN and the
|
|
877
|
+
resulting UF→range table was NOT found published (recorded gap; see
|
|
878
|
+
`region_encoding` below and dossier-br.md § Gaps).
|
|
879
|
+
design:
|
|
880
|
+
plate: { w: 400, h: 130, unit: mm }
|
|
881
|
+
plate_variants:
|
|
882
|
+
- { note: "up to 15% length reduction where the plate does not fit the receptacle, DENATRAN-authorised (Anexo item 1 c), as amended by Res. 309/09)" }
|
|
883
|
+
background: { color: "#8F999F", finish: retroreflective, hex_basis: ral-converted, spec_note: "CINZA = RAL 7001 (Silbergrau), Res. 45/98 Anexo item 11" }
|
|
884
|
+
foreground: "#1C1C1C"
|
|
885
|
+
band: { side: none }
|
|
886
|
+
characters: { height_mm: 63, stroke_mm: 10, font: "Mandatory", relief: "alto relevo", note: "Res. 231/2007 Anexo item 2 also publishes a per-character advance-width table in mm (A=54, B=44, … I=10, … 1=18, 0=36) — a directly renderable metric set" }
|
|
887
|
+
tarjeta:
|
|
888
|
+
present: true
|
|
889
|
+
content: "sigla da Unidade da Federação + nome do Município de registro"
|
|
890
|
+
note: "removable strips riveted to both plates, sealed together with the rear plate; the ONLY geographic marking on a Brazilian plate, and it is in words, not in the serial. State DETRANs set municipality abbreviations (art. 5 § 4). Character heights 5.5-7.0 mm per Anexo item 6."
|
|
891
|
+
manufacturer_code: { note: "three digits + UF sigla + last two digits of the year of manufacture, stamped in the plate colour: 8 x 30 mm on the plate, 3 x 15 mm on the tarjeta (Anexo item 7)" }
|
|
892
|
+
seal: { note: "physical lacre (polyethylene or lead, min 15x15x4 mm) through braided galvanised wire, identifying the issuing DETRAN — the element the Mercosul QR Code replaced" }
|
|
893
|
+
rear_differs: false
|
|
894
|
+
hex_note: >-
|
|
895
|
+
PASS-2 UPGRADE, from `observed` to `ral-converted` on every PNU colour.
|
|
896
|
+
Res. 231/2007 Anexo item 11, as amended by Res. 372/2011, publishes RAL
|
|
897
|
+
codes for the CHARACTERS only (BRANCA = RAL 9010, PRETA = RAL 9011) and
|
|
898
|
+
specifies the grounds as CIE 1931 chromaticity boxes (Tabela 2) plus
|
|
899
|
+
retroreflectivity minima (Tabela 1) — which is what an earlier draft of
|
|
900
|
+
this file recorded. But its PREDECESSOR instrument, Res. CONTRAN 45/98,
|
|
901
|
+
publishes the FULL six-colour RAL table at Anexo item 11 — CINZA 7001,
|
|
902
|
+
VERMELHO 3000, VERDE 6016, BRANCA 9010, AZUL 5019, PRETA 9011 — and
|
|
903
|
+
Res. 231/2007 changed none of those colour NAMES, only the instrument
|
|
904
|
+
that carries them. Every PNU hex in this file is therefore a
|
|
905
|
+
conventional sRGB rendering of a NAMED RAL STANDARD, and the RAL number
|
|
906
|
+
is the citable fact (the sm.yml precedent: RAL publishes physical
|
|
907
|
+
standards, not sRGB values). The one colour with no RAL and no Pantone
|
|
908
|
+
anywhere in the chain is the Representação GOLD, which stays unsourced
|
|
909
|
+
and says so.
|
|
910
|
+
region_encoding:
|
|
911
|
+
mechanism: >-
|
|
912
|
+
NONE IN THE SERIAL, by instrument. Geography appeared on the tarjeta in
|
|
913
|
+
words (UF + municipality). Separately, DENATRAN allocated three-letter
|
|
914
|
+
blocks to each state under art. 4, so the letter group DOES correlate
|
|
915
|
+
with the state of first registration — but that allocation table is an
|
|
916
|
+
administrative act that was not found published, and it is not
|
|
917
|
+
reproduced here from secondary compilations.
|
|
918
|
+
table: null
|
|
919
|
+
gap: "UF → three-letter-range allocation table: sought, not found in primary or authority sources (see dossier)"
|
|
920
|
+
variants:
|
|
921
|
+
- class: taxi
|
|
922
|
+
name: aluguel
|
|
923
|
+
design: { background: { color: "#AF2B1E", hex_basis: ral-converted, spec_note: "VERMELHO = RAL 3000 (Feuerrot), Res. 45/98 Anexo item 11" }, foreground: "#F6F6F6" }
|
|
924
|
+
note: "'Aluguel' — hire vehicles (taxis, buses, rental): RED ground, WHITE characters. Colour-only variant of the same format and period per PRD-PLATES § 2.3."
|
|
925
|
+
sources:
|
|
926
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # Anexo 5.1 colour table, row 'Aluguel'"
|
|
927
|
+
- class: dealer
|
|
928
|
+
name: aprendizagem
|
|
929
|
+
design: { background: { color: "#F6F6F6", hex_basis: ral-converted, spec_note: "BRANCA = RAL 9010" }, foreground: "#AF2B1E" }
|
|
930
|
+
note: "'Aprendizagem' — driving-school vehicles: WHITE ground, RED characters, i.e. the exact inverse of the hire plate. The Mercosul plate merged the two into one red-character category."
|
|
931
|
+
sources:
|
|
932
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # Anexo 5.1, row 'Aprendizagem'"
|
|
933
|
+
- class: dealer
|
|
934
|
+
name: experiencia-fabricante
|
|
935
|
+
design: { background: { color: "#007243", hex_basis: ral-converted, spec_note: "VERDE = RAL 6016 (Tuerkisgruen) — a TURQUOISE green, not the grass green a renderer would guess; Res. 45/98 Anexo item 11" }, foreground: "#F6F6F6" }
|
|
936
|
+
note: "'Experiência/Fabricante' — trade and manufacturer test plates: GREEN ground, WHITE characters."
|
|
937
|
+
sources:
|
|
938
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # Anexo 5.1, row 'Experiência/Fabricante'"
|
|
939
|
+
- class: historic
|
|
940
|
+
name: colecao
|
|
941
|
+
design: { background: { color: "#1C1C1C", hex_basis: ral-converted, spec_note: "PRETA = RAL 9011 (Graphitschwarz) ground, CINZA = RAL 7001 characters" }, foreground: "#8F999F" }
|
|
942
|
+
note: "'Coleção' — collector vehicles: BLACK ground, GREY characters. The direct ancestor of br-mercosul-collection-national-2022, which inverts the character colour to white and adds the blue band."
|
|
943
|
+
sources:
|
|
944
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # Anexo 5.1, row 'Coleção'"
|
|
945
|
+
- class: government
|
|
946
|
+
name: representacao
|
|
947
|
+
design: { background: { color: "#1C1C1C", hex_basis: ral-converted, spec_note: "PRETA = RAL 9011 ground; NO RAL OR PANTONE is published anywhere in the chain for the gold characters — that hex stays unsourced" }, foreground: "#C9A227", foreground_hex_basis: unsourced }
|
|
948
|
+
note: "'Representação' — BLACK ground, GOLD characters, for representation vehicles carrying an ordinary alphanumeric combination (distinct from the bronze title plates of `special_plates`)."
|
|
949
|
+
sources:
|
|
950
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # Anexo 5.1, row 'Representação'"
|
|
951
|
+
sources:
|
|
952
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # Res. 231/2007 consolidated: art. 1 (3 letters + 4 digits), art. 1 § 1 (tarjeta), art. 3 (colour follows category, combination does not change), art. 4 (series allocation delegated), Anexo items 1, 2, 4, 5.1, 6, 7, 8, 10, 11"
|
|
953
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao045_98.zip # Res. 45/98 art. 1: the same grammar, seven years earlier, in the first CTB-era plate resolution"
|
|
954
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-contran-n-969-de-20-de-junho-de-2022-410033795 # art. 2 § 3 names it the 'Placa Nacional Única (PNU)' and gives the printed form 'AAA-1111'; art. 57: PNU plates run to scrapping"
|
|
955
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-n-780-de-26-de-junho-de-2019-179414765 # art. 21: PIV required for first registration from 31 January 2020 — the period.end evidence"
|
|
956
|
+
notes: >-
|
|
957
|
+
The PNU — three letters, four digits, grey plate, black characters, a
|
|
958
|
+
tarjeta naming the state and municipality — is the plate Brazil issued
|
|
959
|
+
for a generation, and it is still lawfully on the road in quantity — no
|
|
960
|
+
fleet share is claimed here because none was sourced. TWO PERIOD
|
|
961
|
+
CAVEATS, both material. (1) period.end 2020 is an ISSUANCE end, not a
|
|
962
|
+
validity end: Res. 969/2022 art. 57 lets these plates run "até o seu
|
|
963
|
+
sucateamento", so a 2026 PNU sighting is entirely lawful; the end year is
|
|
964
|
+
Res. 780/2019 art. 21's 31 January 2020 deadline, by which every DETRAN
|
|
965
|
+
had to demand the Mercosul plate at first registration. (2) period.start
|
|
966
|
+
1990 is the SOFTEST claim in this file and is flagged as such: the
|
|
967
|
+
enabling instrument is Resolução CONTRAN nº 742, de 31 de outubro de 1989
|
|
968
|
+
("Dispõe sobre sistema de placas de identificação de veículos", revoked by
|
|
969
|
+
Res. 754/91), whose existence, date and official title come from
|
|
970
|
+
DENATRAN's own catalogue *100 anos de Legislação de Trânsito no Brasil*
|
|
971
|
+
(2010) — its TEXT was not retrieved, so the file cannot show that 742/89
|
|
972
|
+
is where LLL-9999 was written down. What IS held verbatim is Res. 45/98
|
|
973
|
+
art. 1 (1998) and Res. 231/2007 art. 1 (2007), both prescribing exactly
|
|
974
|
+
this grammar, plus Res. 45/98 art. 8 and Res. 99/99 art. 1, which ordered
|
|
975
|
+
the national plate SUBSTITUTION completed by 31 December 1999 — evidence
|
|
976
|
+
that the rollout ran through the whole decade rather than landing in one
|
|
977
|
+
year. A verifier who pins the text of Res. 742/1989 (or of Res. 754/91)
|
|
978
|
+
closes the single largest evidence gap in this jurisdiction.
|
|
979
|
+
|
|
980
|
+
- id: br-pnu-official-1990
|
|
981
|
+
class: government
|
|
982
|
+
categories: [car, van, truck, bus]
|
|
983
|
+
period: { start: 1990, end: 2020 }
|
|
984
|
+
period_evidence: enabling-instrument
|
|
985
|
+
matching: strict
|
|
986
|
+
format:
|
|
987
|
+
pattern: "LLL-9999"
|
|
988
|
+
regex: '\A[A-Z]{3}[- ]?\d{4}\z'
|
|
989
|
+
charset: { note: "same grammar as the private series — the category is carried by colour and by tarjeta content, never by the combination" }
|
|
990
|
+
design:
|
|
991
|
+
plate: { w: 400, h: 130, unit: mm }
|
|
992
|
+
background: { color: "#F6F6F6", finish: retroreflective, hex_basis: ral-converted, spec_note: "BRANCA = RAL 9010 (Reinweiss), Res. 45/98 Anexo item 11 and Res. 231/2007 Anexo item 11" }
|
|
993
|
+
foreground: "#1C1C1C"
|
|
994
|
+
band: { side: none }
|
|
995
|
+
characters: { height_mm: 63, stroke_mm: 10, font: "Mandatory" }
|
|
996
|
+
tarjeta:
|
|
997
|
+
present: true
|
|
998
|
+
content_rule: "federal fleet: the word BRASIL; state fleet: the name of the Unidade da Federação; municipal fleet: the UF sigla + the municipality name"
|
|
999
|
+
note: "Res. 231/2007 art. 1 § 2, I-III. Official vehicles are the § 1 exception: they do NOT carry the ordinary UF+município tarjeta."
|
|
1000
|
+
rear_differs: false
|
|
1001
|
+
region_encoding:
|
|
1002
|
+
mechanism: "the tarjeta names the level of government and, for state and municipal fleets, the state or municipality — in words"
|
|
1003
|
+
sources:
|
|
1004
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # art. 1 § 1 (official plates excepted from the ordinary tarjeta), art. 1 § 2 I-III (BRASIL / state name / UF + municipality), Anexo 5.1 row 'Oficial' (white ground, black characters)"
|
|
1005
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao045_98.zip # Res. 45/98 art. 1 § 1-§ 2: the identical rule a decade earlier"
|
|
1006
|
+
notes: >-
|
|
1007
|
+
Government fleets under the PNU: a WHITE plate with black characters —
|
|
1008
|
+
visually the same colour pair as a private plate but on white rather than
|
|
1009
|
+
grey — distinguished in the field by the tarjeta, which read BRASIL for
|
|
1010
|
+
federal vehicles, the state's name for state vehicles, and UF + municipality
|
|
1011
|
+
for municipal ones. Modelled as its own series rather than a colour variant
|
|
1012
|
+
of br-pnu-standard-1990 because the DESIGN differs beyond colour: the
|
|
1013
|
+
tarjeta carries different content by instrument. CTB art. 116 separately
|
|
1014
|
+
allows police and public-security vehicles in reserved service to wear
|
|
1015
|
+
ordinary private plates, which is why an official-looking Brazilian
|
|
1016
|
+
vehicle may lawfully carry a grey plate. Same period caveats as
|
|
1017
|
+
br-pnu-standard-1990: issuance ended by 31 January 2020, validity did not.
|
|
1018
|
+
|
|
1019
|
+
- id: br-pnu-diplomatic-2008
|
|
1020
|
+
class: diplomatic
|
|
1021
|
+
categories: [car, van]
|
|
1022
|
+
period: { start: 2008, end: 2020 }
|
|
1023
|
+
period_evidence: enabling-instrument # Res. 231/2007 art. 1 § 2 IV, in force 01-01-2008
|
|
1024
|
+
matching: strict
|
|
1025
|
+
format:
|
|
1026
|
+
pattern: "LLL-9999"
|
|
1027
|
+
regex: '\A[A-Z]{3}[- ]?\d{4}\z'
|
|
1028
|
+
charset: { note: "the ordinary grammar; the corps is encoded on the tarjeta, not in the combination" }
|
|
1029
|
+
design:
|
|
1030
|
+
plate: { w: 400, h: 130, unit: mm }
|
|
1031
|
+
background: { color: "#1D5B8C", finish: retroreflective, hex_basis: ral-converted, spec_note: "AZUL = RAL 5019 (Capriblau), Res. 45/98 Anexo item 11" }
|
|
1032
|
+
foreground: "#FFFFFF"
|
|
1033
|
+
band: { side: none }
|
|
1034
|
+
characters: { height_mm: 63, stroke_mm: 10, font: "Mandatory" }
|
|
1035
|
+
tarjeta:
|
|
1036
|
+
present: true
|
|
1037
|
+
content_rule: "a corps code stamped in the upper-central part of the plate (tarjeta), REPLACING the municipality"
|
|
1038
|
+
codes:
|
|
1039
|
+
CMD: "veículos de uso dos Chefes de Missão Diplomática"
|
|
1040
|
+
CD: "veículos pertencentes ao Corpo Diplomático"
|
|
1041
|
+
CC: "veículos pertencentes ao Corpo Consular"
|
|
1042
|
+
OI: "veículos pertencentes a Organismos Internacionais"
|
|
1043
|
+
ADM: "funcionários administrativos de carreira estrangeiros de Missões Diplomáticas, Repartições Consulares e Representações de Organismos Internacionais"
|
|
1044
|
+
CI: "peritos estrangeiros sem residência permanente, no âmbito de Acordo de Cooperação Internacional"
|
|
1045
|
+
note: "closed, small, primary list — inlined per PRD-PLATES § 2.4 rather than given a _decode file"
|
|
1046
|
+
rear_differs: false
|
|
1047
|
+
region_encoding:
|
|
1048
|
+
mechanism: "no geography; the tarjeta encodes the CORPS instead of the municipality"
|
|
1049
|
+
sources:
|
|
1050
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # art. 1 § 2 IV a)-f): the CMD/CD/CC/OI/ADM/CI codes verbatim; Anexo 5.1 rows 'Missão Diplomática', 'Corpo Consular', 'Organismo Internacional', 'Corpo Diplomático', 'Organismo Consular/Internacional', 'Acordo Cooperação Internacional' — all blue ground, white characters; art. 11 (in force 01-01-2008)"
|
|
1051
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/cons286.pdf # Res. CONTRAN 286/2008 of 29-07-2008 (consolidated with 342/10) art. 1 § 2, verbatim: 'As placas de identificação dos veículos de que trata esta Resolução são as previstas na Resolução do CONTRAN nº 231/07, alterada pela Resolução nº 241/07, terão o fundo na cor azul e os caracteres na cor branca e as combinações alfanuméricas obedecerão a faixas específicas do RENAVAM distribuídas para cada unidade de federação' — the instrument that put foreign missions onto the ordinary three-letter numbering; accessed 2026-08-02"
|
|
1052
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao045_98.zip # Res. 45/98 Anexo item 5: the 1998 colour table has FIVE rows (Particular, Aluguel, Experiência, Aprendizagem, Fabricante) and NO diplomatic row — the negative evidence for period.start 2008"
|
|
1053
|
+
notes: >-
|
|
1054
|
+
PASS-2 CORRECTION TO period.start, and it is the one period this file
|
|
1055
|
+
moved. An earlier draft carried this series from 1990 on the assumption
|
|
1056
|
+
that diplomatic vehicles entered the three-letter system with everyone
|
|
1057
|
+
else. They did not: Res. 45/98's colour table (Anexo item 5) has five rows
|
|
1058
|
+
and no diplomatic row at all, and the six blue rows plus the
|
|
1059
|
+
CMD/CD/CC/OI/ADM/CI tarjeta codes appear for the first time in
|
|
1060
|
+
Res. 231/2007 art. 1 § 2 IV, in force 1 January 2008, with Res. 286/2008
|
|
1061
|
+
giving foreign missions their own procedural instrument six months later.
|
|
1062
|
+
Before that these vehicles carried a SEPARATE format — the corps letters
|
|
1063
|
+
CC, CD or CMD followed by four digits — which this file does NOT model
|
|
1064
|
+
because no instrument for it was secured; that is a recorded gap and an
|
|
1065
|
+
L4 target, and the secondary account (pt.wikipedia) dates the completion
|
|
1066
|
+
of the migration to December 2009. The blue diplomatic plate of the PNU
|
|
1067
|
+
era: six colour-table rows in
|
|
1068
|
+
Res. 231/2007 (Missão Diplomática, Corpo Consular, Organismo
|
|
1069
|
+
Internacional, Corpo Diplomático, Organismo Consular/Internacional, Acordo
|
|
1070
|
+
Cooperação Internacional) share one design — blue ground, white characters
|
|
1071
|
+
— and are distinguished by the tarjeta code, which is why they are one
|
|
1072
|
+
series here and not six. Its own series rather than a variant of
|
|
1073
|
+
br-pnu-standard-1990 for the same reason as the official series: the
|
|
1074
|
+
tarjeta content is prescribed differently. The Mercosul plate abolished
|
|
1075
|
+
the tarjeta, so from 2018 the corps is no longer readable off the plate —
|
|
1076
|
+
the single largest decode LOSS in the Brazilian transition, recorded again
|
|
1077
|
+
on the `diplomatico-consular` variant of br-mercosul-standard-2018.
|
|
1078
|
+
|
|
1079
|
+
- id: br-pnu-motorcycle-1990
|
|
1080
|
+
class: motorcycle
|
|
1081
|
+
categories: [motorcycle, moped, tricycle]
|
|
1082
|
+
period: { start: 1990, end: 2012 }
|
|
1083
|
+
period_evidence: instrument-in-force-upper-bound
|
|
1084
|
+
matching: strict
|
|
1085
|
+
format:
|
|
1086
|
+
pattern: "LLL-9999"
|
|
1087
|
+
regex: '\A[A-Z]{3}[- ]?\d{4}\z'
|
|
1088
|
+
design:
|
|
1089
|
+
plate: { w: 187, h: 136, unit: mm }
|
|
1090
|
+
background: { color: "#8F999F", finish: retroreflective, hex_basis: ral-converted, spec_note: "CINZA = RAL 7001 (Silbergrau), Res. 45/98 Anexo item 11" }
|
|
1091
|
+
foreground: "#1C1C1C"
|
|
1092
|
+
band: { side: none }
|
|
1093
|
+
characters: { height_mm: 42, stroke_mm: 6, font: "Mandatory", note: "Anexo item 3 b) also publishes the reduced per-character width table (A=36, B=30, … I=6, … 1=12, 0=24)" }
|
|
1094
|
+
layout: two-line
|
|
1095
|
+
layout_basis: observed
|
|
1096
|
+
rear_differs: false
|
|
1097
|
+
note: "rear plate only (CTB art. 115 § 6)"
|
|
1098
|
+
region_encoding:
|
|
1099
|
+
mechanism: "tarjeta with UF + municipality, as on the four-wheeled plate"
|
|
1100
|
+
sources:
|
|
1101
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # Anexo item 3: 'motocicleta, motoneta, ciclomotor e triciclos motorizados ... a) dimensões da placa em milímetros: h = 136; c= 187; b) dimensões dos caracteres da placa em milímetros: h = 42; d = 6'"
|
|
1102
|
+
- "https://www.gov.br/transportes/pt-br/assuntos/transito/conteudo-contran/resolucoes/resolucao045_98.zip # Res. 45/98 Anexo item 3: the same 187 x 136 mm plate for 'biciclos, triciclos e similares motorizados' in 1998"
|
|
1103
|
+
notes: >-
|
|
1104
|
+
The small pre-2012 Brazilian motorcycle plate, 187 x 136 mm with 42 mm
|
|
1105
|
+
characters — a size unique to this era; every later Brazilian two-wheeler
|
|
1106
|
+
plate is 200 x 170 mm. period.end 2012 is an instrument boundary, not an
|
|
1107
|
+
observation: Res. 372/2011 inserted Anexo item 3.1 requiring motorcycles
|
|
1108
|
+
"fabricados ou quando da mudança de município, a partir de 1º de janeiro de
|
|
1109
|
+
2012" to use the larger plate, so the small plate stopped being fitted to
|
|
1110
|
+
new machines at that date while remaining lawful on those already carrying
|
|
1111
|
+
it. Reflective film became compulsory for motorcycle plates in stages —
|
|
1112
|
+
hire category from 1 January 2008, other categories for machines registered
|
|
1113
|
+
or transferred from 1 January 2008, all remaining vehicles built from
|
|
1114
|
+
1 January 2012 (art. 6 and its parágrafo único, as amended by Res. 241/07
|
|
1115
|
+
and 372/11) — so motorcycle plates fitted before those dates were under no
|
|
1116
|
+
reflective-film obligation at all.
|
|
1117
|
+
|
|
1118
|
+
- id: br-pnu-motorcycle-2012
|
|
1119
|
+
class: motorcycle
|
|
1120
|
+
categories: [motorcycle, moped, tricycle]
|
|
1121
|
+
period: { start: 2012, end: 2020 }
|
|
1122
|
+
period_evidence: instrument-dated-both-ends
|
|
1123
|
+
matching: strict
|
|
1124
|
+
format:
|
|
1125
|
+
pattern: "LLL-9999"
|
|
1126
|
+
regex: '\A[A-Z]{3}[- ]?\d{4}\z'
|
|
1127
|
+
design:
|
|
1128
|
+
plate: { w: 200, h: 170, unit: mm }
|
|
1129
|
+
background: { color: "#8F999F", finish: retroreflective, hex_basis: ral-converted, spec_note: "CINZA = RAL 7001 (Silbergrau), Res. 45/98 Anexo item 11" }
|
|
1130
|
+
foreground: "#1C1C1C"
|
|
1131
|
+
band: { side: none }
|
|
1132
|
+
characters: { height_mm: 53, font: "Mandatory" }
|
|
1133
|
+
layout: two-line
|
|
1134
|
+
layout_basis: observed
|
|
1135
|
+
rear_differs: false
|
|
1136
|
+
note: "rear plate only; this is the plate SIZE the Mercosul two-wheeler plate inherited unchanged"
|
|
1137
|
+
region_encoding:
|
|
1138
|
+
mechanism: "tarjeta with UF + municipality"
|
|
1139
|
+
sources:
|
|
1140
|
+
- "https://web.archive.org/web/20140815083608/http://www.denatran.gov.br/download/Consolidadas/cons231.pdf # Anexo item 3.1 (acrescentado pela Resolução nº 372/11): 'a partir de 1º de janeiro de 2012 ... a) dimensões da placa em milímetros: h = 170; c = 200; b) Altura do corpo dos caracteres da placa em milímetros: h = 53'"
|
|
1141
|
+
- "https://www.in.gov.br/en/web/dou/-/resolucao-n-780-de-26-de-junho-de-2019-179414765 # art. 21: PIV required at first registration from 31 January 2020 — the period.end evidence"
|
|
1142
|
+
notes: >-
|
|
1143
|
+
The larger PNU motorcycle plate, mandatory for machines built (or moved to
|
|
1144
|
+
another municipality) from 1 January 2012 under Res. 372/2011. Both ends of
|
|
1145
|
+
this period are instrument dates: 1 January 2012 in Res. 231/2007 Anexo 3.1
|
|
1146
|
+
as amended, and 31 January 2020 in Res. 780/2019 art. 21. Its dimensions —
|
|
1147
|
+
200 x 170 mm, 53 mm characters — are exactly those the Mercosul two-wheeler
|
|
1148
|
+
plate then adopted, so the Brazilian motorcycle plate changed its colours,
|
|
1149
|
+
band and grammar in 2018-2020 without changing its size. Overlaps
|
|
1150
|
+
br-pnu-motorcycle-1990 at 2012 and br-mercosul-motorcycle-2018 from 2018,
|
|
1151
|
+
both deliberately: old stock and slow state rollouts kept all three in
|
|
1152
|
+
simultaneous issue.
|