Cannabis Freedom Index

Changelog 296a1a8

armenia; qatar; syria; paraguay

34 history entries added6 history entries edited4 country profiles edited3 articles written1 article edited3 files of code, design or docs +1,042 −95 lines

History changes.yaml

Added 34

Edited 6

Armenia plans to allow industrial hemp

description

TheAt a cabinet meeting on 4 February the government announced plans tothat it would permit industrial hemp cultivation underas part of its programme to revive the economy after the pandemic and the war. The deputy prime minister, Tigran Avinyan, said about 40% of Armenia's farmland lay idle. The prime minister, Nikol Pashinyan, said no hemp would be grown for human consumption, and the economy minister promised oversight by law -enforcement oversight. Two years earlier the health ministry had denied any plan to decriminalise cannabis.

sources

OC Media — Getting Hye, Armenia to legalise industrial hemp cultivation (5 February 2021) 1 unchanged

Paraguay legalises medical cannabis

description

AOn 5 December the Senate gave final approval to a law set upcreating a statenational programme for the medical and scientific study of cannabis, with free access for registered patientsand removing cannabis, its resin, extracts and tinctures from the list of dangerous drugs. Home growingParents' and patients' associations had pressed for it; cannabis oil had been sold on controlled prescription since June. The law obliges the state to supply oil to patients on a national register. Growing at home was added laternot included.

sources

Última Hora — Congreso sanciona uso medicinal de la marihuana (5 December 2017) Última Hora — Ley de uso del cannabis medicinal es letra muerta, denuncian (20 April 2022) 1 unchanged

Armenia decriminalises drug use

date

20092008

description

Having used cannabis stopped beingReforms carried out in 2008 removed the criminal penalty for mere drug use. Until then a crimeperson who only tested positive for past use, with no drugs found on them, could be prosecuted. Possession still bringsUse became an administrative offence with a heavyvery high fine, and prison of about two months if it200,000 to 400,000 drams; a small amount for personal use is not paidtreated the same way. The drug law still prohibits possessing any amount without authorisation, lets the police order a test on suspicion of use, and puts users on a narcological register for at least a year.

sources

Canadian HIV/AIDS Legal Network, Eurasian Harm Reduction Network & IDPC — Submission to the Universal Periodic Review of Armenia (November 2009, PDF) PanARMENIAN.Net — Lawmaker proposes tougher drug penalties (11 May 2026) 1 unchanged

Syria allows the death penalty for drugs

date

1993-04-12

description

Law No. 2 of 1993 authorised punishment up to, approved by the People's Assembly on 31 March and includingissued on 12 April, replaced the drug law of 1960. Article 39 sets death for smuggling or making drugs and for growing the listed plants; a court that finds mitigating grounds may reduce it to life or to at least twenty years, transportingbut not for a repeat offender, an official or a member of an international gang. Dealing brings life imprisonment. Possession for personal use brings a term of detention and selling narcoticsa fine of 100,000 to 500,000 pounds, which the court may suspend to send an addict to a clinic for three months to a year, and no case is brought against a user who comes forward for treatment. Amnesty International had appealed to President Hafez al- Assad not to sign the death penalty clause.

sources

قانون المخدرات السوري رقم 2 لعام 1993 — text as reproduced by Lawyer Egypt Amnesty International — Syria, death penalty for drug offences (MDE 24/002/1993, 6 April 1993) 1 unchanged

Paraguay exempts 10 g for personal use

description

Law 1340 exempts from punishment a person holding a small amount only for their own use, withmeasured as a daily dose: no more than 10 g of cannabis as the guidelinemarijuana, or 2 g of cocaine, heroin or other opiates. A judge decides whether it was personal use, so arrest remains possible.

sources

TNI — About drug law reform in Paraguay (30 June 2015) 1 unchanged

Qatar passes its narcotics law

description

A study of Qatar's drug policy calls this the country's first law on narcotic drugs, although it repealed a decree-law of 1966. Law 9 of 1987 sets six monthspunishes importing, producing or growing for trade with ten to threetwenty years in prison, and a finerepeat offender with death or life imprisonment. Possession for possession for personal use. Trafficking can and use itself bring long prison and a fine; the sources read give different terms. A court may send an addict to a clinic for three months to a year in place of the sentence, no case is brought against a user who comes forward for treatment, and repeat traffickers face life imprisonmenta spouse or deathclose relative may ask for a user to be committed.

sources

Law No. 9 of 1987 on combating narcotic drugs and dangerous psychotropic substances, unofficial Arabic copy (Mohamah.net) 3 unchanged

Countries and states 4 files

Armenia countries/am.yaml

segments › possession › text

Since 2008 possessing a small amount for personal use without intent to sell is an adminis … but there is no prison and the fine is waived for people who voluntarily seek treatment. In drams the fine is 200,000 to 400,000; a bill before parliament in May 2026 would double it.

segments › possession › sources

hca, iwpr, upr09, pan26

segments › cultivation › text

Growing cannabis is a criminal offence, and people living near wild stands say the police destroy the plants. Industrial hemp cultivation is permitted under licencewith no more than 0.3% THC may be grown since 2021, but only by licensed companies and in greenhouses, not by individuals.

segments › cultivation › sources

hca, evn22, balant25

context › production › text

Reliable national information about lawful cannabis production was not establishedSince June 2021 industrial hemp with no more than 0.3% THC may be produced and processed. Licences are issued by the retained sourceshealth ministry to companies only, for up to ten years, with separate licences for growing and for trade and processing, a minimum capital of 10 million drams and growing in greenhouses. Six companies held licences in January 2022. No cannabis with more THC may be produced.

context › production › sources

evn22

context › products › text

Reliable national information about legally available cannabis productsHemp seed is a traditional food and seed powder was not established by the retained sourcesrecorded on sale in Yerevan's markets in 2020. British travel advice says marijuana, CBD and THC products are all illegal to use, possess or trade.

context › products › sources

balant25, fcdo

context › medical › text

The retained sources do not establish whether aNo medical cannabis programme operates. In February 2019 the health minister said there could be no initiative to free the use of narcotics and that he would veto one. British travel advice warns that a person can be prosecuted for cannabis products even when they were prescribed abroad.

context › medical › sources

arm19, fcdo

context › consequences › text

An administrative offence is not a criminal record, but users may beare placed on a narcological register for observation, for at least a year. The drug law lets the police order a drug test on suspicion of use, and a person diagnosed as dependent can be sent to compulsory treatment.

context › consequences › sources

hca, upr09

sources

Canadian HIV/AIDS Legal Network, Eurasian Harm Reduction Network & IDPC — Submission to the Universal Periodic Review of Armenia (November 2009, PDF) PanARMENIAN.Net — Lawmaker proposes tougher drug penalties (11 May 2026) EVN Report — Challenges and opportunities for growing industrial hemp in Armenia (8 February 2022) Balant et al. — Bridging past and present, exploring Cannabis traditions in Armenia, Journal of Cannabis Research 7:8 (2025) Armenpress — No plans to legalize weed in Armenia (25 February 2019) Azatutyun (RFE/RL) — Armenian officials alarmed by rise in drug crimes (31 October 2023) 3 unchanged

context › arrests › text

No figures by drug were found. Drug crimes recorded by the police more than doubled in the first nine months of 2023, a rise officials put down to synthetic drugs sold online, and the interior minister called for making drug addiction a crime again.

context › arrests › sources

azat23

Paraguay countries/py.yaml

summary

Up to 10 g for personal use is exempt from punishment. Medical cannabis is legal on paper, including permitted home growing forbut little reaches patients, and a law to let them grow at home was vetoed in 2020.

segments › cultivation › text

Illegal for personal use, and enforced — in 2024 a woman in her sixties was jailed over two plants. A law allows registeredbill letting patients towith a medical certificate grow at home was passed by Congress in August 2020 and vetoed by the president that September; the Senate voted for medicinal useit again in November 2020, but advocates sayand in April 2022 it has barely been implementedwas still pending in the Chamber of Deputies. No report that it took effect was found.

segments › cultivation › sources

ln, uh, lnveto, lnsen

context › production › text

The state licenses a small number of companiesTwelve pharmaceutical firms were licensed to produce medical cannabis under a cap of thirteen, lifted in 2022; in 2022 patients said none was growing in the country. Hemp has been authorised since October 2019, and a Paraguayan firm began exporting hemp foods in 2021. The illicit crop dwarfs both: an estimated 6,000 to 8,000 hectares, mostly in Amambay and Canindeyú, with 77% of the harvest going to Brazil.

context › production › sources

iba, fer22, lnsen, ln21, unav21

context › medical › text

Law 6007 of 2017 created a national programme: patients must be on a national registry to receive cannabis-derived products. A laterIn April 2022 the registry held three doctors and forty patients, and the patients' association called the law decriminalised homea dead letter. Home growing for patients, but access remains poor was approved by Congress in practice2020 but vetoed.

context › medical › sources

iba, ferrere, uh, lnveto

sources

La Nación — Ejecutivo veta proyecto de ley que despenaliza el cultivo de marihuana para uso medicinal (11 September 2020) La Nación — Senado se ratifica en uso medicinal de la marihuana (5 November 2020) Ferrere — Poder Ejecutivo elimina límites de licencias para producción e industrialización de cannabis medicinal en Paraguay (27 September 2022) La Nación — Paraguay se convierte en líder mundial del cannabis industrial (4 August 2021) Eduardo Uranga — Paraguay se mantiene como principal productor de marihuana de Sudamérica, Universidad de Navarra, Global Affairs (May 2021) 9 unchanged

Qatar countries/qa.yaml

segments › possession › text

Law 9 of 1987 on narcotics, amended in 2023, bans possession of cannabis in any form, seed … o three years in prison and a fine of QR10,000 to QR20,000 for possession for personal use; other sources give much longer terms. A legal site's copy of the law gives a heavier Article 37: two to five years and QR50,000 to QR100,000 for possessing or growing for personal use. Trace amounts are prosecuted.

segments › possession › sources

pen, cann, l9m

segments › cultivation › text

Cultivation and production are bannedGrowing the listed plants for trade is punished like trafficking, with severe custodial penaltiesten to twenty years in prison and a fine of QR100,000 to QR300,000. Growing for personal use falls under the same article as possession for personal use.

segments › cultivation › sources

cann, l9m

segments › enforcement › text

Zero tolerance, with strict screeningbags and passengers scanned at the airport; travellers have been arrested with very small quantities. A courier caught there with hashish in 2021 received five years, a fine of QR300,000 and deportation. A court may send an addict to a clinic for three months to a year in place of the sentence, and a user who comes forward for treatment is not prosecuted.

segments › enforcement › sources

cann, ap22, dn21, l9m

segments › sharing › text

TraffickingSelling, or possessing with intent to sell, carries upseven to fifteen years and a fine of QR100,000 to QR200,000; giving drugs to another person without payment three to seven years. Importing or producing for trade carries ten to twenty years, and repeat traffickers face life imprisonment or death.

segments › sharing › sources

cann, l9m

segments › consumption › text

Use is a crime. British travel advice says there is zero tolerance, that penalties for usi … amounts, and that a long prison sentence, deportation and heavy fines should be expected. The copy of the law read gives one to three years and a fine of QR10,000 to QR20,000, or either, for use; in 2016 a man was sentenced to one year and QR10,000 for using drugs.

segments › consumption › sources

fcdo, l9m, pen16

context › death penalty › text

Repeat traffickers faceArticle 34 of the 1987 law provides death or life imprisonment for a repeat offence of importing, producing or growing for trade. Courts have passed death sentences for hashish: for 160 kg in 2008, in the defendant's absence, for about 600 kg of hashish and opium in 2013, and for 120 kg in 2016. No execution for drugs was found, and in 2013 Qatar had reported no execution of any kind for more than a decade.

context › death penalty › sources

cann, l9m, hoc08, dn13, pen16

sources

Law No. 9 of 1987 on combating narcotic drugs and dangerous psychotropic substances, unofficial Arabic copy (Mohamah.net) Hands Off Cain — Man in drug haul attempt gets death, citing Gulf Times (27 March 2008) Doha News — Report, Qatar court sentences man to death for drug trafficking (14 March 2013) The Peninsula — Drug trafficker sentenced to death (28 December 2016) Doha News — Man sentenced to five years for smuggling weed (7 January 2021) Associated Press via Fox 5 New York — What you should know about laws and customs in Qatar ahead of the 2022 World Cup (9 November 2022) 4 unchanged

Syria countries/sy.yaml

segments › possession › text

Hashish is controlled under the 1993 narcotics law. Possession for personal consumption is … cts who complete state rehabilitation, and have no prior record, face no further penalty. Article 43 of the law, in the copy read, sets a term of detention and a fine of 100,000 to 500,000 pounds for having, buying or carrying drugs for personal use; the court may suspend the sentence and send an addict to a clinic for three months to a year, though not a third time.

segments › possession › sources

wiki, l2

segments › cultivation › text

Cultivation can bring life imprisonment or death; the 1993 law explicitly extended the death penalty to growers. Growing for personal use is not treated separately: Article 39 covers all unlicensed growing, and a court may reduce death to life or to at least twenty years.

segments › cultivation › sources

wiki, l2

segments › sharing › text

Trafficking carries long terms, life or death for large quantities. Under the 1993 law selling, or possessing for sale, brings life imprisonment and a fine of one to five million pounds; giving drugs to another person without payment brings at least ten years.

segments › sharing › sources

wiki, l2

segments › consumption › text

Use is an offence, with the treatment route for dependent users. No case is brought against a user who goes to the authorities for treatment of their own accord, or whose spouse or close relative asks for it, unless they were caught in the act; treatment is confidential.

segments › consumption › sources

wiki, l2

context › death penalty › text

Trafficking in large quantities can bring life imprisonment or death, and a 1993 law explicitly extended the death penalty to growers. Article 39 names smuggling, making drugs and growing the listed plants. Mitigation is excluded for a repeat offender, an official charged with fighting drugs, someone who used a minor, or a member of an international smuggling gang. A judicial source in 2014 put the range for trafficking at ten years to death.

context › death penalty › sources

wiki, l2, so14

context › production › text

None. Hashish production boomed during the civil war in areas outside state control: in the Kurdish enclaves from 2012 and in the hills of Idlib, where it paid for weapons. The Islamic State burned fields it found. After the fall of the Assad government the security forces destroyed about 15 tonnes of hashish in a few weeks.

context › production › sources

gn, rudaw13, cv14, occrp25

sources

The Syrian Observer, translating Al-Watan — on drug cases before the courts (2 July 2014) Rudaw — Anti-drugs campaign leads to tensions among Syrian Kurdish rivals (1 July 2013) CounterVortex — ISIS burns Syrian cannabis fields (15 September 2014) Asharq Al-Awsat — Over 1,800 drug users, dealers and traders arrested in 'Rojava' territory in Syria (29 June 2021) OCCRP — Syria moves to end Captagon empire built under Assad (6 June 2025) 4 unchanged

context › arrests › text

No national figures for cannabis were found. A judicial source counted 620 drug cases before the courts in four months of 2014, against fewer than 500 in all of 2013. In the north-east, outside the state's control, the Autonomous Administration's security forces reported 1,875 arrests in a campaign from September 2020 to June 2021, 1,165 of them users, and 1,700 kilograms of hashish seized.

context › arrests › sources

so14, aawsat21

Articles and atlas entries 4

syria-death-penalty-1993 articles/syria-death-penalty-1993.md

text

Syria's Law No. 2 of On 12 April 1993 made capital punishment available for majorSyria issued a new drug offences, including unauthorised cultivation of scheduled plantslaw. It turned an existing prohibition into a system in which a non-violenthas been the basis of the country's drug conviction could carry acontrol since, and it does two things at once: it puts farmers who grow cannabis under the same article as smugglers, with death sentenceas the penalty, and it offers people who use drugs a way out of the courts. ## TheFrom bill and the enactedto law Amnesty International reported on 6 April 1993 that SyriaThe People's National Assembly had approved athe bill including death for drug farmers, dealers and manufacturers on 31 March 1993. It urgedOn 6 April Amnesty International appealed to President Hafez al-Assad not to sign the capital clause that extended the death penalty to "farmers, dealers and manufacturers of drugs". Law No. 2The law was nevertheless enacted on 12 April. Harm Reduction Internationalissued six days later reproduced, to take effect ninety days after publication. It repealed the substancedrug law of 1960, which dated from Syria's union with Egypt. ## The scale of penalties | Article | Act | Penalty | |---|---|---| | 39. Capital punishment applies to anyone who smuggles narcotic | Smuggling, making drugs, manufactures them outsidegrowing the lawlisted plants | Death | | 40 | Selling, or unlawfully cultivatespossessing or carrying for sale | Life, and a plant listed in Schedule No. 4. Smuggling those plants at any stagefine of growth—1 to 5 million pounds | | 42 | Giving drugs to someone without payment | At least 10 years | | 43 | Having or smuggling their seeds—is included as well. The accessible secondary sources do not reproduce Schedule No. 4 in full. The cannabis connection therefore rests on the site's separately sourced record buying drugs for personal use | A term of Syria's earlier cultivation ban and on the classification used in the existing history entrydetention, not onand a schedule visible in these two documents. ## fine of 100,000 to 500,000 pounds | Death was not the only possible sentence under Article 39 allowedis not always final. A court that finds mitigating circumstances, withgrounds may reduce it to life imprisonment and a substantial fine as the alternativeor to no less than twenty years. Harm Reduction International says that mitigation was unavailable in specified cases, including when the offender wasIt may not do so for a publicrepeat offender, an official assigned to combatcharged with fighting drugs, someone who used a minor, or participated ina member of an international smuggling organisationgang. That distinction matters: the statute authorised capital punishmentGrowing has no lighter form. Article 43, but it didon personal use, covers having, buying and carrying, not mean every drug case automatically ended in executionplanting. Nor does theIn 2014 a judicial source support treating personal possession asput it plainly to a capital offencegovernment newspaper: whoever plants cannabis is considered a drug trader. ## Evidence of later use The 2010 review recordsdoor left open for users The same Article 43 lets a publicised 2008 crackdown in whichcourt suspend the government announced seven death sentencessentence of a person shown to be addicted and send them to a clinic, for at least three months and at most a year. A committee of a health official, a prosecutor, a drug traffickers-control officer and a doctor proposes the release. It also stressesNobody may be sent a third time. A user who goes to the scarcity of reliable information about Syria's use ofauthorities for treatment unprompted, or whose spouse or close relative asks for it, is not prosecuted at all, unless already caught in the death penalty and reports concerns about detention and trial safeguardsact. Whoever reveals that a person was treated can be jailed for up to a year. The judicial source of 2014 summed up the idea: the law explainsregards addicts as the extreme enforcement setting shown onvictims of dealers. ## Why the current index did not move [Syria profile's](/country/sy/), after scores were already at or near the country'sbottom before [this law](/history/syria-death-penalty-1993/): growing had been banned [since 1943 cultivation ban](/history/syria-cultivation-ban-1943/). In the index, and the 1993 law doesreplaced an existing drug law, not create a separate score stepgap. SyriaThe death penalty for growers is recorded in the profile and in the country's earlier prohibition already carries the strict baselinestatus, andwhich the available record does not establish the exact six scores immediately before the capital lawdo not change.

sources

قانون المخدرات السوري رقم 2 لعام 1993 — text as reproduced by Lawyer Egypt Amnesty International — Syria, death penalty for drug offences (MDE 24/002/1993, 6 April 1993) The Syrian Observer, translating Al-Watan — on drug cases before the courts (2 July 2014) Amnesty International — Syria, proposed expansion of the scope of the death penalty (6 April 1993) Harm Reduction International — The Death Penalty for Drug Offences, Global Overview 2010

Code, design and documents 3 files

source-archive.json +5 −1

Not shown: a picture, a generated file, or past the length shown per change.

src/components/HomePage.astro +53 −8
@@ -14,4 +14,15 @@ import { SHOW_PRICES } from "../lib/config.js";
 import { homeSeo } from "../lib/seo.js";
 import { viewByMetric } from "../lib/map-views.js";
+import { panelRows, PANEL_FROM } from "../lib/exports.js";
+
+// Rankings by year: for each place, the years in which its index score changed and the score from
+// then on ([[1900, 98.4], [1937, 11.2], …]), taken from the yearly panel. The table reads it when
+// another year is chosen.
+const yearScores = {};
+for (const r of panelRows) {
+  const list = (yearScores[r.id] ??= []);
+  if (!list.length || list.at(-1)[1] !== r.score) list.push([r.year, r.score]);
+}
+const rankYears = Array.from({ length: +DATA_SNAPSHOT - PANEL_FROM + 1 }, (_, i) => +DATA_SNAPSHOT - i);
 
 // The home page, or, with `view`, just the map on a page of its own (see /map/).
@@ -276,5 +287,7 @@ const columnGroups = [["Shown by default", BASE_COLUMNS], ...["Score segments",
         </div>
         <div class="filters">
-          <input type="search" id="search" placeholder="Search country…" aria-label="Search country">
+          <select id="rankYear" aria-label="Year of the ranking" title="Show the ranking as it stood at the end of a year">
+            {rankYears.map((y, i) => <option value={y}>{i === 0 ? `${y} (latest)` : y}</option>)}
+          </select>
           <select id="region" aria-label="Filter by region">
             <option value="">All regions</option>
@@ -299,4 +312,6 @@ const columnGroups = [["Shown by default", BASE_COLUMNS], ...["Score segments",
         </div>
       </div>
+      <p class="year-note" id="yearNote" hidden>Scores and ranks as they stood at the end of <b></b>, rebuilt from each country's history. Before a country's first recorded change the table shows its starting scores, and where the first ban has no known date the score is spread across the estimated period. Columns that describe today are hidden. <a href="#rankings" id="yearBack">Back to the latest year</a></p>
+      <script type="application/json" id="rankYears" set:html={JSON.stringify(yearScores)}></script>
       <div class="card table-card">
         <table id="table">
@@ -317,5 +332,5 @@ const columnGroups = [["Shown by default", BASE_COLUMNS], ...["Score segments",
           <tbody>
             {places.map((c) => (
-              <tr data-id={c.id} data-rank={c.rank ?? c.worldRank - 0.5} data-name={c.name} data-region={c.region}
+              <tr data-id={c.id} data-rank={c.rank ?? c.worldRank - 0.5} data-territory={c.rank ? undefined : ""} data-name={c.name} data-region={c.region}
                   data-rec={REC_ORDER.indexOf(c.rec)} data-med={MED_ORDER.indexOf(c.med)} data-reckey={c.rec} data-users={c.use.users} data-share={c.use.prevalence} data-price={SHOW_PRICES ? streetFlower(c)?.usd ?? -1 : undefined}
                   {...Object.fromEntries(EXTRA_COLUMNS.map((col) => [`data-${col.key}`, col.sort(c)]))}>
@@ -653,6 +668,5 @@ const columnGroups = [["Shown by default", BASE_COLUMNS], ...["Score segments",
     const rows = [...tbody.querySelectorAll("tr[data-id]")];
     const emptyRow = $("#emptyRow");
-    const state = { q: "", region: "", rec: "", sort: "rank", asc: true };
-    const norm = (s) => s.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase();
+    const state = { region: "", rec: "", sort: "rank", asc: true };
     const num = (r, k) => +r.dataset[k];
     const sorters = {
@@ -669,5 +683,4 @@ const columnGroups = [["Shown by default", BASE_COLUMNS], ...["Score segments",
 
     function applyTable() {
-      const q = norm(state.q.trim());
       // extra columns sort on a number kept on the row, highest first, then by rank
       const sorted = [...rows].sort(sorters[state.sort] ?? ((a, b) => num(b, state.sort) - num(a, state.sort) || num(a, "rank") - num(b, "rank")));
@@ -675,6 +688,5 @@ const columnGroups = [["Shown by default", BASE_COLUMNS], ...["Score segments",
       let shown = 0;
       sorted.forEach((r) => {
-        const ok = (!q || norm(r.dataset.name).includes(q)) &&
-          (!state.region || r.dataset.region === state.region) &&
+        const ok = (!state.region || r.dataset.region === state.region) &&
           (!state.rec || r.dataset.reckey === state.rec);
         r.hidden = !ok;
@@ -689,5 +701,38 @@ const columnGroups = [["Shown by default", BASE_COLUMNS], ...["Score segments",
     }
 
-    $("#search").addEventListener("input", (e) => { state.q = e.target.value; applyTable(); });
+    // ── Another year: the same rows with the score and rank they had at the end of that year ──
+    const YEAR_SCORES = JSON.parse($("#rankYears").textContent);
+    const yearSel = $("#rankYear"), yearNote = $("#yearNote");
+    const LATEST = +yearSel.options[0].value;
+    const today = new Map(rows.map((r) => [r, { rank: r.dataset.rank, cell: r.cells[0].textContent, val: r.querySelector(".score-val").textContent, bar: r.querySelector(".bar i").getAttribute("style") }]));
+    const scoreIn = (id, year) => { let v = YEAR_SCORES[id][0][1]; for (const [y, s] of YEAR_SCORES[id]) { if (y > year) break; v = s; } return v; };
+    function setYear(year) {
+      const past = year !== LATEST;
+      $("#table").classList.toggle("past-year", past);
+      yearNote.hidden = !past;
+      yearNote.querySelector("b").textContent = year;
+      if (!past) {
+        for (const [r, t] of today) { r.dataset.rank = t.rank; r.cells[0].textContent = t.cell; r.querySelector(".score-val").textContent = t.val; r.querySelector(".bar i").setAttribute("style", t.bar); }
+      } else {
+        const scored = rows.map((r) => ({ r, v: scoreIn(r.dataset.id, year), territory: "territory" in r.dataset }));
+        // countries take the ranks; a territory sits where its score would put it, without one
+        const ranked = scored.filter((x) => !x.territory).sort((a, b) => b.v - a.v || a.r.dataset.name.localeCompare(b.r.dataset.name));
+        ranked.forEach((x, i) => { x.r.dataset.rank = i + 1; x.r.cells[0].textContent = i + 1; });
+        for (const x of scored.filter((x) => x.territory)) x.r.dataset.rank = ranked.filter((c) => c.v > x.v).length + 0.5;
+        for (const x of scored) {
+          x.r.querySelector(".score-val").textContent = Math.round(x.v);
+          x.r.querySelector(".bar i").setAttribute("style", `width:${x.v}%;background:${tierColor(x.v)}`);
+        }
+      }
+      const url = new URL(location.href);
+      if (past) url.searchParams.set("year", year); else url.searchParams.delete("year");
+      history.replaceState(null, "", url);
+      applyTable();
+    }
+    yearSel.addEventListener("change", () => setYear(+yearSel.value));
+    $("#yearBack").addEventListener("click", () => { yearSel.value = LATEST; setYear(LATEST); });
+    const wanted = +new URLSearchParams(location.search).get("year");
+    if (wanted >= +yearSel.options[yearSel.options.length - 1].value && wanted < LATEST) { yearSel.value = wanted; setYear(wanted); }
+
     $("#region").addEventListener("change", (e) => { state.region = e.target.value; applyTable(); });
     $("#recFilter").addEventListener("change", (e) => { state.rec = e.target.value; applyTable(); });

src/styles/global.css +6 −0
@@ -1658,2 +1658,8 @@ button.sv-row .sv-chip { font: 400 10.5px var(--mono); text-transform: uppercase
 .rs-pill b { font-weight: 500; font-size: 12px; color: var(--text); }
 @media (max-width: 700px) { .rs-pill { position: static; width: fit-content; margin-bottom: 16px; } }
+
+/* ── Rankings for another year: only what the history can rebuild is shown ── */
+.year-note { margin: 0 0 14px; max-width: 96ch; font-size: 13px; color: var(--muted); }
+.year-note b { color: var(--text); font-weight: 500; }
+.year-note a { color: var(--text-2); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
+#table.past-year [data-col], #table.past-year .trend { display: none; }

    ↑↓ to move, ↵ to open.