XML 71 R52.htm IDEA: XBRL DOCUMENT
v3.22.4

Summary of Significant Accounting Policies - Software Development Costs (Details) - USD ($) | 12 Months Ended
--- | ---
Dec. 31, 2022 | Dec. 31, 2021 | Dec. 31, 2020
Organization, Consolidation and Presentation of Financial Statements [Abstract] |  |  |
Unamortized software development costs | $ 30,877,000 | $ 33,152,000 | $ 28,512,000
Software development amortization expense | 18,211,000 | 15,412,000 | 10,843,000
Software development impairment charges | $ 0 | $ 1,300,000 | $ 900,000
Software and Software Development Costs | Minimum |  |  |
Intangible assets |  |  |
Estimated economic life | 2 years |  |
Software and Software Development Costs | Maximum |  |  |
Intangible assets |  |  |
Estimated economic life | 3 years |  |

X
- Definition Amount of expense for amortization of capitalized computer software costs. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 985 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (b)(1) -URI https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 985 -SubTopic 20 -Section 50 -Paragraph 2 -URI https://asc.fasb.org/extlink&oid=6501960&loc=d3e128487-111756 + Details
Name: | us-gaap_CapitalizedComputerSoftwareAmortization1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Amount of impairment loss from capitalized computer software costs. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 985 -SubTopic 20 -Section 50 -Paragraph 2 -URI https://asc.fasb.org/extlink&oid=6501960&loc=d3e128487-111756 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 985 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (b)(2) -URI https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756 + Details
Name: | us-gaap_CapitalizedComputerSoftwareImpairments1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The carrying amount of capitalized computer software costs net of accumulated amortization as of the balance sheet date. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 985 -SubTopic 20 -Section 50 -Paragraph 1 -Subparagraph (a) -URI https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756 + Details
Name: | us-gaap_CapitalizedComputerSoftwareNet
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References No definition available. + Details
Name: | us-gaap_FiniteLivedIntangibleAssetUsefulLife
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_FiniteLivedIntangibleAssetsLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

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

X
- Details
Name: | us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_SoftwareAndSoftwareDevelopmentCostsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MaximumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |