Cost of goods sold under Section 471-11: the only lawful lever
For as long as Internal Revenue Code Section 280E applies, cost of goods sold is the sole mechanism by which a cannabis business lawfully reduces its federal taxable base. Everything else — selling expense, advertising, general administration, officer compensation not embedded in production — is disallowed. The consequence is stark and frequently misunderstood: cannabis accounting is not primarily about producing financial statements. It is about defending, with contemporaneous documentation, the boundary between inventoriable production cost and disallowed period expense on a transaction-by-transaction basis.
A licensed Missouri producer — cultivator or manufacturer — is a producer for tax purposes and computes inventoriable cost under the full absorption rules of Treasury Regulation Section 1.471-11. This is materially more favorable than the reseller treatment applicable to a pure dispensary under Section 1.471-3, and it is why vertical integration in Missouri carries a real tax structural benefit independent of any operational synergy. Section 1.471-11 requires direct production costs to be capitalized into inventory and permits — indeed requires — the absorption of indirect production costs, subject to the regulation's categorization scheme.
The regulation divides indirect production costs into three categories. Category one costs must be included in inventoriable cost regardless of treatment on the financial statements: repair and maintenance of production facilities, utilities allocable to production, rent of production facilities and equipment, indirect production labor, indirect materials and supplies, tools and equipment not capitalized, and quality control and inspection. Category two costs are excluded from inventoriable cost regardless of financial statement treatment: marketing, selling, advertising, distribution, general and administrative expense not allocable to production, and interest. Category three costs — including taxes attributable to assets incident to production, depreciation reported for tax in excess of book, and certain employee benefit costs — follow the taxpayer's financial statement treatment where the taxpayer uses the financial-statement method.
The practical implication is that the general ledger must be built so that every cost lands in an account whose 471-11 category is unambiguous. Where a cost is genuinely shared between production and non-production activity — a shared roof, a shared utility meter, a general manager whose time spans cultivation and retail — the allocation driver must be defined in writing, must be economically rational, must be measurable from records the business actually keeps, and must be applied without exception across periods. Square footage measured from as-built drawings, direct labor hours captured in a timekeeping system, and machine hours logged from equipment controllers are all defensible. A percentage picked at year end because it produces a desirable answer is not, and an examiner who identifies one such allocation will scrutinize every other one.
Uniform capitalization under Section 263A deserves a note. The Tax Court's decision in Patients Mutual Assistance Collective Corp. v. Commissioner made clear that 263A does not operate to expand cost of goods sold for a taxpayer whose deductions are barred by 280E — costs that are not otherwise deductible cannot be capitalized into inventory by way of 263A. The planning consequence is that aggressive 263A positions layered on a cannabis inventory computation are a known examination trigger with little upside. The durable work is done inside 471-11, correctly, at the point of transaction entry.
- Producers capitalize under Treasury Regulation Section 1.471-11 full absorption; resellers are limited to Section 1.471-3 invoice cost plus acquisition cost
- Classify every general ledger account by 471-11 category one, two or three before the period opens, not after
- Define every shared-cost allocation driver in writing, tie it to a measurable record, and apply it consistently
- Do not use Section 263A to expand cost of goods sold beyond what 280E and 471-11 permit
- Retain as-built square footage measurements, timekeeping exports and equipment logs as allocation support
Transaction-level cost isolation: general ledger architecture
The chart of accounts is the tax position. Every downstream outcome — the federal computation, the Missouri Article XIV state deduction reconciliation, the examination defense, the unit economics a general manager uses to decide anything — depends entirely on how a transaction is coded in the seconds it enters the system. Retrofitting a year of misclassified transactions is expensive, produces a reconstruction rather than a contemporaneous record, and is materially less credible under examination than a coding structure that was simply correct from the beginning.
The architecture we build in Missouri facilities uses a segmented account structure: a natural account describing what was bought, a department segment describing which functional area consumed it, a location segment identifying the licensed facility, and where the operator is running batch-level costing, a job or batch segment. The natural account carries the 471-11 category. The department segment carries the production-versus-period determination. Together they make classification mechanical rather than judgmental, which is what allows a facility bookkeeper rather than a tax specialist to code payables accurately at volume.
Cultivation labor is the highest-value and most frequently mishandled cost pool. Direct cultivation labor — the hours spent propagating, transplanting, topping, defoliating, feeding, integrated pest management application, harvesting, bucking, and hand-trimming — is direct production cost and belongs in work in process. Indirect cultivation labor — the cultivation manager, the facility technician maintaining fertigation and climate systems, the compliance staff performing in-facility plant tagging and Metrc data entry — is category one indirect production cost and is absorbed. Labor spent on activities that are not production, including any retail, delivery, marketing or corporate administrative function, is period expense and disallowed. The distinction cannot be made from a payroll register alone; it requires a timekeeping system with task-level or at minimum department-level clock-in, exported and reconciled to the payroll run every period.
Raw biomass and packaging inputs form the second pool. Nutrients, growing media, rockwool, coco, amendments, beneficial insects, pest management inputs, propagation supplies and cloning materials are direct or category one indirect materials consumed in production. Packaging is where the boundary bites: packaging that is applied in the production process and is integral to the finished good — the child-resistant container the flower is packed into at the production facility, the label bearing the Metrc identifier and required Missouri disclosures, the nitrogen-flushed pouch used at pack-out — is inventoriable. Packaging applied at the point of retail sale to complete a customer transaction, the exit bag handed across the counter, is a selling cost and is disallowed. Operators who buy both from the same vendor on the same invoice must split the invoice at entry, every time, or the entire packaging spend becomes indefensible.
Extraction and lab logistics form the third pool and carry the most complex overhead absorption. Solvent purchase and recovery, extraction vessel and closed-loop system operation, chromatography and distillation media, laboratory glassware and consumables, quality control and stability testing performed on in-process material, gas and cryogenic supply, waste solvent disposal, and the depreciation and maintenance of extraction equipment are all category one indirect production costs. The freight and secured logistics moving biomass from cultivation to extraction and moving in-process oil between production steps is inbound production logistics and inventoriable. The logistics moving finished packaged goods to a dispensary for sale is distribution and disallowed. Third-party compliance testing required before a product may be transferred for sale sits close to the line; testing performed on in-process material to direct further production is inventoriable, and the position on release testing should be documented and applied consistently rather than decided invoice by invoice.
- 5010–5099 direct cultivation labor: propagation, transplant, canopy work, harvest, buck, hand-trim
- 5100–5149 indirect cultivation labor absorbed: cultivation management, facility technicians, in-facility compliance tagging
- 5150–5199 direct grow inputs: nutrients, media, amendments, integrated pest management, propagation supplies
- 5200–5249 production packaging: child-resistant primary containers, compliance labeling, pack-out materials
- 5250–5299 extraction direct: solvents, cryogenics, chromatography and distillation media, lab consumables
- 5300–5349 extraction and lab logistics: secured biomass transfer, in-process oil movement, solvent waste disposal
- 5350–5399 category one production overhead: production utilities, production rent, repairs, quality control, production depreciation
- 6000–6999 period expense, disallowed under 280E: retail exit packaging, delivery to dispensary, marketing, corporate administration
- Every account carries a 471-11 category tag; every transaction carries department, location and where applicable batch
Work in process, batch costing and the harvest roll-forward
A cultivation facility that does not accumulate cost by batch cannot compute a defensible cost per gram, cannot explain a margin movement, and cannot support the inventory value on its balance sheet under examination. The work in process structure should open a cost object when a batch is created in Metrc, accumulate direct labor and direct materials against that object as they are consumed, absorb category one overhead on the documented driver as the batch progresses, and close to finished goods inventory at harvest and cure completion using the actual yield recorded in the state system.
Yield variance is the diagnostic. When the harvested wet weight, the post-dry weight and the packaged saleable weight diverge from the standards the facility has established, the variance is either a genuine cultivation outcome, a waste event that should be documented and recorded, or a data error. All three need investigating, and only the first two have accounting answers. Waste — plant material destroyed, failed testing, spoilage, sampling — must be recorded as it occurs, with the Metrc waste entry and the general ledger write-off tied to each other by reference, because unexplained inventory shrinkage is simultaneously an accounting misstatement, a tax exposure and a regulatory reportable event.
Manufacturing batches follow the same discipline with a conversion step. Input biomass leaves finished cultivation inventory at its accumulated cost, extraction and lab cost is absorbed, and output is valued across the resulting product grades on a documented allocation — typically relative sales value where multiple grades emerge from a single run. That allocation methodology must be written down and applied consistently across periods; changing it mid-year to shift cost toward faster-turning inventory is a position an examiner will unwind.
The 10-to-15 day close: itemized ledger checklist
A close is a sequence with owners and dates, not a heroic effort in the last week of the month. The schedule below runs from the first business day after period end and is built to align with Missouri Division of Cannabis Regulation disclosure expectations — ownership and control reporting, financial disclosure on renewal, and the ability to produce facility-level records on request — as well as with the federal computation. Each day's work is a prerequisite for the next; skipping a day does not save time, it moves the failure later.
- Day 1 — Cut-off enforcement: lock the prior period in the general ledger, point-of-sale and inventory system; confirm no post-dated entries; export the final Metrc transfer and package manifest set for the period
- Day 2 — Cash: reconcile every bank and armored-carrier account; tie register close reports to deposits; document every over-and-short with the shift and the responsible person; reconcile vault and safe counts to the cash ledger
- Day 3 — Revenue and tax liability: tie point-of-sale gross sales to the general ledger by revenue account; segregate adult-use, medical, accessory and non-plant-touching revenue; reconcile the 6% and 4% state cannabis tax liability accounts and all local cannabis tax accounts to the point-of-sale tax report; clear the tax-rate exception report
- Day 4 — Accounts payable and accruals: complete the unrecorded-liability search; accrue received-not-invoiced production materials into work in process at the correct 471-11 category; verify every packaging invoice was split between production packaging and retail exit packaging
- Day 5 — Payroll and labor allocation: reconcile the payroll register to the general ledger; import task-level or department-level timekeeping; allocate direct cultivation labor to open batches, indirect production labor to overhead absorption, and non-production labor to period expense; confirm the allocation ties to total hours paid
- Day 6 — Overhead absorption: compute and post the period absorption of category one indirect production cost using the documented driver; recompute the driver's inputs from source records rather than rolling forward last period's percentage; document any driver movement over two percentage points
- Day 7 — Physical inventory counts: complete cycle counts across cultivation work in process, finished goods, manufacturing in-process and retail; count by Metrc package identifier; capture weights on calibrated scales with the calibration record attached
- Day 8 — Metrc reconciliation: perform the full three-way tie of physical count, internal inventory system and Metrc package balances; open a variance ticket for every discrepancy; nothing is written off before its ticket is resolved or documented as unresolved with reason
- Day 9 — Inventory valuation and roll-forward: post the beginning-to-ending inventory roll-forward by category showing production additions, transfers, sales relief, waste and adjustment; close completed batches from work in process to finished goods at actual accumulated cost; compute cost per gram and cost per unit by batch
- Day 10 — Cost of goods sold computation: relieve inventory for the period's sales at the batch-costed value; prepare the 471-11 schedule showing direct cost, category one absorbed cost and the excluded category two cost; reconcile the schedule to the trial balance
- Day 11 — Tax provision: compute the federal 280E-basis liability from gross profit; compute the Missouri Article XIV state-basis liability restoring disallowed expense; post both accruals; update the parallel non-280E shadow computation for rescheduling readiness
- Day 12 — Balance sheet substantiation: prepare a supporting schedule for every balance sheet account; confirm every reconciling item is identified, aged and owned; escalate anything unresolved beyond two periods
- Day 13 — Financial statements and variance analysis: produce the statements with department and location detail; write the variance commentary against budget and prior period; compute margin by category and location, inventory turns and the thirteen-week cash view
- Day 14 — Regulatory and disclosure package: assemble the facility-level records supporting Division of Cannabis Regulation reporting; confirm ownership and control data is current; verify all state and local tax filings for the period are lodged and remitted
- Day 15 — Review, sign-off and archive: controller or external accountant reviews the close binder; sign-off is recorded with date and reviewer; the binder — reconciliations, Metrc variance tickets, allocation support, calibration records, statements — is archived immutably for the retention period
Metrc reconciliation: tying physical weight to the state database
Missouri's state seed-to-sale system is the regulator's version of the truth about what inventory exists. The financial statements are the operator's version. When those two disagree, the operator has three simultaneous problems: a misstated balance sheet, an overstated or understated cost of goods sold that flows straight into the federal computation, and a regulatory discrepancy that the Division of Cannabis Regulation can discover in an inspection. Metrc reconciliation is therefore not an inventory hygiene task. It is a financial control and it belongs in the close, with a named owner and a documented outcome, every single period.
The reconciliation is a three-way tie, not a two-way comparison. Physical count — actual material on calibrated scales — is compared to the internal inventory or enterprise system, and both are compared to the Metrc package balance. Two-way comparisons hide the most common failure mode, which is an internal system that has been silently synchronized to Metrc and therefore agrees with it while both diverge from what is physically in the building.
Run the tie at package identifier granularity. Aggregate weight agreement across a room is not agreement; it routinely masks two offsetting errors that each represent a real control failure. Capture every count on scales with a current calibration certificate, record the scale used, and count wet and dry material against the state of the plant material at the moment of count rather than converting between states with a standard factor.
Every variance gets a ticket with a root cause, and root causes fall into a short list: a data entry error in Metrc, a missed or duplicated adjustment, a transfer manifest received but not recorded internally or vice versa, moisture loss during cure, unrecorded waste or destruction, a sampling or quality control draw not logged, or theft or diversion. The first five have accounting corrections. The last two have regulatory reporting obligations that run on the state's timeline, not the close calendar, and the accounting entry never precedes the required notification.
Moisture loss deserves specific treatment because it is the largest legitimate source of weight variance in a cultivation facility and the most abused explanation for the illegitimate ones. Establish a documented expected moisture-loss curve for each cultivar and drying protocol from the facility's own historical data, monitor actual loss against it, and treat material deviation as an exception requiring investigation rather than as a rounding allowance. An operator who can produce a cultivar-level moisture curve and show that variances fall inside it has an answer to the single most common question in a cannabis inventory examination.
Transfer manifests are the second discipline. Every inbound and outbound transfer generates a manifest in the state system, and every manifest must have a matching entry in the accounting records with the same package identifiers, the same weights and the same date. Reconcile the period's manifest set to the general ledger in full — receipts to inventory additions and payables, shipments to inventory relief and receivables — before the inventory roll-forward is posted. Manifest-to-ledger breaks are the fastest-compounding error in cannabis accounting because they are invisible on the financial statements until a physical count finally exposes them, by which point several periods of cost of goods sold are wrong.
Finally, retain the evidence. Metrc exports, count sheets with counter signatures, scale calibration certificates, variance tickets with resolutions, waste and destruction records with witness attestation, and the manifest reconciliation should be archived together with the close binder. Under examination, the reconciliation you performed is worth exactly as much as the documentation you can produce for it.
- Perform a three-way tie — physical count, internal system, Metrc — at package identifier level, never in aggregate
- Use calibrated scales, record the instrument, and attach the current calibration certificate to the count sheet
- Open a root-cause ticket for every variance; no write-off posts without a resolved or documented ticket
- Maintain a cultivar-level moisture-loss curve from facility history and investigate deviations against it
- Reconcile every inbound and outbound transfer manifest to the general ledger before posting the roll-forward
- Report theft, diversion and destruction events to the regulator on the state's timeline before the accounting entry
- Archive Metrc exports, count sheets, calibration records and variance tickets with the close binder
Controls, systems and reporting that survive scrutiny
Segregation of duties, approval thresholds and dual-control cash procedures only function if the staffing plan supports them. We design controls a general manager in a working Missouri facility will actually run — dual custody on vault access and every cash count, an approval threshold structure that matches real purchasing authority, mandatory two-person sign-off on inventory adjustments above a defined weight, and system-enforced restrictions on who can void a transaction or edit a Metrc package — then test them on a schedule and document the test.
On systems, the configuration matters far more than the brand. Standard small-business accounting software is entirely adequate for a Missouri operator when it is configured for perpetual inventory costing, carries a segmented chart of accounts, and is integrated with the point-of-sale or production system such that revenue, tax liability and inventory relief post from a single source. What does not work is a general ledger maintained independently of the operational systems and reconciled manually at quarter end.
Reporting should serve decisions, not only compliance. Statements alone rarely change behavior. Paired with cost per gram by batch and cultivar, margin by category and location, labor hours per harvested pound, yield and moisture variance against standard, inventory turns, and a rolling thirteen-week cash view that separates the trust-fund tax obligation from operating cash, finance becomes an operating instrument. In a 280E environment where gross margin is the tax base, the operator who manages unit cost is managing the tax bill.
- Dual custody on all vault access, cash counts and inventory adjustments above a defined weight threshold
- System-enforced restrictions on transaction voids, price overrides and Metrc package edits, with an audit log reviewed monthly
- Perpetual inventory costing integrated to the point-of-sale and production systems from a single posting source
- Operating dashboard: cost per gram by batch, margin by category and location, labor hours per pound, yield variance, inventory turns
- Thirteen-week cash forecast that isolates collected cannabis tax from operating cash
Frequently asked questions
Can a Missouri operator use standard small-business accounting software?
Yes, when it is configured for inventory costing and integrated with the point-of-sale or production system. The configuration matters far more than the brand.
How long does it take to fix a neglected accounting system?
Usually one to three months, depending on how many periods need rebuilding and whether inventory history can be reconstructed from track-and-trace records.
