Cannabis Data Project
Colorado · Adult-use and medical

Colorado's cannabis market, month by month since 2014

Showing—
Loading…

Loading the latest CDOR figures…

At a glance

Colorado licensed the first adult-use cannabis stores in the United States in January 2014, so this is the longest continuous monthly series on the site. Sales figures run about a quarter behind: the Department of Revenue publishes each month on a three-month lag, by policy.

Twelve years of a legal market

Adult-use is sales at retail marijuana stores, to any adult 21+. Medical is sales at medical marijuana stores, to patients holding a Colorado registry card. The two are separately licensed store types, so this is a split by where the sale happened rather than by who made it.

Monthly sales by store type

Medical sales have fallen steadily as buyers moved to the adult-use channel. That is a real shift in where people shop and not a collection fault, which is why the pipeline records it as a notice rather than an error.

The two columns are not on the same footing. The Department of Revenue's own footnotes say the medical figure includes accessories and other products that do not contain marijuana, and that the adult-use figure excludes them. It publishes no figure for how much that is, so the medical line is an upper bound on medical cannabis sales rather than a measurement of them.

Where the money is spent

Colorado's medical and adult-use stores hold separate licences and file separate tax returns, and the Department of Revenue reports each type's sales from those returns. A registered patient who shops at an adult-use store is counted as adult-use, so this is not the per-customer split Maryland publishes.

Retail dollars by store type

Summed across the selected range

What the state collects

Three separate taxes, on two different bases. The 15% retail marijuana sales tax and the 2.9% state sales tax are levied at the till; the 15% excise is levied when marijuana moves from a cultivation facility to a store, so it is a wholesale tax rather than a retail one. Tax figures arrive a month ahead of sales figures.

Monthly marijuana tax revenue

The 2.9% component drops sharply between July and August 2017 and never returns to its earlier level. The Department of Revenue publishes no note explaining it, so none is offered here.

Whether the month labels the collection or the sales behind it is unresolved. The tax series begins a month after the sales series and is released a month ahead of it, and every column description says the amount was “collected” — but the arithmetic does not settle it either way. Until the Department of Revenue answers, Colorado's tax figures are shown here and kept off the cross-state tax comparison.

Where the revenue comes from

Three taxes and one set of fees. The heading is not “which tax raises what” because the fourth bar is not a tax — licence and other fees are reported separately by the Department of Revenue and are excluded from the tax total above.

Marijuana revenue by source

Summed across the selected range

    Who is selling

    The Department of Revenue began publishing these counts in January 2025; every month before that is a declared gap, never a zero. Read the definitions carefully. A “retailer” is a distinct business, and the Department's own footnote says one retailer can have several stores — so this is not a dispensary count. A “return” is a tax return, and a retailer files one per store, so returns track storefronts more closely than retailers do.

    Where these figures come from

    Sourcing, basis and comparability

    Colorado licensed the first adult-use marijuana stores in the United States on 1 January 2014, alongside a medical programme that already existed, so this page carries both channels from the first month of legal adult-use sales anywhere. The two channels are separately licensed store types rather than two kinds of customer: a registered patient shopping at an adult-use store is counted as adult-use. Every figure here comes from the Colorado Department of Revenue, which publishes on a deliberate three-month lag, so Colorado's newest month is always about a quarter behind the fastest states on the comparison.

    Retail sales Partly comparableMedical / adult-use split Partly comparablePrice per gram Not like-for-likePer capita Partly comparablePatient counts Not like-for-likeLicence counts Not like-for-likeTax revenue Partly comparable
    Basis — Sales reported to CDOR by all marijuana stores, by sales month
    Measurement
    measured
    Money
    unstated
    Tax
    unstated
    Period
    calendar_month
    Scope
    retail_only
    Geography
    statewide
    Channels
    medical, adult_use
    Rounding
    Whole dollars. Across the 148 published months not one of the 444 dollar cells carries a decimal component, and CDOR's own annual roll-up differs from the summed months by at most $1 in a year.

    The regulator's own words: Source: Colorado Retail Sales Tax Return (DR 0100) and Retail Marijuana Sales Tax Return. CDOR labels the row by the month of the SALES, not the month of the filing: 'The reports will be published on a three month lag. For example, the March 2025 sales will be published in June 2025.'

    Why an axis above reads unstated: Checked negative, re-run on every build (2026-08-16): a full-text search of all 12 fetched Colorado artifacts - the three Socrata CSVs, their /api/views/ metadata including every column description, the CDOR Marijuana Sales Reports page, the CDOR Open Data Use Terms page, the Average Market Rate page and both Google Sheets CDOR links as its official reports - returns ZERO hits for 'gross', 'net ', 'discount', 'methodolog', 'defin' and 'exclud'. CDOR says what instrument the figures come from (the Colorado Retail Sales Tax Return DR 0100 and the Retail Marijuana Sales Tax Return) and which products each column covers, and says nothing whatever about whether the reported sales are gross of discounts or whether they include sales tax. The flags are therefore `unstated` and are not inferred from general knowledge of Colorado tax law. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.

    Basis — Medical marijuana store sales, INCLUDING non-cannabis accessories
    Measurement
    measured
    Money
    unstated
    Tax
    unstated
    Period
    calendar_month
    Scope
    retail_only
    Geography
    statewide
    Channels
    medical
    Rounding
    Whole dollars. Across the 148 published months not one of the 444 dollar cells carries a decimal component, and CDOR's own annual roll-up differs from the summed months by at most $1 in a year.

    The regulator's own words: Total Medical Marijuana Sales summarizes all sales made at medical marijuana stores. It includes medical marijuana and accessories/other products that do not contain medical marijuana. Source: Colorado Retail Sales Tax Return (DR 0100) and Retail Marijuana Sales Tax Return.

    Why an axis above reads unstated: Checked negative, re-run on every build (2026-08-16): a full-text search of all 12 fetched Colorado artifacts - the three Socrata CSVs, their /api/views/ metadata including every column description, the CDOR Marijuana Sales Reports page, the CDOR Open Data Use Terms page, the Average Market Rate page and both Google Sheets CDOR links as its official reports - returns ZERO hits for 'gross', 'net ', 'discount', 'methodolog', 'defin' and 'exclud'. CDOR says what instrument the figures come from (the Colorado Retail Sales Tax Return DR 0100 and the Retail Marijuana Sales Tax Return) and which products each column covers, and says nothing whatever about whether the reported sales are gross of discounts or whether they include sales tax. The flags are therefore `unstated` and are not inferred from general knowledge of Colorado tax law. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.

    Basis — Adult-use store sales, EXCLUDING non-cannabis accessories
    Measurement
    measured
    Money
    unstated
    Tax
    unstated
    Period
    calendar_month
    Scope
    retail_only
    Geography
    statewide
    Channels
    adult_use
    Rounding
    Whole dollars. Across the 148 published months not one of the 444 dollar cells carries a decimal component, and CDOR's own annual roll-up differs from the summed months by at most $1 in a year.

    The regulator's own words: Total Retail Marijuana Sales summarizes retail marijuana sales made at retail marijuana stores. It does not include accessories/other products that do not contain retail marijuana. Source: Colorado Retail Sales Tax Return (DR 0100) and Retail Marijuana Sales Tax Return.

    Why an axis above reads unstated: Checked negative, re-run on every build (2026-08-16): a full-text search of all 12 fetched Colorado artifacts - the three Socrata CSVs, their /api/views/ metadata including every column description, the CDOR Marijuana Sales Reports page, the CDOR Open Data Use Terms page, the Average Market Rate page and both Google Sheets CDOR links as its official reports - returns ZERO hits for 'gross', 'net ', 'discount', 'methodolog', 'defin' and 'exclud'. CDOR says what instrument the figures come from (the Colorado Retail Sales Tax Return DR 0100 and the Retail Marijuana Sales Tax Return) and which products each column covers, and says nothing whatever about whether the reported sales are gross of discounts or whether they include sales tax. The flags are therefore `unstated` and are not inferred from general knowledge of Colorado tax law. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.

    Basis — Distinct retailers filing, and returns filed, by month
    Measurement
    measured
    Money
    not_applicable
    Tax
    not_applicable
    Period
    calendar_month
    Scope
    retail_only
    Geography
    statewide

    The regulator's own words: CDOR footnote 1: 'Number of retailers is a count of distinct retailers in the state. One retailer can have multiple stores.' CDOR footnote 2: 'The number of returns can be larger than the number of retailers because a retailer files a return for each store.'

    Basis — Marijuana tax collected at retail, by month of collection
    Measurement
    measured
    Money
    not_applicable
    Tax
    not_applicable
    Period
    calendar_month
    Scope
    retail_only
    Geography
    statewide

    The regulator's own words: CDOR's column descriptions read 'Total sales tax collected', 'Medical marijuana tax collected' and 'Retail marijuana tax collected' - receipts, in CDOR's own word, not liability accrued on the period's sales.

    Basis — Retail marijuana excise tax on wholesale transfers
    Measurement
    measured
    Money
    not_applicable
    Tax
    not_applicable
    Period
    calendar_month
    Scope
    wholesale_only
    Geography
    statewide

    The regulator's own words: CDOR's Average Market Rate page: 'A 15% excise tax is placed on retail marijuana... These prices are for marijuana sold or moved from cultivation facilities to stores or product manufacturers.' The base is a wholesale transfer, not a retail sale.

    Basis — All marijuana taxes, retail and wholesale bases combined
    Measurement
    measured
    Money
    not_applicable
    Tax
    not_applicable
    Period
    calendar_month
    Scope
    all_tiers
    Geography
    statewide

    The regulator's own words: CDOR's Total Taxes column sums the 2.9% state sales tax, the 15% retail marijuana sales tax and the 15% retail marijuana excise tax. The first two are levied at retail and the third on the wholesale transfer, so the combined figure spans two tiers.

    Sources 5
    Where every figure on this page comes from
    RoleSourceFormat FromLast verifiedNote
    CanonicalMarijuana Sales Revenue in Colorado (Socrata p6y8-s74x)
    Colorado Department of Revenue, Office of Research and Analysis
    socrata2014-012026-08-16Canonical because it matches the anchor definition on every axis the calibration table scores: measured dollars paid at licensed retail, by calendar month, statewide. Unauthenticated SODA API, no app token, stable resource id, Access-Control-Allow-Origin: *. Its `attribution` field is empty where the sibling datasets say CDOR, but its attributionLink points at cdor.colorado.gov and its months reconcile to the dollar with CDOR's own published annual totals.
    Cross-checkMarijuana Sales by County in Colorado (Socrata j7a3-jgd3)
    Colorado Department of Revenue
    socrata2014-012026-08-16Never averaged with the canonical figure. The file's own `Total` row equals the statewide dataset exactly in every one of the 149 months compared. Summing the 46 real counties does NOT: 2,588 medical and 971 adult-use county-months are NR-suppressed, so the county sum recovers 96.64% of medical and 96.76% of adult-use dollars - a floor, never a total.
    Cross-checkMarijuana Tax and Fee Revenue in Colorado (Socrata 3sm5-jtur)
    Colorado Department of Revenue
    socrata2014-022026-08-16Never averaged with the canonical figure. Measures tax collected, not sales, so no agreement is expected. The series also runs one month AHEAD of sales: 2014-02..2026-05 against 2014-01..2026-04.
    Cross-checkCDOR Marijuana Sales Reports page - Sales Totals table
    Colorado Department of Revenue
    html20142026-08-16Never averaged with the canonical figure. Summed monthly rows against CDOR's own annual table: 9 of 13 years agree exactly and 4 differ by exactly $1. The cumulative figure matches to the dollar - $18,635,226,311.
    FallbackThe four Marijuana Sales Report spreadsheets CDOR links
    Colorado Department of Revenue
    csv2014-012026-08-16The figures do not change - all 148 months match the Socrata series exactly, checked 2026-08-16 - so no basis flag moves and no caveat sentence or fingerprint changes. What changes is the parser and the operational risk. The sheets are split across two files with different column counts (the 2014-2024 archive has three data columns and no retailer or return counts at all), carry a two-line title, an 'Intentionally left blank' row, superscript footnote markers inside the header cells and an 'End of worksheet' trailer. They are hosted on docs.google.com rather than by the State, so availability depends on a Drive sharing setting, and each sheet id would have to be rediscovered from the landing page. Switching is a downgrade in robustness, not in data.
    Why each marker above says what it says
    How this state compares with the others
    MetricMarkerWhy
    Retail salesPartly comparableColorado's figures are the sales licensees report to the Department of Revenue on their tax returns, by sales month, and CDOR states neither whether they are gross of discounts nor whether they include sales tax - both flags are a checked negative, not an assumption. The headline total also mixes two product scopes: the medical column includes non-cannabis accessories and the adult-use column does not. Figures arrive on a deliberate three-month lag, so the newest Colorado month is always about a quarter behind the fastest states on this chart.
    Medical / adult-use splitPartly comparableColorado's split is by the type of STORE, not by the type of customer. Medical and adult-use marijuana stores are separately licensed and file separate returns, and CDOR reports each store type's sales from those returns - so a registered patient buying at an adult-use store counts as adult-use. It is not Maryland's per-transaction customer flag. Colorado's two channel columns are not on the same product scope. CDOR's own footnotes say the medical figure includes accessories and other products that do not contain marijuana, while the adult-use figure excludes them. CDOR publishes no figure for how much that is, so the medical share here is an upper bound on medical cannabis sales rather than a measurement of them.
    Price per gramNot like-for-likeColorado publishes no retail weight anywhere, so no price per gram can be derived from the regulator's own paired figures. The only price Colorado does publish is the quarterly Average Market Rate, which is a median price per POUND for unprocessed marijuana 'sold or moved from cultivation facilities to stores or product manufacturers' - a wholesale transfer value used to compute excise tax, not a consumer price. Presenting it on a retail price chart would be a category error, not a caveat.
    Per capitaPartly comparablePer resident, Colorado inherits everything its numerator carries: the gross-or-net basis and the tax-inclusivity are both unstated, and the medical half of the total includes non-cannabis accessories. The denominator is the Census Bureau July-1 estimate for each month's own year; 2026 months use the July-2025 estimate because no later one is published.
    Patient countsNot like-for-likeColorado publishes no current medical-registry statistics. The two registry datasets still listed in the state's open-data catalogue fetch cleanly and return plausible patient counts, and their data is from 2014 - the catalogue's 2026 date is a metadata edit, not a refresh. They are recorded here as sources never to wire up, and no patient figure is published for Colorado at all.
    Licence countsNot like-for-likeColorado's sales dataset carries a retailer count, and it is not a licence count or a dispensary count. CDOR's own footnote says it counts 'distinct retailers in the state' and that 'one retailer can have multiple stores', so it is a count of taxpaying businesses and sits below both the licence and the storefront count. It is shown on Colorado's own page with that definition beside it and is kept off the cross-state chart, where it would silently compare businesses against other states' storefronts. The count also begins only in January 2025.
    Tax revenuePartly comparableColorado's total mixes three taxes on two different bases - a 2.9% state sales tax and a 15% retail marijuana sales tax, both levied at retail, plus a 15% excise levied on the transfer from cultivation to a store. It is not a retail-excise figure and cannot share an axis with one without that being said. Whether the month labels the collection or the sales behind it is unresolved, and until CDOR answers, this metric is held off the cross-state chart. Blocked until co_tax_period_basis is resolved, whatever the status above says.
    What is checked on every run 5
    What is checked on every run
    CheckKindLast result
    Medical store sales plus adult-use store sales equals the published total, in every month.identity149 of 149 months passed.
    The county dataset's own `Total` row against the statewide dataset - two independently published CDOR tables carrying the same number.cross source reconciliation149 of 149 months passed. Both channels compared in each month.
    Summed monthly rows against CDOR's own Sales Totals table on the Marijuana Sales Reports page.cross source reconciliation13 of 13 calendar years passed.
    The three identities CDOR's tax table publishes: the 2.9% split, the three-tax total, and taxes plus fees.identity149 of 149 months passed. Largest absolute difference seen on any of the three: $1.
    The retailer and return counts have no independent decomposition anywhere in Colorado's published data.uncheckedNot cross-checked. Nothing CDOR publishes can be summed or differenced to reproduce them. The county dataset carries the same four columns and suppresses most of them, so a county sum is a floor rather than a check, and the Google Sheets are the same figures from the same table. Colorado's headline sales figure is cross-checked three independent ways; these counts are cross-checked none, and the page is entitled to say so rather than imply the same rigour across the whole file.
    The regulator's own notes, and what is still open

    The regulator's own notes

    The data made available here may have been modified for use from its original source, which is the State of Colorado. THE STATE OF COLORADO MAKES NO REPRESENTATIONS OR WARRANTY AS TO THE COMPLETENESS, ACCURACY, TIMELINESS, OR CONTENT OF ANY DATA MADE AVAILABLE THROUGH THIS SITE. THE STATE OF COLORADO EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. The data is subject to change as modifications and updates are complete. It is understood that the information contained in the Web feed is being used at one's own risk. — Colorado Department of Revenue, Open Data Use Terms section 2 (updated 2024-11-14). Republishing this text verbatim alongside the data is a condition of using it.

    Starting with 2025 data, the reports will be published monthly on the third Thursday. The reports will be published on a three month lag. For example, the March 2025 sales will be published in June 2025. — CDOR, Marijuana Sales Reports page.

    Total Medical Marijuana Sales summarizes all sales made at medical marijuana stores. It includes medical marijuana and accessories/other products that do not contain medical marijuana. — CDOR, Marijuana Sales Report spreadsheet, footnote 3.

    Total Retail Marijuana Sales summarizes retail marijuana sales made at retail marijuana stores. It does not include accessories/other products that do not contain retail marijuana. — CDOR, Marijuana Sales Report spreadsheet, footnote 4.

    Number of retailers is a count of distinct retailers in the state. One retailer can have multiple stores. — CDOR, Marijuana Sales Report spreadsheet, footnote 1.

    The number of returns can be larger than the number of retailers because a retailer files a return for each store. — CDOR, Marijuana Sales Report spreadsheet, footnote 2.

    Source: Colorado Retail Sales Tax Return (DR 0100) and Retail Marijuana Sales Tax Return — CDOR, Marijuana Sales Report spreadsheet, source line. This is the only statement anywhere of what instrument the figures come from; the Socrata metadata does not carry it.

    NL = not listed in source data, NR = not reported due to personally identifiable information. — CDOR, Marijuana Sales by County dataset, blank-code column descriptions.

    These prices are for marijuana sold or moved from cultivation facilities to stores or product manufacturers. — CDOR, Average Market Rate page - the reason Colorado's only published price is not a consumer price.

    Open questions on this data

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

    • Does the month on a row of CDOR's Marijuana Tax and Fee Revenue dataset label the month the revenue was collected, or the month of the sales it was collected on? Blocks: tax_revenue. Closing it needs: Ask CDOR's Office of Research and Analysis (dor_ora@state.co.us, the contact printed on its own sales spreadsheets) or use the data request form on the Marijuana Sales Reports page. One sentence closes it.

    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.