Cannabis Freedom Index

Changelog 3de3399

Correct Bosnia, Kazakhstan and Mexico where the profile misstated the current offence.

Federation possession is a crime of up to one year, Kazakhstan's small-amount offence is in the Criminal Code, and Mexico's personal permits have no universal gram or plant cap.

3 country profiles edited2 files of code, design or docs +154 −40 lines

Countries and states 3 files

Bosnia and Herzegovina countries/ba.yaml

summary

Illegal; personal. In the Federation, unauthorized possession of a narcotic drug is generally fined as a misdemeanour while growing and dealing are crimescriminal offence with up to one year in prison, including for personal use. Republika Srpska's criminal code does not copy that offence. A December 2025 decision opened the way to cannabis-based medicines, but the prescribing rules it depends on will not be adopted in the Federation before 2027.

segments › possession › text

Cannabis is illegal. Possession for personal use is generally handled as a misdemeanour with a fine underIn the state law on narcotic drugsFederation, whilearticle 239(3) of the entity criminal codes punishcode punishes unauthorized possession of a narcotic drug with up to one year in prison. That paragraph sets no smaller tier for a personal amount. Republika Srpska's criminal code, consolidated through 2023, punishes unauthorized production and trade; practice differs between the Federation, Republika Srpskaincluding holding a drug in order to sell it, and enabling another person to use a drug. It has no matching standalone possession offence. Brčko District's possession penalty was not established from a statute read for this entry.

segments › possession › sources

cannfbihcc, wikirscc

segments › enforcement › text

Fines for usersIn the Federation, unauthorized possession can bring up to one year in prison for growers. The statute sets that maximum. Growers and dealers face the longer production and trade sentences.

segments › enforcement › sources

cannfbihcc, rscc

context › consequences › text

A misdemeanourIn the Federation, unauthorized possession is recorded buta criminal offence under article 239(3), so a conviction is not a criminal record. An indictment is not itself a conviction.

context › consequences › sources

cannfbihcc

context › visitors › text

There is no legal recreational supply for anyone. Possession for personal use is generally handled as a misdemeanour with a fine underIn the state law on narcotic drugsFederation, whileunauthorized possession can bring up to one year in prison under article 239(3) of the entity criminal codes punish production and tradecode. Republika Srpska's criminal code does not contain that standalone possession offence. Brčko District's penalty was not established from a statute read for this entry.

context › visitors › sources

cannfbihcc, wikirscc

sources

Paragraf — Criminal Code of the Federation of Bosnia and Herzegovina, consolidated text Criminal Code of Republika Srpska, consolidated text through Official Gazette 73/2023 7 unchanged

Kazakhstan countries/kz.yaml

summary

Small amounts for personal use are an administrativeUnauthorized possession of even a small amount, without intent to sell, is a criminal offence; wild under Article 296, with a fine, corrective work, community service or up to 40 days' arrest. An especially large amount can bring three to seven years. A proposal to take simple possession out of the Criminal Code has not been enacted. Wild cannabis covers the Chuy ValleyChu valley.

context › consequences › text

Offences under Article 296 are recorded;is in the Criminal Code. A conviction for unauthorized possession is a criminal record. The basic amount is punished by a fine, corrective work, community service or short arrest, and users may be placed on a narcological register. A ministry proposal to remove some of these acts from the Criminal Code has not been enacted.

context › consequences › sources

cc296, zakon

Mexico countries/mx.yaml

segments › possession › text

Without paperworkan authorization, the only protection is the long-standing rule is that up to 5 g is not prosecuted, and anything over 5 g can still be prosecuted. In June 2021 the Supreme Court struck downremoved the ban onlegal obstacle to adult personal use, but the right is exercised through an individual permit from the health regulator. COFEPRIS, which allows possession of up may authorize a named adult to 28 gacquire seed, sow, grow, harvest, prepare, possess and transport cannabis for that person's own recreational use. Without a permitThe declaration sets no universal gram limit for those authorizations, anything over 5 g can still be prosecutedand it excludes import, trade, supply and distribution. The Supreme Court has twice protected individuals held with more than 5 g, in May 2022 and February 2026, telling judges to weigh whether the cannabis was for personal use, but in. In 2026 it fell one vote short of removing the limit5 g rule for everyone.

segments › possession › sources

dgi, cofepris26, cms, tms, zeta22, imp26

segments › cultivation › text

Legal only with a COFEPRIS permit, which authorises growingGrowing for yourone's own recreational use — in practice uprequires a COFEPRIS authorization issued to six plantsa named adult. The 2021 declaration covers sowing, eightcultivation and harvest for households with two or more adultsthat person, and it leaves the rules for acquiring seed to COFEPRIS. The permit requiresIt sets no nationwide plant count. Growing without an authorization is a formal applicationcrime, and obtaining legal seeds is itselfremains a separate problem. Growing without one is a crime.

segments › cultivation › sources

rmndgi, giqcofepris26

context › visitors › text

There is no legal recreational supply for anyone. The individual permit that allows anCOFEPRIS may authorize a named adult to hold uppossess cannabis for that person's own recreational use. The authorization excludes supply to 28 g is issued byanyone else, and the health regulator COFEPRIS; without one2021 declaration sets no universal gram allowance. Without an authorization, up to 5 g is not prosecuted and anything above that can be.

context › visitors › sources

cmsdgi, giqcofepris26, cms, yuc

sources

Diario Oficial de la Federación — Supreme Court General Declaration of Unconstitutionality 1/2018 (15 July 2021) COFEPRIS — statement on the Supreme Court declaration for recreational self-consumption (7 July 2026) 16 unchanged

Code, design and documents 2 files

docs/research/profile-legal-2026-10-23.md +51 −0
@@ -0,0 +1,51 @@
+# Current-law corrections for Bosnia, Kazakhstan and Mexico
+
+23 October 2026. Issues 15, 16 and 17. Read `docs/DATA-MAINTENANCE.md` on
+current law and on comparing a profile with the statute. Scores were checked
+against `segments.yaml` and left in place.
+
+## Bosnia and Herzegovina
+
+The Paragraf consolidation of the Federation criminal code was read. The
+article immediately before article 240 is “Posjedovanje i omogućavanje
+uživanja opojnih droga”. Paragraph 3: unauthorized possession of a narcotic
+drug is punished with up to one year in prison. The paragraph sets no smaller
+personal-use tier.
+
+The Republika Srpska criminal code, consolidated through Official Gazette
+73/2023, was read at articles 207 and 208. Article 207 punishes unauthorized
+production and trade, and holding a drug in order to sell it is inside that
+trade offence. Article 208 punishes enabling another person to use a drug.
+That consolidation has no standalone possession offence matching Federation
+article 239(3). Brčko District’s possession penalty was not read, so the
+profile does not state it.
+
+Possession stays at 1 and enforcement at 2. The scale’s 0 for possession is
+“prison is a realistic outcome for a small amount”. One indictment shows that
+prosecution is available. It does not show how often courts impose the year.
+No new history event was added.
+
+## Kazakhstan
+
+Article 296 was read on kodeksy-kz.com, marked current with changes and
+checked 22 October 2026. Part 2 punishes unauthorized manufacture, processing,
+acquisition, storage or transport without intent to sell with a fine of up to
+160 monthly calculation indices, corrective work, up to 160 hours of community
+service, or arrest of up to 40 days. Part 4 punishes an especially large
+amount with three to seven years. The detailed possession paragraph already
+said this. The summary had called small possession an administrative offence.
+That sentence is replaced. A ministry proposal to change the treatment is
+named as a proposal. Possession stays at 2. An older Supreme Court plenum
+about the previous code’s article 259 was not used.
+
+## Mexico
+
+The Official Gazette text of General Declaration of Unconstitutionality 1/2018
+was read at paragraphs 91–93. COFEPRIS may authorize a named adult to acquire
+seed, sow, cultivate, harvest, prepare, possess and transport cannabis for
+personal recreational use. The authorization excludes import, trade, supply
+and distribution. The paragraphs set no universal gram limit and no plant
+count. COFEPRIS’s press release of 7 July 2026 says the same about personal
+self-consumption and about commerce and supply. The 28 g and six/eight-plant
+sentences are removed. The separate rule that up to 5 g is not prosecuted
+stays. Possession stays at 3 and cultivation at 3.

scripts/history-scope.test.cjs +21 −0
@@ -139,2 +139,23 @@ test("scored dates follow commencement, not assent", () => {
   assert.equal(pt.scores.enforcement, 5);
 });
+
+test("current-law profile corrections keep the statute and the score scale apart", () => {
+  const ba = y.load(fs.readFileSync("countries/ba.yaml", "utf8"));
+  const kz = y.load(fs.readFileSync("countries/kz.yaml", "utf8"));
+  const mx = y.load(fs.readFileSync("countries/mx.yaml", "utf8"));
+  assert.match(ba.segments.possession.text, /article 239\(3\)/);
+  assert.match(ba.segments.possession.text, /one year/);
+  assert.match(ba.summary, /criminal offence/);
+  assert.equal(ba.scores.possession, 1);
+  assert.equal(ba.scores.enforcement, 2);
+  assert.match(kz.summary, /Article 296/);
+  assert.match(kz.summary, /criminal offence/);
+  assert.doesNotMatch(kz.summary, /administrative offence/);
+  assert.equal(kz.scores.possession, 2);
+  assert.doesNotMatch(mx.segments.possession.text, /28 g/);
+  assert.doesNotMatch(mx.segments.cultivation.text, /six plants/);
+  assert.match(mx.segments.possession.text, /5 g/);
+  assert.match(mx.context.visitors.text, /named adult/);
+  assert.equal(mx.scores.possession, 3);
+  assert.equal(mx.scores.cultivation, 3);
+});

    ↑↓ to move, ↵ to open.