XML 43 R31.htm IDEA: XBRL DOCUMENT
v3.25.3

Earnings Per Share (Tables) | 9 Months Ended
--- | ---
Sep. 30, 2025
Earnings Per Share |
Schedule of computations of basic and diluted earnings per common share | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | Three Months Ended September 30, | ​ | Nine Months Ended September 30,
​ | 2025 | ​ | 2024 |  | 2025 | ​ | 2024
Numerator: | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Net income | $ | 31,507 | ​ | $ | 9,335 | ​ | $ | 45,907 | ​ | $ | 56,654
Adjustment for interest expense on convertible senior notes, net of tax | ​ | 1,562 | ​ | ​ | 1,416 | ​ | ​ | 4,521 | ​ | ​ | 4,358
Net income - diluted | $ | 33,069 | ​ | $ | 10,751 | ​ | $ | 50,428 | ​ | $ | 61,012
Denominator: | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Weighted-average shares outstanding — basic | ​ | 31,571,410 |  | ​ | 32,259,468 | ​ | ​ | 31,724,439 |  | ​ | 32,339,401
Effect of dilutive securities: | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Stock options | ​ | 234,972 | ​ | ​ | 327,605 | ​ | ​ | 234,830 | ​ | ​ | 395,759
Restricted stock units | ​ | 1,026,789 | ​ | ​ | 969,888 | ​ | ​ | 820,497 | ​ | ​ | 1,059,018
Employee stock purchase plan | ​ | 414 | ​ | ​ | — | ​ | ​ | — | ​ | ​ | —
Convertible senior notes | ​ | 6,606,305 | ​ | ​ | 6,606,305 | ​ | ​ | 6,606,305 | ​ | ​ | 6,606,305
Weighted average shares outstanding — diluted | ​ | 39,439,890 | ​ | ​ | 40,163,266 | ​ | ​ | 39,386,071 | ​ | ​ | 40,400,483
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Earnings per share — basic | $ | 1.00 | ​ | $ | 0.29 | ​ | $ | 1.45 | ​ | $ | 1.75
Earnings per share — diluted | $ | 0.84 | ​ | $ | 0.27 | ​ | $ | 1.28 | ​ | $ | 1.51
Schedule of dilutive securities excluded from the calculation of diluted earnings per share | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | Three Months Ended September 30, | ​ | Nine Months Ended September 30,
​ | 2025 |  | 2024 |  | 2025 |  | 2024
Stock options | 130,344 | ​ | — | ​ | 130,344 | ​ | —
Restricted stock units | 14,381 | ​ | 231,644 | ​ | 17,431 | ​ | 236,794
Performance share units | 313,642 | ​ | 223,680 | ​ | 313,642 | ​ | 223,680
Employee stock purchase plan | — | ​ | 19,108 | ​ | 38,212 | ​ | 19,108

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 Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 260 -SubTopic 10 -Section 50 -Paragraph 1 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1 + Details
Name: | us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock
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