XML 12 R2.htm IDEA: XBRL DOCUMENT
v3.25.1

Pay vs Performance Disclosure | 12 Months Ended
--- | ---
Dec. 31, 2024 USD ($) | Dec. 31, 2023 USD ($) | Dec. 31, 2022 USD ($) | Dec. 31, 2021 USD ($) | Dec. 31, 2020 USD ($)
Pay vs Performance Disclosure |  |  |  |  |
Pay vs Performance Disclosure, Table |
Year | ​ | ​ | Summary Compensation Table Total for PEO $ | ​ | ​ | Compensation Actually Paid to PEO(1) $ | ​ | ​ | Average Summary Compensation Table Total for Non-PEO NEOs $ | ​ | ​ | Average Compensation Actually Paid to Non-PEO NEOs(1) $ | ​ | ​ | ​ | ​ | ​ | Value of Initial Fixed $100 Investment Based on: | ​ | ​ | Net Income $ | ​ | ​ | Revenue (excluding pass-through energy charges) $ | ​
​ | ​ | ​ | ​ | Total Shareholder Return(2) $ | ​ | ​ | Peer Group Total Shareholder Return $ | ​
2024 | ​ | ​ | ​ | ​ | 1,462,458 | ​ | ​ | ​ | ​ | ​ | 1,075,367 | ​ | ​ | ​ | ​ | ​ | 624,907 | ​ | ​ | ​ | ​ | ​ | 506,457 | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | 177.01 | ​ | ​ | ​ | ​ | ​ | 107.41 | ​ | ​ | ​ | ​ | ​ | 28,237,554 | ​ | ​ | ​ | ​ | ​ | 115,370,773 | ​ | ​
2023 | ​ | ​ | ​ | ​ | 1,446,075 | ​ | ​ | ​ | ​ | ​ | 2,546,547 | ​ | ​ | ​ | ​ | ​ | 594,319 | ​ | ​ | ​ | ​ | ​ | 928,037 | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | 239.88 | ​ | ​ | ​ | ​ | ​ | 130.40 | ​ | ​ | ​ | ​ | ​ | 29,585,391 | ​ | ​ | ​ | ​ | ​ | 160,644,059 | ​ | ​
2022 | ​ | ​ | ​ | ​ | 1,331,100 | ​ | ​ | ​ | ​ | ​ | 1,547,295 | ​ | ​ | ​ | ​ | ​ | 545,100 | ​ | ​ | ​ | ​ | ​ | 609,988 | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | 97.91 | ​ | ​ | ​ | ​ | ​ | 118.72 | ​ | ​ | ​ | ​ | ​ | 5,856,294 | ​ | ​ | ​ | ​ | ​ | 76,196,354 | ​ | ​
2021 | ​ | ​ | ​ | ​ | 907,150 | ​ | ​ | ​ | ​ | ​ | 841,379 | ​ | ​ | ​ | ​ | ​ | 453,865 | ​ | ​ | ​ | ​ | ​ | 434,564 | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | 68.57 | ​ | ​ | ​ | ​ | ​ | 123.24 | ​ | ​ | ​ | ​ | ​ | 875,579 | ​ | ​ | ​ | ​ | ​ | 55,182,474 | ​ | ​
2020 | ​ | ​ | ​ | ​ | 906,312 | ​ | ​ | ​ | ​ | ​ | 717,932 | ​ | ​ | ​ | ​ | ​ | 446,006 | ​ | ​ | ​ | ​ | ​ | 392,276 | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | 75.49 | ​ | ​ | ​ | ​ | ​ | 100.22 | ​ | ​ | ​ | ​ | ​ | 3,711,528 | ​ | ​ | ​ | ​ | ​ | 63,143,379 | ​ | ​
​ (1) Compensation Actually Paid represents total compensation as reported in the Summary Compensation Table for that year (i) less the grant-date fair value of any stock and option awards granted during that year, (ii) plus the change in fair value of outstanding and unvested stock and option awards during that year, as well as the fair value of new stock and option awards granted during that year as of the end of the year. ​ (2) The Value of Initial Fixed $100 Investment Based on Total Shareholder Return depicts a hypothetical $100 investment in Ordinary Shares on December 31, 2019, and shows the value of that investment over time (assuming the reinvestment of dividends) for each calendar year. Historical stock performance is not necessarily indicative of future stock performance. |  |  |  |
PEO Total Compensation Amount | $ 1,462,458 | $ 1,446,075 | $ 1,331,100 | $ 907,150 | $ 906,312
PEO Actually Paid Compensation Amount | 1,075,367 | 2,546,547 | 1,547,295 | 841,379 | 717,932
Non-PEO NEO Average Total Compensation Amount | 624,907 | 594,319 | 545,100 | 453,865 | 446,006
Non-PEO NEO Average Compensation Actually Paid Amount | $ 506,457 | 928,037 | 609,988 | 434,564 | 392,276
Tabular List, Table | Tabular List of the Company’s Most Important Metrics that Link Compensation Actually Paid to the PEO and other NEOs We consider the list below to be the Company’s most important metrics that link compensation paid to our NEOs, as they are the key metrics that determine the payout under our short-term incentive compensation plan and long-term incentive compensation plan. • Revenue (excluding pass-through energy charges) ​ • Net income from continuing operations ​ • Gross margin ​ • Earnings per share ​ • Operating cash flows |  |  |  |
Total Shareholder Return Amount | $ 177.01 | 239.88 | 97.91 | 68.57 | 75.49
Peer Group Total Shareholder Return Amount | 107.41 | 130.4 | 118.72 | 123.24 | 100.22
Net Income (Loss) | $ 28,237,554 | $ 29,585,391 | $ 5,856,294 | $ 875,579 | $ 3,711,528
Company Selected Measure Amount | 115,370,773 | 160,644,059 | 76,196,354 | 55,182,474 | 63,143,379
PEO Name | Mr. McTaggart |  |  |  |
Measure:: 1 |  |  |  |  |
Pay vs Performance Disclosure |  |  |  |  |
Name | Revenue (excluding pass-through energy charges) |  |  |  |
Measure:: 2 |  |  |  |  |
Pay vs Performance Disclosure |  |  |  |  |
Name | Net income from continuing operations |  |  |  |
Measure:: 3 |  |  |  |  |
Pay vs Performance Disclosure |  |  |  |  |
Name | Gross margin |  |  |  |
Measure:: 4 |  |  |  |  |
Pay vs Performance Disclosure |  |  |  |  |
Name | Earnings per share |  |  |  |
Measure:: 5 |  |  |  |  |
Pay vs Performance Disclosure |  |  |  |  |
Name | Operating cash flows |  |  |  |

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 2 -Subparagraph vi + Details
Name: | ecd_CoSelectedMeasureAmt
Namespace Prefix: | ecd_
Data Type: | xbrli:decimalItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 2 -Subparagraph vi + Details
Name: | ecd_MeasureName
Namespace Prefix: | ecd_
Data Type: | xbrli:normalizedStringItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 2 -Subparagraph iii + Details
Name: | ecd_NonPeoNeoAvgCompActuallyPaidAmt
Namespace Prefix: | ecd_
Data Type: | xbrli:monetaryItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 2 -Subparagraph ii + Details
Name: | ecd_NonPeoNeoAvgTotalCompAmt
Namespace Prefix: | ecd_
Data Type: | xbrli:monetaryItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 2 -Subparagraph iv + Details
Name: | ecd_PeerGroupTotalShareholderRtnAmt
Namespace Prefix: | ecd_
Data Type: | xbrli:monetaryItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 2 -Subparagraph iii + Details
Name: | ecd_PeoActuallyPaidCompAmt
Namespace Prefix: | ecd_
Data Type: | xbrli:monetaryItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 3 + Details
Name: | ecd_PeoName
Namespace Prefix: | ecd_
Data Type: | xbrli:normalizedStringItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 2 -Subparagraph ii + Details
Name: | ecd_PeoTotalCompAmt
Namespace Prefix: | ecd_
Data Type: | xbrli:monetaryItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 1 + Details
Name: | ecd_PvpTable
Namespace Prefix: | ecd_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 1 + Details
Name: | ecd_PvpTableTextBlock
Namespace Prefix: | ecd_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 6 + Details
Name: | ecd_TabularListTableTextBlock
Namespace Prefix: | ecd_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-K -Number 229 -Section 402 -Subsection v -Paragraph 2 -Subparagraph iv + Details
Name: | ecd_TotalShareholderRtnAmt
Namespace Prefix: | ecd_
Data Type: | xbrli:monetaryItemType
Balance Type: | na
Period Type: | duration

X
- Definition The portion of profit or loss for the period, net of income taxes, which is attributable to the parent. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 250 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 6 -Publisher FASB -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 250 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 9 -Publisher FASB -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 805 -SubTopic 60 -Name Accounting Standards Codification -Section 65 -Paragraph 1 -Subparagraph (g) -Publisher FASB -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 740 -SubTopic 323 -Name Accounting Standards Codification -Section 65 -Paragraph 2 -Subparagraph (g)(3) -Publisher FASB -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2 Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 220 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03(20)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2 Reference 6: http://www.xbrl.org/2003/role/disclosureRef -Topic 235 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.4-08(g)(1)(ii)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1 Reference 7: http://www.xbrl.org/2003/role/disclosureRef -Topic 323 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 3 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3 Reference 8: http://www.xbrl.org/2003/role/disclosureRef -Topic 825 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 28 -Subparagraph (f) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28 Reference 9: http://www.xbrl.org/2003/role/disclosureRef -Topic 220 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 6 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6 Reference 10: http://www.xbrl.org/2003/role/disclosureRef -Topic 250 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 3 -Publisher FASB -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3 Reference 11: http://www.xbrl.org/2003/role/disclosureRef -Topic 250 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (b)(2) -Publisher FASB -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1 Reference 12: http://www.xbrl.org/2003/role/disclosureRef -Topic 815 -SubTopic 40 -Name Accounting Standards Codification -Section 65 -Paragraph 1 -Subparagraph (f) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1 Reference 13: http://www.xbrl.org/2003/role/disclosureRef -Topic 250 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 8 -Publisher FASB -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8 Reference 14: http://www.xbrl.org/2003/role/disclosureRef -Topic 250 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 11 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11 Reference 15: http://www.xbrl.org/2003/role/disclosureRef -Topic 250 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 11 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11 Reference 16: http://www.xbrl.org/2003/role/disclosureRef -Topic 250 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 4 -Publisher FASB -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4 Reference 17: http://www.xbrl.org/2003/role/exampleRef -Topic 946 -SubTopic 830 -Name Accounting Standards Codification -Section 55 -Paragraph 10 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10 Reference 18: http://www.xbrl.org/2003/role/disclosureRef -Topic 946 -SubTopic 220 -Name Accounting Standards Codification -Section 45 -Paragraph 7 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7 Reference 19: http://www.xbrl.org/2003/role/disclosureRef -Topic 944 -SubTopic 220 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.7-04(18)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1 Reference 20: http://www.xbrl.org/2003/role/disclosureRef -Topic 946 -SubTopic 220 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.6-07(9)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1 Reference 21: http://www.xbrl.org/2003/role/disclosureRef -Topic 946 -SubTopic 220 -Name Accounting Standards Codification -Section S99 -Paragraph 3 -Subparagraph (SX 210.6-09(1)(d)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3 Reference 22: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1A -Subparagraph (SX 210.13-01(a)(4)(i)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1A -Subparagraph (SX 210.13-01(a)(4)(ii)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A Reference 24: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1A -Subparagraph (SX 210.13-01(a)(4)(iii)(A)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A Reference 25: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1A -Subparagraph (SX 210.13-01(a)(4)(iv)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A Reference 26: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1A -Subparagraph (SX 210.13-01(a)(5)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A Reference 27: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1B -Subparagraph (SX 210.13-02(a)(4)(i)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B Reference 28: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1B -Subparagraph (SX 210.13-02(a)(4)(iii)(A)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B Reference 29: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1B -Subparagraph (SX 210.13-02(a)(4)(iii)(B)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B Reference 30: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1B -Subparagraph (SX 210.13-02(a)(4)(iv)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B Reference 31: http://www.xbrl.org/2003/role/disclosureRef -Topic 470 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 1B -Subparagraph (SX 210.13-02(a)(5)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B Reference 32: http://www.xbrl.org/2003/role/disclosureRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 45 -Paragraph 60B -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B Reference 33: http://www.xbrl.org/2003/role/disclosureRef -Topic 205 -SubTopic 20 -Name Accounting Standards Codification -Section 50 -Paragraph 7 -Publisher FASB -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7 Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 230 -SubTopic 10 -Name Accounting Standards Codification -Section 45 -Paragraph 28 -Publisher FASB -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28 Reference 35: http://www.xbrl.org/2003/role/disclosureRef -Topic 220 -SubTopic 10 -Name Accounting Standards Codification -Section 45 -Paragraph 1A -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A Reference 36: http://www.xbrl.org/2003/role/disclosureRef -Topic 220 -SubTopic 10 -Name Accounting Standards Codification -Section 45 -Paragraph 1B -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 942 -SubTopic 220 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.9-04(22)) -Publisher FASB -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1 + Details
Name: | us-gaap_NetIncomeLoss
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Details
Name: | ecd_MeasureAxis=1
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | ecd_MeasureAxis=2
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | ecd_MeasureAxis=3
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | ecd_MeasureAxis=4
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | ecd_MeasureAxis=5
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |