REVENUE RECOGNITION |
12 Months Ended | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Jan. 31, 2024 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Revenue from Contract with Customer [Abstract] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| REVENUE RECOGNITION | REVENUE RECOGNITION Revenue is recognized when a customer obtains control of promised goods or services in an amount that reflects the consideration that we expect to receive in exchange for those goods or services. When an arrangement contains multiple performance obligations, we account for individual performance obligations separately if they are distinct. We recognize revenue through the application of the following five steps: 1) Identify the contract(s) with a customer A contract with a customer exists when (i) we enter into an enforceable contract with the customer that defines each party’s rights regarding the goods or services to be transferred and identifies the payment terms related to these goods or services, (ii) the contract has commercial substance, and (iii) we determine that collection of substantially all consideration for goods or services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. We apply judgment in determining the customer’s ability and intention to pay, which is based on a variety of factors including the customer’s historical payment experience or in the case of a new customer, published credit and financial information pertaining to the customer. Our customary business practice is to enter into legally enforceable written contracts with our customers, which set forth the general terms and conditions between the parties. Typically, our customers also submit a purchase order to specify the different goods and services, and the associated prices. Multiple contracts with a single counterparty entered into at or near the same time are evaluated to determine if the contracts should be combined and accounted for as a single contract. 2) Identify the performance obligations in the contract Performance obligations promised in a contract are identified based on the goods or services that will be transferred to the customer that are both capable of being distinct, whereby the customer can benefit from the goods or services either on its own or together with other resources that are readily available from third parties or from us, and are distinct in the context of the contract, whereby the transfer of the goods or services is separately identifiable from other promises in the contract. To the extent a contract includes multiple promised goods or services, we must apply judgment to determine whether promised goods or services are capable of being distinct and are distinct in the context of the contract. If these criteria are not met, the promised goods or services are accounted for as a combined performance obligation. Generally, our contracts do not include non-distinct performance obligations, but certain contracts require design, development, or significant customization of our products to meet the customer’s specific requirements, in which case the products and services promised do not represent a distinct performance obligation and are combined into one distinct performance obligation. Additionally, our subscription license offerings provide customers with access to and the right to utilize ongoing support to ensure our software is continuously up-to-date with the latest cyber security capabilities. We consider our software subscription licenses and access to critical support to be a single performance obligation. 3) Determine the transaction price The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring goods or services to the customer. We assess the timing of transfer of goods and services to the customer as compared to the timing of payments to determine whether a significant financing component exists. As a practical expedient, we do not assess the existence of a significant financing component when the difference between payment and transfer of deliverables is a year or less, which is the case in the majority of our customer contracts. The primary purpose of our invoicing terms is not to receive or provide financing from or to customers. Certain contracts may require an advance payment to encourage customer commitment to the project and protect us from early termination of the contract. To the extent the transaction price includes variable consideration, we estimate the amount of variable consideration that should be included in the transaction price, utilizing either the expected value method or the most likely amount method depending on the nature of the variable consideration. Variable consideration is included in the transaction price, if we assessed that a significant future reversal of cumulative revenue under the contract will not occur. Typically, our contracts do not provide our customers with any right of return or refund, and we do not constrain the contract price as it is probable that there will not be a significant revenue reversal due to a return or refund. 4) Allocate the transaction price to the performance obligations in the contract If the contract contains a single performance obligation, the entire transaction price is allocated to the single performance obligation. However, if a series of distinct goods or services that are substantially the same qualifies as a single performance obligation in a contract with variable consideration, we must determine if the variable consideration is attributable to the entire contract or to a specific part of the contract. We allocate the variable amount to one or more distinct performance obligations but not all or to one or more distinct services that forms a part of a single performance obligation, when the payment terms of the variable amount relate solely to our efforts to satisfy that distinct performance obligation and it results in an allocation that is consistent with the overall allocation objective of ASC 606. Contracts that contain multiple performance obligations require an allocation of the transaction price to each performance obligation based on a relative stand-alone selling price basis unless the transaction price is variable and meets the criteria to be allocated entirely to a performance obligation or to a distinct good or service that forms part of a single performance obligation. We determine stand-alone selling price (“SSP”) based on the price at which the performance obligation is sold separately. If the SSP is not observable through past transactions, we estimate the SSP taking into account available information such as market conditions, including geographic or regional specific factors, competitive positioning, internal costs, profit objectives, and internally approved pricing guidelines related to the performance obligation. 5) Recognize revenue when (or as) the entity satisfies a performance obligation We satisfy performance obligations either over time or at a point in time depending on the nature of the underlying promise. Revenue is recognized at the time the related performance obligation is satisfied by transferring a promised good or service to a customer. In certain contracts that include customer substantive acceptance criteria, revenue is not recognized until we can objectively conclude that the product or service meets the agreed-upon specifications in the contract. We only apply the five-step model to contracts when it is probable that we will collect the consideration we are entitled to in exchange for the goods or services we transfer to our customers. Revenue is measured based on consideration specified in a contract with a customer, and excludes taxes assessed by a governmental authority that are both imposed on and concurrent with a specific revenue-producing transaction, that are collected by us from a customer. Shipping and handling activities that are billed to the customer and occur after control over a product has transferred to a customer are accounted for as fulfillment costs and are included in cost of revenue. Historically, these expenses have not been material. We do not adjust the promised amount of consideration for the effects of a significant financing component since the Company expects, at contract inception, that the period between the time of transfer of the promised goods or services to the customer and the time the customer pays for these goods or services to be generally one year or less, based on the practical expedient. The Company’s credit terms to customers are, on average, between 30 and 60 days. Nature of Goods and Services We derive and report our revenue in three categories: (a) software revenue, including the sale of subscription (i.e., term-based) or perpetual licenses, and appliances that include software that is essential to the product’s functionality, (b) software service revenue, including support revenue and revenue from cloud-based software-as-a-service subscriptions (“SaaS”), and (c) professional service and other revenue, including revenue from installation and integration services, customer specific development work, resale of third-party hardware, and consulting and training services. Software revenue licenses either provide our customers a perpetual right to use our software or the right to use our software for only a fixed term, in most cases between and three-year time frame. Generally, our contracts do not provide significant services of integration and customization and installation services are not required to be purchased directly from us. For the majority of our software licenses, we have concluded that the licenses are distinct as our customers can benefit from the software on its own. Software revenue is typically recognized when the software is delivered or made available for download to the customer. Our subscription software licenses are not distinct from our support services as the utility of the software to the customer will significantly degrade during the license term. Subscription license revenue is recognized over the term of the subscription period beginning when the software is delivered to the customer. We rarely sell our software licenses on a stand-alone basis and as a result SSP is not directly observable and must be estimated. We apply the adjusted market assessment approach, considering both market conditions and entity specific factors such as assessment of historical data of bundled sales of software licenses with other promised goods and services in order to maximize the use of observable inputs. Software SSP is established based on an appropriate discount from our established list price, taking into consideration whether there is certain stratification of the population with different pricing practices. Software service revenue is derived from cloud-based SaaS revenue and, providing technical support services, bug fixes and unspecified software updates to customers on a when-and-if-available basis. Each of these performance obligations provide benefit to the customer on a stand-alone basis and are distinct in the context of the contract. Each of these distinct performance obligations represent a stand ready obligation to provide service to a customer, which is concurrently delivered and has the same pattern of transfer to the customer, which is why we account for these support services as a single performance obligation. We recognize support services ratably over the contractual term, which typically is one year and develop SSP for support services based on stand-alone renewal contracts. Our solutions are generally sold with warranties that typically range from 1 year to 3 years. These warranties do not represent an additional performance obligation as services beyond assuring that the software license and hardware comply with agreed-upon specifications are not provided. Professional service revenues primarily consist of fees for installation and integration, deployment and optimization services, as well as consulting and training, and are generally recognized over time as the customer simultaneously receives and consumes the benefits of the professional service as the services are performed. For contracts billed on a fixed price basis, revenue is recognized over time using an input method based on labor hours expended to date relative to the total labor hours expected to be required to satisfy the related performance obligation. Additionally, other revenues consist of the resale of third-party hardware including servers, laptops and communication equipment, and are recognized at a point in time generally upon shipment or delivery. We rarely sell professional services and third-party hardware on a stand-alone basis and as a result SSP is not directly observable and must be estimated. We apply the adjusted market assessment approach, considering both market conditions and entity specific factors such as assessment of historical data of bundled sales of professional services and resale of third-party hardware with other promised goods and services in order to maximize the use of observable inputs. Professional services SSP and resale of third-party hardware SSP is established based on an appropriate discount from our established list price, taking into consideration whether there is certain stratification of the population with different pricing practices. Certain contracts require us to significantly customize our software and these contracts are generally recognized over time as we perform because our performance does not create an asset with an alternative use and we have an enforceable right to payment plus a reasonable profit for performance completed to date. Revenue is recognized over time based on the extent of progress towards completion of the performance obligation. We use labor hours incurred to measure progress for these contracts because it best depicts the transfer of the asset to the customer. Under the labor hours incurred measure of progress, the extent of progress towards completion is measured based on the ratio of labor hours incurred to date to the total estimated labor hours at completion of the distinct performance obligation. Due to the nature of the work performed in these arrangements, the estimation of total labor hours at completion is complex, subject to many variables and requires significant judgment. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known. We use an appropriate discount from our established list price, taking into consideration whether there is certain stratification of the population with different pricing practices, to estimate the SSP of our significantly customized solutions. Disaggregation of Revenue The following table provides information about disaggregated revenue by the recurring or nonrecurring nature of revenue. Recurring revenue is the portion of our revenue that we believe is likely to be renewed in the future. The recurrence of these revenue streams in future periods depends on a number of factors including contractual periods and customers' renewal decisions: •Recurring revenue primarily consists of initial and renewal support, subscription software licenses, and cloud-based SaaS in certain transactions. •Nonrecurring revenue primarily consists of our perpetual licenses, appliances, custom development, installation and integration services, consulting and training, and the resale of third-party hardware.
Contract Balances The following table provides information about accounts receivable, contract assets, and contract liabilities from contracts with customers:
We receive payments from customers based upon contractual billing schedules, and accounts receivable are recorded when the right to consideration becomes unconditional. Contract assets are rights to consideration in exchange for goods or services that we have transferred to a customer when that right is conditional on something other than the passage of time. The majority of our contract assets represent unbilled amounts related to arrangements where our right to consideration is subject to the contractually agreed upon billing schedule. We expect billing and collection of our contract assets to occur within the next twelve months. We incurred asset impairment related to contract assets in the amount of $1.4 million for the year ended January 31, 2024. During the years ended January 31, 2024 and 2023, we transferred $14.4 million and $16.3 million, respectively, to accounts receivable from contract assets recognized at the beginning of each period, as a result of the right to the transaction consideration becoming unconditional. We recognized $7.4 million and $10.3 million of contract assets during the years ended January 31, 2024 and 2023, respectively. During the year ended January 31, 2023, the Company divested a portion of its business, as described in Note 7. As a result, the Company divested $2.1 million of its contract assets. There are two customers that accounted for a combined $42.6 million and $54.2 million of our aggregated accounts receivable and contract assets at January 31, 2024 and 2023, respectively. These amounts result from both direct and indirect contracts with governments outside of the U.S. which we believe present insignificant credit risk. Contract liabilities represent consideration received or consideration which is unconditionally due from customers prior to transferring goods or services to the customer under the terms of the contract. Revenue recognized during the years ended January 31, 2024 and 2023 from amounts included in contract liabilities at the beginning of each period was $76.6 million and $61.3 million, respectively. Remaining Performance Obligations Transaction price allocated to remaining performance obligations (“RPO”) represents contracted revenue that has not yet been recognized, which includes contract liabilities and non-cancelable amounts that will be invoiced and recognized as revenue in future periods. The majority of our arrangements are for periods of up to three years, with a significant portion being one year or less. The timing and amount of revenue recognition for our RPO is influenced by several factors, including timing of support renewals, and the revenue recognition for certain projects can extend over longer periods of time, delivery under which, for various reasons, may be delayed, modified, or canceled. Therefore, the amount of remaining obligations may not be a meaningful indicator of future results. In some cases, we may decide to unilaterally cancel outstanding orders and reduce the RPO when there have been extended delays by customers to pay the agreed upon down payments or due to other reasons. The following table provides information about our RPO:
Costs to Obtain and Fulfill Contracts We capitalize commissions paid to internal sales personnel and agent commissions that are incremental to obtaining customer contracts. We have determined that these commissions are in fact incremental and would not have occurred absent the customer contract. Our sales and agent commissions paid on annual renewals of support are commensurate with the commission paid on the initial contract. Capitalized sales and agent commissions are amortized over the period the goods or services are transferred to the customer to which the assets relate. Total capitalized costs to obtain contracts were $12.6 million as of January 31, 2024, of which $10.1 million is included in prepaid expenses and other current assets and $2.6 million is included in other assets on our consolidated balance sheet. Total capitalized costs to obtain contracts were $9.7 million as of January 31, 2023, of which $7.4 million is included in prepaid expenses and other current assets and $2.3 million is included in other assets on our consolidated balance sheet. During the years ended January 31, 2024, 2023, and 2022, we expensed $15.6 million, $13.3 million, and $24.4 million, respectively, of sales and agent commissions, which are included in selling, general and administrative expenses. We capitalize costs incurred to fulfill our contracts when the costs relate directly to the contract and are expected to generate resources that will be used to satisfy the performance obligation under the contract and are expected to be recovered through revenue generated under the contract. Costs to fulfill contracts are expensed to cost of revenue as we satisfy the related performance obligations. Total capitalized costs to fulfill contracts were $1.8 million as of January 31, 2024, of which $1.5 million is included in prepaid expenses and other current assets and $0.4 million is included in other assets on our consolidated balance sheet. Total capitalized costs to fulfill contracts were $2.5 million as of January 31, 2023, of which $2.4 million is included in prepaid expenses and other current assets and $0.1 million is included in other assets on our consolidated balance sheet. Deferred cost of revenue is classified in its entirety as current or long-term based on whether the related revenue will be recognized within twelve months of the origination date of the arrangement. The amounts capitalized primarily relate to prepaid third-party cloud costs. During the years ended January 31, 2024, 2023, and 2022, we amortized $2.3 million, $3.9 million, and $7.8 million, respectively, of contract fulfillment costs.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||