Oregon

Methodology

This dashboard is built from Oregon's sample-level cannabis compliance testing record. Nothing here is modeled, estimated, or inferred from a private classification. Where a judgment call was required, it is documented below — including the limits of what this dataset can support.

The source

The underlying data is Oregon's sample-level cannabis compliance testing record. Each row is a tested sample, carrying its product type, testing lab, the operator that submitted it, period, pass/fail outcome, a remediation flag, and reported cannabinoid content. The headline universe is 446,299 completed samples, Jan 2019 – Jun 2025, across 2,138 operators and 28 labs.

Identities are de-identified in the source

Oregon's record arrived de-identified: operators and labs are carried as numeric identifiers, not names. We present them the same way — as Operator [ID] and Lab 1 through Lab 28. Labs are renumbered by total sample volume, so Lab 1 is the highest-volume lab in the record and the numbering descends from there. We did not attempt to re-identify any operator or lab, and we do not infer real-world names from volume, timing, or any other field. Where a state ships names in cleartext (as Illinois and Nevada do), we publish them; where the source de-identifies (as Oregon does here), we keep it de-identified.

Potency is converted from mg/g to percent

Oregon reports cannabinoid content in milligrams per gram (mg/g). Every potency figure on this page is converted to percent by dividing by ten (for example, 233 mg/g total THC is shown as 23.3%). This is a unit conversion, not a transformation of the underlying value. All potency figures reflect total THC as recorded in the source.

What "median flower THC by lab" includes — and excludes

The per-lab potency comparison uses flower samples only. A single per-lab median that mixed concentrates and extracts with flower would return values well above 50% at some labs — a description of each lab's product mix, not of flower potency. Restricting to flower makes the comparison like-for-like. The chart on the dashboard further restricts to labs with 1,000 or more flower samples, so each plotted median rests on a substantial base.

CBD-dominant samples are excluded from potency analysis. Flower with Total CBD greater than Total THC (about 0.9% of flower samples) is dropped from all flower potency figures, so a lab that happens to receive more CBD-forward flower does not see its per-lab median pulled down by product mix rather than by how it reports THC.

Labs below the 1,000-flower-sample threshold are held out of the per-lab potency chart as statistically unstable: a median computed on a few hundred samples or fewer is not a stable lab-wide signal. Those labs are flagged throughout rather than plotted alongside high-volume labs. (The full all-labs table elsewhere on the dashboard still lists every lab by total sample volume, with the smallest — Lab 27 and Lab 28 — flagged for thin volume.)

A unit anomaly on one lab's non-flower products

Lab 8 shows internally inconsistent potency values on its non-flower products — medians and means that are not reconcilable with the rest of the record under a single mg/g-to-percent rule. We read this as a unit-recording anomaly on that lab's non-flower entries. Lab 8's flower values are consistent with the market and are used; its non-flower products are excluded from any all-products potency view. We do not present an all-products per-lab potency median for this reason, and the flower-only comparison sidesteps the anomaly entirely.

Safety panels each carry their own denominator

Oregon does not screen every sample for every contaminant. A pesticide panel, a residual-solvent panel, a microbial panel, a heavy-metals panel, and a mycotoxin panel each run on a different subset of samples. We report each panel's fail rate as failures ÷ samples tested for that panel — a rate within that panel's own denominator. These rates are comparable to one another as rates, but the raw failure counts cannot be summed across panels, because the denominators differ. Each panel's denominator is shown directly in the Testing & Safety table.

What counts as a failure

A sample's overall pass/fail outcome is taken as recorded in the source. The overall pass rate (98.18%) reflects 8,101 samples recorded as failing. The per-panel rates above describe where, within the panels that ran, failures occurred. A sample flagged as containing remediated product is recorded separately (see below) and is not the same as a failure.

The data range — and the 2025 half-year

The record runs Jan 2019 – Jun 2025. Note the boundary precisely: 2025 covers January through June only. Every 2025 figure on this site — sample volume, pass rate, active-operator count, remediation rate — is a half-year number. It is labeled as such wherever it appears, the 2025 bars are visually muted on the charts, and 2025 is excluded from any like-for-like full-year comparison. A reader who treats the 2025 volume bar as a full year will misread a half-year of data as a collapse; it is half a year.

Known limitations and open questions

We would rather flag these ourselves than have you find them:

Check our work

The cleaned, sample-level dataset behind every chart is available as a CSV download — one row per sample, with operator ID, lab ID, period, product type, pass/fail, remediation flag, and THC. If you find an error, we want to know.