XML 41 R31.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Summary of Significant Accounting Policies (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2023
Accounting Policies [Abstract] |
Schedule of Allowance for Doubtful Accounts | The following table summarizes the activity of the Company’s allowance for doubtful accounts:
(in thousands) |  | Balance as of the Beginning of the Year |  |  | Charges to Operations |  |  | Deductions |  |  | Balance as of the End of the Year |
Year ended December 31, 2023: |  |  |  |  |  |  |  |  |  |  |  |
Allowance for doubtful accounts (1) |  | $ | 514 |  |  | $ | 1,321 |  |  | $ | (1,365 | ) |  | $ | 470 |
Year ended December 31, 2022: |  |  |  |  |  |  |  |  |  |  |  |
Allowance for doubtful accounts (1) |  |  | 788 |  |  |  | 489 |  |  |  | (763 | ) |  |  | 514 |
Year ended December 31, 2021: |  |  |  |  |  |  |  |  |  |  |  |
Allowance for doubtful accounts (1) |  |  | 1,371 |  |  |  | — |  |  |  | (583 | ) |  |  | 788 |
(1) Deductions in the allowance for doubtful accounts represent write-offs, net of recoveries, of amounts determined to be uncollectible.
Calculation of Basic and Diluted Earnings per Share | The following table sets forth the calculation of basic and diluted earnings per share:
|  | Year Ended December 31, |
(in thousands, except per share data) |  | 2023 |  |  | 2022 |  |  | 2021 |
Net income |  | $ | 64,315 |  |  | $ | 68,229 |  |  | $ | 35,770 |
Denominator for basic earnings per share |  |  | 35,566 |  |  |  | 35,179 |  |  |  | 35,655 |
Incremental common shares attributable to outstanding restricted stock units |  |  | 403 |  |  |  | 522 |  |  |  | 407 |
Incremental common shares attributable to exercise of dilutive options |  |  | 4 |  |  |  | 17 |  |  |  | 39 |
Denominator for diluted earnings per share |  |  | 35,973 |  |  |  | 35,718 |  |  |  | 36,101 |
Earnings per share: |  |  |  |  |  |  |  |  |
Basic |  | $ | 1.81 |  |  | $ | 1.94 |  |  | $ | 1.00 |
Diluted |  | $ | 1.79 |  |  | $ | 1.91 |  |  | $ | 0.99 |
Schedule of Unrecognized Compensation Costs and Remaining Weighted-Average Amortization Stock-Based Awards | As of December 31, 2023, the unrecognized compensation costs and remaining weighted-average amortization periods related to stock-based awards were as follows:
(in thousands) |  | Restricted Stock Units |  |  | Performance- Based Stock Units |
Unrecognized compensation cost |  | $ | 21,869 |  |  | $ | 4,813 |
Remaining weighted-average amortization period |  | 2.5 years |  |  | 1.8 years |
(1) Based on the probable achievement of the performance goals identified in each award.

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

X
- Definition Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02.3,4) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1 + Details
Name: | us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1 + Details
Name: | us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of cost not yet recognized and weighted-average period over which cost is expected to be recognized for nonvested award under share-based payment arrangement. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 718 -SubTopic 10 -Subparagraph (i) -Name Accounting Standards Codification -Paragraph 2 -Section 50 -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration