At a glance
Where the market is heading
Virginia has one retail channel. Adult-use possession has been legal since July 2021, but no licensed adult-use store has ever opened, and the first adult-use sales are scheduled for 1 July 2027. So there is no split to draw here and no adult-use line sitting at zero: the channel does not exist yet, and its absence is recorded as an absence.
Monthly dispensary sales
Why this line starts where it does. The Cannabis Control Authority publishes its data through a single Tableau dashboard that shows a rolling window of the most recent months and nothing before it. Older months are not archived anywhere by the CCA and no other Virginia source carries a machine-readable monthly figure, so the history before this site began capturing the workbook is gone rather than merely unextracted. The window advances a month at a time, and so does this chart.
The CCA states no basis for these dollars. Whether they are gross or net of discounts, and whether Virginia sales tax is inside them, are both undocumented — searched for and not found, rather than assumed. Both flags read unstated on the comparability matrix for that reason.
What is selling
Sales by product category
What a gram cost
These are the CCA's own published figures, not worked out here. The dashboard titles them “Average Flower Price per Gram” and “Median Flower Price per Gram”, and it says nothing else about them — no statement of which products are inside them, and none of how tax or discounts are treated.
Price per gram, flower
An average and a median are different questions. They are drawn together here because they are both Virginia's, over the same basket, published side by side by the same regulator — and each is labelled. Only the average is offered to the cross-state price chart, because putting one state's published median on an axis with another state's derived mean is the thing the site's own comparability rules forbid.
Virginia is not on the cross-state price chart, and this is why. That chart is whole bud only — flower with pre-rolls, shake and trim excluded — because a basket that moves with product mix is not a price. Virginia's dashboard says “flower” in a chart title and defines nothing, and the Commonwealth's own statute defines neither bud nor shake and trim: its “usable cannabis” is any cannabis plant material, including seeds
. The workbook does separate Bud from Shake/Trim in its product categories, which is consistent with a bud-only basket without establishing one. So the basket is recorded as unverified, an open question is filed against it, and Virginia stays off that axis until the CCA answers.
Do not divide the sales line by the packaged-weight line. Packaged weight sits beside plants harvested in the CCA's workbook: it is what processors packaged, not what dispensaries sold, and it covers every product form rather than flower. The result of that division is neither this price nor any other.
What the growers produced
A supply-side pair, kept apart from the sales chart on purpose. Packaged weight is in grams — the CCA's sheet is named in pounds while its column header is in grams, and the header is the one that matches the data. This site reads the header, converts nothing, and refuses to publish if that column ever stops naming a unit.
Packaged weight and plants harvested
These are production figures, not sales figures. Nothing links a gram packaged in one month to a gram sold in another, and the two lines here move on a cultivation cycle rather than a retail one. They are shown because the CCA publishes them and they say something real about the supply side; they are not a denominator for anything on this page.
How often people buy
Neither of these is a patient count, and Virginia does not have one to publish. The CCA's own patients page puts it plainly: Is registration needed? No. The CCA does not require patients to register, and it is not required to access cannabis products at licensed dispensaries.
A written certification from a practitioner is what a buyer presents. A transaction is one basket; a dispensation is one product handed over, so a single visit produces one of the first and often several of the second.
Transactions and dispensations
The dispensations line stops short, and that is the source. The CCA's dispensations table lags the rest of its own workbook, so the most recent months carry a transaction count and no dispensation count. Those months are drawn as gaps with that reason attached — not as zeros, and not by quietly trimming the chart back to where both series happen to end.
Where these figures come from
Sourcing, basis and comparabilityVirginia runs a medical-only market through pharmaceutical processors and their dispensing facilities, regulated by the Cannabis Control Authority. Adult-use possession has been legal since 2021-07-01, but no licensed adult-use retail has ever operated; a retail framework enacted in July 2026 schedules the first adult-use sales for 2027-07-01. Virginia requires no patient registration - a practitioner's written certification is what a buyer presents - so there is no patient count to publish and "medical" is a channel label rather than a registered population.
Basis — CCA dashboard monthly sales, Metrc-measured, money basis undocumented
- Measurement
- measured
- Money
- unstated
- Tax
- unstated
- Period
- calendar_month
- Scope
- retail_only
- Geography
- statewide
- Channels
- medical
The regulator's own words: MEASUREMENT IS STATED, and this is the sentence. Under a bold "Data Sources:" heading in the dashboard's own text zone the CCA writes, verbatim: "Data visualized within this dashboard is extracted from Metrc, Virginia's seed-to-sale tracking system." That is a methodology statement, not a chart title, so `measurement` is `measured` on the regulator's own words rather than `unstated` - matching how the estate reads the same evidence elsewhere. `scope` is retail_only on published evidence rather than silence: the figure is titled Monthly Sales Amount on a dashboard the CCA introduces as covering "how Virginia's medical cannabis program is operating" with "key data on sales, pricing, products, and monthly activity", it is paired with a transaction count and a dispensation count, and searched for 'wholesale', 'retail sales', 'includes', 'excludes', 'excluding': zero hits - the workbook carries no wholesale series to be folded in.
Why an axis above reads unstated: SOURCE_CONTRACT B.6. Swept the CCA data-dashboard page and the Tableau workbook XML, which are the only two artifacts the CCA publishes that could carry a methodology statement, counting both how often each term occurs and how many of those occurrences sit in text the CCA WROTE rather than in a name it assigned. For money: searched for 'gross', 'net of', 'discount', 'rebate': zero hits. For tax: searched for 'tax', 'excise', 'sales tax': zero hits. The Code of Virginia section 4.1-1600, the definitions section for the Medical Cannabis Program, was also read in full and defines no reporting basis. Nothing states whether these dollars are gross or net of discounts, or whether Virginia sales tax is inside them, so those two stay `unstated` rather than being filled with the most likely answer. MEASUREMENT IS NOT AMONG THEM: searched for 'methodolog', 'definition', 'defined as', 'seed-to-sale', 'point of sale', 'biotrack', 'metrc': 'metrc' x4 (all in the CCA's own dashboard prose); 'seed-to-sale' x2 (all in the CCA's own dashboard prose), and the hits in the CCA's own prose are its statement of what system produced the figures - see `source_statement`. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Basis — CCA published price per gram, flower basket unverified
- Measurement
- measured
- Money
- unstated
- Tax
- unstated
- Period
- calendar_month
- Scope
- retail_only
- Geography
- statewide
- Channels
- medical
The regulator's own words: MEASUREMENT IS STATED, and this is the sentence. Under a bold "Data Sources:" heading in the dashboard's own text zone the CCA writes, verbatim: "Data visualized within this dashboard is extracted from Metrc, Virginia's seed-to-sale tracking system." That is a methodology statement, not a chart title, so `measurement` is `measured` on the regulator's own words rather than `unstated` - matching how the estate reads the same evidence elsewhere.
Why an axis above reads unstated: SOURCE_CONTRACT B.6. Swept the CCA data-dashboard page and the Tableau workbook XML, which are the only two artifacts the CCA publishes that could carry a methodology statement for basket and method language: searched for 'bud', 'shake', 'trim', 'pre-roll', 'flower': 'bud' x14 (all in worksheet, field and chart names); 'flower' x14 (all in worksheet, field and chart names); 'shake' x1 (all in worksheet, field and chart names); 'trim' x1 (all in worksheet, field and chart names). All 30 of those hits sit in worksheet, field and chart names; none sits in a sentence the CCA wrote. That is the measured difference between this axis and `measurement`, which the CCA does state. The Tableau worksheets are named 'average price per gram (bud/flower)' and 'median price per gram (bud/flower)' and render as 'Average Flower Price per Gram' and 'Median Flower Price per Gram'. That is a chart title, not a definition: it does not say which of the workbook's five product categories are inside it, and the Code of Virginia section 4.1-1600 defines neither 'bud' nor 'shake' nor 'trim' - its 'usable cannabis' means "any cannabis plant material, including seeds". No statement of tax treatment or discount treatment exists either. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Basis — CCA total packaged weight, unit read from the column header
- Measurement
- measured
- Money
- not_applicable
- Tax
- not_applicable
- Period
- calendar_month
- Scope
- all_tiers
- Geography
- statewide
- Channels
- unknown
The regulator's own words: MEASUREMENT IS STATED, and this is the sentence. Under a bold "Data Sources:" heading in the dashboard's own text zone the CCA writes, verbatim: "Data visualized within this dashboard is extracted from Metrc, Virginia's seed-to-sale tracking system." That is a methodology statement, not a chart title, so `measurement` is `measured` on the regulator's own words rather than `unstated` - matching how the estate reads the same evidence elsewhere.
Why an axis above reads unstated: SOURCE_CONTRACT B.6. The sheet is named 'Total packaged weight (lbs)' and its column header reads 'Total Packaged Weight (g)'. The pipeline reads the unit off the HEADER and treats the values as g. Reading the tab name instead would multiply every figure by 453.59237. The CCA names the system the figures come from but states nothing about what is weighed or when: this sits beside Plants Harvested in the workbook and is a supply-side figure, so it is NOT weight sold and must never be divided into sales to produce a price. searched for 'methodolog', 'definition', 'defined as': zero hits. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Unit conversion. g → g, factor 1.0, defined in International avoirdupois pound, exact by definition: 1 lb = 0.45359237 kg (NIST Handbook 44, Appendix C). 1 oz = 1/16 lb. The sheet is named 'Total packaged weight (lbs)' and its column header reads 'Total Packaged Weight (g)'. The pipeline reads the unit off the HEADER and treats the values as g. Reading the tab name instead would multiply every figure by 453.59237..
Basis — CCA monthly event counts
- Measurement
- measured
- Money
- not_applicable
- Tax
- not_applicable
- Period
- calendar_month
- Scope
- retail_only
- Geography
- statewide
- Channels
- medical
The regulator's own words: MEASUREMENT IS STATED, and this is the sentence. Under a bold "Data Sources:" heading in the dashboard's own text zone the CCA writes, verbatim: "Data visualized within this dashboard is extracted from Metrc, Virginia's seed-to-sale tracking system." That is a methodology statement, not a chart title, so `measurement` is `measured` on the regulator's own words rather than `unstated` - matching how the estate reads the same evidence elsewhere.
Why an axis above reads unstated: SOURCE_CONTRACT B.6. Swept the CCA data-dashboard page and the Tableau workbook XML, which are the only two artifacts the CCA publishes that could carry a methodology statement: searched for 'methodolog', 'definition', 'defined as', 'seed-to-sale', 'point of sale', 'biotrack', 'metrc': 'metrc' x4 (all in the CCA's own dashboard prose); 'seed-to-sale' x2 (all in the CCA's own dashboard prose). What the CCA states is the SYSTEM, not the definitions: the workbook gives 'Transactions' and 'Dispensations' as bare monthly counts and defines neither - whether a transaction is a basket or a line, and what makes a dispensation a distinct event, are both undocumented. Dispensations and transactions are different measures: over the 11 months that carry both, dispensations exceed transactions in 11 of them, by a factor of 2.60 to 2.79. One basket can hold several dispensations. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Basis — CCA cultivation counts
- Measurement
- measured
- Money
- not_applicable
- Tax
- not_applicable
- Period
- calendar_month
- Scope
- all_tiers
- Geography
- statewide
- Channels
- unknown
The regulator's own words: MEASUREMENT IS STATED, and this is the sentence. Under a bold "Data Sources:" heading in the dashboard's own text zone the CCA writes, verbatim: "Data visualized within this dashboard is extracted from Metrc, Virginia's seed-to-sale tracking system." That is a methodology statement, not a chart title, so `measurement` is `measured` on the regulator's own words rather than `unstated` - matching how the estate reads the same evidence elsewhere.
Why an axis above reads unstated: SOURCE_CONTRACT B.6. Swept the CCA data-dashboard page and the Tableau workbook XML, which are the only two artifacts the CCA publishes that could carry a methodology statement: searched for 'methodolog', 'definition', 'defined as', 'seed-to-sale', 'point of sale', 'biotrack', 'metrc': 'metrc' x4 (all in the CCA's own dashboard prose); 'seed-to-sale' x2 (all in the CCA's own dashboard prose). Plants harvested is a bare monthly count with no stated definition of what counts as a harvest event; the system that produced it IS stated, the event it counts is not. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Basis — CCA permit roster, point in time
- Measurement
- unstated
- Money
- not_applicable
- Tax
- not_applicable
- Period
- point_in_time
- Scope
- all_tiers
- Geography
- statewide
- Channels
- medical
Why an axis above reads unstated: SOURCE_CONTRACT B.6. The roster sheet carries no as-of date, no header stating when it was extracted and no status column. searched for 'definition', 'defined as': zero hits. The as-of recorded here is therefore the capture date, which is a fact about this pipeline rather than about the CCA, and it is labelled that way. The CCA's Data Sources statement names Metrc as the system behind the data VISUALIZED in the dashboard, which is transaction activity; a permit roster is a licensing register rather than a tracked transaction, so that sentence is not read onto this block and `measurement` stays `unstated`. An undocumented basis is a gap to be labelled, never filled in with the most likely answer.
Sources 3
| Role | Source | Format | From | Last verified | Note |
|---|---|---|---|---|---|
| Canonical | CCA Medical Cannabis Program dashboard - packaged Tableau workbook Virginia Cannabis Control Authority | tableau | rolling | 2026-08-16 | Tableau Public serves the packaged workbook at /workbooks/<name>.twb; it is a zip whose Data/ directory still holds the analyst's original Excel. Unauthenticated, no key, no session, no JavaScript. This is an undocumented Tableau Public affordance rather than a published API, which is why every shape assertion in `fetch` is a refusal rather than a warning. The source exposes a rolling window: the newest capture carries 13 months, 2025-07 to 2026-07. Nothing older is retrievable from it at any price, so the archive that began on 2026-08-15 is the only thing standing between this series and permanent loss. |
| Cross-check | CCA dashboard - Sales view CSV export Virginia Cannabis Control Authority | csv | rolling | 2026-08-16 | Never averaged with the canonical figure. |
| Cross-check | CCA dashboard - Sales by Category view CSV export Virginia Cannabis Control Authority | csv | rolling | 2026-08-16 | Never averaged with the canonical figure. |
Why each marker above says what it says
| Metric | Marker | Why |
|---|---|---|
| Retail sales | Partly comparable | Dollars paid at licensed medical dispensaries, by calendar month, from the CCA's own dashboard workbook. The CCA states no basis: whether the figures are gross or net of discounts, and whether they include Virginia sales tax, are both undocumented, so both flags are `unstated` rather than assumed. Single-channel - there is no adult-use retail in Virginia before 2027-07-01. Across the 13 months compared, summing the five product categories reproduces it to the cent in 8 of them; exceeds the published total in 4, by up to $633.00; falls short of the published total in 1, by up to $1.00. The months that miss are 2025-11, 2025-12, 2026-01, 2026-02, 2026-03. DECLARED DEVIATION FROM ANCHORS section 5. The hard rule for `retail_sales_monthly` is "never a regulator's own roll-up where row-level data exists - sum the rows and use the roll-up as a cross-check", and the definition to match is "summed from the most granular rows the source publishes". Virginia publishes both: the roll-up sheet 'Monthly Sales Amount' and the row-level 'MonthlySalesByProduct'. This pipeline does the OPPOSITE of the rule - roll-up as headline, rows as the integrity check - and that inversion is stated here rather than left for a reader to notice. Four-axis scoring (SOURCE_CONTRACT section A): measurement, period and scope are identical, because both sheets sit in the same workbook on the same refresh and under the same Data Sources statement, and the CCA states no money or tax basis for either. The axes separate only on GRANULARITY, where the five product-category rows are the more granular decomposition and the anchor therefore prefers them. The argument for departing anyway is measured, not asserted. First, the rows do not reconcile to the regulator's own total: 5 of 13 months miss it, by at most 0.0046% of that month's published figure - so a row-summed headline would print a number the CCA's own dashboard contradicts, with no way for a reader to reconcile the two. Second, the roll-up has independent corroboration the rows do not: the published Sales view exports its own CSV from the same workbook and matches the roll-up in 6 of the 6 months they overlap. Third, the direction of the miss is two-signed, so the row sum is neither a floor nor a ceiling on the roll-up and cannot be presented as a conservative alternative. The deviation is recorded on the state page and in the comparability matrix as well as here; if the CCA ever states that its roll-up is something other than the sum of those rows, this choice has to be re-argued rather than inherited. |
| Medical / adult-use split | Single-channel market | Virginia is a single-channel medical market. Adult-use possession has been legal since 2021-07-01 but no licensed adult-use retail has ever operated; the first adult-use sales are scheduled for 2027-07-01. A medical share of 100% here is a category, not a score, and must not be ranked against a mixed market. Virginia also requires no patient registration, so "medical" describes the licence the sale happened under, not a registered clinical population. |
| Price per gram | Partly comparable | Virginia publishes a price per gram the dashboard titles "Average Flower Price per Gram", but states no methodology, and the Commonwealth's own statute defines neither bud nor shake and trim - its "usable cannabis" is "any cannabis plant material, including seeds". The workbook prices the same market whose product categories separate Bud from Shake/Trim, so the basket is plausibly whole bud and is not demonstrably so. ANCHORS section 5 pins the estate standard at whole bud, so the basket is recorded as unverified and an open question keeps Virginia off the cross-state price axis until the CCA answers. It is also a published mean, not one derived here. Blocked until va_price_basket is resolved, whatever the status above says. |
| Per capita | Partly comparable | Sales per resident, dividing each month by Virginia's July-1 Census estimate for that month's year. Per-capita inherits every flag on its numerator, so the unstated money and tax basis above travel with it. It also divides a MEDICAL-ONLY market by the whole population: any adult may buy in an adult-use state, while in Virginia a written certification is required first. |
| Patient counts | Not like-for-like | Virginia has no patient registry to count. The CCA's own patients page answers the question directly: "Is registration needed? No. The CCA does not require patients to register, and it is not required to access cannabis products at licensed dispensaries." The workbook's two people-shaped series are dispensations and transactions, which are monthly flows of activity and not a stock of patients; substituting either would invent a population. Dispensations and transactions are different measures: over the 11 months that carry both, dispensations exceed transactions in 11 of them, by a factor of 2.60 to 2.79. One basket can hold several dispensations. |
| Licence counts | Partly comparable | A point-in-time roster of permits carried inside the same workbook, with no as-of date of its own - so the as-of here is the capture date, not a date the CCA published. Virginia counts PERMITS, and a vertically integrated operator holds several of them: The roster carries 33 permits held by 6 operators, the largest holding 9: 1 Cultivator, 4 Cultivator - Integrated, 19 Dispensary, 4 Dispensary - Integrated, 4 Processor, 1 Testing Facility. 23 of those permits are dispensing locations (19 Dispensary plus 4 Dispensary - Integrated) at 23 distinct location names, which is the count a reader means by 'dispensaries' and is summed here rather than typed. The operator count is a NORMALISATION of the 9 distinct facility strings the roster spells - case, punctuation and one trailing corporate suffix are folded, nothing else - so it is reproducible from the roster and is not an identity resolution across trading names. |
| Tax revenue | Not like-for-like | The CCA publishes no cannabis tax figure. Nothing in the dashboard workbook is a tax series, and deriving one would need a rate this source does not carry - so Virginia is absent from the tax comparison rather than represented by an estimate. |
What is checked on every run 4
| Check | Kind | Last result |
|---|---|---|
| The five product-category rows are an independent decomposition of the published monthly total, so their sum is a check on it. Across the 13 months compared, summing the five product categories reproduces it to the cent in 8 of them; exceeds the published total in 4, by up to $633.00; falls short of the published total in 1, by up to $1.00. The months that miss are 2025-11, 2025-12, 2026-01, 2026-02, 2026-03. | identity | Across the 13 months compared, summing the five product categories reproduces it to the cent in 8 of them; exceeds the published total in 4, by up to $633.00; falls short of the published total in 1, by up to $1.00. The months that miss are 2025-11, 2025-12, 2026-01, 2026-02, 2026-03. |
| The unit control for the lbs-vs-g trap. The sheet is named 'Total packaged weight (lbs)' and its column header reads 'Total Packaged Weight (g)'. The pipeline reads the unit off the HEADER and treats the values as g. Reading the tab name instead would multiply every figure by 453.59237. | shape assertion | Over 13 months, the published mean price per gram is between 1.32x and 3.40x the value implied by dividing sales by packaged weight. Read as pounds the same ratio would run 599x to 1,539x, so the 20x refusal threshold sits above everything observed and far below the failure it guards against. |
| The dashboard's published views also export as CSV, and they are drawn from the same workbook on the same refresh, so they are a parity check rather than a second source. The Sales view overlaps 6 months and matches the workbook exactly in 6 of them; the Sales by Category view overlaps 30 cells and matches in 30. | cross source reconciliation | The dashboard's published views also export as CSV, and they are drawn from the same workbook on the same refresh, so they are a parity check rather than a second source. The Sales view overlaps 6 months and matches the workbook exactly in 6 of them; the Sales by Category view overlaps 30 cells and matches in 30. |
| Virginia's price per gram has nothing to check it against. | unchecked | Not cross-checked. The price is a published statistic with no published inputs: the CCA gives an average and a median per gram but no flower dollars and no flower weight, so it cannot be rederived. The workbook's packaged-weight series is supply-side and all-product, so dividing sales by it is neither the same basket nor the same event - Over 13 months, the published mean price per gram is between 1.32x and 3.40x the value implied by dividing sales by packaged weight. Read as pounds the same ratio would run 599x to 1,539x, so the 20x refusal threshold sits above everything observed and far below the failure it guards against. That ratio is used here only as a UNIT control and is not a price check. Unlike the District's headline, which two independent identities in one document over-determine, this figure is taken on the regulator's word. |
The regulator's own notes, and what is still open
The regulator's own notes
Across the 13 months compared, summing the five product categories reproduces it to the cent in 8 of them; exceeds the published total in 4, by up to $633.00; falls short of the published total in 1, by up to $1.00. The months that miss are 2025-11, 2025-12, 2026-01, 2026-02, 2026-03. — Derived from the CCA dashboard workbook by this pipeline
The sheet is named 'Total packaged weight (lbs)' and its column header reads 'Total Packaged Weight (g)'. The pipeline reads the unit off the HEADER and treats the values as g. Reading the tab name instead would multiply every figure by 453.59237. — Virginia CCA dashboard workbook, 'Total packaged weight (lbs)' sheet
The dispensations table stops 2 months short of the rest of the workbook: 2026-06, 2026-07 carry a transaction count and no dispensation count. Those months are declared gaps, not zeros and not dropped rows. — Virginia CCA dashboard workbook, 'People' sheet
Virginia publishes both an average and a median price per gram. Over the 13 months that carry both, the average sits above the median in 12, below it in 1 and level with it in 0; the largest gap either way is $0.35. They answer different questions and only the average feeds the cross-state price axis. The month where the average is the lower of the two is 2025-10. — Virginia CCA dashboard workbook, 'AveragePricePerGram' and 'MedianPricePerGRam' sheets
A checked negative, not an omission: 616 numeric cells were read across 4 captures and 0 carried a non-numeric token. The registry is therefore empty and `unknown_marker_policy` is `error`, so the first placeholder the CCA prints stops the run rather than being coerced. — Measured by this pipeline across every archived capture
Is registration needed? No. The CCA does not require patients to register, and it is not required to access cannabis products at licensed dispensaries. The written certification is the primary document needed to access medical cannabis products.
— Virginia Cannabis Control Authority, Patients & Caregivers FAQ, cca.virginia.gov/medicalcannabis/patients
"Usable cannabis" means any cannabis plant material, including seeds, but not (i) resin that has been extracted from any part of the cannabis plant, its seeds, or its resin; (ii) the mature stalks, fiber produced from the [stalks]...
— Code of Virginia section 4.1-1600, Definitions (Medical Cannabis Program), read 2026-08-16
The archive holds 4 captures across 4 dates spanning 8 days, giving 154 cells seen more than once, of which 0 moved. Upsert is the posture regardless of what has been observed - SOURCE_CONTRACT C names Virginia among the states whose published periods get revised, and round 2 found the CCA saying so itself in the workbook's Note block - but the number above is what this archive can demonstrate, not what the source says or is believed to do. — Measured by this pipeline over the archive it merged
Open questions on this data
Unresolved definitional questions that gate something. Listed because a question nobody can see is a question nobody closes.
- Which of the workbook's 5 product categories are inside the CCA's 'Average Flower Price per Gram' - Bud alone, or Bud together with Shake/Trim and any pre-rolled product? ANCHORS section 5 admits only whole bud onto the cross-state price axis. Blocks: price_per_gram. Closing it needs: Email data@cca.virginia.gov, the address the CCA's own dashboard page gives for data requests, or submit the linked data request form at cca.virginia.gov/forms/request-data, asking which product categories the average and median price per gram are computed over and whether the figures are before or after tax and discounts.
- Are the CCA's monthly sales dollars gross or net of discounts, and do they include Virginia sales tax? Closing it needs: Same route: data@cca.virginia.gov or the data request form. Until answered the MONEY and TAX flags stay `unstated`, which is a labelled gap rather than a guess. `measurement` is not one of them - the CCA does state that, and round 2 corrected a file that said otherwise.
- Will the CCA restructure or replace this workbook when adult-use retail opens on 2027-07-01, and will a medical/adult-use split appear in it? Closing it needs: Watch the canary: the pipeline already refuses if the string 'MCPdashboardFinal' leaves the CCA dashboard page. Re-read the workbook's sheet contract in the first month after 2027-07-01 whether or not the canary fires.