XML 27 R15.htm IDEA: XBRL DOCUMENT
v3.26.1

Earnings per Share | 6 Months Ended
--- | ---
Jun. 30, 2026
Earnings Per Share [Abstract] |
Earnings per Share | Earnings 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 three and six months ended June 30, 2026 and 2025:
|  | Three Months Ended June 30, |  | Six Months Ended June 30, |  |
(in thousands, except per share amounts) |  | 2026 |  | 2025 |  | 2026 |  | 2025 |  |  |  |
EPS numerator: |  |  |  |  |  |  |  |  |  |  |  |
Net income |  | $ | 4,747 |  |  | $ | 7,762 |  |  | $ | 9,127 |  |  | $ | 17,976 |  |  |  |  |
EPS denominator: |  |  |  |  |  |  |  |  |  |  |  |
Weighted average shares outstanding – basic |  | 11,921 |  |  | 11,625 |  |  | 11,841 |  |  | 11,523 |  |  |  |  |
Impact of dilutive securities |  | 119 |  |  | 490 |  |  | 206 |  |  | 584 |  |  |  |  |
Weighted average shares outstanding – diluted |  | 12,040 |  |  | 12,114 |  |  | 12,047 |  |  | 12,107 |  |  |  |  |
EPS: |  |  |  |  |  |  |  |  |  |  |  |
Basic |  | $ | 0.40 |  |  | $ | 0.67 |  |  | $ | 0.77 |  |  | $ | 1.56 |  |  |  |  |
Diluted |  | $ | 0.39 |  |  | $ | 0.64 |  |  | $ | 0.76 |  |  | $ | 1.48 |  |  |  |  |
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:
|  | Three Months Ended June 30, |  | Six Months Ended June 30,
|  | 2026 |  | 2025 |  | 2026 |  | 2025
Service-based RSUs |  | — |  |  | — |  |  | 40 |  |  | — |
Market-based RSUs |  | 9,278 |  |  | — |  |  | 10,523 |  |  | — |
Employee Stock Purchase Plan |  | — |  |  | 246 |  |  | — |  |  | 668 |
Total |  | 9,278 |  |  | 246 |  |  | 10,563 |  |  | 668 |

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 55 -Paragraph 12 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482635/260-10-55-12 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 505 -SubTopic 20 -Name Accounting Standards Codification -Section 05 -Paragraph 5 -Publisher FASB -URI https://asc.fasb.org/1943274/2147481468/505-20-05-5 Reference 3: 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 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -Name Accounting Standards Codification -Publisher FASB -URI https://asc.fasb.org/260/tableOfContent Reference 5: 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 6: 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