XML 34 R22.htm IDEA: XBRL DOCUMENT
v3.25.2

Earnings Per Share | 6 Months Ended
--- | ---
Jun. 30, 2025
Earnings Per Share [Abstract] |
Earnings Per Share | Earnings Per Share Basic earnings per common share is calculated by dividing net income by the weighted average number of common shares outstanding for the period. Diluted earnings per common share is calculated by dividing the adjusted net income by the weighted average number of common shares outstanding combined with dilutive common share equivalents outstanding, if the effect is dilutive. For the three and six months ended June 30, 2025 and 2024, there were no adjustments to net income. Potentially dilutive common share equivalents consist of incremental shares of common stock issuable upon exercise of the June 2022 Warrants and vesting and settlement of stock awards. The dilutive effect of non-vested stock issued under share‑based compensation plans, shares issuable under the Employee Stock Purchase Plan, employee stock options outstanding, and the June 2022 Warrants are computed using the treasury stock method. The calculation of the basic and diluted earnings per share for the three and six months ended June 30, 2025 and 2024 is as follows (in thousands):
| Three months ended June 30, |  | Six months ended June 30, |
| 2025 |  | 2024 |  | 2025 |  | 2024 |
Numerator: |  |  |  |  |  |  |  |
Net income for basic and diluted earnings per share | $ | 1,768 |  |  | $ | 1,974 |  |  | $ | 7,148 |  |  | $ | 3,536 |  |
Denominator: |  |  |  |  |  |  |  |
Basic weighted average shares outstanding (1) | 33,947 |  |  | 29,449 |  |  | 31,827 |  |  | 29,440 |  |
Dilutive effect of the June 2022 warrants | 1,792 |  |  | 1,041 |  |  | 1,738 |  |  | 925 |  |
Dilutive effect of stock options and restricted shares | 492 |  |  | 178 |  |  | 461 |  |  | 147 |  |
Diluted weighted average shares outstanding | 36,231 |  |  | 30,668 |  |  | 34,026 |  |  | 30,512 |  |
Basic earnings per share | $ | 0.05 |  |  | $ | 0.07 |  |  | $ | 0.22 |  |  | $ | 0.12 |  |
Diluted earnings per share | $ | 0.05 |  |  | $ | 0.06 |  |  | $ | 0.21 |  |  | $ | 0.12 |  |
(1)Basic weighted average shares outstanding for the three and six month 2025 periods include the weighted average of 6,000,000 shares associated with the April 2025 Warrant assumed issued at the April 28, 2025 closing date of the PWRtek Transactions (see Note 3, “Asset Acquisition”).

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