At a glance
Where the market is heading
Adult-use is sales to any adult 21+. Medical is sales to registered patients, who pay no cannabis excise tax. Both channels were open in April 2022, the first month the state publishes, so there is no pre-launch period on this chart.
Monthly sales by channel
Medical sales have fallen steadily while adult-use has grown. That is the same migration Maryland shows — a medical card buys an excise exemption and little else once any adult can buy — and the pipeline records it as a notice rather than an error.
The Cannabis Control Division states no basis for these figures: whether they are gross or net of discounts, and whether they include tax, is not written down anywhere it publishes. That is a checked negative, not an omission, and it is why New Mexico is partly comparable rather than like-for-like against the other states.
Who is buying
New Mexico flags every sale medical or adult-use in the state's track-and-trace system, so this is a measured split on the transaction itself — not a licence attribute and not a tax-exemption proxy.
Retail dollars by channel
What a visit costs
The Division publishes an average sale value alongside the transaction counts. These are levels for the latest month in the range, never summed — and where the transaction count behind one is withheld, so is the average.
How many people are buying
Counts of individual sales. Twelve of these cells are drawn as gaps: the Division's API and its own per-city workbook disagree about them by between 21% and 100%, and neither figure is published in place of the other.
Monthly transactions by channel
Why the holes. New Mexico publishes the same month twice — once through the C.R.O.P. API and once as a per-city workbook. The dollars agree to the cent in all 52 months. The transaction counts do not: in eight months the API's figures contradict the workbook's, and in July 2022 the API reports zero transactions against 859,750 in its own components. The workbook is internally consistent and the API is not, so the API's number is withheld — and the workbook's is not substituted for it, because a cross-check never quietly replaces the source it is checking.
The medical program
Registered patients, as counted by the Department of Health at month end. This is an active stock, the same measure Maryland publishes — not a running total of everyone who ever signed up.
What the state collects
The Taxation and Revenue Department distributes cannabis excise tax monthly, splitting it between the state General Fund and the local governments where the sales happened. Medical purchases are exempt, so this is a tax on the adult-use line only.
Cannabis excise tax distributed, by revenue period
This line is not on the cross-state tax chart, on purpose. Each workbook is labelled with a “Revenue Period” and the Department never says whether that names the month of the sale or the month the return arrived — so every point here could be one month out. Testing it against sales does not settle it: the ratio is about as tight at a one-month lag as it is same-month. Until the Department answers, the series renders here and stays off the comparison.
The amounts are a distribution net of what the Department retains, not gross collections. They run between 8.7% and 13.2% of adult-use sales against a 12% statutory rate.
Common questions
Why does the transactions chart have gaps when the sales chart does not?
Because New Mexico publishes the same month twice and the two versions disagree. The Cannabis Control Division's API and its own per-city workbooks give identical dollar figures to the cent in all 52 months, but in eight months their transaction counts differ by between 21% and 100% — and in July 2022 the API reports zero transactions in a month with $40.4m of sales. Where two official figures contradict each other by that much, neither is published: the month is drawn as a gap with both numbers named.
Why is there no price per gram?
New Mexico publishes no quantity. Not a suppressed one — an absent one. The API returns dollars and transaction counts, the per-city and per-licensee workbooks return the same two measures split by geography and by shop, and the tax workbooks return dollars of tax. There is no weight and no product category anywhere to divide by. The average sale value the Division publishes is a basket price, not a unit price, and turning one into the other would be inventing a figure.
Are these figures before or after tax?
Not stated. The Division publishes no methodology note at all: its only text about the data says what system it is reported through and disclaims accuracy. Whether the dollars are gross or net of discounts, and whether they include tax, is not written down. We searched the published text for every relevant term and found no definition, so the basis is recorded as unstated rather than guessed at — the same position as DC, and deliberately not treated as agreement with it.
How current is this?
The freshest in this collection. July 2026's complete figures were live on 3 August 2026, about three days after the month ended. The tax series runs roughly six weeks behind, and the patient counts about two.
Why does the patient count only start in August 2025?
The Department of Health lists only about twelve months of Patient Statistics reports at a time, and its archive page carries none of them. Editions before August 2025 were already unreachable when we began archiving on 15 August 2026. Two months inside that window — October and December 2025 — were never published at all.
Can the numbers change after they are published?
Yes, and the Division says so: it “reserves the right, in its sole discretion, to add, edit, correct, or remove reported data, including sales figures”, with no cut-off. The data is self-reported by licensees. Because of that this page is rebuilt from the full history on every run rather than having new months appended, so a corrected month is picked up rather than frozen.
Where these figures come from
Sourcing, basis and comparabilityNew Mexico runs two channels through one reporting system. Every licensed sale is logged in the state's track-and-trace system and flagged medical or adult-use on the transaction, so the split is measured rather than inferred. Medical purchases are exempt from the cannabis excise tax; adult-use purchases are not.
Basis — Licensed retail sales, calendar month
- Measurement
- measured
- Money
- unstated
- Tax
- unstated
- Period
- calendar_month
- Scope
- retail_only
- Geography
- statewide
- Channels
- medical, adult_use
The regulator's own words: "C.R.O.P data is reported by licensed cannabis entities through the State's track and trace system".
Why an axis above reads unstated: The only methodology text CCD publishes is the disclaimer block on the portal, fetched in full on 2026-08-16. It says what the data is reported through and disclaims accuracy; it does not say whether the figures are gross or net of discounts, and it does not say whether they include gross receipts tax or the cannabis excise tax. Searching the fetched page for 'gross', 'net', 'discount', 'exclud', 'includ', 'tax', 'excise' and 'methodolog' returns the disclaimer's own sentences and no definition. A checked negative, not an omission -- and specifically not to be filled in from the fact that medical is excise-exempt, which is a statement about the tax and not about this column. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Basis — Transaction counts, calendar month
- Measurement
- measured
- Money
- not_applicable
- Tax
- not_applicable
- Period
- calendar_month
- Scope
- retail_only
- Geography
- statewide
- Channels
- medical, adult_use
The regulator's own words: CCD labels these 'Tickets' and publishes no definition of the event being counted.
Why an axis above reads unstated: Same fetched disclaimer block; it defines no term. Whether a 'ticket' is a basket, a line item or a receipt is not stated anywhere CCD publishes, which is why this field carries no cross-state role. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Basis — Average sale value, as published by CCD
- Measurement
- measured
- Money
- unstated
- Tax
- unstated
- Period
- calendar_month
- Scope
- retail_only
- Geography
- statewide
- Channels
- medical, adult_use
Why an axis above reads unstated: Inherited from crop_sales and crop_counts: CCD divides one undefined basis by another and states neither. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Basis — Cannabis excise tax distributed, by revenue period
- Measurement
- measured
- Money
- not_applicable
- Tax
- not_applicable
- Period
- filing_period
- Scope
- retail_only
- Geography
- statewide
- Channels
- adult_use
- Rounding
- Cents, as distributed.
The regulator's own words: TRD 'CAN Distribution Detail By Location', one block per receiving jurisdiction, headed by a 'Revenue Period'.
Basis — Active enrolled medical patients, point in time
- Measurement
- measured
- Money
- not_applicable
- Tax
- not_applicable
- Period
- point_in_time
- Scope
- retail_only
- Geography
- statewide
- Channels
- medical
The regulator's own words: NM DOH Medical Cannabis Program, 'Active Number of Enrolled Patients', reported as of month end.
Sources 3
| Role | Source | Format | From | Last verified | Note |
|---|---|---|---|---|---|
| Canonical | C.R.O.P. portal JSON endpoints (GetTotalsYTD, GetTotals, GetStaticData) NM Cannabis Control Division | json_api | 2022-04 | 2026-08-16 | Unauthenticated, no key, no cookie, no Referer or User-Agent gate; every endpoint answers access-control-allow-origin: *. One POST returns the entire history in ~16 KB. Undocumented bespoke Express routes behind API Gateway with no versioning, so a CCD replatform is the standing risk. |
| Cross-check | Market Sales by City monthly workbooks (C.R.O.P. data catalogue) NM Cannabis Control Division | xlsx | 2022-04 | 2026-08-16 | Never averaged with the canonical figure. 15 of 312 cells across 52 months: three medical-dollar cells by $3.00-$15.00, and twelve ticket cells by 262,218-859,750. |
| Cross-check | GetTotals all-time cumulative endpoint NM Cannabis Control Division | json_api | 2022-04 | 2026-08-16 | Never averaged with the canonical figure. None. All six columns reconcile to the unit on 2026-08-16. |
Why each marker above says what it says
| Metric | Marker | Why |
|---|---|---|
| Retail sales | Partly comparable | New Mexico measures every licensed sale through its track-and-trace system by calendar month, which is exactly the definition the cross-state chart wants. What is not stated is the basis: CCD publishes no methodology note, so whether these dollars are gross or net of discounts, and whether they include tax, is unknown -- the same silence as DC, and not a match with it. Maryland's figures exclude sales tax, so the three lines are not guaranteed to be measuring the same dollar. |
| Medical / adult-use split | Like-for-like | A genuine measured split: the channel is a flag on the transaction in the state's track-and-trace system, not a licence attribute and not a tax proxy. Both channels are open in every month of the series. |
| Price per gram | Not like-for-like | No New Mexico source publishes a quantity. Dollars and transaction counts are the only measures in the API, the per-city workbooks and the per-licensee workbooks alike, so there is nothing to divide by. The average sale value CCD publishes is a basket price and converting it to a unit price would be the invented number Q7 exists to prevent. |
| Per capita | Partly comparable | Every basis flag on the numerator rides along, so this line inherits New Mexico's unstated gross/net and tax basis. On top of that, New Mexico's border stores serve a large out-of-state trade -- Texas has no adult-use market and Sunland Park, Chaparral and Texico sit on its line -- and CCD publishes no buyer-residence attribute, so dividing by New Mexico's own population overstates per-resident spending by an amount that cannot be measured from this source. |
| Patient counts | Partly comparable | An active point-in-time stock, the same measure Maryland publishes, so the two share an axis. DC's cumulative registration count does not and must stay a labelled pair. The caveat is coverage rather than definition: NM DOH exposes only a rolling window of about twelve reports and two of those months were never published, so the series begins in 2025-08 and has holes at 2025-10 and 2025-12. |
| Licence counts | Not like-for-like | CCD publishes a live licence census and no history whatsoever, so there is no series to put on a time axis. The counts are also not one number: 'Principal' counts licensees, 'Premise' counts locations and 'Activity' counts authorised activities, and CCD's headline 'TotalApprovedLicenses' is none of the three. A cross-state licence chart would be comparing whichever of those each state happens to publish. The snapshot is archived daily so a series can begin accumulating. |
| Tax revenue | Not like-for-like | Two things block it. TRD labels each workbook with a 'Revenue Period' and never says whether that is the month of the sale or the month the return arrived, and the lag fit cannot separate them -- so every point could be one month out. And the figure is a cash distribution net of what TRD retains, against an excise base that excludes medical sales entirely, so it is not comparable with a state that reports gross excise liability on all sales. It renders on New Mexico's own page, labelled, and stays off the cross-state chart. Blocked until trd_revenue_period_meaning is resolved, whatever the status above says. |
What is checked on every run 7
| Check | Kind | Last result |
|---|---|---|
| The two channel figures sum to the published total. | identity | pass -- 3 month(s) beyond $1, worst 14.99 |
| The two channel transaction counts sum to the published total. | identity | 12 of 156 ticket cells withheld |
| Every column sums across the monthly rows to the all-time endpoint. An ingestion check: it proves no row was dropped or double-counted, and nothing about whether the rows are right. | identity | pass -- 6 of 6 columns exact |
| Every monthly figure against CCD's own per-city workbook for the same month, summed over its city rows. | cross source reconciliation | 312 cells compared, 12 material disagreements |
| In every jurisdiction block of every CAN workbook, the components sum to the disbursement. | identity | pass -- 3533 blocks checked across 50 workbooks, 0 failed |
| CCD's published average equals its own sales divided by its own transaction count -- which is what makes the average unusable wherever the count is. | identity | pass -- reproduced in 155 of 155 testable cells |
| There is no price per gram to check. | unchecked | Not cross-checked. New Mexico publishes no quantity, no weight and no product category in any of the four sources this pipeline reads, so no unit price exists and none is derived. The page says so rather than leaving a blank chart. |
The regulator's own notes, and what is still open
The regulator's own notes
"C.R.O.P data is reported by licensed cannabis entities through the State's track and trace system and constitutes public information subject to the New Mexico Inspection of Public Records Act, NMSA 1978, Sections 14-2-1 through 14-2-12. The Cannabis Control Division (CCD) does not guarantee completeness, accuracy, or timeliness of the information nor the results obtained from its use, and makes no warranties of any kind, express or implied." — NM Cannabis Control Division, C.R.O.P. portal, fetched 2026-08-16
"The CCD assumes no responsibility for errors, inaccuracies, or omissions in data reported by licensees and reserves the right, in its sole discretion, to add, edit, correct, or remove reported data, including sales figures, product information, or any other reported information." — NM Cannabis Control Division, C.R.O.P. portal, fetched 2026-08-16
Open questions on this data
Unresolved definitional questions that gate something. Listed because a question nobody can see is a question nobody closes.
- Does TRD's 'Revenue Period' name the month of the taxable sale or the month the return was received? Blocks: tax_revenue. Closing it needs: Ask TRD directly, or find a TRD publication that states the convention. A statutory reading is not enough: the distribution is a cash series and the question is about TRD's labelling, not about the filing deadline.
- What is the authoritative mapping for CCD's misspelled city keys? Closing it needs: Ask CCD, or reconcile the per-licensee workbooks' street addresses to a place gazetteer. Guessing that 'ALBUQERQUE' means 'ALBUQUERQUE' is almost certainly right and is still a guess; the point of a map is that it is sourced.
- What event does CCD's 'ticket' count -- a basket, a receipt or a line item? Closing it needs: Ask CCD. The same question is open for DC's 'Total Unique Sales' and Maryland's 'Dispensary Transactions', and an average-basket comparison needs all three answered.