XML 31 R17.htm IDEA: XBRL DOCUMENT
v3.25.4

Earnings per Share | 12 Months Ended
--- | ---
Dec. 31, 2025
Earnings Per Share [Abstract] |
Earnings per Share | Earning per Share Earnings per Share The Company calculates earnings per share in accordance with ASC Topic 260 - Earnings Per Share (“EPS”). Basic earnings per share of the Company's common stock applicable to common stockholders is computed by dividing earnings applicable to common stockholders by the weighted-average number of shares of the Company's common stock outstanding and assumed to be outstanding. Diluted EPS assumes the dilutive effect of outstanding common stock warrants and shares issued in conjunction with the Company’s ESPP and RSUs, all using the treasury stock method. The following table sets forth the computation of the basic and diluted earnings per share attributable to the Company's common stockholders for the years ended December 31, 2025, 2024 and 2023:
| For the Years Ended December 31,
(in thousands, except per share amounts) | 2025 |  | 2024 |  | 2023 |  |
EPS numerator: |  |  |  |  |  |  |
Net income | $ | 39,064 |  |  | $ | 30,875 |  |  | $ | 20,754 |  |  |
EPS denominator: |  |  |  |  |  |  |
Weighted average shares outstanding – basic | 11,575 |  |  | 11,244 |  |  | 10,773 |  |  |
In-the-money warrants | — |  |  | — |  |  | 249 |  |  |
Nonvested restricted stock units | 504 |  |  | 783 |  |  | 789 |  |  |
Employee stock purchase plan | 1 |  |  | — |  |  | 1 |  |  |
Weighted average shares outstanding – diluted | 12,080 |  |  | 12,027 |  |  | 11,812 |  |  |
EPS: |  |  |  |  |  |  |
Basic | $ | 3.37 |  |  | $ | 2.75 |  |  | $ | 1.93 |  |  |
Diluted | $ | 3.23 |  |  | $ | 2.57 |  |  | $ | 1.76 |  |  |
The following table summarizes the securities that were antidilutive, and therefore, were not included in the computations of diluted income per share of the Company's common stock:
| For the Years Ended December 31,
| 2025 |  | 2024 |  | 2023 |  |
Performance-based RSUs | — |  |  | — |  |  | 95 |  |  |
Market-based RSUs | 8,862 |  |  | — |  |  | — |  |  |
Employee stock purchase plan | 332 |  |  | 351 |  |  | 1,044 |  |  |
Total | 9,194 |  |  | 351 |  |  | 1,139 |  |  |

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

X
- Definition The entire disclosure for earnings per share. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -Name Accounting Standards Codification -Publisher FASB -URI https://asc.fasb.org/260/tableOfContent Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 3 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3 + Details
Name: | us-gaap_EarningsPerShareTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration