XML 27 R11.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Note 3 - Revenue | 12 Months Ended
--- | ---
Dec. 31, 2023
Notes to Financial Statements |
Revenue from Contract with Customer [Text Block] | Note 3 – Revenue Disaggregation of Revenue The following tables disaggregate total net sales by end market and geographic location:
End Market |  | 2023 |  |  | 2022 |  |  | 2021 |
Industrial |  | $ | 136,978 |  |  | $ | 100,826 |  |  | $ | 61,371 |
Fire |  |  | 143,551 |  |  |  | 121,001 |  |  |  | 103,653 |
Agriculture |  |  | 83,053 |  |  |  | 57,703 |  |  |  | 21,879 |
Construction |  |  | 86,996 |  |  |  | 60,557 |  |  |  | 34,368 |
Municipal |  |  | 78,528 |  |  |  | 69,726 |  |  |  | 54,964 |
Petroleum |  |  | 23,168 |  |  |  | 16,464 |  |  |  | 15,618 |
OEM |  |  | 37,708 |  |  |  | 34,820 |  |  |  | 32,964 |
Repair parts |  |  | 69,529 |  |  |  | 59,930 |  |  |  | 53,499 |
Total net sales |  | $ | 659,511 |  |  | $ | 521,027 |  |  | $ | 378,316 |
Geographic Location |  | 2023 |  |  | 2022 |  |  | 2021 |
United States |  | $ | 497,387 |  |  | $ | 381,306 |  |  | $ | 260,683 |
Foreign countries |  |  | 162,124 |  |  |  | 139,721 |  |  |  | 117,633 |
Total net sales |  | $ | 659,511 |  |  | $ | 521,027 |  |  | $ | 378,316 |
International sales represented approximately 25% of total net sales for 2023, 27% for 2022 and 31% for 2021, and were made to customers in many different countries around the world. On December 31, 2023, the Company had $218.1 million of remaining performance obligations, also referred to as backlog. The Company expects to recognize as revenue substantially all of its remaining performance obligations within one year. The Company’s contract assets and liabilities as of December 31, 2023 and 2022 were as follows:
|  | 2023 |  |  | 2022 |
Contract assets |  | $ | - |  |  | $ | - |
Contract liabilities |  | $ | 12,521 |  |  | $ | 6,740 |
Revenue recognized for the year ended December 31, 2023 that was included in the contract liability balance at December 31, 2022 was $6.0 million. Revenue recognized for the year ended December 31, 2022 that was included in the contract liability balance at December 31, 2021 was $9.1 million.

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

X
- Definition The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 9 -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-9 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -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 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 15 -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-15 Reference 4: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 5: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (b) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 6: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (c) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 7: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (d) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 8: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 12 -Subparagraph (e) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-12 Reference 9: http://www.xbrl.org/2003/role/disclosureRef -Topic 606 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 13 -Subparagraph (b)(2) -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13 Reference 10: http://www.xbrl.org/2003/role/disclosureRef -Name Accounting Standards Codification -Topic 606 -Publisher FASB -URI https://asc.fasb.org//606/tableOfContent + Details
Name: | us-gaap_RevenueFromContractWithCustomerTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration