vehicles 0.4.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +164 -0
- data/CHANGELOG.md +321 -0
- data/README.md +88 -15
- data/data/PROVENANCE-vehicles.md +12 -0
- data/data/plates/PROVENANCE.md +10 -0
- data/data/plates/_decode/at-districts.yml +287 -0
- data/data/plates/_decode/ch-cantons.yml +110 -0
- data/data/plates/_decode/cn-issuing-offices.yml +463 -0
- data/data/plates/_decode/cn-provinces.yml +614 -0
- data/data/plates/_decode/cz-kraj.yml +159 -0
- data/data/plates/_decode/dk-serial-blocks.yml +327 -0
- data/data/plates/_decode/es-provinces.yml +116 -0
- data/data/plates/_decode/fr-departements.yml +191 -0
- data/data/plates/_decode/gb-age-identifiers.yml +170 -0
- data/data/plates/_decode/gb-memory-tags.yml +202 -0
- data/data/plates/_decode/gr-prefectures.yml +1408 -0
- data/data/plates/_decode/hr-cities.yml +315 -0
- data/data/plates/_decode/ie-counties.yml +227 -0
- data/data/plates/_decode/in-state-codes.yml +169 -0
- data/data/plates/_decode/is-districts-1938.yml +116 -0
- data/data/plates/_decode/it-provinces.yml +348 -0
- data/data/plates/_decode/jp-office-marks.yml +960 -0
- data/data/plates/_decode/jp-use-marks.yml +205 -0
- data/data/plates/_decode/kr-authority-marks.yml +146 -0
- data/data/plates/_decode/kr-use-syllables.yml +194 -0
- data/data/plates/_decode/lu-series-order.yml +638 -0
- data/data/plates/_decode/mx-entity-series.yml +380 -0
- data/data/plates/_decode/my-index-marks.yml +271 -0
- data/data/plates/_decode/no-counties-1913.yml +148 -0
- data/data/plates/_decode/no-districts.yml +901 -0
- data/data/plates/_decode/pl-powiats.yml +567 -0
- data/data/plates/_decode/pt-trailer-services.yml +96 -0
- data/data/plates/_decode/ro-counties.yml +213 -0
- data/data/plates/_decode/se-diplomatic.yml +220 -0
- data/data/plates/_decode/si-regions.yml +123 -0
- data/data/plates/_decode/sk-districts.yml +314 -0
- data/data/plates/_decode/th-registration-elements.yml +208 -0
- data/data/plates/_decode/ua-regions.yml +393 -0
- data/data/plates/_decode/za-licence-marks.yml +215 -0
- data/data/plates/_meta/classes.yml +26 -0
- data/data/plates/_meta/separators.yml +102 -0
- data/data/plates/ad.yml +961 -0
- data/data/plates/ar.yml +762 -0
- data/data/plates/at.yml +1424 -0
- data/data/plates/au-act.yml +472 -0
- data/data/plates/au-nsw.yml +282 -0
- data/data/plates/au-nt.yml +431 -0
- data/data/plates/au-qld.yml +272 -0
- data/data/plates/au-sa.yml +248 -0
- data/data/plates/au-tas.yml +302 -0
- data/data/plates/au-vic.yml +215 -0
- data/data/plates/au-wa.yml +309 -0
- data/data/plates/be.yml +1840 -0
- data/data/plates/br.yml +1152 -0
- data/data/plates/ca-ab.yml +430 -0
- data/data/plates/ca-bc.yml +697 -0
- data/data/plates/ca-mb.yml +499 -0
- data/data/plates/ca-nb.yml +537 -0
- data/data/plates/ca-nl.yml +743 -0
- data/data/plates/ca-ns.yml +808 -0
- data/data/plates/ca-nt.yml +610 -0
- data/data/plates/ca-nu.yml +280 -0
- data/data/plates/ca-on.yml +881 -0
- data/data/plates/ca-pe.yml +592 -0
- data/data/plates/ca-qc.yml +1036 -0
- data/data/plates/ca-sk.yml +256 -0
- data/data/plates/ca-yt.yml +656 -0
- data/data/plates/ch.yml +1273 -0
- data/data/plates/cn.yml +1431 -0
- data/data/plates/cy.yml +688 -0
- data/data/plates/cz.yml +1179 -0
- data/data/plates/de.yml +1107 -0
- data/data/plates/dk.yml +1647 -0
- data/data/plates/ee.yml +1275 -0
- data/data/plates/es.yml +888 -0
- data/data/plates/fi.yml +1271 -0
- data/data/plates/fr.yml +1265 -0
- data/data/plates/gb.yml +1188 -0
- data/data/plates/gr.yml +721 -0
- data/data/plates/hr.yml +860 -0
- data/data/plates/hu.yml +959 -0
- data/data/plates/ie.yml +775 -0
- data/data/plates/in.yml +1172 -0
- data/data/plates/is.yml +667 -0
- data/data/plates/it.yml +1317 -0
- data/data/plates/jp.yml +3650 -0
- data/data/plates/kr.yml +1375 -0
- data/data/plates/li.yml +1010 -0
- data/data/plates/lt.yml +879 -0
- data/data/plates/lu.yml +842 -0
- data/data/plates/lv.yml +924 -0
- data/data/plates/mc.yml +1024 -0
- data/data/plates/mt.yml +854 -0
- data/data/plates/mx.yml +1372 -0
- data/data/plates/my.yml +685 -0
- data/data/plates/nl.yml +1016 -0
- data/data/plates/no.yml +1018 -0
- data/data/plates/nz.yml +1699 -0
- data/data/plates/pl.yml +1296 -0
- data/data/plates/pt.yml +847 -0
- data/data/plates/ro.yml +785 -0
- data/data/plates/se.yml +1091 -0
- data/data/plates/si.yml +1105 -0
- data/data/plates/sk.yml +1439 -0
- data/data/plates/sm.yml +1119 -0
- data/data/plates/th.yml +1150 -0
- data/data/plates/ua.yml +1672 -0
- data/data/plates/us-ak.yml +763 -0
- data/data/plates/us-al.yml +457 -0
- data/data/plates/us-ar.yml +427 -0
- data/data/plates/us-as.yml +454 -0
- data/data/plates/us-az.yml +430 -0
- data/data/plates/us-ca.yml +892 -0
- data/data/plates/us-co.yml +452 -0
- data/data/plates/us-ct.yml +427 -0
- data/data/plates/us-dc.yml +614 -0
- data/data/plates/us-de.yml +551 -0
- data/data/plates/us-fl.yml +741 -0
- data/data/plates/us-ga.yml +644 -0
- data/data/plates/us-gu.yml +658 -0
- data/data/plates/us-hi.yml +585 -0
- data/data/plates/us-ia.yml +438 -0
- data/data/plates/us-id.yml +531 -0
- data/data/plates/us-il.yml +516 -0
- data/data/plates/us-in.yml +324 -0
- data/data/plates/us-ks.yml +351 -0
- data/data/plates/us-ky.yml +770 -0
- data/data/plates/us-la.yml +568 -0
- data/data/plates/us-ma.yml +379 -0
- data/data/plates/us-md.yml +536 -0
- data/data/plates/us-me.yml +445 -0
- data/data/plates/us-mi.yml +408 -0
- data/data/plates/us-mn.yml +411 -0
- data/data/plates/us-mo.yml +356 -0
- data/data/plates/us-mp.yml +402 -0
- data/data/plates/us-ms.yml +432 -0
- data/data/plates/us-mt.yml +619 -0
- data/data/plates/us-nc.yml +602 -0
- data/data/plates/us-nd.yml +419 -0
- data/data/plates/us-ne.yml +483 -0
- data/data/plates/us-nh.yml +394 -0
- data/data/plates/us-nj.yml +547 -0
- data/data/plates/us-nm.yml +574 -0
- data/data/plates/us-nv.yml +655 -0
- data/data/plates/us-ny.yml +592 -0
- data/data/plates/us-oh.yml +404 -0
- data/data/plates/us-ok.yml +513 -0
- data/data/plates/us-or.yml +392 -0
- data/data/plates/us-pa.yml +506 -0
- data/data/plates/us-pr.yml +507 -0
- data/data/plates/us-ri.yml +445 -0
- data/data/plates/us-sc.yml +605 -0
- data/data/plates/us-sd.yml +428 -0
- data/data/plates/us-tn.yml +471 -0
- data/data/plates/us-tx.yml +535 -0
- data/data/plates/us-ut.yml +384 -0
- data/data/plates/us-va.yml +567 -0
- data/data/plates/us-vi.yml +489 -0
- data/data/plates/us-vt.yml +458 -0
- data/data/plates/us-wa.yml +484 -0
- data/data/plates/us-wi.yml +509 -0
- data/data/plates/us-wv.yml +446 -0
- data/data/plates/us-wy.yml +523 -0
- data/data/plates/va.yml +604 -0
- data/data/plates/za.yml +1141 -0
- data/data/vehicles.json +160653 -105090
- data/lib/vehicles/configuration.rb +18 -2
- data/lib/vehicles/dataset.rb +73 -18
- data/lib/vehicles/fuzzy.rb +115 -0
- data/lib/vehicles/http.rb +48 -0
- data/lib/vehicles/make.rb +36 -6
- data/lib/vehicles/mcp_server.rb +5 -5
- data/lib/vehicles/model.rb +42 -6
- data/lib/vehicles/plates/jurisdiction.rb +32 -0
- data/lib/vehicles/plates/series.rb +291 -0
- data/lib/vehicles/plates/template_fill.rb +188 -0
- data/lib/vehicles/plates/templates.rb +162 -0
- data/lib/vehicles/plates.rb +122 -0
- data/lib/vehicles/providers/hosted_provider.rb +49 -58
- data/lib/vehicles/providers/local_provider.rb +4 -3
- data/lib/vehicles/validators/vehicle_make_validator.rb +3 -1
- data/lib/vehicles/validators/vehicle_model_validator.rb +1 -1
- data/lib/vehicles/version.rb +1 -1
- data/lib/vehicles.rb +53 -16
- data/rakelib/data_refresh.rake +109 -0
- data/rakelib/plates_refresh.rake +29 -0
- data/sig/vehicles.rbs +18 -0
- metadata +174 -2
data/data/plates/se.yml
ADDED
|
@@ -0,0 +1,1091 @@
|
|
|
1
|
+
# plates/se.yml — Sweden (PRD-PLATES gate L1).
|
|
2
|
+
#
|
|
3
|
+
# EVERY format, colour, dimension and class claim here comes from one of four
|
|
4
|
+
# primary layers, and each series says which:
|
|
5
|
+
#
|
|
6
|
+
# 1. förordningen (2019:383) om fordons registrering och användning —
|
|
7
|
+
# the ordinance in force since 1 July 2019, which REPLACED förordningen
|
|
8
|
+
# (2001:650) om vägtrafikregister (repealed by förordning 2019:384).
|
|
9
|
+
# It carries the registration-number rule itself.
|
|
10
|
+
# 2. Transportstyrelsens föreskrifter och allmänna råd (TSFS 2015:63) om
|
|
11
|
+
# registrering av fordon m.m. i vägtrafikregistret, in force 1 January
|
|
12
|
+
# 2016, consolidated to TSFS 2026:72 — the delegated instrument that
|
|
13
|
+
# carries every plate DIMENSION, COLOUR and layout rule. 15 kap. 1 §
|
|
14
|
+
# andra stycket förordningen (2019:383) is the bemyndigande: "Transport-
|
|
15
|
+
# styrelsen får meddela ytterligare föreskrifter om registreringsbevis,
|
|
16
|
+
# utformningen av registreringsskyltar, hur personliga fordonsskyltar får
|
|
17
|
+
# användas och om förfarandet i de avseenden som regleras i denna
|
|
18
|
+
# förordning."
|
|
19
|
+
# 3. Repealed-but-citable ancestors where they DATE something the current
|
|
20
|
+
# instruments do not: bilregisterkungörelsen (1972:599), förordningen
|
|
21
|
+
# (1988:964) om skyltar för beskickningsfordon, förordningen (1988:965)
|
|
22
|
+
# om personliga fordonsskyltar, and the amending förordning (1998:788).
|
|
23
|
+
# 4. Transportstyrelsen's own published pages and news items — the ONLY
|
|
24
|
+
# source for the issued letter alphabet, the blocked letter combinations,
|
|
25
|
+
# and the day the letter-final format began. Where a page has been taken
|
|
26
|
+
# down the archived capture is cited with its capture timestamp.
|
|
27
|
+
#
|
|
28
|
+
# THE FIVE STRUCTURAL FACTS THAT SHAPE THIS FILE
|
|
29
|
+
#
|
|
30
|
+
# 1. ONE REGISTRATION NUMBER, TWO SHAPES, TWO DATES. 3 kap. 1 § förordningen
|
|
31
|
+
# (2019:383), verbatim:
|
|
32
|
+
# "Registreringsnumret ska bestå av
|
|
33
|
+
# 1. tre bokstäver och tre siffror, eller
|
|
34
|
+
# 2. tre bokstäver, två siffror och en bokstav."
|
|
35
|
+
# Those are alternatives of ONE issuance system, but they started 47 years
|
|
36
|
+
# apart, so they are modelled as two `standard` series. Splitting them is
|
|
37
|
+
# the single highest-value modelling choice in this file: a Swedish plate
|
|
38
|
+
# whose last character is a LETTER cannot predate 16 January 2019, and that
|
|
39
|
+
# is the only date signal a Swedish plate string carries at all.
|
|
40
|
+
# Every non-standard plate type (taxi, saluvagn, tävling, interim,
|
|
41
|
+
# provisorisk, terrängskoter, motorcycle) carries whichever shape the
|
|
42
|
+
# vehicle's registration number has, so those series take the UNION regex
|
|
43
|
+
# with one representative `pattern` — the de.yml Anlage-1 treatment.
|
|
44
|
+
#
|
|
45
|
+
# 2. THE LETTER-FINAL SHAPE IS DATED TWICE, AND THE COMMON "2019 FÖRORDNING"
|
|
46
|
+
# STORY IS WRONG. The enabling amendment is förordning (2017:100), utfärdad
|
|
47
|
+
# 16 February 2017, which substituted the two-alternative wording into
|
|
48
|
+
# 7 kap. 1 § förordningen (2001:650) "i stället för lydelsen enligt
|
|
49
|
+
# förordningen (2016:1216)" — and 2016:1216 entered into force 20 MAY 2017.
|
|
50
|
+
# So the letter-final shape became LEGAL on 2017-05-20. Transportstyrelsen
|
|
51
|
+
# then announced, on 2019-01-16: "Idag tilldelas de första registrerings-
|
|
52
|
+
# skyltarna med det nya formatet för registreringsnummer, där sista siffran
|
|
53
|
+
# även kan vara en bokstav." So it became ISSUED on 2019-01-16.
|
|
54
|
+
# period.start records the ISSUANCE date (2019) because that is what a
|
|
55
|
+
# parse API infers from; the legal date sits in the notes. förordningen
|
|
56
|
+
# (2019:383) merely re-enacted the same words on 1 July 2019 — it is NOT
|
|
57
|
+
# the instrument that created the format, and any dataset that says so is
|
|
58
|
+
# repeating a plausible-looking coincidence of numbers.
|
|
59
|
+
#
|
|
60
|
+
# 3. THE ISSUED ALPHABET IS AN AUTHORITY STATEMENT, NOT A REGULATION. Neither
|
|
61
|
+
# the förordning nor TSFS 2015:63 restricts the letters. Transportstyrelsen
|
|
62
|
+
# states the restriction in its own words (news, 2015-10-07):
|
|
63
|
+
# "I och med att några bokstäver av läsbarhetsskäl är undantagna från
|
|
64
|
+
# tilldelning (I, Q, V, Å, Ä och Ö) samt att 91 bokstavskombinationer
|
|
65
|
+
# sedan tidigare är spärrade från tilldelning, ger det nuvarande
|
|
66
|
+
# systemet 11,1 miljoner tänkbara bokstavskombinationer."
|
|
67
|
+
# and, for the new shape (news, 2019-01-16):
|
|
68
|
+
# "I de nya registreringsnumren används inte bokstaven O som sista
|
|
69
|
+
# tecken, eftersom det är lätt att missta bokstaven O för siffran 0.
|
|
70
|
+
# Sedan tidigare används inte heller bokstäverna I, Q, V, Å, Ä och Ö."
|
|
71
|
+
# Å, Ä and Ö are outside this dataset's serial alphabet anyway
|
|
72
|
+
# (_meta/separators.yml), so only I, Q and V bite — plus O in the final
|
|
73
|
+
# position of the new shape. This is what `regex_strict` carries; `regex`
|
|
74
|
+
# cannot, because the lint generates every letter A-Z from an "L".
|
|
75
|
+
#
|
|
76
|
+
# 4. NO GEOGRAPHY, AND ONLY ONE DECODABLE DIMENSION. The länsbokstav (county
|
|
77
|
+
# letter) was removed when this system came in — Transportstyrelsen,
|
|
78
|
+
# 2019-01-16: "Senaste gången registreringsnumren ändrades var 1972. Då
|
|
79
|
+
# togs länsbokstaven bort och formatet med tre siffror och tre bokstäver
|
|
80
|
+
# infördes." Since then a Swedish registration number encodes NOTHING:
|
|
81
|
+
# no region, no year, no vehicle class. Allocation is sequential-ish but
|
|
82
|
+
# numbers from deregistered vehicles are RE-USED ("de nya numren kommer att
|
|
83
|
+
# användas parallellt med att gamla registreringsnummer återanvänds"), so
|
|
84
|
+
# even letter-block age inference is unsound. The one exception worth
|
|
85
|
+
# recording: first letters Y and Z entered service only in October 2015, so
|
|
86
|
+
# a Y- or Z-initial number cannot predate that month. The ONLY Swedish
|
|
87
|
+
# plate with a real decode table is the beskickningsskylt (diplomatic) —
|
|
88
|
+
# see plates/_decode/se-diplomatic.yml.
|
|
89
|
+
#
|
|
90
|
+
# 5. SWEDEN HAS NO HISTORIC-VEHICLE PLATE AND NO EXPORT PLATE. Both are
|
|
91
|
+
# genuine negative findings, not gaps in this pass. Veteran vehicles keep
|
|
92
|
+
# their ordinary plates (age affects inspection intervals, not plates), and
|
|
93
|
+
# export is handled by TILLFÄLLIG REGISTRERING — the red interimsskylt —
|
|
94
|
+
# under 15-22 §§ lagen (2019:370) and 10 kap. förordningen (2019:383).
|
|
95
|
+
# The old exportvagnskungörelsen (1964:39) and turistvagnskungörelsen
|
|
96
|
+
# (1972:601) regimes are gone; 2 kap. of the current förordning knows only
|
|
97
|
+
# tillfällig registrering.
|
|
98
|
+
#
|
|
99
|
+
# SEPARATOR POLICY: the printed gap between letter group and digit group is a
|
|
100
|
+
# GAP, not a glyph — TSFS 2015:63 6 kap. 4 § says only "tre bokstäver till
|
|
101
|
+
# vänster och tre siffror till höger". Per PRD-PLATES §2.6 that gap is written
|
|
102
|
+
# as the emitted SPACE in `pattern` and as an optional " ?" in every regex.
|
|
103
|
+
#
|
|
104
|
+
# REGEX POLICY: `format.regex` is the lint-round-trippable regex over the full
|
|
105
|
+
# A-Z/0-9 alphabet; `format.regex_strict` carries the sourced issuing alphabet
|
|
106
|
+
# (no I, Q, V; no final O in the 2019 shape). No `regex_statutory` is used:
|
|
107
|
+
# the Swedish statute is not wider than what is issued, it is silent.
|
|
108
|
+
#
|
|
109
|
+
# FONT: NO TYPEFACE IS MANDATED. TSFS 2015:63 prescribes plate outer
|
|
110
|
+
# dimensions, colours, the black frame and the left/right and top/bottom
|
|
111
|
+
# arrangement of the character groups, and nothing else — no named font, no
|
|
112
|
+
# character height, no stroke width, and no statutory Schriftmuster of the
|
|
113
|
+
# German or Spanish kind. Per PRD-PLATES §6 the render layer therefore has no
|
|
114
|
+
# licensable font to clear and no drawing to derive from either; the schematic
|
|
115
|
+
# fallback applies and the gap is recorded.
|
|
116
|
+
jurisdiction: se
|
|
117
|
+
authority:
|
|
118
|
+
name: Transportstyrelsen
|
|
119
|
+
url: "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/"
|
|
120
|
+
binding: vehicle
|
|
121
|
+
instrument:
|
|
122
|
+
citation: "Förordning (2019:383) om fordons registrering och användning, i lydelse t.o.m. SFS 2024:998"
|
|
123
|
+
in_force: "2019-07-01"
|
|
124
|
+
replaces: "Förordning (2001:650) om vägtrafikregister (upphävd 2019-07-01 genom förordning 2019:384)"
|
|
125
|
+
delegated: "Transportstyrelsens föreskrifter och allmänna råd (TSFS 2015:63) om registrering av fordon m.m. i vägtrafikregistret, i kraft 2016-01-01, konsoliderad t.o.m. TSFS 2026:72"
|
|
126
|
+
source: "https://data.riksdagen.se/dokument/sfs-2019-383.html # consolidated text; Övergångsbestämmelser 2019:383 p.1 'Denna förordning träder i kraft den 1 juli 2019'; accessed 2026-08-02"
|
|
127
|
+
|
|
128
|
+
# ---------------------------------------------------------------------------
|
|
129
|
+
# Jurisdiction-wide facts, cited once and referenced per series.
|
|
130
|
+
# ---------------------------------------------------------------------------
|
|
131
|
+
common:
|
|
132
|
+
number_rule:
|
|
133
|
+
text: >-
|
|
134
|
+
3 kap. 1 § förordningen (2019:383), verbatim: "Transportstyrelsen ska i
|
|
135
|
+
samband med registreringen av ett fordon tilldela det ett registrerings-
|
|
136
|
+
nummer. Registreringsnumret ska bestå av 1. tre bokstäver och tre siffror,
|
|
137
|
+
eller 2. tre bokstäver, två siffror och en bokstav."
|
|
138
|
+
source: "https://data.riksdagen.se/dokument/sfs-2019-383.html # 3 kap. 1 §; accessed 2026-08-02"
|
|
139
|
+
layout:
|
|
140
|
+
text: >-
|
|
141
|
+
TSFS 2015:63 6 kap. 4 §, verbatim: "På en enradig registreringsskylt anges
|
|
142
|
+
registreringsnumret med – tre bokstäver till vänster och tre siffror till
|
|
143
|
+
höger, eller – tre bokstäver till vänster och två siffror och en bokstav
|
|
144
|
+
till höger. På en tvåradig skylt anges registreringsnumret med – tre
|
|
145
|
+
bokstäver överst och tre siffror under bokstäverna, eller – tre bokstäver
|
|
146
|
+
överst och två siffror och en bokstav under de tre bokstäverna. Bokstäver
|
|
147
|
+
och siffror är svarta på vit ljusreflekterande botten. Skylten har svart
|
|
148
|
+
ram."
|
|
149
|
+
source: "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # TSFS 2015:63 consolidated, 6 kap. 4 § (as amended by TSFS 2019:53); accessed 2026-08-02"
|
|
150
|
+
plate_shapes:
|
|
151
|
+
text: >-
|
|
152
|
+
TSFS 2015:63 6 kap. 2 §, verbatim: "Registreringsskyltar utformas 1. som
|
|
153
|
+
en enradig skylt med yttermåtten 520 mm x 110 mm, 2. som en enradig skylt
|
|
154
|
+
med yttermåtten 300 mm x 110 mm, 3. som en enradig, självhäftande skylt
|
|
155
|
+
med yttermåtten 260 mm x 70 mm, eller 4. som en tvåradig skylt med
|
|
156
|
+
yttermåtten 170 mm x 150 mm."
|
|
157
|
+
allocation: >-
|
|
158
|
+
6 kap. 3 §: 520x110 for bil, motorredskap, terrängvagn and släpfordon
|
|
159
|
+
(300x110 where the mounting space does not allow it; 170x150 for a
|
|
160
|
+
släpfordon where the vehicle's construction motivates it); 300x110 for
|
|
161
|
+
traktor; 170x150 for motorcykel and moped klass I; 260x70 for
|
|
162
|
+
terrängskoter.
|
|
163
|
+
tolerances: >-
|
|
164
|
+
From Transportstyrelsen's own size table, footnoted per row: "* Tillåten
|
|
165
|
+
avvikelse/tolerans på längden är max 1,3 mm och på höjden max 3,1 mm"
|
|
166
|
+
(marks the 520x110 and 300x110 entries) and "** Tillåten
|
|
167
|
+
avvikelse/tolerans på längden är max 4,3 mm och på höjden max 4,1 mm"
|
|
168
|
+
(marks the 170x150 entries). The 260x70 self-adhesive plate and the
|
|
169
|
+
provisorisk skylt rows carry NO tolerance marker — recorded as published,
|
|
170
|
+
not extrapolated.
|
|
171
|
+
source: "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 2-3 §; tolerances from the authority's own size table (see design_sources); accessed 2026-08-02"
|
|
172
|
+
charset:
|
|
173
|
+
letters_excluded: ["I", "Q", "V", "Å", "Ä", "Ö"]
|
|
174
|
+
letters_excluded_final_position_extra: ["O"]
|
|
175
|
+
letters_issued: [A, B, C, D, E, F, G, H, J, K, L, M, N, O, P, R, S, T, U, W, X, Y, Z]
|
|
176
|
+
basis: authority-statement
|
|
177
|
+
note: >-
|
|
178
|
+
NOT a regulation rule. Transportstyrelsen states it in its own words:
|
|
179
|
+
"några bokstäver av läsbarhetsskäl är undantagna från tilldelning (I, Q,
|
|
180
|
+
V, Å, Ä och Ö)" (2015-10-07) and "I de nya registreringsnumren används
|
|
181
|
+
inte bokstaven O som sista tecken ... Sedan tidigare används inte heller
|
|
182
|
+
bokstäverna I, Q, V, Å, Ä och Ö" (2019-01-16). Å, Ä and Ö cannot appear
|
|
183
|
+
in this dataset's serial alphabet at all (_meta/separators.yml), so the
|
|
184
|
+
operative exclusions here are I, Q, V everywhere and O in the final
|
|
185
|
+
position of the letter-final shape.
|
|
186
|
+
corroboration: >-
|
|
187
|
+
The published blocked-combination list is an independent check: not one
|
|
188
|
+
of its ~100 three-letter combinations contains I, Q or V. That is
|
|
189
|
+
corroboration, not a source, and is recorded as such.
|
|
190
|
+
sources:
|
|
191
|
+
- "https://web.archive.org/web/20170820033303/https://www.transportstyrelsen.se/sv/Nyhetsarkiv/y-och-z-som-forsta-bokstav-pa-registreringsskylten/ # Transportstyrelsen news 2015-10-07, archived capture 2017-08-20: the (I, Q, V, Å, Ä, Ö) exclusion verbatim, the 11.1 -> 12.1 million combination arithmetic, and the Y/Z rollout"
|
|
192
|
+
- "https://web.archive.org/web/20210925055728/https://www.transportstyrelsen.se/sv/Nyhetsarkiv/2019/nu-kommer-de-nya-registreringsnumren/ # Transportstyrelsen news 2019-01-16, archived capture 2021-09-25: the final-O exclusion and the first-issue statement"
|
|
193
|
+
blocked_combinations:
|
|
194
|
+
count: 100
|
|
195
|
+
list: [APA, ARG, ASS, BAJ, BSS, CUC, CUK, CUM, DUM, ETA, ETT, FAG, FAN, FEG, FEL, FEM, FES, FET, FNL, FUC, FUK, FUL, GAM, GAY, GEJ, GEY, GHB, GUD, GYN, HAT, HBT, HKH, HOR, HOT, KGB, KKK, KUC, KUF, KUG, KUK, KYK, LAM, LAT, LEM, LOJ, LSD, LUS, MAD, MAO, MEN, MES, MLB, MUS, NAZ, NRP, NSF, NYP, OND, OOO, ORM, PAJ, PKK, PLO, PMS, PUB, RAP, RAS, ROM, RPS, RUS, SEG, SEX, SJU, SOS, SPY, SUG, SUP, SUR, TBC, TOA, TOK, TRE, TYP, UFO, USA, WAM, WAR, WWW, XTC, XTZ, XUK, XXL, XXX, ZEX, ZOG, ZPY, ZUG, ZUP, ZOO]
|
|
196
|
+
note: >-
|
|
197
|
+
"Undantagna bokstavskombinationer vid tilldelning av registreringsnummer"
|
|
198
|
+
— Transportstyrelsen's own heading. The list applies to the THREE-LETTER
|
|
199
|
+
group. It is deliberately NOT compiled into any regex (the nl.yml
|
|
200
|
+
precedent for the thirteen Dutch combinations): a blocked combination is
|
|
201
|
+
a non-issuance rule, not a well-formedness rule, and plates carrying a
|
|
202
|
+
formerly-issued blocked combination are still on the road —
|
|
203
|
+
Transportstyrelsen grants a number change for exactly that case
|
|
204
|
+
("Vi beviljar byte av registreringsnummer om man har en
|
|
205
|
+
bokstavskombination som tidigare använts men som idag är spärrad").
|
|
206
|
+
Five of the entries (ZEX, ZPY, ZUG, ZUP, ZOO) were added in October 2015
|
|
207
|
+
with the Y/Z first-letter rollout; the news item of that date counts
|
|
208
|
+
"91 bokstavskombinationer sedan tidigare", which reconciles with the 100
|
|
209
|
+
published today.
|
|
210
|
+
sources:
|
|
211
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/byte-av-registreringsnummer/sparrade-bokstavskombinationer/ # the full list; accessed 2026-08-02"
|
|
212
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/byte-av-registreringsnummer/ # 'Vi beviljar byte av registreringsnummer om man har en bokstavskombination som tidigare använts men som idag är spärrad'; accessed 2026-08-02"
|
|
213
|
+
eu_band:
|
|
214
|
+
side: left
|
|
215
|
+
content: eu-stars+S
|
|
216
|
+
rule: >-
|
|
217
|
+
TSFS 2015:63 6 kap. 5 § andra stycket: "Registreringsskylt enligt 2 § 1,
|
|
218
|
+
2 och 4 har ett sådant märke som anges i 7 kap. 2 § 2" — i.e. the 520x110,
|
|
219
|
+
300x110 and 170x150 plates carry the mark "utformat i enlighet med rådets
|
|
220
|
+
förordning (EG) nr 2411/98". 6 kap. 6 § disapplies it: "Vad som sägs i 5 §
|
|
221
|
+
andra stycket gäller inte för tillfälliga registreringsskyltar,
|
|
222
|
+
provisoriska skyltar eller skyltar för beskickningsfordon." The 260x70
|
|
223
|
+
self-adhesive terrängskoter plate is not in the 5 § list either.
|
|
224
|
+
taxi_saluvagn_tavling: >-
|
|
225
|
+
Expressly included: 6 kap. 7 § (taxi), 16 § (saluvagn) and 19 § (tävling)
|
|
226
|
+
each end with "Skylten har ett sådant märke som anges i 7 kap. 2 § 2."
|
|
227
|
+
added_2014: >-
|
|
228
|
+
Transportstyrelsen press release 2013-05-08: "EU-märkning införs på de
|
|
229
|
+
mindre så kallade USA-skyltarna, saluvagnsskyltar och taxiskyltar.
|
|
230
|
+
(Skyltar för beskickningsfordon, terrängmotorfordon och tillfälliga
|
|
231
|
+
fordon samt provisoriska skyltar kommer även i fortsättningen att vara
|
|
232
|
+
utan EU-symbol.)" and "Idag finns möjlighet att få en ordinarie
|
|
233
|
+
registreringsskylt eller MC-skylt utan EU-symbol. Den möjligheten tas
|
|
234
|
+
bort från och med årsskiftet."
|
|
235
|
+
national_sign_alternative: >-
|
|
236
|
+
TSFS 2015:63 7 kap. 2-4 §: the nationality mark is EITHER an ellipse of
|
|
237
|
+
at least 175 x 115 mm bearing a black "S" at least 80 mm high with
|
|
238
|
+
10 mm strokes on white, OR the Reg. 2411/98 band. The oval sticker route
|
|
239
|
+
still exists for vehicles whose plates predate the band.
|
|
240
|
+
hex_basis: observed
|
|
241
|
+
sources:
|
|
242
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 5-6 §, 7 kap. 2-4 §; accessed 2026-08-02"
|
|
243
|
+
- "https://web.archive.org/web/20161225212648/http://www.transportstyrelsen.se/sv/press/pressmeddelanden/sveriges-registreringsskyltar-forandras # Transportstyrelsen press release 2013-05-08, archived capture 2016-12-25: EU marking extended to USA/saluvagn/taxi plates, non-EU plates withdrawn from the turn of the year, MC plate reduced to 170x150, fabrikatskod added"
|
|
244
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/bilder-och-matt-pa-registreringsskyltar/ # 'Alla skyltar har en EU-symbol ... med några undantag: beskickningsskylt (diplomat), självhäftande skylt för terrängmotorfordon, tillfällig registreringsskylt och provisorisk skylt'; accessed 2026-08-02"
|
|
245
|
+
plate_markings:
|
|
246
|
+
vin_and_make: >-
|
|
247
|
+
TSFS 2015:63 6 kap. 5 § första stycket: "På registreringsskylten anges
|
|
248
|
+
hela fordonsidentifieringsnumret enligt 3 kap. 3 § 2 eller motsvarande
|
|
249
|
+
särskilda märkning samt de säkerhetsdetaljer som Transportstyrelsen
|
|
250
|
+
bestämmer." Transportstyrelsen adds that the FABRIKATSKOD is printed too
|
|
251
|
+
("Det står till exempel VO för Volvo och TO för Toyota direkt på
|
|
252
|
+
skylten"). Both sit outside the serial and are recorded as design facts,
|
|
253
|
+
never as part of the registration number.
|
|
254
|
+
source: "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/bilder-och-matt-pa-registreringsskyltar/ # 'Identifieringsmärkning och fabrikatskod på skyltarna'; accessed 2026-08-02"
|
|
255
|
+
design_sources:
|
|
256
|
+
size_and_colour_table: "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/bilder-och-matt-pa-registreringsskyltar/ # the authority's own Typ av skylt / Skyltfärg / Teckenfärg / Storlekar table for all eleven plate types, plus the tolerance footnotes; accessed 2026-08-02"
|
|
257
|
+
illustrations_note: >-
|
|
258
|
+
Every non-black/white hex in this file is `hex_basis: observed`, sampled
|
|
259
|
+
from Transportstyrelsen's own published plate illustrations. Those
|
|
260
|
+
illustrations are glossy renders with gradients, so the values are
|
|
261
|
+
INDICATIVE. No Swedish instrument gives an RAL or RGB value for any plate
|
|
262
|
+
colour — TSFS 2015:63 names colours only ("gul", "grön", "ljusblå",
|
|
263
|
+
"orange", "röd", "vit ljusreflekterande") — which is the same posture
|
|
264
|
+
de.yml records for Germany's "grünes Kennzeichen".
|
|
265
|
+
|
|
266
|
+
series:
|
|
267
|
+
|
|
268
|
+
# =========================================================================
|
|
269
|
+
# THE STANDARD SERIES, SHAPE 1: AAA 111. The system the länsbokstav was
|
|
270
|
+
# dropped for, still issuing after half a century.
|
|
271
|
+
# =========================================================================
|
|
272
|
+
- id: se-standard-1972
|
|
273
|
+
class: standard
|
|
274
|
+
categories: [car, van, truck, bus, trailer, tractor, machine]
|
|
275
|
+
period: { start: 1972 }
|
|
276
|
+
period_evidence: authority-statement
|
|
277
|
+
matching: strict
|
|
278
|
+
format:
|
|
279
|
+
pattern: "LLL 999"
|
|
280
|
+
regex: '\A[A-Z]{3} ?\d{3}\z'
|
|
281
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?\d{3}\z'
|
|
282
|
+
charset:
|
|
283
|
+
letters_excluded: ["I", "Q", "V", "Å", "Ä", "Ö"]
|
|
284
|
+
excluded_combinations_ref: common.blocked_combinations
|
|
285
|
+
notes: >-
|
|
286
|
+
The exclusion is an AUTHORITY STATEMENT, not a regulation rule — see
|
|
287
|
+
common.charset. regex_strict encodes the three exclusions that fall
|
|
288
|
+
inside this dataset's serial alphabet (I, Q, V); Å, Ä and Ö cannot be
|
|
289
|
+
written at all.
|
|
290
|
+
progression: >-
|
|
291
|
+
Sequential-ish, but numbers freed by deregistration are RE-USED
|
|
292
|
+
("de nya numren kommer att användas parallellt med att gamla
|
|
293
|
+
registreringsnummer återanvänds", 2019-01-16), so a letter block gives
|
|
294
|
+
no reliable age. ONE date signal survives: "Från och med oktober månad
|
|
295
|
+
2015 går det att få Y eller Z som första bokstav på registreringsskylten"
|
|
296
|
+
— a Y- or Z-initial Swedish number cannot predate October 2015.
|
|
297
|
+
separator_note: >-
|
|
298
|
+
The gap between letter group and digit group is a printed GAP with no
|
|
299
|
+
glyph (TSFS 2015:63 6 kap. 4 §: "tre bokstäver till vänster och tre
|
|
300
|
+
siffror till höger"). Written as the emitted SPACE per PRD-PLATES §2.6.
|
|
301
|
+
design:
|
|
302
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
303
|
+
plate_variants:
|
|
304
|
+
- { w: 300, h: 110, unit: mm, note: "'USA-skylt' — only where the mounting space does not allow the 520 mm plate; granted by Transportstyrelsen after assessing the space (written application with a photo)" }
|
|
305
|
+
- { w: 170, h: 150, unit: mm, note: "two-row; for a släpfordon only where the vehicle's construction motivates it (TSFS 2015:63 6 kap. 3 §)" }
|
|
306
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec, spec_note: "TSFS 2015:63 6 kap. 4 §: 'Bokstäver och siffror är svarta på vit ljusreflekterande botten.'" }
|
|
307
|
+
foreground: "#000000"
|
|
308
|
+
border: { color: "#000000", note: "'Skylten har svart ram' (6 kap. 4 §)" }
|
|
309
|
+
band: { side: left, color: "#003399", content: eu-stars+S, hex_basis: observed, note: "the mark is prescribed by cross-reference to Reg. 2411/98; no Swedish instrument gives the blue's RAL or RGB" }
|
|
310
|
+
emblem: { present: false }
|
|
311
|
+
rear_differs: false
|
|
312
|
+
display: "front and rear on a bil; front on traktor, motorredskap and terrängmotorfordon; rear on motorcykel, moped klass I and släpfordon (3 kap. 6 § förordningen 2019:383)"
|
|
313
|
+
extra_markings: "full fordonsidentifieringsnummer (VIN) plus the two- or three-character fabrikatskod, printed on the plate outside the serial"
|
|
314
|
+
region_encoding: none
|
|
315
|
+
region_encoding_note: >-
|
|
316
|
+
NONE, deliberately and by design: the county letter was removed when this
|
|
317
|
+
system replaced the old one. A Swedish registration number encodes no
|
|
318
|
+
region, no year and no vehicle class.
|
|
319
|
+
sources:
|
|
320
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 3 kap. 1 § alternative 1 ('tre bokstäver och tre siffror'); 3 kap. 4-7 § (how many plates, where they go, legibility); accessed 2026-08-02"
|
|
321
|
+
- "https://rkrattsbaser.gov.se/sfst?bet=1972%3A599&upph=true # bilregisterkungörelse (1972:599) 14 §: 'Registreringsnumret består av tre bokstäver och tre siffror' — the original enactment of this shape; 18 §: the four plate shapes (480x110, 300x110, 195x155, 260x70 self-adhesive), letters left / digits right, one-row and two-row, 'svart på vit ljusreflekterande botten'; accessed 2026-08-02"
|
|
322
|
+
- "https://rkrattsbaser.gov.se/sfst?bet=1972%3A605 # kungörelse (1972:605) om införande av ny vägtrafiklagstiftning 2 §: 'bilregisterkungörelsen (1972:599) ... träder i kraft den 1 maj 1973', and the repeal of kungörelsen (1937:49) angående beskaffenheten av registreringsskyltar; accessed 2026-08-02"
|
|
323
|
+
- "https://web.archive.org/web/20210925055728/https://www.transportstyrelsen.se/sv/Nyhetsarkiv/2019/nu-kommer-de-nya-registreringsnumren/ # 'Senaste gången registreringsnumren ändrades var 1972. Då togs länsbokstaven bort och formatet med tre siffror och tre bokstäver infördes'; number re-use; accessed 2026-08-02"
|
|
324
|
+
- "https://web.archive.org/web/20170820033303/https://www.transportstyrelsen.se/sv/Nyhetsarkiv/y-och-z-som-forsta-bokstav-pa-registreringsskylten/ # Y and Z as first letter from October 2015; the (I, Q, V, Å, Ä, Ö) exclusion; accessed 2026-08-02"
|
|
325
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 2-5 §: the four plate shapes, which vehicle gets which, the layout and colours, the EU mark; accessed 2026-08-02"
|
|
326
|
+
notes: >-
|
|
327
|
+
THE SWEDISH STANDARD PLATE, first shape. PERIOD DISAGREEMENT, RECORDED
|
|
328
|
+
RATHER THAN AVERAGED (PRD-PLATES §5.3): Transportstyrelsen says "1972"
|
|
329
|
+
twice in its own words (2017-02-17: "Dagens system för registreringsnummer
|
|
330
|
+
med tre bokstäver och tre siffror har funnits sedan 1972"; 2019-01-16:
|
|
331
|
+
"Senaste gången registreringsnumren ändrades var 1972"), and the
|
|
332
|
+
instrument that carries the rule — bilregisterkungörelsen (1972:599) — is
|
|
333
|
+
a 1972 SFS number but entered into force on 1 MAY 1973 (kungörelse
|
|
334
|
+
1972:605 § 2). Both can be true of different things, because § 67 of
|
|
335
|
+
kungörelse 1972:605 provides that vehicles already on a county register
|
|
336
|
+
kept their OLD numbers "till den tidpunkt när skyldighet att använda nytt
|
|
337
|
+
registreringsnummer och ny registreringsskylt inträtt enligt kungörelsen
|
|
338
|
+
(1971:819) om övergång till nytt bilregistreringssystem" — i.e. the
|
|
339
|
+
changeover ran on its own 1971 instrument and plausibly began issuing new
|
|
340
|
+
numbers during 1972. That 1971 instrument is in NO online database
|
|
341
|
+
(recorded gap), so period.start follows the authority's own repeated
|
|
342
|
+
statement (1972) and this note carries the 1 May 1973 in-force date. The
|
|
343
|
+
PREDECESSOR format (county letter + digits) is therefore documented but
|
|
344
|
+
NOT authored as a series: its grammar sits in repealed instruments
|
|
345
|
+
(kungörelsen 1937:49, vägtrafikförordningen 1951:648, vägtrafik-
|
|
346
|
+
kungörelsen 1951:743) that no reachable database carries, and inventing a
|
|
347
|
+
shape for it was declined.
|
|
348
|
+
|
|
349
|
+
# =========================================================================
|
|
350
|
+
# THE STANDARD SERIES, SHAPE 2: AAA 11A. The only date a Swedish plate
|
|
351
|
+
# string carries.
|
|
352
|
+
# =========================================================================
|
|
353
|
+
- id: se-standard-2019
|
|
354
|
+
class: standard
|
|
355
|
+
categories: [car, van, truck, bus, trailer, tractor, machine]
|
|
356
|
+
period: { start: 2019 }
|
|
357
|
+
period_evidence: first-issue-announced
|
|
358
|
+
matching: strict
|
|
359
|
+
format:
|
|
360
|
+
pattern: "LLL 99L"
|
|
361
|
+
regex: '\A[A-Z]{3} ?\d{2}[A-Z]\z'
|
|
362
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?\d{2}[ABCDEFGHJKLMNPRSTUWXYZ]\z'
|
|
363
|
+
charset:
|
|
364
|
+
letters_excluded: ["I", "Q", "V", "Å", "Ä", "Ö"]
|
|
365
|
+
letters_excluded_final: ["I", "Q", "V", "O", "Å", "Ä", "Ö"]
|
|
366
|
+
excluded_combinations_ref: common.blocked_combinations
|
|
367
|
+
notes: >-
|
|
368
|
+
The FINAL letter additionally excludes O. Transportstyrelsen,
|
|
369
|
+
2019-01-16, verbatim: "Precis som idag är det inte alla bokstäver som
|
|
370
|
+
kommer att användas som sista tecken. I de nya registreringsnumren
|
|
371
|
+
används inte bokstaven O som sista tecken, eftersom det är lätt att
|
|
372
|
+
missta bokstaven O för siffran 0." regex_strict is the only place this
|
|
373
|
+
can live: the lint generates every letter A-Z from an "L".
|
|
374
|
+
progression: >-
|
|
375
|
+
"Från och med nu kommer de nya registreringsnumren att fasas in
|
|
376
|
+
successivt och de nya kombinationerna kommer att prioriteras när
|
|
377
|
+
registreringsnummer ska tilldelas" (2019-01-16). Both shapes issue in
|
|
378
|
+
parallel and the old one was not withdrawn: "Men det gamla formatet
|
|
379
|
+
finns också kvar. Det innebär att ingen behöver byta ut sin
|
|
380
|
+
registreringsskylt."
|
|
381
|
+
tax_month_note: >-
|
|
382
|
+
A real consequence of the shape change, stated by the authority: the
|
|
383
|
+
month in which fordonsskatt falls due is keyed to the LAST DIGIT, so
|
|
384
|
+
where the final character is a letter it is the SECOND-TO-LAST character
|
|
385
|
+
that governs — "och det är alltid en siffra".
|
|
386
|
+
design:
|
|
387
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
388
|
+
plate_variants:
|
|
389
|
+
- { w: 300, h: 110, unit: mm, note: "'USA-skylt'" }
|
|
390
|
+
- { w: 170, h: 150, unit: mm, note: "two-row" }
|
|
391
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
392
|
+
foreground: "#000000"
|
|
393
|
+
border: { color: "#000000" }
|
|
394
|
+
band: { side: left, color: "#003399", content: eu-stars+S, hex_basis: observed }
|
|
395
|
+
emblem: { present: false }
|
|
396
|
+
rear_differs: false
|
|
397
|
+
region_encoding: none
|
|
398
|
+
sources:
|
|
399
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 3 kap. 1 § alternative 2 ('tre bokstäver, två siffror och en bokstav'); accessed 2026-08-02"
|
|
400
|
+
- "https://rkrattsdb.gov.se/SFSdoc/17/170100.PDF # SFS 2017:100, utfärdad 16 februari 2017: 'Regeringen föreskriver att 7 kap. 1 § förordningen (2001:650) om vägtrafikregister i stället för lydelsen enligt förordningen (2016:1216) ... ska ha följande lydelse' — the two-alternative wording, verbatim; accessed 2026-08-02"
|
|
401
|
+
- "https://rkrattsdb.gov.se/SFSdoc/16/161216.PDF # SFS 2016:1216 Ikraftträdande p.1: 'Denna förordning träder i kraft den 20 maj 2017' — the date the amended 7 kap. 1 § took effect, and therefore the date the letter-final shape became legal; accessed 2026-08-02"
|
|
402
|
+
- "https://rkrattsbaser.gov.se/sfsr?bet=2001%3A650 # SFS register for förordningen (2001:650): 2016:1216 'Ikraft: 2017-05-20 överg.best.' and 2017:100 'ändr. 7 kap. 1 § i 2016:1216' — the amendment chain, from the official register; accessed 2026-08-02"
|
|
403
|
+
- "https://web.archive.org/web/20210925055728/https://www.transportstyrelsen.se/sv/Nyhetsarkiv/2019/nu-kommer-de-nya-registreringsnumren/ # Transportstyrelsen news 2019-01-16: 'Idag tilldelas de första registreringsskyltarna med det nya formatet' + the final-O exclusion + the fordonsskatt rule; accessed 2026-08-02"
|
|
404
|
+
- "https://web.archive.org/web/20170820073927/https://www.transportstyrelsen.se/sv/Nyhetsarkiv/beslutat--nya-registreringsnummer-infors-under-2019/ # Transportstyrelsen news 2017-02-17: 'Den 16 februari fattade regeringen beslut om att genomföra de nödvändiga ändringarna i förordningen om vägtrafikregister', 12.1 million combinations exhausting during 2019, existing numbers retained; accessed 2026-08-02"
|
|
405
|
+
notes: >-
|
|
406
|
+
THE LETTER-FINAL SHAPE, and the one Swedish era signal. period.start 2019
|
|
407
|
+
is the FIRST-ISSUE date the authority announced on the day
|
|
408
|
+
(2019-01-16, "Idag tilldelas de första registreringsskyltarna med det nya
|
|
409
|
+
formatet"), not an instrument date. FOLKLORE FLAG, and it is the reason
|
|
410
|
+
this series is sourced three deep: the change is very widely attributed to
|
|
411
|
+
"the 2019 förordning". It is not. The enabling amendment is förordning
|
|
412
|
+
(2017:100) of 16 February 2017, which rewrote the pending lydelse in
|
|
413
|
+
förordning (2016:1216); that lydelse entered into force on 20 May 2017,
|
|
414
|
+
under the OLD förordningen (2001:650) om vägtrafikregister. Förordningen
|
|
415
|
+
(2019:383) simply re-enacted the same two alternatives when it replaced
|
|
416
|
+
2001:650 on 1 July 2019, five and a half months AFTER the first plates
|
|
417
|
+
were issued. Three dates, all sourced, none of them interchangeable:
|
|
418
|
+
2017-02-16 decided, 2017-05-20 legal, 2019-01-16 issued.
|
|
419
|
+
|
|
420
|
+
# =========================================================================
|
|
421
|
+
# MOTORCYCLE AND MOPED KLASS I — the two-row 170x150 plate. Same numbers,
|
|
422
|
+
# different plate, so a series of its own (PRD-PLATES §2.3 design limb).
|
|
423
|
+
# =========================================================================
|
|
424
|
+
- id: se-motorcycle
|
|
425
|
+
class: motorcycle
|
|
426
|
+
categories: [motorcycle, moped]
|
|
427
|
+
period: { start: 1972 }
|
|
428
|
+
period_evidence: authority-statement
|
|
429
|
+
matching: strict
|
|
430
|
+
format:
|
|
431
|
+
pattern: "LLL 999"
|
|
432
|
+
regex: '\A[A-Z]{3} ?(?:\d{3}|\d{2}[A-Z])\z'
|
|
433
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?(?:\d{3}|\d{2}[ABCDEFGHJKLMNPRSTUWXYZ])\z'
|
|
434
|
+
pattern_note: >-
|
|
435
|
+
The pattern shows shape 1; the regex is the UNION of both registration-
|
|
436
|
+
number shapes, because a motorcycle carries whichever shape its own
|
|
437
|
+
registration number has. Shape 2 only from 2019-01-16 — see
|
|
438
|
+
se-standard-2019.
|
|
439
|
+
charset: { letters_excluded: ["I", "Q", "V", "Å", "Ä", "Ö"], notes: "as common.charset" }
|
|
440
|
+
layout_note: >-
|
|
441
|
+
TSFS 2015:63 6 kap. 4 § andra stycket: on the two-row plate the three
|
|
442
|
+
letters sit on the UPPER row and the digits (or two digits + letter) on
|
|
443
|
+
the lower row. The space in the pattern is the single-line textual
|
|
444
|
+
rendering of that row break, not a printed glyph.
|
|
445
|
+
design:
|
|
446
|
+
plate: { w: 170, h: 150, unit: mm }
|
|
447
|
+
plate_variants:
|
|
448
|
+
- { w: 520, h: 110, unit: mm, note: "TSFS 2015:63 6 kap. 3 §: where the mounting space does not allow the 170x150 plate, Transportstyrelsen may supply a 520x110 or 300x110 plate instead" }
|
|
449
|
+
- { w: 300, h: 110, unit: mm }
|
|
450
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
451
|
+
foreground: "#000000"
|
|
452
|
+
border: { color: "#000000" }
|
|
453
|
+
band: { side: left, color: "#003399", content: eu-stars+S, hex_basis: observed }
|
|
454
|
+
rear_differs: false
|
|
455
|
+
display: "rear only (3 kap. 6 § förordningen 2019:383)"
|
|
456
|
+
region_encoding: none
|
|
457
|
+
sources:
|
|
458
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 3 § ('För motorcykel och moped klass I tillhandahålls en skylt som avses i 2 § 4') and 6 kap. 4 § andra stycket (the two-row arrangement); accessed 2026-08-02"
|
|
459
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 3 kap. 4 § (one plate for motorcycle/moped klass I) and 3 kap. 6 § (rear placement); accessed 2026-08-02"
|
|
460
|
+
- "https://web.archive.org/web/20161225212648/http://www.transportstyrelsen.se/sv/press/pressmeddelanden/sveriges-registreringsskyltar-forandras # Transportstyrelsen 2013-05-08: 'Slopandet av kontrollmärkena har möjliggjort en minskning av storleken på MC-skylten. Det nya måttet kommer att vara 170 X 150 mm' — the current size dates from that review; accessed 2026-08-02"
|
|
461
|
+
notes: >-
|
|
462
|
+
MOTORCYCLES AND MOPED KLASS I share ONE plate and one number system, so
|
|
463
|
+
they are one series with two categories rather than two series: the
|
|
464
|
+
PRD-PLATES §2.3 test (own series iff format OR design OR period differs)
|
|
465
|
+
separates nothing between them. period.start follows the standard series
|
|
466
|
+
because the NUMBER is the same national number; the 170x150 plate itself
|
|
467
|
+
is younger — Transportstyrelsen announced the reduction on 2013-05-08 and
|
|
468
|
+
the 2014 authority publication already prints 170x150, superseding the
|
|
469
|
+
195x155 two-row plate of bilregisterkungörelsen 18 § c. The date moped
|
|
470
|
+
klass I first became registration-liable in Sweden was not pinned in this
|
|
471
|
+
pass (recorded gap), so no separate moped period is asserted.
|
|
472
|
+
|
|
473
|
+
# =========================================================================
|
|
474
|
+
# TERRÄNGSKOTER — the 260x70 self-adhesive plate. Its own series because
|
|
475
|
+
# both the design and the EU-band posture differ.
|
|
476
|
+
# =========================================================================
|
|
477
|
+
- id: se-offroad-selfadhesive
|
|
478
|
+
class: standard
|
|
479
|
+
categories: [snowmobile, atv]
|
|
480
|
+
period: { start: 2016 }
|
|
481
|
+
period_evidence: instrument-in-force
|
|
482
|
+
matching: strict
|
|
483
|
+
format:
|
|
484
|
+
pattern: "LLL 999"
|
|
485
|
+
regex: '\A[A-Z]{3} ?(?:\d{3}|\d{2}[A-Z])\z'
|
|
486
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?(?:\d{3}|\d{2}[ABCDEFGHJKLMNPRSTUWXYZ])\z'
|
|
487
|
+
pattern_note: "representative shape; the regex is the union of both registration-number shapes"
|
|
488
|
+
design:
|
|
489
|
+
plate: { w: 260, h: 70, unit: mm }
|
|
490
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
491
|
+
foreground: "#000000"
|
|
492
|
+
band: { side: none }
|
|
493
|
+
band_note: >-
|
|
494
|
+
NO EU BAND. TSFS 2015:63 6 kap. 5 § andra stycket gives the Reg. 2411/98
|
|
495
|
+
mark to plates under 2 § 1, 2 and 4 only — the 260x70 self-adhesive
|
|
496
|
+
plate under 2 § 3 is not in the list — and Transportstyrelsen's own page
|
|
497
|
+
names "självhäftande skylt för terrängmotorfordon" among the four plate
|
|
498
|
+
types without the EU symbol.
|
|
499
|
+
adhesive: true
|
|
500
|
+
region_encoding: none
|
|
501
|
+
sources:
|
|
502
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 2 § 3 (260x70 självhäftande) and 6 kap. 3 § ('För terrängskoter tillhandahålls en skylt som avses i 2 § 3'); 5 § andra stycket for the EU-mark list; accessed 2026-08-02"
|
|
503
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/bilder-och-matt-pa-registreringsskyltar/ # 'Självhäftande skylt — Enradig registreringsskylt för terrängmotorfordon (till exempel snöskoter)'; the size/colour table row 'Terrängmotorfordonsskylt vit svart 260 x 70 mm'; accessed 2026-08-02"
|
|
504
|
+
notes: >-
|
|
505
|
+
SNOWMOBILE / ATV PLATE. Recorded under class `standard` because it is the
|
|
506
|
+
ordinary registration plate of an ordinary privately-owned vehicle, only
|
|
507
|
+
in a self-adhesive 260x70 form; _meta/classes.yml has no off-road class
|
|
508
|
+
and none is invented here. period.start 2016 is INSTRUMENT-DATED (TSFS
|
|
509
|
+
2015:63, in force 2016-01-01); the 260x70 self-adhesive plate is far older
|
|
510
|
+
— bilregisterkungörelsen 18 § d prescribed the same 260x70 self-adhesive
|
|
511
|
+
form — but no date for its introduction was pinned.
|
|
512
|
+
|
|
513
|
+
# =========================================================================
|
|
514
|
+
# TAXI — two series, because the T came off on a dated day.
|
|
515
|
+
# =========================================================================
|
|
516
|
+
- id: se-taxi-t-1998
|
|
517
|
+
class: taxi
|
|
518
|
+
categories: [car, van, bus]
|
|
519
|
+
period: { start: 1998, end: 2017 }
|
|
520
|
+
period_evidence: enabling-instrument
|
|
521
|
+
matching: strict
|
|
522
|
+
format:
|
|
523
|
+
pattern: "LLL 999"
|
|
524
|
+
regex: '\A[A-Z]{3} ?\d{3}\z'
|
|
525
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?\d{3}\z'
|
|
526
|
+
charset: { letters_excluded: ["I", "Q", "V", "Å", "Ä", "Ö"] }
|
|
527
|
+
t_mark_note: >-
|
|
528
|
+
THE "T" IS NOT PART OF THE SERIAL. Bilregisterkungörelsen 18 §, as
|
|
529
|
+
amended by förordning (1998:788), verbatim: "Bokstaven T anges till
|
|
530
|
+
höger om registreringsnumret, dock inte om fordonet enligt förordningen
|
|
531
|
+
(1988:965) om personliga fordonsskyltar är försett med personliga
|
|
532
|
+
fordonsskyltar. Bokstäver och siffror utförs i svart på gul
|
|
533
|
+
ljusreflekterande botten." It is a stamped mark beside the number, so
|
|
534
|
+
it lives in `design`, not in `format.regex`. Only the AAA 111 shape ever
|
|
535
|
+
appeared on a T plate: the letter-final shape began issuing in 2019, two
|
|
536
|
+
years after the T was withdrawn.
|
|
537
|
+
design:
|
|
538
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
539
|
+
plate_variants:
|
|
540
|
+
- { w: 300, h: 110, unit: mm }
|
|
541
|
+
background: { color: "#DC9D00", finish: retroreflective, hex_basis: observed, spec_note: "the instrument says only 'gul ljusreflekterande botten' — no RAL, no RGB" }
|
|
542
|
+
foreground: "#000000"
|
|
543
|
+
border: { color: "#000000" }
|
|
544
|
+
band: { side: left, color: "#003399", content: eu-stars+S, hex_basis: observed, note: "only from the 2013-05-08 review; taxi plates made before then carry no EU symbol" }
|
|
545
|
+
extra_field: { position: right, content: "the letter T, stamped beside the registration number" }
|
|
546
|
+
region_encoding: none
|
|
547
|
+
sources:
|
|
548
|
+
- "https://rkrattsdb.gov.se/SFSdoc/98/980788.PDF # förordning (1998:788) om ändring i bilregisterkungörelsen (1972:599), 18 §: the T and 'svart på gul ljusreflekterande botten', verbatim; 'Denna förordning träder i kraft den 1 oktober 1998'; accessed 2026-08-02"
|
|
549
|
+
- "https://rkrattsbaser.gov.se/sfsr?bet=1972%3A599&upph=true # SFS register: 'Ändring, SFS 1998:788 ... Ikraft: 1998-10-01'; accessed 2026-08-02"
|
|
550
|
+
- "https://web.archive.org/web/20170408075118/http://www.transportstyrelsen.se/sv/Nyhetsarkiv/inte-langre-nagra-t-pa-taxiskyltar # Transportstyrelsen news 2017-04-03, archived capture 2017-04-08: 'Taxiskyltens utseende förändras från och med den 1 april 2017. Det T som tidigare varit instansat till höger om registreringsnumret tas bort' and 'Skyltar som tillverkats innan den 1 april 2017 och som har det gamla utseendet med ett instansat T kommer fortfarande att vara giltiga'; accessed 2026-08-02"
|
|
551
|
+
- "https://web.archive.org/web/20160519223846if_/http://www.transportstyrelsen.se/globalassets/global/publikationer/vag/fordon/svenska_registreringsskyltar_2014.pdf # Transportstyrelsen publication 201.143 (U07), March 2014: 'Taxiskylt ... Bokstaven T anges till höger om registreringsnumret. Mått: 520 x 110 mm. Finns också i måttet: 300 x 110 mm'; accessed 2026-08-02"
|
|
552
|
+
notes: >-
|
|
553
|
+
THE YELLOW TAXI PLATE WITH THE STAMPED T, 1 October 1998 to 31 March 2017.
|
|
554
|
+
period.end 2017 closes ISSUANCE only: plates manufactured before 1 April
|
|
555
|
+
2017 remain valid indefinitely, which the authority states in terms, so a
|
|
556
|
+
T plate seen today is legal and is a hard pre-April-2017 manufacturing
|
|
557
|
+
signal — one of the very few dating tells on any Swedish plate. Parallel
|
|
558
|
+
with se-taxi-2017 during 2017, which is why both carry distinct notes.
|
|
559
|
+
|
|
560
|
+
- id: se-taxi-2017
|
|
561
|
+
class: taxi
|
|
562
|
+
categories: [car, van, bus]
|
|
563
|
+
period: { start: 2017 }
|
|
564
|
+
period_evidence: authority-announcement
|
|
565
|
+
matching: strict
|
|
566
|
+
format:
|
|
567
|
+
pattern: "LLL 999"
|
|
568
|
+
regex: '\A[A-Z]{3} ?(?:\d{3}|\d{2}[A-Z])\z'
|
|
569
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?(?:\d{3}|\d{2}[ABCDEFGHJKLMNPRSTUWXYZ])\z'
|
|
570
|
+
pattern_note: "representative shape; the regex is the union of both registration-number shapes"
|
|
571
|
+
design:
|
|
572
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
573
|
+
plate_variants:
|
|
574
|
+
- { w: 300, h: 110, unit: mm }
|
|
575
|
+
background: { color: "#DC9D00", finish: retroreflective, hex_basis: observed, spec_note: "TSFS 2015:63 6 kap. 7 §: 'På en taxiskylt är bokstäver och siffror svarta på gul ljusreflekterande botten. Registreringsskylten har svart ram.' Colour named, not numbered." }
|
|
576
|
+
foreground: "#000000"
|
|
577
|
+
border: { color: "#000000" }
|
|
578
|
+
band: { side: left, color: "#003399", content: eu-stars+S, hex_basis: observed }
|
|
579
|
+
note: "identical to the ordinary plate in every respect except the yellow ground — which was the stated point of removing the T"
|
|
580
|
+
region_encoding: none
|
|
581
|
+
variants:
|
|
582
|
+
- class: personalized
|
|
583
|
+
note: >-
|
|
584
|
+
PERSONLIG SKYLT FÖR TAXI — a personal character combination on the
|
|
585
|
+
yellow taxi ground. TSFS 2015:63 12 kap. 9 §: "En personlig
|
|
586
|
+
fordonsskylt kan även utformas på det sätt som anges i 6 kap. 7 eller
|
|
587
|
+
20 §" (taxi yellow or tävling orange). Recorded as a sub-entry because
|
|
588
|
+
only the ground colour differs from se-personal.
|
|
589
|
+
sources:
|
|
590
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/bilder-och-matt-pa-registreringsskyltar/ # size table row 'Personlig skylt för taxi | gul | svart | 520 x 110 mm, 300 x 110 mm'; accessed 2026-08-02"
|
|
591
|
+
sources:
|
|
592
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 7-9 §: the taxi plate's colours and frame, when it is supplied, and that an ordinary plate may be used until the taxi plate arrives; accessed 2026-08-02"
|
|
593
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 3 kap. 11 §: 'Ett fordon som har anmälts för användning i taxitrafik enligt taxitrafiklagen (2012:211) ska ha en särskild registreringsskylt (taxiskylt)', with the 2 b kap. 1 § exception; 3 kap. 12 §: the plates must be returned when the vehicle leaves taxi service; accessed 2026-08-02"
|
|
594
|
+
- "https://web.archive.org/web/20170408075118/http://www.transportstyrelsen.se/sv/Nyhetsarkiv/inte-langre-nagra-t-pa-taxiskyltar # Transportstyrelsen news 2017-04-03: the T removed from 1 April 2017; accessed 2026-08-02"
|
|
595
|
+
notes: >-
|
|
596
|
+
THE TAXI PLATE WITHOUT THE T, from 1 April 2017. Its own series rather
|
|
597
|
+
than a colour variant of the standard plate because it is a distinct
|
|
598
|
+
statutory issuance (3 kap. 11 § makes it compulsory for a vehicle notified
|
|
599
|
+
for taxi traffic, and 3 kap. 12 § requires its surrender), and because its
|
|
600
|
+
predecessor carried an extra stamped character. Note the 2 b kap. 1 §
|
|
601
|
+
taxitrafiklagen exception, added by förordning (2020:632): a vehicle
|
|
602
|
+
notified under that provision need not have a taxi plate at all, so
|
|
603
|
+
"yellow plate" is a sufficient but not necessary condition for a Swedish
|
|
604
|
+
taxi.
|
|
605
|
+
|
|
606
|
+
# =========================================================================
|
|
607
|
+
# SALUVAGNSSKYLT — the green trade plate. Bound to a BUSINESS, not a
|
|
608
|
+
# vehicle, exactly like the German rote Kennzeichen.
|
|
609
|
+
# =========================================================================
|
|
610
|
+
- id: se-dealer-saluvagn
|
|
611
|
+
class: dealer
|
|
612
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine, snowmobile]
|
|
613
|
+
period: { start: 1973 }
|
|
614
|
+
period_evidence: enabling-instrument
|
|
615
|
+
matching: strict
|
|
616
|
+
format:
|
|
617
|
+
pattern: "LLL 999"
|
|
618
|
+
regex: '\A[A-Z]{3} ?(?:\d{3}|\d{2}[A-Z])\z'
|
|
619
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?(?:\d{3}|\d{2}[ABCDEFGHJKLMNPRSTUWXYZ])\z'
|
|
620
|
+
characters: 6
|
|
621
|
+
charset:
|
|
622
|
+
notes: >-
|
|
623
|
+
TSFS 2015:63 6 kap. 16 §, verbatim: "En saluvagnsskylt har en
|
|
624
|
+
beteckning med sex tecken och utformas enligt 2 § 1 eller 4. Bokstäver
|
|
625
|
+
och siffror utförs i svart på grön ljusreflekterande botten." The
|
|
626
|
+
föreskrift gives the COUNT but not the arrangement; Transportstyrelsen's
|
|
627
|
+
own published illustration shows both registration-number shapes
|
|
628
|
+
("MLB 803" and "MLB 36U"), which is why the union regex is used. The
|
|
629
|
+
1972 ancestor was explicit — bilregisterkungörelsen 42 §: "skyltens
|
|
630
|
+
nummer, som består av tre bokstäver och tre siffror".
|
|
631
|
+
fields_note: >-
|
|
632
|
+
THE VEHICLE-TYPE LETTER IS A FIELD, NOT PART OF THE BETECKNING.
|
|
633
|
+
TSFS 2015:63 6 kap. 18 §: "På skylten anges, utöver beteckningen enligt
|
|
634
|
+
16 §, det slag av fordon som skylten avser enligt följande: 1. För bil
|
|
635
|
+
bokstaven 'B'. 2. För motorcykel och moped klass I bokstaven 'M'.
|
|
636
|
+
3. För traktor och motorredskap bokstaven 'T'. 4. För terrängmotorfordon
|
|
637
|
+
bokstäverna 'TM'. 5. För släpfordon bokstaven 'S' eller, om samtliga
|
|
638
|
+
släpfordon ... utgörs av släpvagnar med en skattevikt av högst 3 ton,
|
|
639
|
+
släpslädar eller terrängsläp, bokstäverna 'LS'." Time-limited licences
|
|
640
|
+
additionally carry the expiry date stamped into the plate. Neither can
|
|
641
|
+
be expressed in a single `pattern` string — the same schema pressure
|
|
642
|
+
PRD-PLATES §2.2 records for Japan.
|
|
643
|
+
design:
|
|
644
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
645
|
+
plate_variants:
|
|
646
|
+
- { w: 170, h: 150, unit: mm, note: "two-row, for motorcycle and moped klass I (TSFS 2015:63 6 kap. 17 §)" }
|
|
647
|
+
background: { color: "#03995C", finish: retroreflective, hex_basis: observed, spec_note: "'grön ljusreflekterande botten' (6 kap. 16 §) — colour named, not numbered" }
|
|
648
|
+
foreground: "#000000"
|
|
649
|
+
border: { color: "#000000" }
|
|
650
|
+
band: { side: left, color: "#003399", content: eu-stars+S, hex_basis: observed, note: "EU mark added by the 2013-05-08 review; earlier saluvagn plates carry none" }
|
|
651
|
+
extra_field: { position: right, content: "vehicle-type letter B / M / T / TM / S / LS; plus a stamped expiry date on time-limited licences" }
|
|
652
|
+
hangs: "the plate is HUNG on the vehicle being driven, not fixed: rear on bil, motorcykel, moped klass I and släpfordon; front on traktor, motorredskap and terrängmotorfordon (9 kap. 3 § förordningen 2019:383)"
|
|
653
|
+
binding: business
|
|
654
|
+
region_encoding: none
|
|
655
|
+
validity:
|
|
656
|
+
note: >-
|
|
657
|
+
9 kap. 5 §: a saluvagnsskylt issued in a given calendar year may be used
|
|
658
|
+
after that year's end for as long as the licence lasts, provided the
|
|
659
|
+
holder pays the annual vägtrafikregisteravgift and saluvagnsskatt and
|
|
660
|
+
keeps the vehicles insured. The licence itself runs indefinitely or, on
|
|
661
|
+
special grounds, for a limited term.
|
|
662
|
+
sources:
|
|
663
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 16-18 §: six characters, black on green reflective, black frame, EU mark, which plate size on which vehicle, and the B/M/T/TM/S/LS type letters (18 § in the TSFS 2026:72 lydelse); accessed 2026-08-02"
|
|
664
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 9 kap. 1-9 §: saluvagnslicens, where the plate is hung, replacement plates get a DIFFERENT beteckning, annual fees, surrender on revocation; accessed 2026-08-02"
|
|
665
|
+
- "https://rkrattsbaser.gov.se/sfst?bet=1972%3A599&upph=true # bilregisterkungörelse (1972:599) 42 §: 'Saluvagnsskylt har rektangulär form med yttermåtten 480x110 mm och upptar skyltens nummer, som består av tre bokstäver och tre siffror. Bokstäver och siffror upptas i en rad och utförs i svart på grön ljusreflekterande botten' — the regime's original enactment, in force 1 May 1973; accessed 2026-08-02"
|
|
666
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/for-fordonsbranschen/saluvagnslicens/ # 'en grön skylt med svarta tecken'; 520x110 and 170x150; time-limited plates carry a stamped validity date; accessed 2026-08-02"
|
|
667
|
+
- "https://www.transportstyrelsen.se/globalassets/global/bilder/vag/fordon/saluvagnsskyltar.png # the authority's own illustration: beteckningar 'MLB 803' and 'MLB 36U' with the type letter B / M outside the beteckning, and the stamped date block on the time-limited variants; accessed 2026-08-02"
|
|
668
|
+
notes: >-
|
|
669
|
+
SALUVAGNSSKYLT — the Swedish trade plate. BINDING NOTE: like the German
|
|
670
|
+
rote Kennzeichen and unlike every other entry here, this plate binds to a
|
|
671
|
+
BUSINESS ("den som yrkesmässigt tillverkar, transporterar eller handlar
|
|
672
|
+
med fordon eller släpfordon") and moves between unregistered and
|
|
673
|
+
deregistered vehicles, so `binding: business` is set and a vehicle-keyed
|
|
674
|
+
consumer must not join on it. Two details a parse API needs: the
|
|
675
|
+
beteckning is NOT a registration number and never appears in the
|
|
676
|
+
vägtrafikregister as one; and 9 kap. 4 § provides that a lost plate is
|
|
677
|
+
replaced "med en annan beteckning än den som fanns på den tidigare
|
|
678
|
+
skylten", so a saluvagn beteckning is not stable across replacement.
|
|
679
|
+
period.start 1973 is the in-force date of bilregisterkungörelsen (1972:599)
|
|
680
|
+
— see se-standard-1972's period note for the 1972/1973 disagreement — and
|
|
681
|
+
the current six-character rule, 520x110 size and EU mark are all younger.
|
|
682
|
+
|
|
683
|
+
# =========================================================================
|
|
684
|
+
# BESKICKNINGSSKYLT — the only Swedish plate with a decode table.
|
|
685
|
+
# =========================================================================
|
|
686
|
+
- id: se-diplomatic
|
|
687
|
+
class: diplomatic
|
|
688
|
+
categories: [car, van, motorcycle]
|
|
689
|
+
period: { start: 1988 }
|
|
690
|
+
period_evidence: enabling-instrument
|
|
691
|
+
matching: strict
|
|
692
|
+
format:
|
|
693
|
+
pattern: "LL 999L"
|
|
694
|
+
regex: '\A[A-Z]{2} ?\d{3}[A-Z]\z'
|
|
695
|
+
regex_strict: '\A[A-F][ABCDEFGHJKLMNPRSTUVWXYZ] ?\d{3}[A-J]\z'
|
|
696
|
+
characters: 6
|
|
697
|
+
charset:
|
|
698
|
+
notes: >-
|
|
699
|
+
regex_strict is sourced by ENUMERATION of the closed tables, not by a
|
|
700
|
+
stated letter rule: across all 128 published landskoder the first
|
|
701
|
+
letter is always A-F and the second never I, O or Q; the kategorikod
|
|
702
|
+
table runs A-H plus "I eller J". Note that V IS used in a landskod
|
|
703
|
+
(EV = International IDEA) even though V is excluded from ordinary
|
|
704
|
+
registration numbers — the two alphabets are different, and a parse
|
|
705
|
+
API must not share them.
|
|
706
|
+
composition: >-
|
|
707
|
+
TSFS 2015:63 12 kap. 3 §, verbatim: "Teckensammansättningen ska, från
|
|
708
|
+
vänster på den enradiga registreringsskylten, bestå av 1. en landskod
|
|
709
|
+
(två bokstäver) som utvisar vilken beskickning ägaren eller brukaren av
|
|
710
|
+
fordonet tillhör, 2. ett löpnummer (tre siffror) inom respektive
|
|
711
|
+
landskod, och 3. en kategorikod (en bokstav) som utvisar ägarens eller
|
|
712
|
+
brukarens ställning." On the two-row plate the landskod is on the upper
|
|
713
|
+
row and the löpnummer + kategorikod on the lower row.
|
|
714
|
+
design:
|
|
715
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
716
|
+
plate_variants:
|
|
717
|
+
- { w: 170, h: 150, unit: mm, note: "two-row" }
|
|
718
|
+
- { w: 300, h: 110, unit: mm }
|
|
719
|
+
background: { color: "#469BD1", finish: retroreflective, hex_basis: observed, spec_note: "TSFS 2015:63 12 kap. 2 §: 'Tecknen är svarta på ljusblå ljusreflekterande botten. Skylten har svart ram.' Identical wording to förordning (1988:964) 2 §, thirty-seven years earlier." }
|
|
720
|
+
foreground: "#000000"
|
|
721
|
+
border: { color: "#000000" }
|
|
722
|
+
band: { side: none }
|
|
723
|
+
band_note: >-
|
|
724
|
+
NO EU BAND — TSFS 2015:63 6 kap. 6 § disapplies the mark for skyltar för
|
|
725
|
+
beskickningsfordon, and the authority's own page lists beskickningsskylt
|
|
726
|
+
first among the four exceptions. Nor does the plate carry the VIN /
|
|
727
|
+
fabrikatskod marking (6 kap. 6 § again).
|
|
728
|
+
binding: owner
|
|
729
|
+
binding_note: >-
|
|
730
|
+
Set to `owner` deliberately. 11 kap. 2 § förordningen (2019:383): the
|
|
731
|
+
character composition is fixed by Regeringskansliet "med hänsyn till det
|
|
732
|
+
berörda landet och den ställning som den som äger eller använder fordonet
|
|
733
|
+
har. Om dessa förhållanden ändras, ska fordonet tilldelas nya skyltar."
|
|
734
|
+
The plate therefore tracks the HOLDER'S STATUS, not the vehicle: a
|
|
735
|
+
promotion or a posting change re-plates the same car.
|
|
736
|
+
region_encoding: "plates/_decode/se-diplomatic.yml"
|
|
737
|
+
region_encoding_note: >-
|
|
738
|
+
128 landskoder + 10 kategorikoder, both closed and primary. Held in a
|
|
739
|
+
_decode file rather than inline (PRD-PLATES §2.4) because 138 rows is well
|
|
740
|
+
past de.yml's Anlage-2 inline threshold.
|
|
741
|
+
sources:
|
|
742
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 12 kap. 1 a § (definitions of landskod and kategorikod, added by TSFS 2025:33), 12 kap. 2 § (six characters, black on light blue reflective, black frame), 12 kap. 3 § (the 2+3+1 composition, one-row and two-row); 6 kap. 6 § (no EU mark, no VIN marking); accessed 2026-08-02"
|
|
743
|
+
- "https://rkrattsbaser.gov.se/sfst?bet=1988%3A964&upph=true # förordning (1988:964) om skyltar för beskickningsfordon 2 §, verbatim: 'Skyltar för beskickningsfordon upptar sex tecken som utgörs av bokstäver och siffror. Tecknen utförs i svart på ljusblå reflekterande botten.'; Övergångsbestämmelser: 'Denna förordning träder i kraft den 1 oktober 1988'; accessed 2026-08-02"
|
|
744
|
+
- "https://rkrattsbaser.gov.se/sfsr?bet=1988%3A964&upph=true # SFS register: 'Ikraft: 1988-10-01 överg.best.', 'Upphävd: 2001-10-01' (absorbed into förordningen 2001:650); accessed 2026-08-02"
|
|
745
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 11 kap. 1-5 §: who gets the plates (immunity/privileges), Utrikesdepartementet decides and supplies them, new plates when status changes, ordinary plates if the vehicle becomes taxable; 15 kap. 13 §: Säkerhetspolisen may grant an exemption on security grounds; accessed 2026-08-02"
|
|
746
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/skylt-for-beskickningsfordon-diplomatfordon/ # the 128-row landskod table and the kategorikod table; accessed 2026-08-02"
|
|
747
|
+
- "https://www.transportstyrelsen.se/globalassets/global/bilder/vag/fordon/diplomat.png # authority illustration: 'ML 803 B' one-row and 'ML / 803B' two-row, black on light blue, no EU band; accessed 2026-08-02"
|
|
748
|
+
notes: >-
|
|
749
|
+
THE BESKICKNINGSSKYLT. period.start 1988 is a REAL start, not an
|
|
750
|
+
instrument-in-force convenience: förordningen (1988:964) created the
|
|
751
|
+
six-character light-blue plate and took effect on 1 October 1988, with a
|
|
752
|
+
transitional grace to the end of December 1988. The colour wording has
|
|
753
|
+
survived verbatim through three instruments (1988:964 -> 2001:650 ->
|
|
754
|
+
2019:383 + TSFS 2015:63), which is why the design claim is `spec` while
|
|
755
|
+
the hex is `observed`. SECURITY EXEMPTION worth recording for a claims
|
|
756
|
+
model: 15 kap. 13 § lets Säkerhetspolisen exempt a vehicle from the
|
|
757
|
+
beskickningsskylt requirement "om det finns särskilda skäl som gäller
|
|
758
|
+
säkerheten" — so absence of a blue plate does not disprove diplomatic
|
|
759
|
+
ownership.
|
|
760
|
+
|
|
761
|
+
# =========================================================================
|
|
762
|
+
# TILLFÄLLIG REGISTRERING — the red interimsskylt. This is also Sweden's
|
|
763
|
+
# export plate; there is no separate export series.
|
|
764
|
+
# =========================================================================
|
|
765
|
+
- id: se-temporary-interim
|
|
766
|
+
class: temporary
|
|
767
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
768
|
+
period: { start: 2016 }
|
|
769
|
+
period_evidence: instrument-in-force
|
|
770
|
+
matching: strict
|
|
771
|
+
format:
|
|
772
|
+
pattern: "LLL 999"
|
|
773
|
+
regex: '\A[A-Z]{3} ?(?:\d{3}|\d{2}[A-Z])\z'
|
|
774
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?(?:\d{3}|\d{2}[ABCDEFGHJKLMNPRSTUWXYZ])\z'
|
|
775
|
+
pattern_note: >-
|
|
776
|
+
Representative shape; the regex is the union of both registration-number
|
|
777
|
+
shapes, because TSFS 2015:63 6 kap. 11 § assigns the number "enligt 4 §"
|
|
778
|
+
— the ordinary rule.
|
|
779
|
+
number_identity_rule: >-
|
|
780
|
+
6 kap. 11 § andra stycket, and it matters to a parse API: for a vehicle
|
|
781
|
+
registered under 16 § lagen (2019:370) the temporary number is THE SAME
|
|
782
|
+
as the one it will get at ordinary registration; for a vehicle
|
|
783
|
+
registered under 17 § it "får inte motsvara ett eventuellt tidigare
|
|
784
|
+
tilldelat registreringsnummer".
|
|
785
|
+
fields_note: >-
|
|
786
|
+
The plate carries the registration's expiry as day, month and year
|
|
787
|
+
(6 kap. 12 §), printed as a stacked day-over-month block at the LEFT and
|
|
788
|
+
the year at the RIGHT — the reverse of the German Kurzzeitkennzeichen
|
|
789
|
+
layout. A vehicle used under 20 § lagen (2019:370) additionally carries
|
|
790
|
+
the letter "B" (restricted use). None of that fits a single `pattern`.
|
|
791
|
+
design:
|
|
792
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
793
|
+
plate_variants:
|
|
794
|
+
- { w: 170, h: 150, unit: mm, note: "two-row" }
|
|
795
|
+
background: { color: "#BB0908", finish: retroreflective, hex_basis: observed, spec_note: "6 kap. 11 § tredje stycket: 'Bokstäver och siffror utförs i vitt på röd ljusreflekterande botten.'" }
|
|
796
|
+
foreground: "#FFFFFF"
|
|
797
|
+
band: { side: none }
|
|
798
|
+
band_note: "no EU mark and no VIN/fabrikatskod marking (6 kap. 6 §); Transportstyrelsen lists 'tillfällig registreringsskylt' among the four EU-symbol exceptions"
|
|
799
|
+
extra_field:
|
|
800
|
+
position: left
|
|
801
|
+
content: "day over month of expiry; the year sits at the right-hand end; a 'B' below the year marks a vehicle restricted under 20 § lagen (2019:370)"
|
|
802
|
+
region_encoding: none
|
|
803
|
+
validity:
|
|
804
|
+
note: >-
|
|
805
|
+
Set per decision, not by a fixed statutory period; the expiry is printed
|
|
806
|
+
on the plate. A vehicle temporarily registered under 17 § första stycket
|
|
807
|
+
1-3 lagen (2019:370) must LEAVE the country within the registration's
|
|
808
|
+
validity (10 kap. 3 § förordningen 2019:383), and non-departure of a
|
|
809
|
+
non-Union good is reported to Tullverket.
|
|
810
|
+
sources:
|
|
811
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 11-13 §: the number rule, white on red reflective, the day/month/year field, the 'B' marking, and the stripped-down plate usable while the dated ones are awaited; 6 kap. 6 § for the EU-mark exclusion; accessed 2026-08-02"
|
|
812
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 10 kap. 1-8 §: application, the out-of-country obligation, 'När en tillfällig registrering har beslutats ska Transportstyrelsen tillhandahålla särskilda registreringsskyltar (interimsskyltar)', and 'En interimsskylt får dock inte vara provisorisk'; accessed 2026-08-02"
|
|
813
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/import-och-export-av-fordon/export-och-tillfallig-registrering/tillfallig-registrering/ # 'Den särskilda registreringsskylten är röd med vit text och finns som enradig skylt med yttermåtten 520 x 110 mm, tvåradig skylt med yttermåtten 170 x 150 mm'; 'årtal angivet till höger på skylten och dag och månad till vänster'; 'Om ett fordon endast får användas i begränsad omfattning, är skylten försedd med ett B'; accessed 2026-08-02"
|
|
814
|
+
- "https://www.transportstyrelsen.se/globalassets/global/bilder/vag/fordon/interimsskyltar.png # authority illustration: white on red, '03/04 MLB 803 2014' and '31/01 MLB 36U 2019 B'; accessed 2026-08-02"
|
|
815
|
+
notes: >-
|
|
816
|
+
INTERIMSSKYLT — and SWEDEN'S EXPORT PLATE, which is why this file has no
|
|
817
|
+
`export` series. The old exportvagnskungörelsen (1964:39) and
|
|
818
|
+
turistvagnskungörelsen (1972:601) regimes, both still cross-referenced in
|
|
819
|
+
bilregisterkungörelsen 3 §, are gone; export, import and temporary foreign
|
|
820
|
+
use all run through tillfällig registrering under 15-22 §§ lagen
|
|
821
|
+
(2019:370). period.start 2016 is INSTRUMENT-DATED (TSFS 2015:63, in force
|
|
822
|
+
2016-01-01); the tillfällig-registrering regime itself dates from
|
|
823
|
+
förordningen (2001:650), in force 1 October 2001, and the red/white design
|
|
824
|
+
is older than the föreskrift that now states it — the earlier date was not
|
|
825
|
+
pinned (recorded gap).
|
|
826
|
+
|
|
827
|
+
- id: se-provisional
|
|
828
|
+
class: temporary
|
|
829
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine]
|
|
830
|
+
period: { start: 2016 }
|
|
831
|
+
period_evidence: instrument-in-force
|
|
832
|
+
matching: strict
|
|
833
|
+
format:
|
|
834
|
+
pattern: "LLL 999"
|
|
835
|
+
regex: '\A[A-Z]{3} ?(?:\d{3}|\d{2}[A-Z])\z'
|
|
836
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?(?:\d{3}|\d{2}[ABCDEFGHJKLMNPRSTUWXYZ])\z'
|
|
837
|
+
pattern_note: "the provisional plate carries the vehicle's OWN registration number, so the regex is the union of both shapes"
|
|
838
|
+
design:
|
|
839
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
840
|
+
background: { color: "#FCA62F", finish: unspecified, hex_basis: observed, spec_note: "TSFS 2015:63 6 kap. 15 §: 'En provisorisk registreringsskylt har sådan form som avses i 2 § 1. Bokstäver och siffror utförs i svart på gul botten.' Note the ABSENCE of 'ljusreflekterande' — the only Swedish plate whose colour rule omits the word, exactly as bilregisterkungörelsen 25 § omitted it before. `finish: unspecified` records that absence rather than asserting non-reflectivity from silence, though Transportstyrelsen's own photograph of the plate shows a matte, un-sheened surface." }
|
|
841
|
+
foreground: "#000000"
|
|
842
|
+
band: { side: none }
|
|
843
|
+
band_note: "no EU mark, no VIN/fabrikatskod marking (6 kap. 6 §)"
|
|
844
|
+
region_encoding: none
|
|
845
|
+
validity:
|
|
846
|
+
note: >-
|
|
847
|
+
3 kap. 17 § förordningen (2019:383): usable only until the owner or
|
|
848
|
+
driver has received a replacement plate (ersättningsskylt), which must
|
|
849
|
+
then be fitted as soon as possible.
|
|
850
|
+
sources:
|
|
851
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 15 §; 6 kap. 6 § for the EU-mark exclusion; accessed 2026-08-02"
|
|
852
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 3 kap. 13-18 §: the Polismyndighet issues the provisional plate on an ersättningsskylt application, the use-ban carve-outs, and 3 kap. 5 § andra stycket permitting the drive to the police station on no plate at all; accessed 2026-08-02"
|
|
853
|
+
- "https://rkrattsbaser.gov.se/sfst?bet=1972%3A599&upph=true # bilregisterkungörelse 25 §: 'Provisorisk registreringsskylt utformas som enradig skylt med yttermåtten 445x120 mm ... Bokstäver och siffror utförs i svart på gul botten' — the pre-2016 size, superseded; accessed 2026-08-02"
|
|
854
|
+
- "https://www.transportstyrelsen.se/globalassets/global/press/registreringsskyltar/provisorisk-regskylt_ny.jpg # Transportstyrelsen's own photograph of a provisorisk skylt — the source of the observed hex and of the matte, un-sheened surface observation; accessed 2026-08-02"
|
|
855
|
+
notes: >-
|
|
856
|
+
PROVISORISK REGISTRERINGSSKYLT — issued by the POLICE, not by
|
|
857
|
+
Transportstyrelsen, when a plate is lost or stolen. Its own series rather
|
|
858
|
+
than a variant because the issuing authority, the colour and the (absent)
|
|
859
|
+
retroreflectivity requirement all differ from the ordinary plate. SIZE
|
|
860
|
+
CHANGE WORTH RECORDING: 445x120 mm under bilregisterkungörelsen 25 § and
|
|
861
|
+
still 445x120 in Transportstyrelsen's own March 2014 publication; 520x110
|
|
862
|
+
under TSFS 2015:63 6 kap. 15 § (in force 2016-01-01). Distinct from the
|
|
863
|
+
interimsskylt: 10 kap. 4 § provides in terms that "En interimsskylt får
|
|
864
|
+
dock inte vara provisorisk."
|
|
865
|
+
|
|
866
|
+
# =========================================================================
|
|
867
|
+
# PERSONLIG FORDONSSKYLT — and the file's one schema stressor.
|
|
868
|
+
# =========================================================================
|
|
869
|
+
- id: se-personal
|
|
870
|
+
class: personalized
|
|
871
|
+
categories: [car, van, truck, bus, motorcycle, moped, trailer, tractor, machine, snowmobile]
|
|
872
|
+
period: { start: 1988 }
|
|
873
|
+
period_evidence: enabling-instrument
|
|
874
|
+
matching: strict
|
|
875
|
+
format:
|
|
876
|
+
pattern: "LLLLLL"
|
|
877
|
+
regex: '\A(?![A-Z]{3} ?\d{3}\z)(?![A-Z]{3} ?\d{2}[A-Z]\z)(?![A-Z]{2} ?\d{3}[A-Z]\z)[A-Z0-9](?:[A-Z0-9]| ){0,5}[A-Z0-9]\z'
|
|
878
|
+
characters: { min: 2, max: 7 }
|
|
879
|
+
charset:
|
|
880
|
+
note: >-
|
|
881
|
+
SCHEMA STRESSOR, FLAGGED FOR THE MAINTAINER. Transportstyrelsen:
|
|
882
|
+
"Du får använda alla bokstäver i svenska alfabetet, A-Ö" — so Å, Ä and
|
|
883
|
+
Ö ARE issued on personal plates, and they are OUTSIDE this dataset's
|
|
884
|
+
serial alphabet (_meta/separators.yml: "ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
|
885
|
+
0123456789" and nothing else). Per PRD-PLATES §2.6 that is "a schema
|
|
886
|
+
amendment, not a data entry": the regexes here are therefore
|
|
887
|
+
deliberately NARROWER than the issuing grammar in that one respect,
|
|
888
|
+
which §2.7 confirms is still `strict`. A Swedish personal plate reading
|
|
889
|
+
"SÖDER" will not match, and cannot until _meta/separators.yml grows.
|
|
890
|
+
equivalences: >-
|
|
891
|
+
"O och 0 (nolla) jämställs som tecken, I och 1 (ett) jämställs som
|
|
892
|
+
tecken" — SONNY and S0NNY are the SAME combination for allocation
|
|
893
|
+
purposes, as are SOFIA and SOF1A. A regex cannot express an
|
|
894
|
+
equivalence class; recorded here for the parse API, which must
|
|
895
|
+
canonicalise O/0 and I/1 before deduplicating personal combinations.
|
|
896
|
+
space_rule: >-
|
|
897
|
+
"Det får finnas mellanrum mellan tecknen under förutsättning att
|
|
898
|
+
teckenkombinationen inklusive mellanrum ryms på skylten. Ett mellanrum
|
|
899
|
+
tar samma plats på skylten som ett tecken." So a space COUNTS toward
|
|
900
|
+
the 2-7 budget. It is still an emitted separator per PRD-PLATES §2.6
|
|
901
|
+
and is written as a bare literal inside an alternation, never inside a
|
|
902
|
+
mixed character class (§2.8).
|
|
903
|
+
forbidden_shapes: >-
|
|
904
|
+
"Det är inte tillåtet med teckenkombinationer som motsvarar
|
|
905
|
+
registreringsnummer (tre bokstäver + tre siffror eller tre bokstäver +
|
|
906
|
+
två siffror + en bokstav) eller skylt för beskickningsfordon (två
|
|
907
|
+
bokstäver + tre siffror + en bokstav)." All three shapes are excluded
|
|
908
|
+
by the negative lookaheads at the head of `regex` — which is why this
|
|
909
|
+
series needs no `regex_strict`: the sourced narrowing is already in
|
|
910
|
+
`regex`.
|
|
911
|
+
discretionary: >-
|
|
912
|
+
Two rules that are NOT enumerable and are therefore not encoded:
|
|
913
|
+
TSFS 12 kap. 10 § ("En personlig fordonsskylt får inte utformas så att
|
|
914
|
+
den kan bedömas medföra olägenhet eller väcka anstöt") and 12 kap. 11 §
|
|
915
|
+
(trade-mark, company-name and personal-name rights are weighed under
|
|
916
|
+
the olägenhet test). Same posture as de.yml's "gute Sitten" note.
|
|
917
|
+
size_limits: >-
|
|
918
|
+
TSFS 12 kap. 9 §, verbatim: "En personlig fordonsskylt upptar två till
|
|
919
|
+
sju tecken om fordonet är försett med sådan skylt som avses i 6 kap.
|
|
920
|
+
2 § 1. En personlig fordonsskylt som avses i 6 kap. 2 § 2-4 upptar två
|
|
921
|
+
till sex tecken." So 2-7 on the 520x110 plate and 2-6 on the 300x110,
|
|
922
|
+
260x70 and 170x150 plates. Transportstyrelsen adds, on its own page and
|
|
923
|
+
not in the föreskrift, that "En mc-skylt får ha högst tre tecken per
|
|
924
|
+
rad" — a layout constraint on the two-row plate.
|
|
925
|
+
design:
|
|
926
|
+
plate: { w: 520, h: 110, unit: mm }
|
|
927
|
+
plate_variants:
|
|
928
|
+
- { w: 300, h: 110, unit: mm, note: "2-6 characters" }
|
|
929
|
+
- { w: 170, h: 150, unit: mm, note: "2-6 characters, at most three per row" }
|
|
930
|
+
- { w: 260, h: 70, unit: mm, note: "2-6 characters" }
|
|
931
|
+
background: { color: "#FFFFFF", finish: retroreflective, hex_basis: spec }
|
|
932
|
+
foreground: "#000000"
|
|
933
|
+
border: { color: "#000000" }
|
|
934
|
+
band: { side: left, color: "#003399", content: eu-stars+S, hex_basis: observed, note: "12 kap. 9 §: 'Skylten har ett sådant märke som anges i 7 kap. 2 § 2'" }
|
|
935
|
+
extra_field: { position: right, content: "the date the plate was ordered (12 kap. 12 §)" }
|
|
936
|
+
identification_sticker: >-
|
|
937
|
+
12 kap. 13-14 §: a separate identifieringsmärke carrying the vehicle's
|
|
938
|
+
ORDINARY registration number, the personal character combination and the
|
|
939
|
+
VIN must be stuck to the inside of the rear right side window. Without
|
|
940
|
+
it the personal plates may not be used. This is the mechanism that keeps
|
|
941
|
+
the ordinary number alive for tax, inspection and enforcement.
|
|
942
|
+
binding: owner
|
|
943
|
+
binding_note: >-
|
|
944
|
+
The RIGHT is personal and time-limited, not the plate: 11 kap. 9 §
|
|
945
|
+
förordningen (2019:383) gives ten years, renewable in five- or ten-year
|
|
946
|
+
periods, and the combination may be moved to another vehicle the holder
|
|
947
|
+
owns on notification. 15 kap. 7 § 6 lets Transportstyrelsen permit a
|
|
948
|
+
transfer of the right to someone else, but only "om det finns särskilda
|
|
949
|
+
skäl". The vehicle keeps its ordinary registration number throughout.
|
|
950
|
+
region_encoding: none
|
|
951
|
+
sources:
|
|
952
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 12 kap. 9-15 §: 2-7 / 2-6 characters, letters or digits or both, the EU mark, the no-look-alike rule, the anstöt/olägenhet tests, the order date on the plate, the identifieringsmärke and its placement; accessed 2026-08-02"
|
|
953
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 11 kap. 6-10 §: definition, Transportstyrelsen grants the right at a price Trafikverket sets, transfer between the holder's vehicles, ten years renewable by five or ten; accessed 2026-08-02"
|
|
954
|
+
- "https://rkrattsbaser.gov.se/sfst?bet=1988%3A965&upph=true # förordning (1988:965) om personliga fordonsskyltar 3 §: 'En personlig fordonsskylt skall uppta två till sex tecken. Tecknen utgörs av bokstäver eller siffror eller en kombination av båda' — the original two-to-SIX rule; 4 §: ten years, renewable, non-transferable; accessed 2026-08-02"
|
|
955
|
+
- "https://rkrattsbaser.gov.se/sfsr?bet=1988%3A965&upph=true # SFS register: 'Ikraft: 1988-10-01'; accessed 2026-08-02"
|
|
956
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/personlig-skylt/ # 'Du får använda alla bokstäver i svenska alfabetet, A-Ö'; the O/0 and I/1 equivalences; the space rule; the forbidden registration-number and beskickning shapes; SEK 6 900 for ten years; accessed 2026-08-02"
|
|
957
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/personlig-skylt/regler-for-att-aga-en-personlig-skylt/ # the identifieringsmärke requirement and the advice to refit ordinary plates when driving abroad; accessed 2026-08-02"
|
|
958
|
+
notes: >-
|
|
959
|
+
PERSONLIG FORDONSSKYLT, from 1 October 1988 (förordning 1988:965), and the
|
|
960
|
+
most schema-stressing entry in this file for three separate reasons: it
|
|
961
|
+
admits Å, Ä and Ö, which this dataset's serial alphabet cannot spell; it
|
|
962
|
+
treats O/0 and I/1 as THE SAME CHARACTER for allocation, which no regex
|
|
963
|
+
can express; and it counts a SPACE as a character position while
|
|
964
|
+
PRD-PLATES §2.6 classifies space as a separator a lenient consumer may
|
|
965
|
+
delete — a consumer deriving a separator-free twin of this regex is
|
|
966
|
+
therefore doing something semantically different here than everywhere
|
|
967
|
+
else in the dataset. The character budget also grew: 2-6 under the 1988
|
|
968
|
+
förordning, 2-7 on the full-size plate under TSFS 2015:63 12 kap. 9 §.
|
|
969
|
+
The date of that widening was not pinned (recorded gap).
|
|
970
|
+
|
|
971
|
+
# =========================================================================
|
|
972
|
+
# TÄVLINGSSKYLT — orange, compulsory, and a vocabulary gap.
|
|
973
|
+
# =========================================================================
|
|
974
|
+
- id: se-competition
|
|
975
|
+
class: specialty
|
|
976
|
+
categories: [car, motorcycle]
|
|
977
|
+
period: { start: 2016 }
|
|
978
|
+
period_evidence: enabling-instrument
|
|
979
|
+
matching: strict
|
|
980
|
+
format:
|
|
981
|
+
pattern: "LLL 999"
|
|
982
|
+
regex: '\A[A-Z]{3} ?(?:\d{3}|\d{2}[A-Z])\z'
|
|
983
|
+
regex_strict: '\A[ABCDEFGHJKLMNOPRSTUWXYZ]{3} ?(?:\d{3}|\d{2}[ABCDEFGHJKLMNPRSTUWXYZ])\z'
|
|
984
|
+
pattern_note: >-
|
|
985
|
+
The competition plate carries the vehicle's OWN registration number in
|
|
986
|
+
black on orange — "Tävlingsskyltarna för rallybilar och enduro- och
|
|
987
|
+
trialmotorcyklar är orangea med registreringsnumret i svart" — so the
|
|
988
|
+
regex is the union of both registration-number shapes. A personal
|
|
989
|
+
combination may also be issued on the orange ground (TSFS 12 kap. 9 §
|
|
990
|
+
last sentence, referring to 6 kap. 20 §).
|
|
991
|
+
design:
|
|
992
|
+
plate: { w: 300, h: 110, unit: mm }
|
|
993
|
+
plate_variants:
|
|
994
|
+
- { w: 170, h: 150, unit: mm, note: "two-row, enduro and trial motorcycles" }
|
|
995
|
+
- { w: 520, h: 110, unit: mm, note: "TSFS 6 kap. 19 §: another size under 2 § may be assigned where the vehicle's construction motivates it" }
|
|
996
|
+
background: { color: "#DE5E1C", finish: retroreflective, hex_basis: observed, spec_note: "TSFS 2015:63 6 kap. 20 §: 'Bokstäver och siffror utförs i svart på orange ljusreflekterande botten.'" }
|
|
997
|
+
foreground: "#000000"
|
|
998
|
+
band: { side: left, color: "#003399", content: eu-stars+S, hex_basis: observed, note: "6 kap. 19 §: 'Skylten har även ett sådant märke som anges i 7 kap. 2 § 2'" }
|
|
999
|
+
display: "one front and one rear on a rally car; rear only on an enduro/trial motorcycle"
|
|
1000
|
+
region_encoding: none
|
|
1001
|
+
eligibility:
|
|
1002
|
+
note: >-
|
|
1003
|
+
Keyed to a textkod in the vägtrafikregister, which is unusually
|
|
1004
|
+
machine-legible for an eligibility rule: T71MC (enduro and trial
|
|
1005
|
+
motorcycles) and T71R, T71X, T71Y, T71Z, T71ZE, T71ZK (rally cars) take
|
|
1006
|
+
the orange plate; T71ZO takes ordinary white plates.
|
|
1007
|
+
usage: >-
|
|
1008
|
+
The plate signals a dispens: "Fordon med tävlingsskylt har dispens som
|
|
1009
|
+
innebär att de endast får köras på allmänna vägar i samband med
|
|
1010
|
+
tävlingar, mellan specialsträckor i tävlingen." A competition motorcycle
|
|
1011
|
+
may additionally be ridden in connection with training or competition
|
|
1012
|
+
organised by a club registered with "Svenska motorcykel- och
|
|
1013
|
+
snöskoterförbundet eller Motorförarnas helnykterhetsförbund".
|
|
1014
|
+
sources:
|
|
1015
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63k.pdf # 6 kap. 19-20 §: which plate size for which competition vehicle, the EU mark, black on orange reflective; accessed 2026-08-02"
|
|
1016
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 3 kap. 9-10 §: 'En registreringsskylt för ett fordon som har registrerats för användning som tävlingsfordon (tävlingsfordonsskylt) ska ha det särskiljande utseende som framgår av föreskrifter...', and the duty to surrender them; accessed 2026-08-02"
|
|
1017
|
+
- "https://www.transportstyrelsen.se/TSFS/TSFS%202015_63.pdf # TSFS 2015:63 as enacted, Ikraftträdande p.1: 'Denna författning träder i kraft den 1 januari 2016' — the tävlingsskylt provisions were in the föreskrift from day one; accessed 2026-08-02"
|
|
1018
|
+
- "https://www.transportstyrelsen.se/sv/vagtrafik/fordon/aga-kopa-eller-salja-fordon/registreringsskyltar/tavlingsskyltar/ # 'Från och med 1 januari 2016 ska de flesta tävlingsfordon ha tävlingsskylt'; 300x110 front and rear for rally cars, 170x150 rear for enduro/trial; the textkod list; accessed 2026-08-02"
|
|
1019
|
+
notes: >-
|
|
1020
|
+
TÄVLINGSSKYLT. CLASS CAVEAT, and it is a real one: _meta/classes.yml
|
|
1021
|
+
defines `specialty` as "optional-design programs on standard serials (US
|
|
1022
|
+
state programs)", and this plate is neither optional nor a program — it is
|
|
1023
|
+
COMPULSORY for a registered competition vehicle and it exists to make such
|
|
1024
|
+
vehicles visually separable ("Genom en särskiljande registreringsskylt kan
|
|
1025
|
+
tävlingsfordon enklare urskiljas från övriga fordon"). `specialty` is
|
|
1026
|
+
recorded as the least-wrong fit and a `competition` class is proposed to
|
|
1027
|
+
the vocabulary in the dossier — the same move de.yml made when it filed
|
|
1028
|
+
the tax-exempt green plate under `agricultural`. Announced in the
|
|
1029
|
+
2013-05-08 review as a new plate type and brought in with TSFS 2015:63 on
|
|
1030
|
+
1 January 2016.
|
|
1031
|
+
|
|
1032
|
+
# =========================================================================
|
|
1033
|
+
# MILITARY — a different register, a different authority, a different colour
|
|
1034
|
+
# scheme, and the least-sourced entry here.
|
|
1035
|
+
# =========================================================================
|
|
1036
|
+
- id: se-military
|
|
1037
|
+
class: military
|
|
1038
|
+
categories: [car, van, truck, bus, motorcycle, trailer, machine]
|
|
1039
|
+
period: { start: 2009 }
|
|
1040
|
+
period_evidence: instrument-in-force
|
|
1041
|
+
# RECALL-ONLY (PRD-PLATES §2.7): militärtrafikförordningen states the
|
|
1042
|
+
# COLOURS and that the number is rendered in "gula siffror", and delegates
|
|
1043
|
+
# everything else — length, grouping, any leading letters — to Försvars-
|
|
1044
|
+
# makten's own föreskrifter, which were not reached in this pass. A 1-6
|
|
1045
|
+
# digit regex is therefore deliberately wider than whatever Försvarsmakten
|
|
1046
|
+
# actually issues, and a match is a shape hit and nothing more.
|
|
1047
|
+
matching: recall-only
|
|
1048
|
+
format:
|
|
1049
|
+
pattern: "999999"
|
|
1050
|
+
regex: '\A\d{1,6}\z'
|
|
1051
|
+
pattern_note: >-
|
|
1052
|
+
DIGITS ONLY is sourced — 5 kap. 6 § militärtrafikförordningen (2009:212):
|
|
1053
|
+
"Fordonets registreringsnummer ska anges på skylten med gula siffror på
|
|
1054
|
+
svart botten." The WIDTH is not: no reachable instrument states it. The
|
|
1055
|
+
1-6 quantifier is a recall envelope, not a claim.
|
|
1056
|
+
design:
|
|
1057
|
+
plate: { w: 360, h: 100, unit: mm }
|
|
1058
|
+
plate_variants:
|
|
1059
|
+
- { note: "Transportstyrelsen's 2014 publication: 'Mått: 360 x 100 mm. Finns i flera olika mått.' The other sizes are not enumerated anywhere reached." }
|
|
1060
|
+
background: { color: "#000000", finish: unspecified, hex_basis: spec, spec_note: "5 kap. 6 § militärtrafikförordningen names only 'gula siffror på svart botten' — the only Swedish plate that inverts the national black-on-light scheme. Black is taken at face value; the yellow is NOT, see foreground_note." }
|
|
1061
|
+
foreground: "#FFD400"
|
|
1062
|
+
foreground_note: >-
|
|
1063
|
+
HEX IS A PLACEHOLDER FOR A NAMED COLOUR, and is flagged rather than
|
|
1064
|
+
dressed up as observed: the instrument says "gula siffror" and nothing
|
|
1065
|
+
more, no RAL or RGB exists, and no authority-published image of a
|
|
1066
|
+
Swedish military plate was located in this pass (Transportstyrelsen's
|
|
1067
|
+
2014 publication shows one but the file was not reachable at a stable
|
|
1068
|
+
URL). Treat #FFD400 as "some yellow" until a render spec or an
|
|
1069
|
+
authority image is pinned.
|
|
1070
|
+
band: { side: none }
|
|
1071
|
+
binding: vehicle
|
|
1072
|
+
region_encoding: none
|
|
1073
|
+
sources:
|
|
1074
|
+
- "https://data.riksdagen.se/dokument/sfs-2009-212.html # militärtrafikförordning (2009:212) 5 kap. 3 § (Försvarsmakten assigns the number), 5 kap. 6 § (yellow digits on black; the number may instead be painted directly on the vehicle and that counts as a plate; 3 kap. 6-7 § förordningen 2019:383 apply in relevant parts; Försvarsmakten may issue further design rules), 5 kap. 6 a § (US military vehicles under the 2023 DCA may be given Swedish military plates on request); accessed 2026-08-02"
|
|
1075
|
+
- "https://rkrattsbaser.gov.se/sfsr?bet=2009%3A212 # SFS register: 'Ikraft: 2009-04-29 överg.best.'; accessed 2026-08-02"
|
|
1076
|
+
- "https://web.archive.org/web/20160519223846if_/http://www.transportstyrelsen.se/globalassets/global/publikationer/vag/fordon/svenska_registreringsskyltar_2014.pdf # Transportstyrelsen publication 201.143 (U07), March 2014: 'Militär registreringsskylt — Fordon som finns i det militära fordonsregistret använder denna skylt. Mått: 360 x 100 mm. Finns i flera olika mått.'; accessed 2026-08-02"
|
|
1077
|
+
- "https://data.riksdagen.se/dokument/sfs-2019-383.html # 1 kap. 1 § andra stycket: the militärtrafikförordning's registration rules apply INSTEAD of this ordinance's; 2 kap. 3 a §: Försvarsmakten, FMV and FRA vehicles enter the civil vägtrafikregister on notification under 5 kap. 13 § militärtrafikförordningen; accessed 2026-08-02"
|
|
1078
|
+
notes: >-
|
|
1079
|
+
MILITÄR REGISTRERINGSSKYLT. A separate REGISTER, not merely a separate
|
|
1080
|
+
series: Försvarsmakten keeps the militära fordonsregistret and assigns the
|
|
1081
|
+
numbers, and 1 kap. 1 § förordningen (2019:383) disapplies the civil rules
|
|
1082
|
+
for it. Two things are hard-sourced — yellow digits on black, and 360x100
|
|
1083
|
+
mm — and the grammar is not, which is why `matching: recall-only`.
|
|
1084
|
+
Försvarsmaktens egna föreskrifter (FFS) were not reached in this pass;
|
|
1085
|
+
pinning them is the single highest-value follow-up for this series.
|
|
1086
|
+
period.start 2009 is INSTRUMENT-DATED (militärtrafikförordningen took
|
|
1087
|
+
effect 2009-04-29, replacing militära vägtrafikkungörelsen 1974:97); the
|
|
1088
|
+
Swedish military registration system is decades older. Live edge worth
|
|
1089
|
+
recording: 5 kap. 6 a §, added by förordning (2024:603), lets American
|
|
1090
|
+
military vehicles present in Sweden under the December 2023
|
|
1091
|
+
defence-cooperation agreement carry Swedish military plates on request.
|