XML 23 R13.htm IDEA: XBRL DOCUMENT
v3.23.2

REVENUE | 6 Months Ended
--- | ---
Jun. 30, 2023
REVENUE |
REVENUE | NOTE 5—REVENUE ​ The majority of our revenue is derived from contracts that can span from a few months to several years. We enter into contracts that can include various combinations of services, which, depending on the contract type, are sometimes capable of being distinct. If services are determined to be distinct, they are accounted for as separate performance obligations. A performance obligation is a promise in a contract to transfer a distinct good or service to the client and is the unit of account. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual services is not separately identifiable from other promises in the contracts and, therefore, is not distinct. For contracts with multiple performance obligations, the Company allocates the transaction price to each performance obligation using our best estimate of the standalone selling price, or SSP, of each distinct product or service in the contract. The Company establishes SSP based on management’s estimated selling price or observable prices of products or services sold separately in comparable circumstances to similar clients. Our contracts may include promises to transfer multiple services and products to a client. Determining whether services and products are considered distinct performance obligations that should be accounted for separately versus together may require judgment. Contract Balances The timing of revenue recognition, billings and cash collections result in billed accounts receivables, unbilled receivables (contract assets) and customer advances and deposits (contract liabilities). Our clients are billed based on the type of arrangement. A portion of our services is billed monthly based on hourly or daily rates. There are also client engagements in which we bill a fixed amount for our services. This may be one single amount covering the whole engagement or several amounts for various phases, functions or milestones. Generally, billing occurs subsequent to revenue recognition, resulting in contract assets. However, we sometimes receive advances or deposits before revenue is recognized, resulting in contract liabilities. Contract assets and liabilities are generally reported in the current assets and current liabilities sections of the consolidated balance sheet, at the end of each reporting period, based on the timing of the satisfaction of the related performance obligation(s). For multi-year software sales with annual invoicing, we perform a significant financing component calculation and recognize the associated interest income throughout the duration of the financing period. In addition, we reclassify the resulting contract asset balances as current and noncurrent receivables as receipt of the consideration is conditional only on the passage of time and there are no performance risk factors present. See the table below for a breakdown of contract assets and contract liabilities: ​
​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | June 30, |  | December 31,
​ |  | 2023 |  | 2022
Contract assets | ​ | $ | 40,307 | ​ | $ | 32,249
Contract liabilities | ​ | $ | 6,902 | ​ | $ | 7,058
​ Revenue recognized for the three and six months ended June 30, 2023 that was included in the contract liability balance at January 1, 2023 was $1.8 million, and $5.3 million respectively, and primarily represented revenue from our subscription contracts. Remaining Performance Obligations As of June 30, 2023, the Company had $126.0 million of remaining performance obligations, the majority of which are expected to be satisfied within the next twelve months.

X
- References No definition available. + Details
Name: | us-gaap_RevenueFromContractWithCustomerAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition 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. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 9 -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-9 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 10 -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 15 -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-15 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 5: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 6: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 7: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 8: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (e) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 9: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 13 -Subparagraph (b)(2) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13 Reference 10: http://www.xbrl.org/2003/role/disclosureRef -Name Accounting Standards Codification -Topic 606 -Publisher FASB -URI https://asc.fasb.org//606/tableOfContent + Details
Name: | us-gaap_RevenueFromContractWithCustomerTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration