XML 90 R76.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Note 16 - Revenue 1 (Details Textual) $ in Millions | 12 Months Ended
--- | ---
Dec. 31, 2023 USD ($) | Dec. 31, 2022 USD ($) | Dec. 31, 2021 USD ($)
Increase (Decrease) in Revenue from Contract with Customers, Including Assessed Tax | $ (1.1) | $ (0.6) | $ 2.0
Revenue, Remaining Performance Obligation, Amount | $ 273.0 |  |
Revenue Benchmark [Member] | Customer Concentration Risk [Member] | Precast Infrastructure and Engineered Systems [Member] |  |  |
Number of Major Customers | 0 | 0 | 0
Revenue Benchmark [Member] | Customer Concentration Risk [Member] | One SPP Customer [Member] |  |  |
Concentration Risk, Percentage | 10.00% | 12.00% | 12.00%

X
- Definition The increase (decrease) during the period of the amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. + References No definition available. + Details
Name: | nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax
Namespace Prefix: | nwpx_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc. + References No definition available. + Details
Name: | nwpx_NumberOfMajorCustomers
Namespace Prefix: | nwpx_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 280 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 42 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 825 -SubTopic 10 -Section 50 -Paragraph 21 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org//1943274/2147482907/825-10-50-21 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 825 -SubTopic 10 -Section 50 -Paragraph 20 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482907/825-10-50-20 Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 275 -SubTopic 10 -Section 50 -Paragraph 18 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482861/275-10-50-18 Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef -Name Accounting Standards Codification -Topic 275 -SubTopic 10 -Section 50 -Paragraph 20 -Publisher FASB -URI https://asc.fasb.org//1943274/2147482861/275-10-50-20 + Details
Name: | us-gaap_ConcentrationRiskPercentage1
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:percentItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of transaction price allocated to performance obligation that has not been recognized as revenue. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Name Accounting Standards Codification -Section 50 -Paragraph 13 -Subparagraph (a) -SubTopic 10 -Topic 606 -Publisher FASB -URI https://asc.fasb.org//1943274/2147479806/606-10-50-13 + Details
Name: | us-gaap_RevenueRemainingPerformanceObligation
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Details
Name: | us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementBusinessSegmentsAxis=nwpx_PrecastInfrastructureAndEngineeredSystemsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_MajorCustomersAxis=nwpx_OneSppCustomerMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |