XML 55 R41.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Note 16 - Revenue (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2023
Notes Tables |
Revenue from External Customers by Geographic Areas [Table Text Block] |
|  | Year Ended December 31, |
|  | 2023 |  |  | 2022 |  |  | 2021 |
Net sales by geographic region: |  |  |  |  |  |  |  |  |  |  |  |
United States |  | $ | 420,925 |  |  | $ | 423,961 |  |  | $ | 313,729 |
Canada |  |  | 23,430 |  |  |  | 33,704 |  |  |  | 19,584 |
Total |  | $ | 444,355 |  |  | $ | 457,665 |  |  | $ | 333,313 |
Disaggregation of Revenue [Table Text Block] |
|  | Year Ended December 31, |
|  | 2023 |  |  | 2022 |  |  | 2021 |
Over time |  | $ | 296,381 |  |  | $ | 307,572 |  |  | $ | 259,823 |
Point in time |  |  | 147,974 |  |  |  | 150,093 |  |  |  | 73,490 |
Net sales |  | $ | 444,355 |  |  | $ | 457,665 |  |  | $ | 333,313 |
Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block] |
|  | December 31, |
|  | 2023 |  |  | 2022 |
Balance, beginning of year |  | $ | 121,778 |  |  | $ | 107,170 |
Revenue recognized in advance of billings |  |  | 291,812 |  |  |  | 306,095 |
Billings |  |  | (293,356 | ) |  |  | (294,506 | )
Other |  |  | 282 |  |  |  | 3,019 |
Balance, end of year |  | $ | 120,516 |  |  | $ | 121,778 |
|  | December 31, |
|  | 2023 |  |  | 2022 |
Balance, beginning of year |  | $ | 17,456 |  |  | $ | 2,623 |
Billings |  |  | 20,815 |  |  |  | 17,618 |
Revenue recognized |  |  | (16,984 | ) |  |  | (2,663 | )
Other |  |  | 163 |  |  |  | (122 | )
Balance, end of year |  | $ | 21,450 |  |  | $ | 17,456 |

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 -Name Accounting Standards Codification -Section 50 -Paragraph 41 -Subparagraph a -SubTopic 10 -Topic 280 -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