GAZETA's methodology exists so our customers can defend the intelligence in front of regulators, boards, and — when it matters — a judge.
(source_key, normalized_title, normalized_date). Once retained, an item is not re-classified or re-billed by the scraper on subsequent runs; a rubric change is applied to history only by a deliberate, logged re-classification run (see § 4). Duplicate detection is deterministic and independent of publication format drift.GAZETA monitors 51 feeds. Every regulator we watch is named in the open. We add sources when a paying customer requests coverage of a specific regulator OR when a jurisdiction becomes materially relevant to the cannabis industry (recent examples: Malta ARUC, Germany BfArM).
We do not add sources that are not primary. If a regulator publishes only through a paid distribution service, or does not publish machine-readable material at all, we surface that transparently — coverage gaps are named, not hidden.
Source retirement: a source is retired only when the regulator itself retires the publication channel (e.g., EMCDDA → EUDA in July 2024). Retirement is announced in the Sources page changelog.
Three retrieval modes, matched to what the regulator publishes:
Retrieval is retried on transient failure. Persistent failures are logged with the specific error (HTTP status, timeout, parse error) and surfaced in the internal source-health dashboard. Failed retrievals never produce silent gaps in the intelligence record.
Every retrieved item is passed to Claude Sonnet 5 with a fixed prompt encoding the classification rubric. The rubric is versioned; version identifiers are stored with every classification for audit.
Rubric fields:
severity: critical · high · medium · low · infocategory: regulation · quality_standards · licensing · import_export · enforcement · otherimpact_score: 0.0 – 10.0tags: free-form (e.g., THC-limits, packaging, anti-dumping)affected_jurisdictions: ISO country + subnational codesai_summary: one-sentence factual summary; no editorialapplicability: direct · applicable · adjacent; null on classification failureapplies_because: one clause stating the mechanism by which an applicable item reaches a cannabis operatordomains: licensing · quality_gmp · controlled_substances · import_export · product · enforcement · pharmacovigilance · marketApplicability rubric (from 2026-09-05): direct — the item names cannabis, hemp, CBD, THC or cannabinoids. Applicable — it does not name cannabis but governs how cannabis operators or their products are regulated: controlled-substance scheduling, GMP/GDP guidance, pharmacovigilance, narcotics import/export, labelling and testing rules, medicines-regulator reform. Adjacent — same regulator, no cannabis nexus. Direct and applicable items are surfaced by default; adjacent items are retained in the record, searchable, and shown on request. Nothing a regulator publishes is discarded because of the verdict. Items classified before 2026-09-05 carry the earlier binary verdict mapped onto the tiers (classifier_version = legacy-binary); the 30 days preceding the change were re-classified under the new rubric.
Earlier cannabis-relevance rubric (until 2026-09-05): item is retained as relevant if it directly concerns cannabis, marijuana, hemp, CBD, THC, cannabinoids, OR concerns controlled-substance scheduling under CDSA / DEA / analogous frameworks, OR is a novel/synthetic cannabinoid framework, OR is an adjacent regulatory action (labeling, testing, packaging, GMP) with material near-term impact on cannabis operators. We lean toward retention when a controlled-substance nexus is plausible.
Adjacent items are retained in the record and searchable, but not surfaced in the default feed, alerts or briefs. Classification failures (Claude timeout, malformed response) are retained with applicability: null and published: null for review; they are never surfaced by accident.
Content hash: SHA-256 over (source_key :: lowercased_title :: normalized_date). Date is normalized to YYYY-MM-DD before hashing so that "Wed, 25 Jun 2026 GMT" and "2026-06-25T00:00:00Z" and "June 25, 2026" all produce identical hashes.
This is important because RSS feeds routinely change their date format between publications, and identical items would otherwise appear "new" on every fetch — inflating cost, misclassifying the item as freshly-published, and polluting the intelligence record. Normalization is applied at hash time, not at display time; the original date string is preserved for audit.
If we misclassify an item, we correct the record in the database and mark the correction in the item's audit history. If we miss an item we should have caught, we investigate the retrieval failure, fix it, back-populate the item, and — for critical severity misses — publish an incident note. We do not silently amend the record.
Report a correction to corrections@gazeta.ca. Every correction request is logged and answered.
The methodology in this document is designed so that GAZETA-sourced regulatory intelligence is fit for:
If your use case requires a specific documentation format (chain-of-custody, discovery-ready extract, regulator-format bibliography), tell us; enterprise deployments include documentation tuned to the customer's compliance framework.