|6 Months Ended|
Jun. 30, 2022
|Revenue from Contract with Customer [Abstract]|
Note 3 – Revenue
We recognize revenue when a customer obtains the benefit of promised services, in an amount that reflects the consideration the Company expects to be entitled to receive in exchange for those services. In determining the amount of revenue to be recognized, we perform the following steps: (i) identification of the contract with a customer; (ii) identification of the promised services in the contract and determination of whether the promised services are performance obligations, including whether they are distinct in the context of the contract; (iii) determination of the transaction price; (iv) allocation of the transaction price to the performance obligations based on estimated selling prices; and (v) recognition of revenue when (or as) the Company satisfies each performance obligation.
Software Revenue. Our software revenue is generated from subscriptions and services related to the use of our commercial software platforms, MJ Platform®, Ample, Trellis, Viridian, 365 Cannabis, and our government regulatory platform, Leaf Data Systems, and the sale of business intelligence, data analytics and other software related services. For our SMB customers, software contracts are generally annual contracts paid monthly in advance of service and typically cancellable upon 30 days’ notice after the end of the contract period. Leaf Data Systems contracts are generally multi-year contracts payable annually or quarterly in advance of service. Commercial software and Leaf Data Systems contracts generally may only be terminated early for breach of contract as defined in the respective agreements. Our enterprise contracts are typically multi-year contracts paid monthly in advance of services and are generally cancellable with at least one month's notice before the end of the contract period. Amounts that have been invoiced are initially recorded as deferred revenue or contract liabilities. Subscription revenue is recognized on a straight-line basis over the service term of the arrangement beginning on the date that our solution is made available to the customer and ending at the expiration of the subscription term. We typically invoice customers at the beginning of the term, in multi-year, annual, quarterly, or monthly installments. When a collection of fees occurs in advance of service delivery, revenue recognition is deferred until such services commence. Revenue for implementation fees is recognized ratably over the expected term of the contract, including expected renewals.
We include service level commitments to customers warranting certain levels of uptime reliability and performance and permitting those customers to receive credits if those levels are not met. In addition, customer contracts often include: specific obligations that require us to maintain the availability of the customer’s data through the service and that customer content is secured against unauthorized access or loss, and indemnity provisions whereby we indemnify customers from third-party claims asserted against them that result from our failure to maintain the availability of their content or securing the same from unauthorized access or loss. To date, we have not incurred any material costs as a result of such commitments. Any such credits or payments made to customers under these arrangements are recorded as a reduction of revenue.
Consulting Revenue. Consulting services revenue is generated by providing solutions for operators in the pre-application of licensures and pre-operational phases of development and consists of contracts with fixed terms and fee structures based upon the volume and activity or fixed-price contracts for consulting and strategic services. These services include application and business plan preparation as they seek licenses to be granted. Consulting projects completed during the pre-application phase generally solidify us as the software vendor of choice for subsequent operational phases once the operator is granted the license. As a result, our consulting revenue is driven as new emerging states pass legislation, and as our client-operators gain licenses. When these services are not combined with subscription revenues as a single unit of account, these revenues are recognized as services are rendered and accepted by the customer.
Other Revenue. Our other revenue is derived primarily from point-of-sale hardware and other non-recurring revenue. We recognize revenue as these products are delivered and title has transferred.
Cost of Revenue. Cost of revenue consists primarily of costs related to providing subscription and other services to our customers, including employee compensation and related expenses for data center operations, customer support and professional services personnel, payments to outside technology service providers, security services, and other tools.
Deferred Revenue. Deferred revenue consists of payments received in advance of revenue recognition from subscription, implementation and consulting services. The deferred revenue balance is influenced by several factors, including seasonality, the compounding effects of renewals, contract duration, and invoice frequency. Deferred revenue that will be recognized during the succeeding twelve-month period is recorded as deferred revenue, which is presented as a current liability while amounts that will be recognized in periods greater than twelve months in the future are recognized as a noncurrent liability on the accompanying consolidated balance sheets.
Disaggregation of Revenue
We derive the majority of our revenue from subscription fees paid for access to and usage of our “software as a service,” or SaaS, solutions for a specified period of time, typically one to three years. In addition to subscription fees, contracts with customers may include implementation fees for launch assistance and training. Fixed subscription and implementation fees are billed in advance of the subscription term and are due in accordance with contract terms, which generally provide for payment within 30 days. Our contractual arrangements include performance, termination and cancellation provisions, but do not provide for refunds. Customers do not have the contractual right to take possession of tour software at any time.
Sales taxes collected from customers and remitted to government authorities are excluded from revenue.
The following tables summarizes our revenue disaggregation of enterprise offerings and non-enterprise offerings for the following periods (in thousands):
Contracts with Multiple Performance Obligations
Customers may elect to purchase a subscription to multiple modules, multiple modules with multiple service levels, or, for certain of the Company's solutions. We evaluate such contracts to determine whether the services to be provided are distinct and accordingly should be accounted for as separate performance obligations. If we determine that a contract has multiple performance obligations, the transaction price, which is the total price of the contract, is allocated to each performance obligation based on a relative standalone selling price method. We estimate standalone selling price based on observable prices in past transactions for which the product offering subject to the performance obligation has been sold separately. As the performance obligations are satisfied, revenue is recognized as discussed above in the product descriptions.
Transaction Price Allocated to Future Performance Obligation
GAAP provides certain practical expedients that limit the required disclosure of the aggregate amount of transaction price that is allocated to performance obligations that have not yet been satisfied. As many of the contracts the Company has entered into with customers are for a twelve-month subscription term, a significant portion of performance obligations that have not yet been satisfied as of June 30, 2022 are part of a contract that has an original expected duration of one year or less. For contracts with an original expected duration of greater than one year, for which the practical expedient does not apply, the aggregate transaction price allocated to the unsatisfied performance obligations was $22.3 million as of June 30, 2022, of which $11.9 million is expected to be recognized as revenue over the next twelve months.
Deferred revenue represents the unearned portion of subscription and implementation fees. Deferred revenue is recorded when cash payments are received in advance of performance. Deferred amounts are generally recognized within one to three years. Deferred revenue is included in the accompanying consolidated balance sheets under current liabilities, net of any long-term portion that is included in noncurrent liabilities.
The following table summarizes deferred revenue activity for the six months ended June 30, 2022 (in thousands):
Of the $13.0 million of revenue recognized in the six months ended June 30, 2022, $3.1 million was included in deferred revenue at December 31, 2021.
Costs to Obtain Contracts
We capitalize sales commissions that are directly related to obtaining customer contracts and that would not have been incurred if the contract had not been obtained. These costs are included in the accompanying consolidated balance sheets and are classified as a component of Prepaid expenses and other current assets. Deferred contract costs are amortized to sales and marketing expense over the expected period of benefit, which we have determined to be one to three years based on the estimated customer relationship period.
The following table summarizes deferred contract cost activity for the six months ended (in thousands):
The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.
Reference 1: http://www.xbrl.org/2003/role/disclosureRef