How Washington's CCRS System Works


CCRS is awesome because the State actually owns the technology solution. CCRS is a failure because the technology performs very poorly.

The Cannabis Compliance Reporting System (CCRS) in Washington State is a state-built system to upload Comma Separated Values (CSV) data files for regulatory reporting by i502 Cannabis Licensees. Users (Licensees or Software Integrators) of CCRS sign in via the State’s Single Sign-On solution and upload a file. The system provides a timestamp for the uploaded file and it is dropped into a queue. When the file is processed, it may generate errors. If there are any errors a new reply CSV file is generated and emailed to the address on file of the user who has authenticated.

API Problems, Old and New

Our first issue with the CSV Upload process is the weak-acceptance of reports sent to the LCB. CCRS does not provide positive confirmation of receipt of the report. On upload, only a timestamp is returned. Details typical of an API indicating an operation was successful, like names of uploaded files, and unique transaction identifiers are not returned from the LCB after the upload. In the scenario where an issue with the uploaded files exists, the LCB requires users to re-upload the file. Interestingly, OpenTHC has learned the LCB does not retain a copy of uploaded files, and CCRS does not record logs of the transactions made to CCRS.

Delayed-responses are a symptom of the LCB’s batch-queueing workflow for uploaded reports. OpenTHC has documented and reported dozens of cases where email notification responses are delayed within a range of several hours to several days. These long turnaround times with no actionable feedback creates confusion about what has been accepted by the LCB. OpenTHC CEO and Founder David Busby has reported these findings to the Board on 2022-10-12.

Finally, by scrambling file names in response notifications: CCRS creates an extraordinarily difficult challenge in tracing reports with their responses from the LCB. CCRS responses referencing a failed upload do not label the offending file with the original name users labeled it as. This behavior makes it challenging to positively identify which report the LCB is marking for review.

The convolution of these three issues create a system that is VERY difficult for users doing manual reporting, and presents unique challenges for integrators. \ This circumstance creates uncertainty on whether the LCB received and accepted the required report.

Washington State used to have a real-time system with strong-acceptance and predictable error responses. These systems are in widespread use in other jurisdictions. It is consistently surprising that an agency in a state known for its technology acumen would design such a system.

A Reporting System

When the transition to CCRS was announced in 2021-10-13 and 2021-11-10 it was described as a reporting system. The “Cannabis 2.0” initiative to design and implement CCRS was positioned to migrate Washington State cannabis licensees off of the existing track-and-trace system, and put Washington State back in the driver’s seat of the industry.

Users upload Variety (Cultivar/Strain), Section (Area/Room/Zone), Product, Inventory Lot, Crop (Plants/Trees), B2B and B2C transactions. When uploading this information MUST be done in the right order. This implied order-of-operations makes sense if you are building a regulatory database but not for a reporting database. \ Cannabis licensees have always had to upload Varieties, Sections, Product, Inventory Lot, Crop, and Sales transactions. In track-and-trace systems: this information must be uploaded in the correct order. The implied order-of-operation makes sense when the objective is to build a regulatory database. Track-and-trace systems build regulatory databases.

Full data integrity is a crucial requirement of a regulatory database. Full data integrity guarantees Inventory Lots are linked to correct and valid Sales Receipts, Variety, Section, Product, and Lab Report definitions, and their attachments.

CCRS is intended to be a reporting system. If CCRS were behaving as such, it would not require a specific order to upload these reports in. The system would allow data to be imported without these verifications. LCB could then act to reconcile compliance issues using reports generated from the reports.

Under the existing behavior of CCRS, users are blocked from uploading their reports and fulfilling their regulatory obligations in a timely manner. One issue can begin to cascade quickly. Waiting for the results on a reported Product can have side-effects on the reported activity of an Inventory Lot waiting for the Product definition to come into existence in CCRS. OpenTHC estimates a best-case wait time of 6 hours for an error notification from CCRS.

Lab and B2B

Problems with CCRS response lag are compounded when we introduce Laboratory Result and B2B Sale transactions. OpenTHC has observed several instances of these problems blocking business because of external factors in CCRS.

Laboratory data cannot be uploaded unless the Inventory Lot data is properly uploaded. However, that Inventory is uploaded by a Licensee, not the Laboratory. The Laboratory data is rejected, until the Licensee uploads the Inventory without issue.

A similar event occurs when uploading the B2B transactions. Transactions are dependent on the SUPPLY side licensee for uploading their data to CCRS. And if the SUPPLY side licensee has not completed this upload, the DEMAND side is unable to report on the records that they have a right to.

There is no clarity on responsibility in many of these scenarios from the LCB. The lag of CCRS is far longer than a reasonable pace of business, and these compounding issues with the system’s behavior are becoming entangled in everyday transactions.

In OpenTHC’s experience, Licensees typically work with each other in good faith to correct issues. However, CCRS’s problems create friction when they are not able to be resolved quickly. There is also little guidance from the LCB on who ultimately is responsible in any given situation.

Raising these issues to the LCB has put many participants into a bind. The LCB naturally wants to know more information, but they prioritize knowing exactly which participants are being discussed in any given situation. Individuals do not feel comfortable narcing out their peers, and the LCB is losing out on valuable feedback opportunities.

The Cannabis 2.0 initiative is the kind of good policy making Washington State is known for. Reporting systems are a reasonable solution for the regulatory goals the State is trying to achieve. However, CCRS is a broken reporting system because the implementation does not allow it to behave like one. Instead, it has adopted the worst features of every track-and-trace vendor the LCB has ever worked with, and still somehow managed to hang onto spreadsheet reporting.


CCRS is awesome because the State actually owns the technology solution. CCRS is not because the technology performs very poorly.

Shout Out

Thanks to Greg, Jim, Matt, Micha for edits.