XML 25 R17.htm IDEA: XBRL DOCUMENT
v3.25.3

Net Income Per Share | 9 Months Ended
--- | ---
Sep. 30, 2025
Earnings Per Share [Abstract] |
Net Income Per Share | Net Income Per Share Basic net income per share is computed by dividing net income for the period by the weighted-average number of shares outstanding during the period, including repurchases carried as treasury stock. Diluted net income per share is computed by dividing net income by the weighted-average number of shares outstanding adjusted for the dilutive effect of all potential shares of stock, including the exercise of employee stock options, assumed vesting of restricted stock units, and exercise of warrants (if dilutive). Diluted net income per share was computed using the treasury stock method for warrants, stock options, and restricted stock units. The following table presents the calculation of basic and diluted net income per share:
| For the three months ended September 30, |  | For the nine months ended September 30,
(in thousands, except per share amounts) | 2025 | 2024 |  | 2025 | 2024
Numerator: |  |  |  |  |
Net income | $ | 26,671 |  | $ | 15,446 |  |  | $ | 90,439 |  | $ | 53,155 |
Denominator(1): |  |  |  |  |
Basic shares: |  |  |  |  |
Weighted-average shares outstanding | 34,048 |  | 33,272 |  |  | 33,878 |  | 33,725 |
Diluted shares(2): |  |  |  |  |
Stock options | 379 |  | 725 |  |  | 351 |  | 574 |
Restricted stock units | 1,248 |  | 1,438 |  |  | 1,219 |  | 1,390 |
Warrants | — |  | — |  |  | — |  | — |
Weighted-average shares outstanding | 35,675 |  | 35,435 |  |  | 35,448 |  | 35,689 |
Net income per share: |  |  |  |  |
Basic | $ | 0.78 |  | $ | 0.46 |  |  | $ | 2.67 |  | $ | 1.58 |
Diluted | $ | 0.75 |  | $ | 0.44 |  |  | $ | 2.55 |  | $ | 1.49 |
(1) Effective March 28, 2025, we performed a 6-for-1 stock split of the Company’s common stock, affected through a stock dividend. Share and per share amounts have been retroactively adjusted. (2) Because their effect would have been anti-dilutive, 252 and 262 shares were excluded from the denominator of diluted net income per share for the three and nine months ended September 30, 2024, respectively.

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