Revenue |
6 Months Ended | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Jun. 30, 2024 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Revenue | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Revenue | 2. Revenue
Revenue is measured based on a consideration specified in a contract with a customer, and excludes any sales incentives and amounts collected on behalf of third parties. The Company recognizes revenue when it satisfies a performance obligation by transferring control over a product, service, or software solution to a customer. Taxes assessed by a governmental authority that are both imposed on and concurrent with a specific revenue-producing transaction, that are collected by the Company from a customer, are excluded from revenue. The following is a description of principal activities – separated by reportable segments – from which the Company generates its revenue. For more detailed information about reportable segments, see Note 16.
Cloud Telecommunications Services Segment
Products and services may be sold separately or in bundled packages. The typical length of a contract for service is thirty-six to sixty months. Customers are billed for these services on a monthly basis. For bundled packages, the Company accounts for individual products and services separately if they are distinct – i.e. if a product or service is separately identifiable from other items in the bundled package and if a customer can benefit from it on its own or with other resources that are readily available to the customer. The consideration (including any discounts) is allocated between separate products and services in a bundle based on their relative stand-alone selling prices. The stand-alone selling prices are determined based on the prices at which the Company separately sells the desktop devices and telecommunication services. For items that are not sold separately (e.g. additional features) the Company estimates stand-alone selling prices using the adjusted market assessment approach. When we provide a free trial period, we do not begin to recognize recurring revenue until the trial period has ended and the customer has been billed for the services. Desktop Devices – Revenue generated from the sale of telecommunications equipment (desktop devices) is recognized when the customer takes possession of the devices and the cloud telecommunications services begin. The Company typically bills and collects the fees for the equipment upon entering into a contract with a customer. Cash receipts are recorded as a contract liability until implementation is complete and the services begin.
Equipment Financing Revenue – Fees generated from renting our cloud telecommunication equipment (IP or cloud telephone desktop devices) through leasing contracts are recognized as revenue based on whether the lease qualifies as an operating lease or sales-type lease. The two primary accounting provisions which we use to classify transactions as sales-type or operating leases are: 1) lease term to determine if it is equal to or greater than 75% of the economic life of the equipment and 2) the present value of the minimum lease payments to determine if they are equal to or greater than 90% of the fair market value of the equipment at the inception of the lease. The economic life of most of our products is estimated to be three years, since this represents the most frequent contractual lease term for our products, and there is no residual value for used equipment. Residual values, if any, are established at the lease inception using estimates of fair value at the end of the lease term. The vast majority of our leases that qualify as sales-type leases are non-cancelable and include cancellation penalties approximately equal to the full value of the lease receivables. Leases that do not meet the criteria for sales-type lease accounting are accounted for as operating leases. Revenue from sales-type leases is recognized upon installation and the interest portion is deferred and recognized as earned. Revenue from operating leases in recognized ratably over the applicable service period.
Cloud Telecommunications Services – Cloud telecommunication services include voice, data, collaboration software, broadband Internet access, managed IT services, cloud server rental and support, managed security, cabling, software license sales, interest generated from equipment financing revenue, and support for premise-based PBX phone systems. The Company recognizes revenue as services are provided in service revenue. Fees generated from reselling broadband Internet access are recognized as revenue net of the costs charged by the third-party service providers. Cloud telecommunications services are billed and paid on a monthly basis. Our telecommunications services contracts typically have a term of thirty-six to sixty months.
Fees, Commissions, and Other, Recognized over Time – Includes contracted and non-contracted items such as:
One-Time Fees, Commissions, and Other – Includes contracted and non-contracted items such as:
Software Solutions Segment
The Software Solutions segment derives revenues from three primary sources: software licenses, software maintenance support and professional services. Software and services may be sold separately or in bundled packages. Generally, contracts with customers contain multiple performance obligations, consisting of software and services. For bundled packages, the Company accounts for individual products and services separately if they are distinct – i.e. if a product or service is separately identifiable from other items in the bundled package and if a customer can benefit from it on its own or with other resources that are readily available to the customer. The consideration (including any discounts) is allocated between separate products and services in a bundle based on their relative stand-alone selling prices. The stand-alone selling prices are determined based on the prices at which the Company separately sells the software licenses and professional services. For items that are not sold separately (e.g. additional features) the Company estimates stand-alone selling prices using the adjusted market assessment approach. When we provide a free trial period, we do not begin to recognize recurring revenue until the trial period has ended and the customer has been billed for the services. Software Licenses - The Company's software licenses typically provide a perpetual right to use the Company's software. The Company also sells term-based software licenses that expire and Software-as-a-Service ("SaaS") based software which are referred to as subscription arrangements. The Company does not customize its software nor are installation services required, as the customer has a right to utilize internal resources or a third-party service company. The software is delivered before related services are provided and are functional without professional services or customer support. The Company has concluded that its software licenses are functional intellectual property that are distinct, as the user can benefit from the software on its own. The software license revenue could be recognized upon transfer of control or when the software is made available for download, as this is the point that the user of the software can direct the use of, and obtain substantially all of the remaining benefits from, the functional intellectual property. However, historical experience shows that customers regularly renegotiate the number of licenses during the installation process. Therefore, the Company recognizes revenue from software licenses when the setup is complete. The Company does not recognize software revenue related to the renewal of subscription software licenses earlier than the beginning of the subscription period.
Subscription Maintenance and Support - Subscription maintenance and support revenue includes revenue from maintenance service contracts, customer support, and other supportive services. The Company offers warranties on its products. The warranty period for the Company’s licensed software is generally 90 days. Certain of the Company's warranties are considered to be assurance-type in nature and do not cover anything beyond ensuring that the product is functioning as intended. Based on the guidance in ASC 606, assurance-type warranties do not represent separate performance obligations. The Company also sells separately-priced maintenance service contracts, which qualify as service-type warranties and represent separate performance obligations. The Company does not typically allow and has no history of accepting material product returns. Customer support includes software updates on a when-and-if-available basis, telephone support, integrated web-based support and bug fixes or patches. Subscription and maintenance support revenue is recognized ratably over the term of the customer support agreement, which is typically one year.
Professional Services and Other - The Company's professional services include consulting, technical support, resident engineer services, design services and installation services. Revenue from professional services and other is recognized when the performance obligation is complete and the customer has accepted the performance obligation.
Disaggregation of Revenue
In the following table, revenue is disaggregated by primary major product line, and timing of revenue recognition. The table also includes a reconciliation of the disaggregated revenue with the reportable segments.
Contract balances
The following table provides information about receivables, contract assets, and contract liabilities from contracts with customers:
Significant changes in the contract assets and the contract liabilities balances during the period are as follows:
Contract assets and allowance for credit losses
Our contract assets balance consists of the Company’s rights to consideration for work completed but not billed as of the reporting date. The contract assets are transferred to receivables when the rights become unconditional. Contract assets were as follows (in thousands):
The allowance for credit losses was as follows (in thousands):
The allowance for credit losses is determined based on an assessment of historical collection experience using the loss-rate method as well as consideration of current and future economic conditions and changes in our loss-rate trends. We utilize a five-year lookback period to establish our estimate of expected credit losses, as our contractual terms range from three to five years. Based on that assessment, the allowance for credit losses as a percent of gross contract assets increased to 22.4% at June 30, 2024 from 20.0% at December 31, 2023.
Transaction price allocated to the remaining performance obligations
The following table includes estimated revenue expected to be recognized in the future related to performance obligations that are unsatisfied (or partially unsatisfied) at the end of the reporting period (in thousands):
|