<?xml version="1.0" encoding="utf-8"?>
<FilingSummary xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Version>2.4.0.8</Version>
  <ProcessingTime />
  <ReportFormat>Html</ReportFormat>
  <ContextCount>230</ContextCount>
  <ElementCount>439</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>55</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>13</UnitCount>
  <MyReports>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>101 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DocumentandEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>103 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/StatementOfIncome</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>104 - Statement - Consolidated Statements of Comprehensive Income (Loss)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/StatementOfOtherComprehensiveIncome</Role>
      <ShortName>Consolidated Statements of Comprehensive Income (Loss)</ShortName>
    </Report>
    <Report>
      <IsDefault>true</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>105 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/StatementOfFinancialPositionClassified</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>106 - Statement - Consolidated Balance Sheets (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/StatementOfFinancialPositionClassifiedParenthetical</Role>
      <ShortName>Consolidated Balance Sheets (Parenthetical)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>107 - Statement - Consolidated Statements of Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/StatementOfShareholdersEquityAndOtherComprehensiveIncome</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>108 - Statement - Consolidated Statements of Stockholders' Equity (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/StatementOfShareholdersEquityAndOtherComprehensiveIncomeParenthetical</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity (Parenthetical)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>109 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/StatementOfCashFlowsIndirect</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>110 - Statement - Consolidated Statements of Cash Flows (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/StatementOfCashFlowsIndirectParenthetical</Role>
      <ShortName>Consolidated Statements of Cash Flows (Parenthetical)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>111 - Disclosure - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsSignificantAccountingPoliciesTextBlock</Role>
      <ShortName>Summary of Significant Accounting Policies</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>112 - Disclosure - Costs and Estimated Earnings in Excess of Billings on Uncompleted Contracts and Billings in Excess of Costs and Estimated Earnings</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsCostsAndEstimatedEarningsInExcessOfBillingsOnUncompletedContractsAndBillingsInExcessOfCostsAndEstimatedEarningsTextBlock</Role>
      <ShortName>Costs and Estimated Earnings in Excess of Billings on Uncompleted Contracts and Billings in Excess of Costs and Estimated Earnings</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>113 - Disclosure - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsInventoryDisclosureTextBlock</Role>
      <ShortName>Inventories</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>114 - Disclosure - Property and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsPropertyPlantAndEquipmentDisclosureTextBlock</Role>
      <ShortName>Property and Equipment</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>115 - Disclosure - Goodwill and Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsGoodwillAndIntangibleAssetsDisclosureTextBlock</Role>
      <ShortName>Goodwill and Intangible Assets</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>116 - Disclosure - Note Payable to Financial Institution</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsShortTermDebtTextBlock</Role>
      <ShortName>Note Payable to Financial Institution</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>117 - Disclosure - Long-Term Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsLongTermDebtTextBlock</Role>
      <ShortName>Long-Term Debt</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>118 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsLeasesOfLesseeDisclosureTextBlock</Role>
      <ShortName>Leases</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>119 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsFairValueDisclosuresTextBlock</Role>
      <ShortName>Fair Value Measurements</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>120 - Disclosure - Derivative Financial Instruments and Hedging Activities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsDerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock</Role>
      <ShortName>Derivative Financial Instruments and Hedging Activities</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>121 - Disclosure - Retirement Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsPensionAndOtherPostretirementBenefitsDisclosureTextBlock</Role>
      <ShortName>Retirement Plans</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>122 - Disclosure - Share-Based Compensation Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsDisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</Role>
      <ShortName>Share-Based Compensation Plans</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>123 - Disclosure - Shareholder Rights Plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsShareholderRightsPlanDisclosureTextBlock</Role>
      <ShortName>Shareholder Rights Plan</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>124 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsCommitmentsAndContingenciesDisclosureTextBlock</Role>
      <ShortName>Commitments and Contingencies</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>125 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsIncomeTaxDisclosureTextBlock</Role>
      <ShortName>Income Taxes</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>126 - Disclosure - Accumulated Other Comprehensive Loss</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsComprehensiveIncomeNoteTextBlock</Role>
      <ShortName>Accumulated Other Comprehensive Loss</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>127 - Disclosure - Segment Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsSegmentReportingDisclosureTextBlock</Role>
      <ShortName>Segment Information</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>128 - Disclosure - Quarterly Data</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsQuarterlyFinancialInformationTextBlock</Role>
      <ShortName>Quarterly Data</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>129 - Disclosure - Schedule II - Valuation and Qualifying Accounts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>130 - Disclosure - Summary of Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsSignificantAccountingPoliciesTextBlockPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies (Policies)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>131 - Disclosure - Summary of Significant Accounting Policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsSignificantAccountingPoliciesTextBlockTables</Role>
      <ShortName>Summary of Significant Accounting Policies (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>132 - Disclosure - Costs and Estimated Earnings in Excess of Billings on Uncompleted Contracts and Billings in Excess of Costs and Estimated Earnings (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsCostsAndEstimatedEarningsInExcessOfBillingsOnUncompletedContractsAndBillingsInExcessOfCostsAndEstimatedEarningsTextBlockTables</Role>
      <ShortName>Costs and Estimated Earnings in Excess of Billings on Uncompleted Contracts and Billings in Excess of Costs and Estimated Earnings (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>133 - Disclosure - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsInventoryDisclosureTextBlockTables</Role>
      <ShortName>Inventories (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>134 - Disclosure - Property and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsPropertyPlantAndEquipmentDisclosureTextBlockTables</Role>
      <ShortName>Property and Equipment (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>135 - Disclosure - Goodwill and Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsGoodwillAndIntangibleAssetsDisclosureTextBlockTables</Role>
      <ShortName>Goodwill and Intangible Assets (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>136 - Disclosure - Long-Term Debt (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsLongTermDebtTextBlockTables</Role>
      <ShortName>Long-Term Debt (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>137 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsLeasesOfLesseeDisclosureTextBlockTables</Role>
      <ShortName>Leases (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>138 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsFairValueDisclosuresTextBlockTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>139 - Disclosure - Share-Based Compensation Plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsDisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlockTables</Role>
      <ShortName>Share-Based Compensation Plans (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>140 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsIncomeTaxDisclosureTextBlockTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>141 - Disclosure - Accumulated Other Comprehensive Loss (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsComprehensiveIncomeNoteTextBlockTables</Role>
      <ShortName>Accumulated Other Comprehensive Loss (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>142 - Disclosure - Segment Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsSegmentReportingDisclosureTextBlockTables</Role>
      <ShortName>Segment Information (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>143 - Disclosure - Quarterly Data (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/NotesToFinancialStatementsQuarterlyFinancialInformationTextBlockTables</Role>
      <ShortName>Quarterly Data (Tables)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>144 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformation</Role>
      <ShortName>Summary of Significant Accounting Policies - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>145 - Disclosure - Summary of Significant Accounting Policies - Summary of Earnings (Loss) per Basic and Diluted Weighted Average Common Shares Outstanding (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesSummaryOfEarningsLossPerBasicAndDilutedWeightedAverageCommonSharesOutstanding</Role>
      <ShortName>Summary of Significant Accounting Policies - Summary of Earnings (Loss) per Basic and Diluted Weighted Average Common Shares Outstanding (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>146 - Disclosure - Costs and Estimated Earnings in Excess of Billings on Uncompleted Contracts and Billings in Excess of Costs and Estimated Earnings - Schedule of Costs and Estimated Earnings in Excess of Billings on Uncompleted Contracts and Billings in Excess of Costs and Estimated Earnings (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureCostsAndEstimatedEarningsInExcessOfBillingsOnUncompletedContractsAndBillingsInExcessOfCostsAndEstimatedEarningsScheduleOfCostsAndEstimatedEarningsInExcessOfBillingsOnUncomplet_Xa</Role>
      <ShortName>Costs and Estimated Earnings in Excess of Billings on Uncompleted Contracts and Billings in Excess of Costs and Estimated Earnings - Schedule of Costs and Estimated Earnings in Excess of Billings on Uncompleted Contracts and Billings in Excess of Costs and Estimated Earnings (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>147 - Disclosure - Inventories - Components of Inventories (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureInventoriesComponentsOfInventories</Role>
      <ShortName>Inventories - Components of Inventories (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>148 - Disclosure - Property and Equipment - Summary of Property and Equipment (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosurePropertyAndEquipmentSummaryOfPropertyAndEquipment</Role>
      <ShortName>Property and Equipment - Summary of Property and Equipment (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>149 - Disclosure - Property and Equipment - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosurePropertyAndEquipmentAdditionalInformation</Role>
      <ShortName>Property and Equipment - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>150 - Disclosure - Goodwill and Intangible Assets - Schedule of Goodwill (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureGoodwillAndIntangibleAssetsScheduleOfGoodwill</Role>
      <ShortName>Goodwill and Intangible Assets - Schedule of Goodwill (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>151 - Disclosure - Goodwill and Intangible Assets - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureGoodwillAndIntangibleAssetsAdditionalInformation</Role>
      <ShortName>Goodwill and Intangible Assets - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>152 - Disclosure - Goodwill and Intangible Assets - Summary of Intangible Assets (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureGoodwillAndIntangibleAssetsSummaryOfIntangibleAssets</Role>
      <ShortName>Goodwill and Intangible Assets - Summary of Intangible Assets (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>153 - Disclosure - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureGoodwillAndIntangibleAssetsSummaryOfEstimatedAmortizationExpense</Role>
      <ShortName>Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>154 - Disclosure - Note Payable to Financial Institution - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureNotePayableToFinancialInstitutionAdditionalInformation</Role>
      <ShortName>Note Payable to Financial Institution - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>155 - Disclosure - Long-Term Debt - Schedule of Long-Term Debt (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureLongTermDebtScheduleOfLongTermDebt</Role>
      <ShortName>Long-Term Debt - Schedule of Long-Term Debt (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>156 - Disclosure - Long-Term Debt - Schedule of Long-Term Debt (Parenthetical) (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureLongTermDebtScheduleOfLongTermDebtParenthetical</Role>
      <ShortName>Long-Term Debt - Schedule of Long-Term Debt (Parenthetical) (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>157 - Disclosure - Long-Term Debt - Future Principal Payments of Long-Term Debt (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureLongTermDebtFuturePrincipalPaymentsOfLongTermDebt</Role>
      <ShortName>Long-Term Debt - Future Principal Payments of Long-Term Debt (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>158 - Disclosure - Long-Term Debt - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureLongTermDebtAdditionalInformation</Role>
      <ShortName>Long-Term Debt - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>159 - Disclosure - Leases - Schedule of Future Minimum Lease Payments for Capital Leases (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureLeasesScheduleOfFutureMinimumLeasePaymentsForCapitalLeases</Role>
      <ShortName>Leases - Schedule of Future Minimum Lease Payments for Capital Leases (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>160 - Disclosure - Leases - Schedule of Future Minimum Lease Payments for Capital Leases (Parenthetical) (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureLeasesScheduleOfFutureMinimumLeasePaymentsForCapitalLeasesParenthetical</Role>
      <ShortName>Leases - Schedule of Future Minimum Lease Payments for Capital Leases (Parenthetical) (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>161 - Disclosure - Leases - Additional information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureLeasesAdditionalInformation</Role>
      <ShortName>Leases - Additional information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>162 - Disclosure - Leases - Schedule of Future Minimum Lease Payments for Operating Leases (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureLeasesScheduleOfFutureMinimumLeasePaymentsForOperatingLeases</Role>
      <ShortName>Leases - Schedule of Future Minimum Lease Payments for Operating Leases (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>163 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureFairValueMeasurementsAssetsAndLiabilitiesMeasuredAtFairValueOnRecurringBasis</Role>
      <ShortName>Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>164 - Disclosure - Fair Value Measurements - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureFairValueMeasurementsAdditionalInformation</Role>
      <ShortName>Fair Value Measurements - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>165 - Disclosure - Derivative Financial Instruments and Hedging Activities - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureDerivativeFinancialInstrumentsAndHedgingActivitiesAdditionalInformation</Role>
      <ShortName>Derivative Financial Instruments and Hedging Activities - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>166 - Disclosure - Retirement Plans - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureRetirementPlansAdditionalInformation</Role>
      <ShortName>Retirement Plans - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>167 - Disclosure - Share-Based Compensation Plans - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureShareBasedCompensationPlansAdditionalInformation</Role>
      <ShortName>Share-Based Compensation Plans - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>168 - Disclosure - Share-Based Compensation Plans - Summary of Share-Based Compensation Expense (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureShareBasedCompensationPlansSummaryOfShareBasedCompensationExpense</Role>
      <ShortName>Share-Based Compensation Plans - Summary of Share-Based Compensation Expense (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>169 - Disclosure - Share-Based Compensation Plans - Summary of Status of Company's Stock Options (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureShareBasedCompensationPlansSummaryOfStatusOfCompanysStockOptions</Role>
      <ShortName>Share-Based Compensation Plans - Summary of Status of Company's Stock Options (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>170 - Disclosure - Share-Based Compensation Plans - Summary of Information about Stock Options Outstanding (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureShareBasedCompensationPlansSummaryOfInformationAboutStockOptionsOutstanding</Role>
      <ShortName>Share-Based Compensation Plans - Summary of Information about Stock Options Outstanding (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>171 - Disclosure - Share-Based Compensation Plans - Summary of Status of Company's RSUs and PSAs (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureShareBasedCompensationPlansSummaryOfStatusOfCompanysRSUsAndPSAs</Role>
      <ShortName>Share-Based Compensation Plans - Summary of Status of Company's RSUs and PSAs (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>172 - Disclosure - Shareholder Rights Plan - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureShareholderRightsPlanAdditionalInformation</Role>
      <ShortName>Shareholder Rights Plan - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>173 - Disclosure - Commitments and Contingencies - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureCommitmentsAndContingenciesAdditionalInformation</Role>
      <ShortName>Commitments and Contingencies - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>174 - Disclosure - Income Taxes - Schedule of Components of Provision for Income Taxes (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureIncomeTaxesScheduleOfComponentsOfProvisionForIncomeTaxes</Role>
      <ShortName>Income Taxes - Schedule of Components of Provision for Income Taxes (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>175 - Disclosure - Income Taxes - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureIncomeTaxesAdditionalInformation</Role>
      <ShortName>Income Taxes - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>176 - Disclosure - Income Taxes - Schedule of Effective Income Tax Rate Reconciliation (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureIncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliation</Role>
      <ShortName>Income Taxes - Schedule of Effective Income Tax Rate Reconciliation (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>177 - Disclosure - Income Taxes - Schedule of Current and Noncurrent Deferred Tax Assets and Liabilities (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureIncomeTaxesScheduleOfCurrentAndNoncurrentDeferredTaxAssetsAndLiabilities</Role>
      <ShortName>Income Taxes - Schedule of Current and Noncurrent Deferred Tax Assets and Liabilities (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>178 - Disclosure - Income Taxes - Schedule of Unrecognized Tax Benefits (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureIncomeTaxesScheduleOfUnrecognizedTaxBenefits</Role>
      <ShortName>Income Taxes - Schedule of Unrecognized Tax Benefits (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>179 - Disclosure - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureAccumulatedOtherComprehensiveLossSummaryOfAccumulatedOtherComprehensiveLoss</Role>
      <ShortName>Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>180 - Disclosure - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Parenthetical) (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureAccumulatedOtherComprehensiveLossSummaryOfAccumulatedOtherComprehensiveLossParenthetical</Role>
      <ShortName>Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Parenthetical) (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>181 - Disclosure - Accumulated Other Comprehensive Loss - Schedule of Components of Accumulated Other Comprehensive Income (Loss) (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureAccumulatedOtherComprehensiveLossScheduleOfComponentsOfAccumulatedOtherComprehensiveIncomeLoss</Role>
      <ShortName>Accumulated Other Comprehensive Loss - Schedule of Components of Accumulated Other Comprehensive Income (Loss) (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>182 - Disclosure - Accumulated Other Comprehensive Loss - Schedule of Reclassifications of Accumulated Other Comprehensive Income (Loss) (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureAccumulatedOtherComprehensiveLossScheduleOfReclassificationsOfAccumulatedOtherComprehensiveIncomeLoss</Role>
      <ShortName>Accumulated Other Comprehensive Loss - Schedule of Reclassifications of Accumulated Other Comprehensive Income (Loss) (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>183 - Disclosure - Segment Information - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureSegmentInformationAdditionalInformation</Role>
      <ShortName>Segment Information - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>184 - Disclosure - Segment Information - Segment Information Report of Statements of Operations (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureSegmentInformationSegmentInformationReportOfStatementsOfOperations</Role>
      <ShortName>Segment Information - Segment Information Report of Statements of Operations (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>185 - Disclosure - Segment Information - Segment Information Report of Balance Sheets (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureSegmentInformationSegmentInformationReportOfBalanceSheets</Role>
      <ShortName>Segment Information - Segment Information Report of Balance Sheets (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>186 - Disclosure - Quarterly Data - Summary of Quarterly Financial Data (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureQuarterlyDataSummaryOfQuarterlyFinancialData</Role>
      <ShortName>Quarterly Data - Summary of Quarterly Financial Data (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>187 - Disclosure - Quarterly Data - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureQuarterlyDataAdditionalInformation</Role>
      <ShortName>Quarterly Data - Additional Information (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>188 - Disclosure - Schedule II - Valuation and Qualifying Accounts (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/taxonomy/role/DisclosureScheduleIIValuationAndQualifyingAccounts</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts (Detail)</ShortName>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <Logs>
    <Log type="Info">Element nwpx_EstimatedCostOfEpaSelectedRemedy had a mix of decimals attribute values: -7 -5.</Log>
    <Log type="Info">Element nwpx_LongTermDebtAnnualRepaymentDueAmount had a mix of decimals attribute values: -5 0.</Log>
    <Log type="Info">Element us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired had a mix of decimals attribute values: -5 -3.</Log>
    <Log type="Info">'Monetary' elements on report '144 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)' had a mix of different decimal attribute values.</Log>
    <Log type="Info">'Monetary' elements on report '149 - Disclosure - Property and Equipment - Additional Information (Detail)' had a mix of different decimal attribute values.</Log>
    <Log type="Info">'Monetary' elements on report '151 - Disclosure - Goodwill and Intangible Assets - Additional Information (Detail)' had a mix of different decimal attribute values.</Log>
    <Log type="Info">'Monetary' elements on report '164 - Disclosure - Fair Value Measurements - Additional Information (Detail)' had a mix of different decimal attribute values.</Log>
    <Log type="Info">'Monetary' elements on report '175 - Disclosure - Income Taxes - Additional Information (Detail)' had a mix of different decimal attribute values.</Log>
    <Log type="Info">Process Flow-Through: 103 - Statement - Consolidated Statements of Operations</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Dec. 31, 2013'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Sep. 30, 2013'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Jun. 30, 2013'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Mar. 31, 2013'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Dec. 31, 2012'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Sep. 30, 2012'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Jun. 30, 2012'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Mar. 31, 2012'</Log>
    <Log type="Info">Process Flow-Through: 104 - Statement - Consolidated Statements of Comprehensive Income (Loss)</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Dec. 31, 2013'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Sep. 30, 2013'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Jun. 30, 2013'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Mar. 31, 2013'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Dec. 31, 2012'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Sep. 30, 2012'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Jun. 30, 2012'</Log>
    <Log type="Info">	Process Flow-Through: Removing column '3 Months Ended
Mar. 31, 2012'</Log>
    <Log type="Info">Process Flow-Through: 105 - Statement - Consolidated Balance Sheets</Log>
    <Log type="Info">	Process Flow-Through: Removing column 'Dec. 31, 2011'</Log>
    <Log type="Info">	Process Flow-Through: Removing column 'Dec. 31, 2010'</Log>
    <Log type="Info">Process Flow-Through: 106 - Statement - Consolidated Balance Sheets (Parenthetical)</Log>
    <Log type="Info">Process Flow-Through: 108 - Statement - Consolidated Statements of Stockholders' Equity (Parenthetical)</Log>
    <Log type="Info">Process Flow-Through: 109 - Statement - Consolidated Statements of Cash Flows</Log>
    <Log type="Info">Process Flow-Through: 110 - Statement - Consolidated Statements of Cash Flows (Parenthetical)</Log>
  </Logs>
  <InputFiles>
    <File>nwpx-20131231.xml</File>
    <File>nwpx-20131231.xsd</File>
    <File>nwpx-20131231_cal.xml</File>
    <File>nwpx-20131231_def.xml</File>
    <File>nwpx-20131231_lab.xml</File>
    <File>nwpx-20131231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles />
  <BaseTaxonomies />
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
