XML 21 R14.htm IDEA: XBRL DOCUMENT
v3.25.1

INCOME (LOSS) PER SHARE AND SHAREHOLDERS' EQUITY | 3 Months Ended
--- | ---
Mar. 31, 2025
Earnings Per Share [Abstract] |
INCOME (LOSS) PER SHARE AND SHAREHOLDERS' EQUITY | 6. INCOME (LOSS) PER SHARE AND SHAREHOLDERS’ EQUITY Income (Loss) Per Share The following table presents the computation of basic and diluted income per share for the three months ended March 31, 2025 and 2024 (in thousands, except per share data):
|  | Three Months Ended March 31, |
|  | 2025 |  |  | 2024 |
Numerator: |  |  |  |  |  |
Net income |  | $ | 3,827 |  |  | $ | 6,240 |
Denominator: |  |  |  |  |  |
Weighted average basic shares |  |  | 16,339 |  |  |  | 16,215 |
Effect of dilutive share-based awards |  |  | 383 |  |  |  | 540 |
Weighted average diluted shares |  |  | 16,722 |  |  |  | 16,755 |
Basic income per share |  | $ | 0.23 |  |  | $ | 0.38 |
Diluted income per share |  | $ | 0.23 |  |  | $ | 0.37 |
Shareholders’ Equity We have a share repurchase program, as amended (“Share Repurchase Program”), authorizing the repurchase of up to $5.0 million of our outstanding common stock, effective until December 15, 2025. The timing and amount of any share repurchases is at the discretion of management and may be made from time to time through transactions in the open market, in privately negotiated transactions or by other means in accordance with applicable laws. The Share Repurchase Program does not obligate us to repurchase any shares of our common stock and may be modified, increas ed, suspended or terminated at the discretion of our Board. During the three months ended March 31, 2025 and 2024, we repurchased 86,364 a nd 60,860 shares of our common stock for $0.6 million and $0.3 million, respectively, and at March 31, 2025, we had remaining authorization to purchase $3.1 million under the Share Repurchase Program.

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