2021 Q4 Form 10-K Financial Statement
#000143774922006431 Filed on March 16, 2022
Income Statement
Concept | 2021 Q4 | 2021 Q3 | 2021 Q2 |
---|---|---|---|
Revenue | $102.5M | $84.64M | $73.81M |
YoY Change | 47.8% | 9.03% | 5.49% |
Cost Of Revenue | $88.97M | $72.28M | $64.27M |
YoY Change | 56.09% | 16.56% | 12.74% |
Gross Profit | $13.58M | $12.36M | $9.538M |
YoY Change | 9.83% | -20.85% | -26.39% |
Gross Profit Margin | 13.24% | 14.61% | 12.92% |
Selling, General & Admin | $7.893M | $5.562M | $6.337M |
YoY Change | 36.09% | -1.66% | 13.48% |
% of Gross Profit | 58.13% | 44.99% | 66.44% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $4.319M | $2.869M | $3.416M |
YoY Change | 19.64% | -21.83% | -11.04% |
% of Gross Profit | 31.81% | 23.21% | 35.81% |
Operating Expenses | $7.893M | $5.562M | $6.337M |
YoY Change | 36.09% | -1.66% | 13.48% |
Operating Profit | $5.685M | $6.801M | $3.201M |
YoY Change | -13.38% | -31.74% | -56.59% |
Interest Expense | -$515.0K | $112.0K | $348.0K |
YoY Change | 157.5% | -52.94% | 32.82% |
% of Operating Profit | -9.06% | 1.65% | 10.87% |
Other Income/Expense, Net | $68.00K | $171.0K | $30.00K |
YoY Change | -32.0% | 8.92% | -97.17% |
Pretax Income | $2.638M | $6.860M | $2.883M |
YoY Change | -59.42% | -30.69% | -64.76% |
Income Tax | $367.0K | $1.914M | $752.0K |
% Of Pretax Income | 13.91% | 27.9% | 26.08% |
Net Earnings | $2.271M | $4.946M | $2.131M |
YoY Change | -56.5% | -31.94% | -64.47% |
Net Earnings / Revenue | 2.21% | 5.84% | 2.89% |
Basic Earnings Per Share | $0.23 | $0.50 | $0.22 |
Diluted Earnings Per Share | $0.23 | $0.50 | $0.21 |
COMMON SHARES | |||
Basic Shares Outstanding | 9.871M | 9.871M | 9.861M |
Diluted Shares Outstanding | 9.921M | 9.915M |
Balance Sheet
Concept | 2021 Q4 | 2021 Q3 | 2021 Q2 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $2.997M | $3.188M | $23.20M |
YoY Change | -92.09% | -89.51% | 20.82% |
Cash & Equivalents | $2.997M | $3.188M | $23.20M |
Short-Term Investments | |||
Other Short-Term Assets | $5.744M | $1.915M | $4.035M |
YoY Change | 10.46% | -43.68% | 6.18% |
Inventory | $59.65M | $43.04M | $30.03M |
Prepaid Expenses | |||
Receivables | $159.8M | $150.1M | $124.3M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $228.2M | $198.3M | $181.5M |
YoY Change | 18.89% | 6.84% | 5.21% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $121.3M | $111.2M | $110.0M |
YoY Change | 10.06% | 1.82% | 1.12% |
Goodwill | $53.68M | $22.99M | $22.99M |
YoY Change | 133.56% | 0.0% | 0.0% |
Intangibles | |||
YoY Change | |||
Long-Term Investments | |||
YoY Change | |||
Other Assets | $6.620M | $6.216M | $6.164M |
YoY Change | 1.04% | -3.36% | -2.51% |
Total Long-Term Assets | $319.5M | $182.7M | $182.6M |
YoY Change | 76.44% | 0.8% | 1.9% |
TOTAL ASSETS | |||
Total Short-Term Assets | $228.2M | $198.3M | $181.5M |
Total Long-Term Assets | $319.5M | $182.7M | $182.6M |
Total Assets | $547.7M | $381.0M | $364.1M |
YoY Change | 46.82% | 3.86% | 3.52% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $32.27M | $20.15M | $15.46M |
YoY Change | 148.34% | 47.04% | 18.8% |
Accrued Expenses | $24.50M | $17.41M | $14.99M |
YoY Change | 45.7% | 23.92% | 26.2% |
Deferred Revenue | $2.623M | $5.388M | $2.722M |
YoY Change | -57.62% | 18.68% | -42.46% |
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | $0.00 | $0.00 | $0.00 |
YoY Change | -100.0% | -100.0% | -100.0% |
Total Short-Term Liabilities | $64.09M | $45.34M | $35.58M |
YoY Change | 39.63% | 20.2% | 1.37% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $86.76M | $2.153M | $0.00 |
YoY Change | 1373.52% | -80.85% | -100.0% |
Other Long-Term Liabilities | $8.734M | $10.77M | $10.64M |
YoY Change | -22.07% | -3.06% | 1.86% |
Total Long-Term Liabilities | $8.734M | $10.77M | $10.64M |
YoY Change | -48.91% | -51.83% | -52.66% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $64.09M | $45.34M | $35.58M |
Total Long-Term Liabilities | $8.734M | $10.77M | $10.64M |
Total Liabilities | $264.3M | $100.7M | $89.40M |
YoY Change | 155.63% | -2.4% | -7.08% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $159.9M | $157.6M | $152.7M |
YoY Change | 7.77% | 10.11% | 12.36% |
Common Stock | $125.2M | $124.4M | $123.8M |
YoY Change | 1.67% | 1.68% | 1.92% |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | |||
YoY Change | |||
Treasury Stock Shares | |||
Shareholders Equity | $283.4M | $280.3M | $274.7M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $547.7M | $381.0M | $364.1M |
YoY Change | 46.82% | 3.86% | 3.52% |
Cashflow Statement
Concept | 2021 Q4 | 2021 Q3 | 2021 Q2 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $2.271M | $4.946M | $2.131M |
YoY Change | -56.5% | -31.94% | -64.47% |
Depreciation, Depletion And Amortization | $4.319M | $2.869M | $3.416M |
YoY Change | 19.64% | -21.83% | -11.04% |
Cash From Operating Activities | $7.814M | -$18.70M | $5.662M |
YoY Change | -38.47% | -228.06% | -58.82% |
INVESTING ACTIVITIES | |||
Capital Expenditures | -$5.136M | -$3.348M | -$2.918M |
YoY Change | 21.42% | -7.51% | -17.8% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$87.19M | $203.0K | $1.000K |
YoY Change | -81.2% | -99.82% | |
Cash From Investing Activities | -$92.33M | -$3.145M | -$2.917M |
YoY Change | 2087.91% | 23.82% | -3.09% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | 84.33M | 1.832M | -9.434M |
YoY Change | -9469.44% | -301.32% | 686.17% |
NET CHANGE | |||
Cash From Operating Activities | 7.814M | -18.70M | 5.662M |
Cash From Investing Activities | -92.33M | -3.145M | -2.917M |
Cash From Financing Activities | 84.33M | 1.832M | -9.434M |
Net Change In Cash | -191.0K | -20.01M | -6.689M |
YoY Change | -102.52% | -279.46% | -170.12% |
FREE CASH FLOW | |||
Cash From Operating Activities | $7.814M | -$18.70M | $5.662M |
Capital Expenditures | -$5.136M | -$3.348M | -$2.918M |
Free Cash Flow | $12.95M | -$15.35M | $8.580M |
YoY Change | -23.51% | -184.24% | -50.4% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2021 | dei |
Auditor Firm
AuditorFirmId
|
659 | |
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
503000 | USD |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
767000 | USD |
CY2021Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
USD | |
CY2020Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
USD | |
CY2021Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2020Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2021Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
10000000 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
10000000 | |
CY2021Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2021Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | |
CY2020Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | |
CY2021Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2020Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2021Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
15000000 | |
CY2020Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
15000000 | |
CY2021Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
9870567 | |
CY2021Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
9870567 | |
CY2020Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
9805437 | |
CY2019 | us-gaap |
Payments For Proceeds From Other Investing Activities
PaymentsForProceedsFromOtherInvestingActivities
|
-39000 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-100152000 | USD |
CY2020Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
9805437 | |
CY2019 | us-gaap |
Other Comprehensive Income Loss Pension And Other Postretirement Benefit Plans Tax
OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax
|
5000 | USD |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTaxParent
|
20000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Loss Pension And Other Postretirement Benefit Plans Tax
OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax
|
8000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTaxParent
|
9000 | USD |
CY2021 | us-gaap |
Other Comprehensive Income Loss Pension And Other Postretirement Benefit Plans Tax
OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax
|
102000 | USD |
CY2021 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTaxParent
|
41000 | USD |
CY2021 | us-gaap |
Proceeds From Income Tax Refunds
ProceedsFromIncomeTaxRefunds
|
79000 | USD |
CY2020 | us-gaap |
Proceeds From Income Tax Refunds
ProceedsFromIncomeTaxRefunds
|
153000 | USD |
CY2019 | us-gaap |
Proceeds From Income Tax Refunds
ProceedsFromIncomeTaxRefunds
|
286000 | USD |
CY2021Q4 | us-gaap |
Workers Compensation Liability Current And Noncurrent
WorkersCompensationLiabilityCurrentAndNoncurrent
|
1700000 | USD |
CY2021 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | |
CY2019 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | |
CY2021 | nwpx |
Number Of Active Stock Incentive Plans
NumberOfActiveStockIncentivePlans
|
1 | pure |
CY2019 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
|
0 | |
CY2021 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
|
0 | |
CY2021 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
0 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
0 | |
CY2021Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2021Q4 | us-gaap |
Revenue Remaining Performance Obligation Expected Timing Of Satisfaction Period1
RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
|
P1Y | |
CY2020Q4 | us-gaap |
Unrecognized Tax Benefits Income Tax Penalties Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued
|
0 | USD |
CY2021 | nwpx |
Accumulated Other Comprehensive Income Loss Defined Benefit Pension And Other Postretirement Plans Tax Expense Benefit
AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit
|
577000 | USD |
CY2020 | nwpx |
Accumulated Other Comprehensive Income Loss Defined Benefit Pension And Other Postretirement Plans Tax Expense Benefit
AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit
|
679000 | USD |
CY2021 | nwpx |
Accumulated Other Comprehensive Income Loss Cumulative Change In Net Gain Loss From Cash Flow Hedge Effect Tax
AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax
|
61000 | USD |
CY2020 | nwpx |
Accumulated Other Comprehensive Income Loss Cumulative Change In Net Gain Loss From Cash Flow Hedge Effect Tax
AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax
|
20000 | USD |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
333313000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
285907000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
279317000 | USD |
CY2021 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
289059000 | USD |
CY2020 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
235388000 | USD |
CY2019 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
232133000 | USD |
CY2021 | us-gaap |
Gross Profit
GrossProfit
|
44254000 | USD |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
50519000 | USD |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
47184000 | USD |
CY2021 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
28222000 | USD |
CY2020 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
24954000 | USD |
CY2019 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
18495000 | USD |
CY2021 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
16032000 | USD |
CY2020 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
25565000 | USD |
CY2019 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
28689000 | USD |
CY2021 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
328000 | USD |
CY2020 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
953000 | USD |
CY2019 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
4383000 | USD |
CY2021 | us-gaap |
Investment Income Interest And Dividend
InvestmentIncomeInterestAndDividend
|
0 | USD |
CY2020 | us-gaap |
Investment Income Interest And Dividend
InvestmentIncomeInterestAndDividend
|
49000 | USD |
CY2019 | us-gaap |
Investment Income Interest And Dividend
InvestmentIncomeInterestAndDividend
|
40000 | USD |
CY2021 | us-gaap |
Interest Expense
InterestExpense
|
1202000 | USD |
CY2020 | us-gaap |
Interest Expense
InterestExpense
|
933000 | USD |
CY2019 | us-gaap |
Interest Expense
InterestExpense
|
472000 | USD |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
15158000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
25634000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
32640000 | USD |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3635000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
6584000 | USD |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4738000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11523000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19050000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
27902000 | USD |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.17 | |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.95 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
2.86 | |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.16 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.93 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
2.85 | |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
9854000 | |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
9788000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
9741000 | |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9928000 | |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9873000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9779000 | |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11523000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19050000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
27902000 | USD |
CY2021 | us-gaap |
Other Comprehensive Income Defined Benefit Plans Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
|
-308000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Defined Benefit Plans Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
|
25000 | USD |
CY2019 | us-gaap |
Other Comprehensive Income Defined Benefit Plans Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
|
-16000 | USD |
CY2021 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
|
-124000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
|
-27000 | USD |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
|
-59000 | USD |
CY2021 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
184000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-52000 | USD |
CY2019 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-43000 | USD |
CY2021 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
11707000 | USD |
CY2020 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
18998000 | USD |
CY2019 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
27859000 | USD |
CY2021Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
2997000 | USD |
CY2020Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
37927000 | USD |
CY2021Q4 | us-gaap |
Receivables Net Current
ReceivablesNetCurrent
|
52664000 | USD |
CY2020Q4 | us-gaap |
Receivables Net Current
ReceivablesNetCurrent
|
42680000 | USD |
CY2021Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
107170000 | USD |
CY2020Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
76985000 | USD |
CY2021Q4 | us-gaap |
Inventory Net
InventoryNet
|
59651000 | USD |
CY2020Q4 | us-gaap |
Inventory Net
InventoryNet
|
29177000 | USD |
CY2021Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
5744000 | USD |
CY2020Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
5194000 | USD |
CY2021Q4 | us-gaap |
Assets Current
AssetsCurrent
|
228226000 | USD |
CY2020Q4 | us-gaap |
Assets Current
AssetsCurrent
|
191963000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
121266000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
110184000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
98507000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
30813000 | USD |
CY2021Q4 | us-gaap |
Goodwill
Goodwill
|
53684000 | USD |
CY2020Q4 | us-gaap |
Goodwill
Goodwill
|
22985000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
39376000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
10518000 | USD |
CY2021Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
6620000 | USD |
CY2020Q4 | us-gaap |
Other Assets Noncurrent
OtherAssetsNoncurrent
|
6552000 | USD |
CY2021Q4 | us-gaap |
Assets
Assets
|
547679000 | USD |
CY2020Q4 | us-gaap |
Assets
Assets
|
373015000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
0 | USD |
CY2020Q4 | us-gaap |
Long Term Debt Current
LongTermDebtCurrent
|
7701000 | USD |
CY2021Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
32267000 | USD |
CY2020Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
12993000 | USD |
CY2021Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
24498000 | USD |
CY2020Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
16814000 | USD |
CY2021Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
2623000 | USD |
CY2019 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
1709000 | USD |
CY2020Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
6189000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
4704000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
2204000 | USD |
CY2021Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
64092000 | USD |
CY2020Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
45901000 | USD |
CY2021Q4 | us-gaap |
Long Term Line Of Credit
LongTermLineOfCredit
|
86761000 | USD |
CY2020Q4 | us-gaap |
Long Term Line Of Credit
LongTermLineOfCredit
|
0 | USD |
CY2021Q4 | us-gaap |
Secured Long Term Debt
SecuredLongTermDebt
|
0 | USD |
CY2020Q4 | us-gaap |
Secured Long Term Debt
SecuredLongTermDebt
|
5888000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
93725000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
27911000 | USD |
CY2021Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
10984000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
12481000 | USD |
CY2021Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
8734000 | USD |
CY2020Q4 | us-gaap |
Other Liabilities Noncurrent
OtherLiabilitiesNoncurrent
|
11208000 | USD |
CY2021Q4 | us-gaap |
Liabilities
Liabilities
|
264296000 | USD |
CY2020Q4 | us-gaap |
Liabilities
Liabilities
|
103389000 | USD |
CY2021Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2020Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2021Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
99000 | USD |
CY2020Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
98000 | USD |
CY2021Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
125062000 | USD |
CY2020Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
123013000 | USD |
CY2021Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
159904000 | USD |
CY2020Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
148381000 | USD |
CY2021Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-1682000 | USD |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-1866000 | USD |
CY2021Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
283383000 | USD |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
269626000 | USD |
CY2021Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
547679000 | USD |
CY2020Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
373015000 | USD |
CY2018Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
218590000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
27902000 | USD |
CY2019 | us-gaap |
Other Comprehensive Income Defined Benefit Plans Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
|
-16000 | USD |
CY2019 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
|
-59000 | USD |
CY2019 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
-0 | USD |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
248158000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19050000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Defined Benefit Plans Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
|
25000 | USD |
CY2020 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
|
-27000 | USD |
CY2020 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
618000 | USD |
CY2020 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
3088000 | USD |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
269626000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11523000 | USD |
CY2021 | us-gaap |
Other Comprehensive Income Defined Benefit Plans Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
|
-308000 | USD |
CY2021 | us-gaap |
Other Comprehensive Income Loss Cash Flow Hedge Gain Loss After Reclassification And Tax Parent
OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
|
-124000 | USD |
CY2021 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
1166000 | USD |
CY2021 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
3216000 | USD |
CY2021Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
283383000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11523000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19050000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
27902000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accrued Liabilities And Other Operating Liabilities
IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
|
-7047000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accrued Liabilities And Other Operating Liabilities
IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
|
-90000 | USD |
CY2019 | us-gaap |
Increase Decrease In Accrued Liabilities And Other Operating Liabilities
IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
|
2564000 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
-5811000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
56087000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
42886000 | USD |
CY2021 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
87215000 | USD |
CY2020 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
48728000 | USD |
CY2021 | nwpx |
Depreciation And Finance Lease Right Of Use Asset Amortization
DepreciationAndFinanceLeaseRightOfUseAssetAmortization
|
11482000 | USD |
CY2020 | nwpx |
Depreciation And Finance Lease Right Of Use Asset Amortization
DepreciationAndFinanceLeaseRightOfUseAssetAmortization
|
12344000 | USD |
CY2019 | nwpx |
Depreciation And Finance Lease Right Of Use Asset Amortization
DepreciationAndFinanceLeaseRightOfUseAssetAmortization
|
12391000 | USD |
CY2021 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
2142000 | USD |
CY2020 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
2207000 | USD |
CY2019 | us-gaap |
Amortization Of Intangible Assets
AmortizationOfIntangibleAssets
|
322000 | USD |
CY2021 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
180000 | USD |
CY2020 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
2908000 | USD |
CY2019 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
4169000 | USD |
CY2021 | nwpx |
Gain On Insurance Proceeds
GainOnInsuranceProceeds
|
-0 | USD |
CY2020 | nwpx |
Gain On Insurance Proceeds
GainOnInsuranceProceeds
|
1147000 | USD |
CY2019 | nwpx |
Gain On Insurance Proceeds
GainOnInsuranceProceeds
|
1641000 | USD |
CY2021 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
3216000 | USD |
CY2020 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
3088000 | USD |
CY2019 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
1709000 | USD |
CY2021 | us-gaap |
Other Noncash Income Expense
OtherNoncashIncomeExpense
|
-193000 | USD |
CY2020 | us-gaap |
Other Noncash Income Expense
OtherNoncashIncomeExpense
|
-1889000 | USD |
CY2019 | us-gaap |
Other Noncash Income Expense
OtherNoncashIncomeExpense
|
-856000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
-392000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
-1563000 | USD |
CY2019 | us-gaap |
Increase Decrease In Accounts And Other Receivables
IncreaseDecreaseInAccountsAndOtherReceivables
|
3435000 | USD |
CY2021 | us-gaap |
Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
|
33752000 | USD |
CY2020 | us-gaap |
Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
|
-8109000 | USD |
CY2019 | us-gaap |
Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
|
8379000 | USD |
CY2021 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
17650000 | USD |
CY2020 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
-7153000 | USD |
CY2019 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
-8649000 | USD |
CY2021 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-6727000 | USD |
CY2020 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-2514000 | USD |
CY2019 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-2454000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
16783000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-3501000 | USD |
CY2019 | us-gaap |
Increase Decrease In Accounts Payable
IncreaseDecreaseInAccountsPayable
|
-4675000 | USD |
CY2019 | us-gaap |
Payments To Acquire Businesses Net Of Cash Acquired
PaymentsToAcquireBusinessesNetOfCashAcquired
|
-0 | USD |
CY2021 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
13262000 | USD |
CY2020 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
14013000 | USD |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
8585000 | USD |
CY2021 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
-0 | USD |
CY2020 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
329000 | USD |
CY2019 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
-0 | USD |
CY2021 | us-gaap |
Proceeds From Insurance Settlement Investing Activities
ProceedsFromInsuranceSettlementInvestingActivities
|
0 | USD |
CY2020 | us-gaap |
Proceeds From Insurance Settlement Investing Activities
ProceedsFromInsuranceSettlementInvestingActivities
|
1637000 | USD |
CY2019 | us-gaap |
Proceeds From Insurance Settlement Investing Activities
ProceedsFromInsuranceSettlementInvestingActivities
|
2123000 | USD |
CY2021 | us-gaap |
Payments For Proceeds From Other Investing Activities
PaymentsForProceedsFromOtherInvestingActivities
|
-325000 | USD |
CY2020 | us-gaap |
Payments For Proceeds From Other Investing Activities
PaymentsForProceedsFromOtherInvestingActivities
|
-0 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-61433000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-6423000 | USD |
CY2021 | us-gaap |
Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
|
122272000 | USD |
CY2020 | us-gaap |
Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
|
41377000 | USD |
CY2019 | us-gaap |
Proceeds From Lines Of Credit
ProceedsFromLinesOfCredit
|
41744000 | USD |
CY2021 | us-gaap |
Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
|
35511000 | USD |
CY2020 | us-gaap |
Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
|
41377000 | USD |
CY2019 | us-gaap |
Repayments Of Lines Of Credit
RepaymentsOfLinesOfCredit
|
53208000 | USD |
CY2021 | us-gaap |
Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
|
0 | USD |
CY2020 | us-gaap |
Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
|
15879000 | USD |
CY2019 | us-gaap |
Proceeds From Issuance Of Long Term Debt
ProceedsFromIssuanceOfLongTermDebt
|
0 | USD |
CY2021 | us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
13762000 | USD |
CY2020 | us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
2117000 | USD |
CY2019 | us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
-0 | USD |
CY2021 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
415000 | USD |
CY2020 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
420000 | USD |
CY2019 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
434000 | USD |
CY2021 | us-gaap |
Payments Of Debt Issuance Costs
PaymentsOfDebtIssuanceCosts
|
385000 | USD |
CY2020 | us-gaap |
Payments Of Debt Issuance Costs
PaymentsOfDebtIssuanceCosts
|
465000 | USD |
CY2019 | us-gaap |
Payments Of Debt Issuance Costs
PaymentsOfDebtIssuanceCosts
|
228000 | USD |
CY2021 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
1166000 | USD |
CY2020 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
618000 | USD |
CY2019 | us-gaap |
Payments Related To Tax Withholding For Share Based Compensation
PaymentsRelatedToTaxWithholdingForShareBasedCompensation
|
-0 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
71033000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
12259000 | USD |
CY2019 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-12126000 | USD |
CY2021 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-34930000 | USD |
CY2020 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
6913000 | USD |
CY2019 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
24337000 | USD |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
37927000 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
31014000 | USD |
CY2018Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
6677000 | USD |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
2997000 | USD |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
37927000 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
31014000 | USD |
CY2021 | us-gaap |
Interest Paid Net
InterestPaidNet
|
339000 | USD |
CY2020 | us-gaap |
Interest Paid Net
InterestPaidNet
|
599000 | USD |
CY2019 | us-gaap |
Interest Paid Net
InterestPaidNet
|
369000 | USD |
CY2021 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
2481000 | USD |
CY2020 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
1397000 | USD |
CY2019 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
-55000 | USD |
CY2021 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
788000 | USD |
CY2020 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
325000 | USD |
CY2019 | us-gaap |
Capital Expenditures Incurred But Not Yet Paid
CapitalExpendituresIncurredButNotYetPaid
|
719000 | USD |
CY2021 | nwpx |
Noncash Or Part Noncash Acquisition Value Of Consideration Accrued
NoncashOrPartNoncashAcquisitionValueOfConsiderationAccrued
|
911000 | USD |
CY2020 | nwpx |
Noncash Or Part Noncash Acquisition Value Of Consideration Accrued
NoncashOrPartNoncashAcquisitionValueOfConsiderationAccrued
|
0 | USD |
CY2019 | nwpx |
Noncash Or Part Noncash Acquisition Value Of Consideration Accrued
NoncashOrPartNoncashAcquisitionValueOfConsiderationAccrued
|
0 | USD |
CY2021 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
16043000 | USD |
CY2020 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
4471000 | USD |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
1335000 | USD |
CY2021 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
853000 | USD |
CY2020 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
507000 | USD |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
819000 | USD |
CY2021 | us-gaap |
Number Of Operating Segments
NumberOfOperatingSegments
|
2 | pure |
CY2021 | nwpx |
Number Of Manufacturing Facilities
NumberOfManufacturingFacilities
|
13 | pure |
CY2021 | us-gaap |
Prior Period Reclassification Adjustment Description
PriorPeriodReclassificationAdjustmentDescription
|
<p style="font-family: "Times New Roman"; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Immaterial Correction of Error</b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: "Times New Roman"; font-size: 10pt; font-variant: normal; text-align: justify; margin: 0pt;">The Company recorded revenue of $1.2 million during the <em style="font: inherit;">three</em> and <em style="font: inherit;">twelve</em> months ended <em style="font: inherit;"> December </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> which should have been recorded in the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em> The misstatement in the timing of revenue recognition was due to an error in the measurement of costs incurred to date relative to estimated total direct costs at an acquired Ameron Water Transmission Group, LLC facility. Management concluded that this out of period adjustment was <em style="font: inherit;">not</em> material to the consolidated financial results for the year ended <em style="font: inherit;"> December </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> | |
CY2021 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="font-family: "Times New Roman"; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Use of Estimates</b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: "Times New Roman"; font-size: 10pt; font-variant: normal; text-align: justify; margin: 0pt;">The preparation of the Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (“U.S. GAAP”) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities as of the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. The Company bases its estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances. On an ongoing basis, the Company evaluates all of its estimates, including those related to business combinations, allowance for doubtful accounts, inventories, property and equipment (including depreciation and valuation), goodwill, intangible assets, revenue recognition, share-based compensation, income taxes, and litigation and other contingencies. Actual results <em style="font: inherit;"> may </em>differ from these estimates under different assumptions or conditions.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> | |
CY2021Q4 | nwpx |
Book Overdrafts
BookOverdrafts
|
4100000 | USD |
CY2020Q4 | nwpx |
Book Overdrafts
BookOverdrafts
|
0 | USD |
CY2020Q4 | us-gaap |
Workers Compensation Liability Current And Noncurrent
WorkersCompensationLiabilityCurrentAndNoncurrent
|
1700000 | USD |
CY2021Q4 | us-gaap |
Accrued Bonuses Current
AccruedBonusesCurrent
|
3716000 | USD |
CY2020Q4 | us-gaap |
Accrued Bonuses Current
AccruedBonusesCurrent
|
3747000 | USD |
CY2021Q4 | us-gaap |
Accrued Vacation Current
AccruedVacationCurrent
|
2900000 | USD |
CY2021 | us-gaap |
Foreign Currency Transaction Gain Loss Realized
ForeignCurrencyTransactionGainLossRealized
|
-500000 | USD |
CY2020 | us-gaap |
Foreign Currency Transaction Gain Loss Realized
ForeignCurrencyTransactionGainLossRealized
|
-1100000 | USD |
CY2019 | us-gaap |
Foreign Currency Transaction Gain Loss Realized
ForeignCurrencyTransactionGainLossRealized
|
500000 | USD |
CY2020Q4 | us-gaap |
Accrued Vacation Current
AccruedVacationCurrent
|
2328000 | USD |
CY2021Q4 | us-gaap |
Derivative Liabilities Current
DerivativeLiabilitiesCurrent
|
661000 | USD |
CY2020Q4 | us-gaap |
Derivative Liabilities Current
DerivativeLiabilitiesCurrent
|
1150000 | USD |
CY2021Q4 | us-gaap |
Workers Compensation Liability Current
WorkersCompensationLiabilityCurrent
|
366000 | USD |
CY2020Q4 | us-gaap |
Workers Compensation Liability Current
WorkersCompensationLiabilityCurrent
|
237000 | USD |
CY2021Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
16380000 | USD |
CY2020Q4 | us-gaap |
Other Accrued Liabilities Current
OtherAccruedLiabilitiesCurrent
|
8977000 | USD |
CY2021Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
24498000 | USD |
CY2020Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
16814000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11523000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19050000 | USD |
CY2019 | us-gaap |
Net Income Loss
NetIncomeLoss
|
27902000 | USD |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
9854000 | |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
9788000 | |
CY2019 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
9741000 | |
CY2021 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
74000 | |
CY2020 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
85000 | |
CY2019 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
38000 | |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9928000 | |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9873000 | |
CY2019 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
9779000 | |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.17 | |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.95 | |
CY2019 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
2.86 | |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.16 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.93 | |
CY2019 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
2.85 | |
CY2020 | us-gaap |
Antidilutive Securities Excluded From Computation Of Earnings Per Share Amount
AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
0 | |
CY2021 | us-gaap |
Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
|
<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><b>Concentrations of Credit Risk</b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: "Times New Roman"; font-size: 10pt; font-variant: normal; text-align: justify; margin: 0pt;">Financial instruments, which potentially subject the Company to concentrations of credit risk, consist principally of trade receivables, foreign currency forward contracts, and deferred compensation plan assets. Trade receivables generally represent a large number of customers, including municipalities, manufacturers, distributors, and contractors, dispersed across a wide geographic base. As of <em style="font: inherit;"> December </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2021,</em> no customer had a balance in excess of <em style="font: inherit;">10%</em> of total accounts receivable, and one SPP customer had a balance in excess of <em style="font: inherit;">10%</em> of total accounts receivable as of <em style="font: inherit;"> December </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020.</em> Foreign currency forward contracts are with a high quality financial institution. The Company’s deferred compensation plan assets, included in Other assets, are invested in a diversified portfolio of stock and bond mutual funds.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> | |
CY2021 | nwpx |
Number Of Customers With Receivable Balance In Excess Of Ten Percent Of Receivables
NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables
|
0 | pure |
CY2020 | nwpx |
Number Of Customers With Receivable Balance In Excess Of Ten Percent Of Receivables
NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables
|
1 | pure |
CY2021Q4 | us-gaap |
Inventory Raw Materials Net Of Reserves
InventoryRawMaterialsNetOfReserves
|
44697000 | USD |
CY2020Q4 | us-gaap |
Inventory Raw Materials Net Of Reserves
InventoryRawMaterialsNetOfReserves
|
20631000 | USD |
CY2021Q4 | us-gaap |
Inventory Work In Process Net Of Reserves
InventoryWorkInProcessNetOfReserves
|
3018000 | USD |
CY2020Q4 | us-gaap |
Goodwill
Goodwill
|
22985000 | USD |
CY2021Q4 | us-gaap |
Goodwill
Goodwill
|
53684000 | USD |
CY2020Q4 | us-gaap |
Inventory Work In Process Net Of Reserves
InventoryWorkInProcessNetOfReserves
|
1416000 | USD |
CY2021Q4 | us-gaap |
Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
|
10096000 | USD |
CY2020Q4 | us-gaap |
Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
|
5489000 | USD |
CY2021Q4 | us-gaap |
Inventory Supplies Net Of Reserves
InventorySuppliesNetOfReserves
|
1840000 | USD |
CY2020Q4 | us-gaap |
Inventory Supplies Net Of Reserves
InventorySuppliesNetOfReserves
|
1641000 | USD |
CY2021Q4 | us-gaap |
Inventory Net
InventoryNet
|
59651000 | USD |
CY2020Q4 | us-gaap |
Inventory Net
InventoryNet
|
29177000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
218181000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
200704000 | USD |
CY2021Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
106957000 | USD |
CY2020Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
96684000 | USD |
CY2021Q4 | nwpx |
Property Plant And Equipment Net Excluding Construction In Progress
PropertyPlantAndEquipmentNetExcludingConstructionInProgress
|
111224000 | USD |
CY2020Q4 | nwpx |
Property Plant And Equipment Net Excluding Construction In Progress
PropertyPlantAndEquipmentNetExcludingConstructionInProgress
|
104020000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
121266000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
110184000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
43963000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
4587000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
39376000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
12963000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
2445000 | USD |
CY2020Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
10518000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
4436000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
4173000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
4017000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
4017000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
4017000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense After Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
|
18716000 | USD |
CY2021Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
39376000 | USD |
CY2021 | nwpx |
Interest Expense Debt And Finance Leases Net Of Amounts Capitalized
InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized
|
1200000 | USD |
CY2021 | us-gaap |
Interest Costs Capitalized
InterestCostsCapitalized
|
100000 | USD |
CY2020 | nwpx |
Interest Expense Debt And Finance Leases Net Of Amounts Capitalized
InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized
|
900000 | USD |
CY2020 | us-gaap |
Interest Costs Capitalized
InterestCostsCapitalized
|
100000 | USD |
CY2019 | nwpx |
Interest Expense Debt And Finance Leases Net Of Amounts Capitalized
InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized
|
500000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
98507000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
30813000 | USD |
CY2021Q4 | nwpx |
Lease Right Of Use Asset
LeaseRightOfUseAsset
|
100237000 | USD |
CY2020Q4 | nwpx |
Lease Right Of Use Asset
LeaseRightOfUseAsset
|
32101000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability
FinanceLeaseLiability
|
2169000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Liability
FinanceLeaseLiability
|
1729000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
98429000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
30115000 | USD |
CY2021Q4 | nwpx |
Lease Liability
LeaseLiability
|
100598000 | USD |
CY2020Q4 | nwpx |
Lease Liability
LeaseLiability
|
31844000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Right Of Use Asset Accumulated Amortization
FinanceLeaseRightOfUseAssetAccumulatedAmortization
|
1100000 | USD |
CY2020Q4 | us-gaap |
Finance Lease Right Of Use Asset Accumulated Amortization
FinanceLeaseRightOfUseAssetAccumulatedAmortization
|
1300000 | USD |
CY2021 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
413000 | USD |
CY2020 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
422000 | USD |
CY2019 | us-gaap |
Finance Lease Right Of Use Asset Amortization
FinanceLeaseRightOfUseAssetAmortization
|
435000 | USD |
CY2021 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
90000 | USD |
CY2020 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
79000 | USD |
CY2019 | us-gaap |
Finance Lease Interest Expense
FinanceLeaseInterestExpense
|
57000 | USD |
CY2021 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
4627000 | USD |
CY2020 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
3647000 | USD |
CY2019 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
1934000 | USD |
CY2021 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
993000 | USD |
CY2020 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
745000 | USD |
CY2019 | us-gaap |
Short Term Lease Cost
ShortTermLeaseCost
|
1442000 | USD |
CY2021 | us-gaap |
Variable Lease Cost
VariableLeaseCost
|
158000 | USD |
CY2020 | us-gaap |
Variable Lease Cost
VariableLeaseCost
|
199000 | USD |
CY2019 | us-gaap |
Variable Lease Cost
VariableLeaseCost
|
141000 | USD |
CY2021 | us-gaap |
Lease Cost
LeaseCost
|
6281000 | USD |
CY2020 | us-gaap |
Lease Cost
LeaseCost
|
5092000 | USD |
CY2019 | us-gaap |
Lease Cost
LeaseCost
|
4009000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Next Twelve Months
FinanceLeaseLiabilityPaymentsDueNextTwelveMonths
|
574000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
6802000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Year Two
FinanceLeaseLiabilityPaymentsDueYearTwo
|
378000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
6669000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Year Three
FinanceLeaseLiabilityPaymentsDueYearThree
|
692000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
6499000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Year Four
FinanceLeaseLiabilityPaymentsDueYearFour
|
449000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Four
LesseeOperatingLeaseLiabilityPaymentsDueYearFour
|
6529000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due Year Five
FinanceLeaseLiabilityPaymentsDueYearFive
|
360000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Five
LesseeOperatingLeaseLiabilityPaymentsDueYearFive
|
6431000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due After Year Five
FinanceLeaseLiabilityPaymentsDueAfterYearFive
|
0 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due After Year Five
LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
|
88557000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Payments Due
FinanceLeaseLiabilityPaymentsDue
|
2453000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
121487000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Undiscounted Excess Amount
FinanceLeaseLiabilityUndiscountedExcessAmount
|
284000 | USD |
CY2021Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
23058000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability
FinanceLeaseLiability
|
2169000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
98429000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Liability Current
FinanceLeaseLiabilityCurrent
|
475000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
4704000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
93725000 | USD |
CY2021Q4 | us-gaap |
Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
|
P3Y6M21D | |
CY2020Q4 | us-gaap |
Finance Lease Weighted Average Remaining Lease Term1
FinanceLeaseWeightedAverageRemainingLeaseTerm1
|
P3Y8M1D | |
CY2021Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P18Y5M1D | |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P18Y2M15D | |
CY2021Q4 | us-gaap |
Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
|
0.0510 | pure |
CY2020Q4 | us-gaap |
Finance Lease Weighted Average Discount Rate Percent
FinanceLeaseWeightedAverageDiscountRatePercent
|
0.0522 | pure |
CY2021Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.0218 | pure |
CY2020Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.0336 | pure |
CY2021 | us-gaap |
Finance Lease Interest Payment On Liability
FinanceLeaseInterestPaymentOnLiability
|
90000 | USD |
CY2020 | us-gaap |
Finance Lease Interest Payment On Liability
FinanceLeaseInterestPaymentOnLiability
|
79000 | USD |
CY2019 | us-gaap |
Finance Lease Interest Payment On Liability
FinanceLeaseInterestPaymentOnLiability
|
57000 | USD |
CY2021 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
4142000 | USD |
CY2020 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
3481000 | USD |
CY2019 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
1909000 | USD |
CY2021 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
415000 | USD |
CY2020 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
420000 | USD |
CY2019 | us-gaap |
Finance Lease Principal Payments
FinanceLeasePrincipalPayments
|
434000 | USD |
CY2021 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
853000 | USD |
CY2020 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
507000 | USD |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Finance Lease Liability
RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
|
819000 | USD |
CY2021 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
16043000 | USD |
CY2020 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
4471000 | USD |
CY2019 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
1335000 | USD |
CY2021Q4 | us-gaap |
Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
|
4321000 | USD |
CY2021Q4 | us-gaap |
Derivative Assets
DerivativeAssets
|
17000 | USD |
CY2021Q4 | us-gaap |
Assets Fair Value Disclosure
AssetsFairValueDisclosure
|
4338000 | USD |
CY2021Q4 | us-gaap |
Derivative Liabilities
DerivativeLiabilities
|
661000 | USD |
CY2020Q4 | us-gaap |
Deferred Compensation Plan Assets
DeferredCompensationPlanAssets
|
4717000 | USD |
CY2020Q4 | us-gaap |
Derivative Liabilities
DerivativeLiabilities
|
1150 | USD |
CY2021 | nwpx |
Retirement Plan Expense
RetirementPlanExpense
|
1800000 | USD |
CY2020 | nwpx |
Retirement Plan Expense
RetirementPlanExpense
|
1600000 | USD |
CY2019 | nwpx |
Retirement Plan Expense
RetirementPlanExpense
|
1200000 | USD |
CY2021 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
3216000 | USD |
CY2020 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
3088000 | USD |
CY2019 | us-gaap |
Allocated Share Based Compensation Expense
AllocatedShareBasedCompensationExpense
|
1709000 | USD |
CY2021Q4 | us-gaap |
Common Stock Capital Shares Reserved For Future Issuance
CommonStockCapitalSharesReservedForFutureIssuance
|
222022 | |
CY2021Q4 | nwpx |
Common Stock Capital Shares Reserved For Future Issuance Percentage Vesting Of Outstanding Ps As Assumed
CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed
|
1 | pure |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
|
0 | |
CY2020 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
24000 | |
CY2020 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
24.15 | |
CY2020 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercises In Period Total Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
|
100000 | USD |
CY2019 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
0 | |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
0 | |
CY2021Q4 | nwpx |
Other Commitment Amount Paid For Equipment Purchased Yet Not Received
OtherCommitmentAmountPaidForEquipmentPurchasedYetNotReceived
|
10000000 | USD |
CY2021Q4 | us-gaap |
Letters Of Credit Outstanding Amount
LettersOfCreditOutstandingAmount
|
1600000 | USD |
CY2021 | nwpx |
Increase Decrease In Revenue From Contract With Customers Including Assessed Tax
IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax
|
2000000.0 | USD |
CY2020 | nwpx |
Increase Decrease In Revenue From Contract With Customers Including Assessed Tax
IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax
|
2200000 | USD |
CY2019 | nwpx |
Increase Decrease In Revenue From Contract With Customers Including Assessed Tax
IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax
|
-1200000 | USD |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
333313000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
285907000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
279317000 | USD |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
333313000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
285907000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
279317000 | USD |
CY2021 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
6200000 | USD |
CY2020 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
12300000 | USD |
CY2019 | us-gaap |
Contract With Customer Liability Revenue Recognized
ContractWithCustomerLiabilityRevenueRecognized
|
3700000 | USD |
CY2021Q4 | us-gaap |
Revenue Remaining Performance Obligation
RevenueRemainingPerformanceObligation
|
183000000 | USD |
CY2021Q4 | us-gaap |
Revenue Remaining Performance Obligation Percentage
RevenueRemainingPerformanceObligationPercentage
|
0.82 | pure |
CY2021Q4 | us-gaap |
Revenue Remaining Performance Obligation Percentage
RevenueRemainingPerformanceObligationPercentage
|
0.18 | pure |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
14000000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
24768000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Domestic
IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
|
32244000 | USD |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
1158000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
866000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Foreign
IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
|
396000 | USD |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
15158000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
25634000 | USD |
CY2019 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
32640000 | USD |
CY2021 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
2256000 | USD |
CY2020 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
958000 | USD |
CY2019 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
174000 | USD |
CY2021 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
1064000 | USD |
CY2020 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
1342000 | USD |
CY2019 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
-16000 | USD |
CY2021 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
213000 | USD |
CY2020 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
243000 | USD |
CY2019 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
439000 | USD |
CY2021 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
3533000 | USD |
CY2020 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
2543000 | USD |
CY2019 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
597000 | USD |
CY2021 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
573000 | USD |
CY2020 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
4380000 | USD |
CY2019 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
3597000 | USD |
CY2021 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-464000 | USD |
CY2020 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-386000 | USD |
CY2019 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
561000 | USD |
CY2021 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-7000 | USD |
CY2020 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
47000 | USD |
CY2019 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
-17000 | USD |
CY2021 | nwpx |
Deferred Federal State And Local And Foreign Income Tax Expense Benefit
DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit
|
102000 | USD |
CY2020 | nwpx |
Deferred Federal State And Local And Foreign Income Tax Expense Benefit
DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit
|
4041000 | USD |
CY2019 | nwpx |
Deferred Federal State And Local And Foreign Income Tax Expense Benefit
DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit
|
4141000 | USD |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3635000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
6584000 | USD |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4738000 | USD |
CY2021 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
3183000 | USD |
CY2020 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
5383000 | USD |
CY2019 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
6854000 | USD |
CY2021 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
547000 | USD |
CY2020 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
953000 | USD |
CY2019 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
1261000 | USD |
CY2021 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-247000 | USD |
CY2020 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-181000 | USD |
CY2019 | us-gaap |
Income Tax Reconciliation Change In Deferred Tax Assets Valuation Allowance
IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-3564000 | USD |
CY2021 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
-31000 | USD |
CY2020 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
447000 | USD |
CY2019 | us-gaap |
Income Tax Reconciliation Nondeductible Expense
IncomeTaxReconciliationNondeductibleExpense
|
-24000 | USD |
CY2021 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
104000 | USD |
CY2020 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
78000 | USD |
CY2019 | us-gaap |
Income Tax Reconciliation Foreign Income Tax Rate Differential
IncomeTaxReconciliationForeignIncomeTaxRateDifferential
|
36000 | USD |
CY2021 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
79000 | USD |
CY2020 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-96000 | USD |
CY2019 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
175000 | USD |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
3635000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
6584000 | USD |
CY2019 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
4738000 | USD |
CY2021 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.240 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.257 | pure |
CY2019 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.145 | pure |
CY2021Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Benefits
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits
|
3125000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Employee Benefits
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits
|
3525000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
30000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
73000 | USD |
CY2021Q4 | nwpx |
Deferred Tax Asset Trade Receivable Net
DeferredTaxAssetTradeReceivableNet
|
833000 | USD |
CY2020Q4 | nwpx |
Deferred Tax Asset Trade Receivable Net
DeferredTaxAssetTradeReceivableNet
|
958000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
3099000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
3231000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards
DeferredTaxAssetsTaxCreditCarryforwards
|
2888000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards
DeferredTaxAssetsTaxCreditCarryforwards
|
2699000 | USD |
CY2021Q4 | nwpx |
Deferred Tax Asset Contract Assets Net
DeferredTaxAssetContractAssetsNet
|
313000 | USD |
CY2020Q4 | nwpx |
Deferred Tax Asset Contract Assets Net
DeferredTaxAssetContractAssetsNet
|
0 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
984000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
389000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
11272000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
10875000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
5899000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
6228000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
5373000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
4647000 | USD |
CY2021Q4 | nwpx |
Deferred Tax Liabilities Contract Assets Net
DeferredTaxLiabilitiesContractAssetsNet
|
-0 | USD |
CY2020Q4 | nwpx |
Deferred Tax Liabilities Contract Assets Net
DeferredTaxLiabilitiesContractAssetsNet
|
1366000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
12937000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
12029000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
1902000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
2737000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
129000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Goodwill
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
|
-0 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
1005000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
889000 | USD |
CY2021Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
15973000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities
DeferredIncomeTaxLiabilities
|
17021000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
10600000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
12374000 | USD |
CY2021Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
10984000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
12481000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
10600000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
12374000 | USD |
CY2020Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
4350000 | USD |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
4350000 | USD |
CY2018Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
4350000 | USD |
CY2021 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
16000 | USD |
CY2020 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
0 | USD |
CY2019 | us-gaap |
Unrecognized Tax Benefits Increases Resulting From Prior Period Tax Positions
UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
|
0 | USD |
CY2021Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
4366000 | USD |
CY2020Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
4350000 | USD |
CY2019Q4 | us-gaap |
Unrecognized Tax Benefits
UnrecognizedTaxBenefits
|
4350000 | USD |
CY2021Q4 | us-gaap |
Unrecognized Tax Benefits Income Tax Penalties Accrued
UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued
|
0 | USD |
CY2017 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.35 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | pure |
CY2019Q1 | us-gaap |
Tax Cuts And Jobs Act Of2017 Reclassification From Aoci To Retained Earnings Tax Effect
TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect
|
200000 | USD |
CY2021Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Defined Benefit Pension And Other Postretirement Plans Net Of Tax
AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax
|
1487000 | USD |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Defined Benefit Pension And Other Postretirement Plans Net Of Tax
AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax
|
1795000 | USD |
CY2021Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
-195000 | USD |
CY2020Q4 | us-gaap |
Aoci Loss Cash Flow Hedge Cumulative Gain Loss After Tax
AociLossCashFlowHedgeCumulativeGainLossAfterTax
|
-71000 | USD |
CY2021Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-1682000 | USD |
CY2020Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-1866000 | USD |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
333313000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
285907000 | USD |
CY2019 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
279317000 | USD |
CY2021 | us-gaap |
Gross Profit
GrossProfit
|
44254000 | USD |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
50519000 | USD |
CY2019 | us-gaap |
Gross Profit
GrossProfit
|
47184000 | USD |
CY2021 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
13624000 | USD |
CY2020 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
14551000 | USD |
CY2019 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
12713000 | USD |
CY2021 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
13262000 | USD |
CY2020 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
14013000 | USD |
CY2019 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
8585000 | USD |
CY2021Q4 | us-gaap |
Assets
Assets
|
547679000 | USD |
CY2020Q4 | us-gaap |
Assets
Assets
|
373015000 | USD |
CY2021Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
72311000 | USD |
CY2021Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
73812000 | USD |
CY2021Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
84643000 | USD |
CY2021Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
102547000 | USD |
CY2021 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
333313000 | USD |
CY2021Q1 | us-gaap |
Gross Profit
GrossProfit
|
8775000 | USD |
CY2021Q2 | us-gaap |
Gross Profit
GrossProfit
|
9538000 | USD |
CY2021Q3 | us-gaap |
Gross Profit
GrossProfit
|
12363000 | USD |
CY2021Q4 | us-gaap |
Gross Profit
GrossProfit
|
13578000 | USD |
CY2021 | us-gaap |
Gross Profit
GrossProfit
|
44254000 | USD |
CY2021Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2175000 | USD |
CY2021Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2131000 | USD |
CY2021Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4946000 | USD |
CY2021Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2271000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
11523000 | USD |
CY2021Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.22 | |
CY2021Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.22 | |
CY2021Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.50 | |
CY2021Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.23 | |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.17 | |
CY2021Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.22 | |
CY2021Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.21 | |
CY2020Q4 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5221000 | USD |
CY2020Q4 | us-gaap |
Gross Profit
GrossProfit
|
12363000 | USD |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
50519000 | USD |
CY2020Q1 | us-gaap |
Net Income Loss
NetIncomeLoss
|
564000 | USD |
CY2020Q2 | us-gaap |
Net Income Loss
NetIncomeLoss
|
5998000 | USD |
CY2020Q3 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7267000 | USD |
CY2021Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.50 | |
CY2021Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.23 | |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.16 | |
CY2020Q1 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
68923000 | USD |
CY2020Q2 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
69971000 | USD |
CY2020Q3 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
77632000 | USD |
CY2020Q4 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
69381000 | USD |
CY2020 | us-gaap |
Revenue From Contract With Customer Including Assessed Tax
RevenueFromContractWithCustomerIncludingAssessedTax
|
285907000 | USD |
CY2020Q1 | us-gaap |
Gross Profit
GrossProfit
|
9579000 | USD |
CY2020Q2 | us-gaap |
Gross Profit
GrossProfit
|
12958000 | USD |
CY2020Q3 | us-gaap |
Gross Profit
GrossProfit
|
15619000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
19050000 | USD |
CY2020Q1 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.06 | |
CY2020Q2 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.61 | |
CY2020Q3 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.74 | |
CY2020Q4 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.54 | |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.95 | |
CY2020Q1 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.06 | |
CY2020Q2 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.61 | |
CY2020Q3 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.73 | |
CY2020Q4 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.53 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.93 |