Cannabis Data Project
Oregon · One retail channel, two kinds of customer

Oregon's cannabis market, by the numbers

Showing—
Loading…

Loading the latest OLCC figures…

At a glance

Where the market is heading

Every licensed cannabis shop in Oregon is OLCC-licensed. Recreational is a sale to any consumer 21+; patient is a sale where an OMMP card was presented, which exempts it from the 17% state tax. Both lines come from the same Metrc transaction feed.

Monthly retail sales

The newest month OLCC publishes is always the month in progress and is never drawn here. OLCC refreshed on 13 August 2026 with August already in the file at $6.3M against roughly $76–79M for a full month; charting it would have shown a 92% collapse that did not happen.

OLCC states nowhere whether these dollars are before or after Oregon's 17% state tax and up to 3% local tax. The flag on this page is unstated rather than a guess, which is worth up to a fifth of the number.

Who is buying

OLCC records a customer type on each sale, so this is a genuine measured split and not a licence attribute or a tax proxy. It is still a floor on medical demand rather than a measure of it: Oregon has no medical-only dispensaries left, so a cardholder who does not present the card is simply rung up as a consumer.

Retail dollars by customer type

Summed across the selected range

What is selling

These seven are OLCC tax categories, not shelf labels. Each one is defined in the OLCC Product and Tax Categorization Guide — which is also why the price line below is not bud-only: usable marijuana holds buds, shake/trim and plain pre-rolls together.

Retail dollars by product type

OLCC's own tax categories

    In the shop or at the door

    Home delivery has never been more than a rounding error in Oregon — about 0.6% of dollars in the latest month. The first delivery row OLCC published is January 2017 at $282; the three months before it are drawn as a gap, not as zero, because OLCC publishes no statement on when licensed delivery began.

    Retail dollars by sale type

    Summed across the selected range

    What a gram cost

    These are OLCC's own published medians, not an average worked out here. Oregon's usable-marijuana gram has fallen from $10.50 in October 2016 to $3.30 today.

    OLCC's published median price per gram

    This line does not join the cross-state price chart, on two separate grounds. The basket is wrong for it: OLCC's usable marijuana tax category contains buds, shake/trim and non-infused pre-rolls, where the cross-state standard is whole bud alone. And the method is wrong for it: this is a median, while the DC and Maryland lines are means derived from paired dollars and weights. A median and a mean answer different questions and are never drawn on one axis.

    OLCC does not say whether the price it takes the median of is before or after tax, so the basket flag above reads unstated.

    How much left the shelf

    OLCC's dataset names this column Quantity Sold and states no unit anywhere in its metadata. The unit is OLCC's own: its published table of this exact dataset is titled “Total Sales: Pounds of Usable Marijuana Sold”. The pipeline re-checks that arithmetically on every run against OLCC's published median price, and the run refuses to publish if the two stop agreeing.

    Pounds of usable marijuana sold

    Twenty-nine of the rows behind this line are dated to the day a county's first shop opened rather than to the first of the month. Reading those dates literally splits eighteen months in two and publishes one county's figure as the whole state — January 2025 becomes 19 lb instead of 24,371.

    What growers harvested

    The supply side, from the same Metrc feed. This is production at the producer tier and not a sale at any tier, so it does not belong to the retail figures above and is never added to them.

    Wet weight harvested, pounds

    Unlike the sales quantity, this dataset does state its unit: OLCC names the column “Total Wet Weight (lb)”. The harvest feed also starts four months earlier than the sales feed, and those four months are recorded as deliberately not ingested rather than shown as months with no sales.

    What the state collected

    From the Oregon Department of Revenue, not from OLCC. These are payments received during the month, not tax owed on that month's sales — DOR says so itself, and adds that payments can be late and that retailers keep 2% of what they collect. They will not tie out to 17% of the sales line above and are not meant to.

    Marijuana tax receipts

    The local line begins in February 2017 because that is when the first local taxes were due. The months before it are a gap with that reason, never a zero — a zero would say the state collected nothing when there was nothing to collect. DOR also collects only some local taxes; those collected by the locality itself are not in this file at all.

    DOR's own note says the split between state and local has been estimated since February 2017, because the two are collected together.

    How to read this page

    Does Oregon have separate medical dispensaries?

    No. OHA's own July 2026 snapshot says there are currently no medical-only cannabis dispensaries or processing sites in Oregon. Every shop is OLCC-licensed, and the medical channel here is a customer flag on the sale rather than a separate market.

    Why is the patient share so small?

    Because it counts cards presented, not people. Patient purchases were 4.2% of Oregon's dollars in July 2026 against 11,625 cardholders. An OMMP patient who does not show the card is counted as a consumer, so the patient line is a floor on medical demand rather than a measure of it.

    Why is Oregon's price not on the cross-state comparison?

    Two reasons, each enough on its own. The cross-state standard is whole bud, and OLCC's usable marijuana tax category is defined by its own Product and Tax Categorization Guide as buds, shake/trim and non-infused pre-rolls. Separately, OLCC publishes a median while the comparison is built from means derived from paired dollars and weights, and the two answer different questions.

    Do these dollars include tax?

    Unknown, and deliberately labelled as such. A search of all five OLCC dataset descriptions and of OLCC's own data narrative returns no mention of tax, gross, net, discounts or methodology. Oregon charges 17% state and up to 3% local, so the answer is worth up to a fifth of every figure on this page — which is exactly why it is flagged rather than assumed.

    Why does the sales total include industrial hemp?

    Because OLCC's own total does, and the estate rule is to sum the rows the regulator publishes rather than substitute a tidier definition. Hemp items sold at licensed cannabis retailers are 0.73% of the series to date and 0.49% in the latest month, and they publish as their own bars in the product breakdown so you can take them out.

    Why does the latest month look missing?

    It is not missing; it is excluded. OLCC's feed always contains the month in progress, and it is dropped whenever OLCC's own refresh timestamp falls inside it. Publishing that part-month as a real one is the error nothing downstream would contradict.

    Where these figures come from

    Sourcing, basis and comparability

    Oregon has one retail channel, not two. Every licensed cannabis retailer is OLCC-licensed, and OHA's own July 2026 snapshot states there are currently no medical-only dispensaries or processing sites left in the state. Registered OMMP patients therefore buy at the same shops as everyone else, and the medical/adult-use split is a customer flag on the sale rather than a separate market. Patients may also simply buy as consumers, so the Patient line is a floor on medical demand, not a measure of it.

    Retail sales Partly comparableMedical / adult-use split Partly comparablePrice per gram Not like-for-likePer capita Partly comparablePatient counts Partly comparableLicence counts Not like-for-likeTax revenue Partly comparable
    Basis — Retail sales recorded in Metrc by OLCC-licensed retailers
    Measurement
    measured
    Money
    unstated
    Tax
    unstated
    Period
    calendar_month
    Scope
    retail_only
    Geography
    statewide
    Channels
    medical, adult_use

    The regulator's own words: OLCC, verbatim: "This market trend data is from Metrc, Oregon's Cannabis Tracking System, based on information entered by licensees. It reflects harvests from OLCC recreational producers and transfers between OLCC licensees. Sales data is based on sales made to recreational consumers and Oregon Medical Marijuana patients by OLCC licensed retailers."

    Why an axis above reads unstated: A checked negative, re-counted every build over the bytes this run fetched - not a search somebody once ran. Case-insensitive count of tax / excise / gross / net / discount / exclud / methodolog. Across all five dataset metadata records on data.oregon.gov: 0 hits, every needle zero. Across the text OLCC actually wrote in its Socrata story qutr-cyzn (the window.STORY_DATA payload): 0 hits. The story PAGE as fetched has 35 (exclud x30, methodolog x1, net x4), and every one of them is in Socrata's own localisation dictionary at window.TRANSLATIONS - "Internet connection", "Excluded (No value)", "Methodological data not yet provided" - which is platform chrome, not an OLCC statement about this data. Both counts are given because reporting only the scoped one would be claiming an absence the raw page does not have. The OLCC landing page has 2 'tax' hits, both the same /olcc/Pages/privilege_tax.aspx "Beer & Wine (Privilege) Tax" navigation link. OLCC states what the data is FROM and never what is IN the dollar. Oregon levies a 17% state retail tax and up to 3% local, so whether these figures carry it is worth a fifth of the number - which is exactly why it is flagged rather than reasoned out. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.

    Basis — Pounds of usable marijuana sold, recorded in Metrc
    Measurement
    measured
    Money
    not_applicable
    Tax
    not_applicable
    Period
    calendar_month
    Scope
    retail_only
    Geography
    statewide
    Channels
    medical, adult_use
    Rounding
    None stated; values carry six decimal places.

    The regulator's own words: The dataset's own column metadata states no unit: the field is `quantity_sold`, named and described 'Quantity Sold', in a dataset described 'Sales Quantity of Usable Marijuana by Month'. The unit comes from OLCC's own published visualisation of that exact dataset id, titled verbatim "Total Sales: Pounds of Usable Marijuana Sold" (Socrata story qutr-cyzn, owner 'OLCC IT Analytics', provenance 'official', bound to datasetUid sr5m-kza9).

    Basis — OLCC's published median retail price per gram
    Measurement
    measured
    Money
    unstated
    Tax
    unstated
    Period
    calendar_month
    Scope
    retail_only
    Geography
    statewide
    Channels
    medical, adult_use

    The regulator's own words: "Median Retail Price per Gram by Month and Product Type". Two product types are published: Usable MJ and Extract & Concentrate.

    Why an axis above reads unstated: Same search as olcc_metrc_sales, same artifacts, same result: 0 needle hits across the five dataset metadata records and 0 in the text OLCC wrote in its story. OLCC does not say whether the price it takes the median of is before or after the 17% state tax, and does not say whether it is the median of transactions, of line items or of product-day prices. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.

    Basis — Wet weight harvested by OLCC recreational producers
    Measurement
    measured
    Money
    not_applicable
    Tax
    not_applicable
    Period
    calendar_month
    Scope
    unstated
    Geography
    statewide

    The regulator's own words: "Wet Weight Harvested by Month, County, and Producer Type", column 'Total Wet Weight (lb)' described 'Total Wet Weight in Pounds'. Unlike the sales quantity, this dataset states its unit in its own column metadata.

    Why an axis above reads unstated: NOT a checked negative, and this block says so rather than borrowing the shape of one. SOURCE_CONTRACT B.6 asks for the search that proved the source is silent; OLCC is not silent here. It states the figure plainly - "Wet Weight Harvested by Month, County, and Producer Type", by producer type, with the unit in its own column metadata - and OLCC's story adds "It reflects harvests from OLCC recreational producers." What is missing is a SCHEMA VALUE, not a source statement: a harvest weight is recorded at the producer tier and is not a sale at any tier, so retail_only, includes_wholesale, wholesale_only and all_tiers would each be a false statement about it. `unstated` is used as the only non-false option available. Escalated to the schema owner in NOTES.md 3 and deliberately NOT reconciled with ommp_registry, which takes retail_only on Maryland's mca_counts precedent - two blocks giving different answers to the same unanswerable question is the honest state of an axis that assumes every figure describes a market tier. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.

    Basis — Marijuana tax payments received by Oregon DOR during the month
    Measurement
    estimated
    Money
    not_applicable
    Tax
    not_applicable
    Period
    filing_period
    Scope
    retail_only
    Geography
    statewide
    Rounding
    None; values carry full float precision.

    The regulator's own words: DOR's own notes, verbatim: "Starting February 2017, the split between state and local is estimated due to the collection of state and local taxes together." "Amounts are payments made by businesses during the month, rather than tax liability." "Amounts cannot be directly translated to sales made by businesses to consumers." "Retailers retain 2 percent of taxes collected to reimburse the cost of tax collection." "Payments might have been made later than when they were due." "Receipts are net of any refunds to taxpayers."

    Basis — OMMP registry participants at the snapshot date
    Measurement
    measured
    Money
    not_applicable
    Tax
    not_applicable
    Period
    point_in_time
    Scope
    retail_only
    Geography
    statewide
    Channels
    medical

    The regulator's own words: OHA publishes a Statistical Snapshot in January, April, July and October. The headline table gives Patients, Caregivers, Growers and Grow Sites split by whether the mailing address is in Oregon. Data Note 1: "Participant counts are based on distinct combinations of person, role (patient, caregiver, grower) and mailing address county."

    Sources 3
    Where every figure on this page comes from
    RoleSourceFormat FromLast verifiedNote
    CanonicalOLCC Marijuana Market Data - five Socrata datasets (5prm-2vmn monthly sales, sqst-8mwh median price per gram, sr5m-kza9 sales quantity, kctd-stii retailers with sales, kqws-k3cp wet weight harvested)
    Oregon Liquor and Cannabis Commission
    socrata2016-102026-08-16Keyless SODA v2 with permanent four-four ids. Every dataset republishes its whole history on each refresh, so each run rebuilds rather than appends. OLCC attaches no licence and no attribution string to these five datasets (Socrata `license` and `attribution` are both null), so attribution is given explicitly here even though no terms compel it.
    Cross-checkOregon Department of Revenue - Marijuana Tax Net Receipts (monthly xlsx)
    Oregon Department of Revenue
    xlsx2016-022026-08-16Never averaged with the canonical figure. 0.604 - 14.954 over 117 months, the whole joint window with no cutoff (low 2023-04, high 2016-11). The range is not typical of the series: the three widest ratios are 2016-11 14.954, 2016-12 7.390, 2017-01 4.206, and they are the first three months in which DOR receipts and an OLCC prior month both exist - DOR's sheet starts 2016-02 and OLCC's feed starts 2016-10, so the earliest ratios divide receipts from a market DOR was already taxing by sales from one that had just opened. Over the last 24 months (2024-08 - 2026-07) the same fit runs 0.719 - 1.159.
    Cross-checkOHA Oregon Medical Marijuana Program - Statistical Snapshot (quarterly PDF)
    Oregon Health Authority, Public Health Division
    pdf2015-Q12026-08-16Never averaged with the canonical figure. None. Ten of eleven quarters agree exactly; the eleventh has no readable headline.
    Why each marker above says what it says
    How this state compares with the others
    MetricMarkerWhy
    Retail salesPartly comparableOregon's figures are Metrc transaction records summed from row level by calendar month, which matches the anchor definition. What does not match is the basis: OLCC states nowhere whether the dollar is before or after Oregon's 17% state tax and up to 3% local tax, so the flag is unstated and not excl - the same position DC is in, and two unknowns are not a match. The total also includes industrial-hemp items sold at licensed cannabis retailers, 0.73% of the series.
    Medical / adult-use splitPartly comparableA genuine per-sale customer flag, like Maryland's, and not a licence attribute or a tax proxy. The caveat is behavioural: Oregon has no medical-only dispensaries left, so an OMMP cardholder buys in the same shop as everyone else and is counted as a Patient only when the card is presented. The Patient line is therefore a floor on medical demand, and at 4.2% of 2026-07 dollars against 11,625 cardholders it is a small one.
    Price per gramNot like-for-likeOff the cross-state price chart on two independent grounds, each sufficient. First the basket: ANCHORS 5 pins the standard at whole bud, and OLCC's Product and Tax Categorization Guide puts three Metrc item categories inside the Usable Marijuana tax category - Buds, Shake/Trim (aka leaves), and Non-infused Pre-Roll, which it says are "taxed under the category of leaves". That is Maryland's flower_type basket, about two per cent away from bud on the Maryland line and moving with product mix. Second the method: OLCC publishes a MEDIAN and both anchors are derived MEANS, and ANCHORS 5 forbids mixing them on one axis. Oregon's median still renders on Oregon's own page, labelled. Blocked until or_price_mean_not_published is resolved, whatever the status above says.
    Per capitaPartly comparableInherits every flag on the numerator, which for Oregon means an unstated tax basis and a total that carries 0.73% industrial hemp. The denominator itself needs two Census vintages because the series predates Vintage 2025: 2016-2019 come from Vintage 2020 and 2020-2025 from Vintage 2025, and 2026 months reuse the July 2025 estimate.
    Patient countsPartly comparableAn active stock of current cardholders, so it shares an axis with Maryland and NOT with DC, whose figure is cumulative registrations. Two further differences from both: Oregon's is QUARTERLY where theirs are monthly, and Oregon's registry is a residue rather than a market - it has fallen 85.1% from its peak of 78,045 in 2015-Q4 to 11,625 in 2026-Q3 (quarter to quarter it is not monotone: 6 of 46 steps rise), as patients moved into the recreational channel they can already shop in.
    Licence countsNot like-for-likeOLCC's licence registry is a live current-state file refreshed daily with no history, so Oregon has a point-in-time count and no licence time series. The monthly 'retailers with sales' figure is an activity measure - shops that actually transacted - and substituting it would publish a different quantity under the licence label.
    Tax revenuePartly comparableOregon's is a 17% retail tax, so the base is right, but the figure is CASH RECEIVED in the month rather than liability on the month's sales, and DOR states that payments may be late and that retailers keep 2% of what they collect. Only the state share is published as an actual; the state/local split has been estimated since February 2017 by DOR's own note.
    What is checked on every run 7
    What is checked on every run
    CheckKindLast result
    Each fiscal year's published state-tax total equals the sum of its own twelve monthly rows, in the same sheet.identitypass, 11/11 fiscal years, max residual $0.00
    Each edition's headline patient total against the same quarter reprinted in later editions' Annual Card Participant Fluctuation tables.cross source reconciliationpass, 10 quarters cross-checked, 0 mismatches
    Usable-MJ dollars divided by pounds-times-grams must stay in a fixed band of OLCC's own published median price per gram. This is what holds up the claim that quantity_sold is in pounds, since OLCC's column metadata does not say so.cross source reconciliationpass, 118 months, ratio 0.741..0.925 (mean 0.850)
    Sales summed by customer type, by sale type and by product type each equal the row total, every month.shape assertionpass, worst residual $0.000000 over 119 months
    DOR state receipts against 17% of the previous month's OLCC sales.cross source reconciliation117 months, ratio 0.604..14.954, 3 outside (0.5, 1.4) (notice only)
    The search that evidences `money: unstated` and `tax: unstated` is re-run over the fetched bytes every build, and the sentence in `basis.*.unstated_check` is generated from its counts.shape assertionpass, 0 hits across 5 dataset metadata records, 0 in OLCC's window.STORY_DATA; 35 on the raw story page, all in Socrata's window.TRANSLATIONS (payload + i18n accounts for the page total)
    Oregon's headline retail-sales total has no independent decomposition to check it against.uncheckedNot cross-checked. DC's headline is over-determined - two independent identities inside one document. Oregon's is not, and saying so is part of the contract. The four dimensional breakdowns are the same Metrc rows sliced four ways, so they test this pipeline's arithmetic and nothing about OLCC's. The only external figure that touches the same market is DOR's tax receipts, and DOR itself says the two cannot be reconciled.
    The regulator's own notes, and what is still open

    The regulator's own notes

    OLCC, on its own market-data page: "This market trend data is from Metrc, Oregon's Cannabis Tracking System, based on information entered by licensees. It reflects harvests from OLCC recreational producers and transfers between OLCC licensees. Sales data is based on sales made to recreational consumers and Oregon Medical Marijuana patients by OLCC licensed retailers." — OLCC Harvest, Price, & Sales Market Data

    OLCC attaches no licence and no attribution string to the five market-data datasets - Socrata's `license` and `attribution` fields are both null. Attribution is given here anyway because the data is OLCC's and readers are owed its provenance, not because any terms compel it. — data.oregon.gov /api/views/<id>.json

    OHA, July 2026 snapshot, page 8: "There are currently no medical-only cannabis dispensaries or processing sites in Oregon." This is why Oregon's medical channel lives inside the OLCC retail feed as a customer flag rather than as a separate market. — OMMP Statistical Snapshot 07/2026

    Oregon DOR, in the receipts workbook: "Amounts are payments made by businesses during the month, rather than tax liability." "Amounts cannot be directly translated to sales made by businesses to consumers." "Retailers retain 2 percent of taxes collected to reimburse the cost of tax collection." — Oregon DOR, Marijuana Tax Net Receipts, Notes 2 and 4

    The OLCC Product and Tax Categorization Guide (rev. 1.17.2024) places three Metrc item categories inside the Usable Marijuana tax category: Buds ("Flowers of the plant genus Cannabis"), Shake/Trim aka leaves ("Leaves of the plant genus Cannabis"), and Non-infused Pre-Roll ("Pre-rolls comprised only of usable marijuana (bud and/or shake/trim) wrapped in unflavored paper"). It adds that "All pre-rolls containing only usable marijuana ... will be taxed under the category of leaves." Oregon's price basket is therefore flower_type and not bud_only, on the regulator's own definition rather than on inference. — OLCC Recreational Marijuana System Product and Tax Categorization Guide, rev. 1.17.2024

    Open questions on this data

    Unresolved definitional questions that gate something. Listed because a question nobody can see is a question nobody closes.

    • OLCC's sr5m-kza9 column metadata states no unit for `quantity_sold`. Is there a published OLCC data dictionary that states it, and does it confirm pounds? Closing it needs: Ask OLCC via the Public Records webpage linked from the market-data page for the data dictionary behind the five Marijuana Market Data datasets. The Socrata metadata carries a custom field 'Data Dictionary: Yes' with no document attached and no link, so the dictionary exists somewhere OLCC can hand over.
    • Should Oregon publish a DERIVED MEAN price per gram alongside OLCC's published median, as Maryland does? Blocks: price_per_gram. Closing it needs: Establish whether OLCC's usable-marijuana quantity includes the weight of non-infused pre-rolls. The Categorization Guide says pre-rolls are tracked in Metrc as COUNT-based items carrying a separate 'THC weight (usable mj)' and 'Unit weight'. If that THC weight is inside sr5m-kza9 the mean is sound; if it is not, the denominator is short and the mean is biased high by an unknown amount.
    • When did OLCC-licensed home delivery to consumers begin? The feed's first Home Delivery row is 2017-01 at $282. Closing it needs: Find the OLCC rule or bulletin that authorised retail delivery and its effective date, then decide between channel_not_open and not_reported for 2016-10 .. 2016-12.

    Publication notices

    Know when a new month of figures is added — no email address, no account.

    Follow the feed

    Paste this address into any feed reader and a new entry appears each time a month of figures is published. Nothing is stored about you, and there is never advertising.

    https://cannabisdataproject.com/feed.xml

    New to feeds? A reader such as Feedly, Inoreader, NetNewsWire or Thunderbird checks the address for you and shows new entries as they appear.