XML 59 R42.htm IDEA: XBRL DOCUMENT
v3.25.0.1

Note 16 - Revenue (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2024
Notes Tables |
Revenue from External Customers by Geographic Areas [Table Text Block] |
|  | Year Ended December 31, |
|  | 2024 |  |  | 2023 |  |  | 2022 |
Net sales by geographic region: |  |  |  |  |  |  |  |  |  |  |  |
United States |  | $ | 475,105 |  |  | $ | 420,925 |  |  | $ | 423,961 |
Canada |  |  | 17,443 |  |  |  | 23,430 |  |  |  | 33,704 |
Total |  | $ | 492,548 |  |  | $ | 444,355 |  |  | $ | 457,665 |
Disaggregation of Revenue [Table Text Block] |
|  | Year Ended December 31, |
|  | 2024 |  |  | 2023 |  |  | 2022 |
Over time |  | $ | 337,945 |  |  | $ | 296,381 |  |  | $ | 307,572 |
Point in time |  |  | 154,603 |  |  |  | 147,974 |  |  |  | 150,093 |
Net sales |  | $ | 492,548 |  |  | $ | 444,355 |  |  | $ | 457,665 |
Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block] |
|  | Contract Assets |  |  | Contract Liabilities |  |  | Net Contract Assets |
Year Ended December 31, 2024 |  |  |  |  |  |  |  |  |  |  |  |
Balance, beginning of year |  | $ | 120,516 |  |  | $ | (21,450 | ) |  | $ | 99,066 |
Revenue recognized |  |  | 281,400 |  |  |  | 56,545 |  |  |  | 337,945 |
Billings |  |  | (297,122 | ) |  |  | (46,292 | ) |  |  | (343,414 | )
Other |  |  | (1,372 | ) |  |  | - |  |  |  | (1,372 | )
Balance, end of year |  | $ | 103,422 |  |  | $ | (11,197 | ) |  | $ | 92,225 |
Year Ended December 31, 2023 |  |  |  |  |  |  |  |  |  |  |  |
Balance, beginning of year |  | $ | 121,778 |  |  | $ | (17,456 | ) |  | $ | 104,322 |
Revenue recognized |  |  | 257,164 |  |  |  | 39,217 |  |  |  | 296,381 |
Billings |  |  | (255,873 | ) |  |  | (43,211 | ) |  |  | (299,084 | )
Other |  |  | (2,553 | ) |  |  | - |  |  |  | (2,553 | )
Balance, end of year |  | $ | 120,516 |  |  | $ | (21,450 | ) |  | $ | 99,066 |

X
- Definition Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 10 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10 + Details
Name: | us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 5 -Publisher FASB -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5 + Details
Name: | us-gaap_DisaggregationOfRevenueTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of revenue from external customers by geographic areas attributed to the entity's country of domicile and to foreign countries from which the entity derives revenue. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 41 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41 + Details
Name: | us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- References No definition available. + Details
Name: | us-gaap_TableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration