<SEC-DOCUMENT>0001437749-25-010677.txt : 20250402
<SEC-HEADER>0001437749-25-010677.hdr.sgml : 20250402
<ACCEPTANCE-DATETIME>20250402160951
ACCESSION NUMBER:		0001437749-25-010677
CONFORMED SUBMISSION TYPE:	8-K
PUBLIC DOCUMENT COUNT:		16
CONFORMED PERIOD OF REPORT:	20250327
ITEM INFORMATION:		Departure of Directors or Certain Officers; Election of Directors; Appointment of Certain Officers: Compensatory Arrangements of Certain Officers
ITEM INFORMATION:		Other Events
ITEM INFORMATION:		Financial Statements and Exhibits
FILED AS OF DATE:		20250402
DATE AS OF CHANGE:		20250402

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			NORTHWEST PIPE CO
		CENTRAL INDEX KEY:			0001001385
		STANDARD INDUSTRIAL CLASSIFICATION:	STEEL PIPE & TUBES [3317]
		ORGANIZATION NAME:           	04 Manufacturing
		EIN:				930557988
		STATE OF INCORPORATION:			OR
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		8-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-27140
		FILM NUMBER:		25804504

	BUSINESS ADDRESS:	
		STREET 1:		201 NE PARK PLAZA DRIVE
		STREET 2:		SUITE 100
		CITY:			VANCOUVER
		STATE:			WA
		ZIP:			98684
		BUSINESS PHONE:		3603976250

	MAIL ADDRESS:	
		STREET 1:		201 NE PARK PLAZA DRIVE
		STREET 2:		SUITE 100
		CITY:			VANCOUVER
		STATE:			WA
		ZIP:			98684
</SEC-HEADER>
<DOCUMENT>
<TYPE>8-K
<SEQUENCE>1
<FILENAME>nwpx20250228_8k.htm
<DESCRIPTION>FORM 8-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:naics="http://xbrl.sec.gov/naics/2024" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:us-types="http://fasb.org/us-types/2024" xmlns:utreg="http://www.xbrl.org/2009/utr" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:us-roles="http://fasb.org/us-roles/2020-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2024" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thunderdome="http://www.RDGFilings.com" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:country="http://xbrl.sec.gov/country/2024" xmlns:rr="http://xbrl.sec.gov/rr/2018-01-31" xmlns:sic="http://xbrl.sec.gov/sic/2024" xmlns:currency="http://xbrl.sec.gov/currency/2024" xmlns:exch="http://xbrl.sec.gov/exch/2024" xmlns:srt="http://fasb.org/srt/2024" xmlns:cyd="http://xbrl.sec.gov/cyd/2024" xmlns:nwpx="http://www.nwpx.com/20250327"><head><!-- Generated by ThunderDome Portal - 4/2/2025 6:28:18 PM -->
	<title>nwpx20250228_8k.htm</title>

<meta http-equiv="Content-Type" content="text/html"/></head>
<body style="font-size: 10pt; font-family: &quot;Times New Roman&quot;; padding: 0in 0.1in; cursor: auto;"><div style="display: none">
<ix:header>
<ix:hidden>
<ix:nonNumeric contextRef="d20258K" name="dei:AmendmentFlag" id="ixv-373">false</ix:nonNumeric>
<ix:nonNumeric contextRef="d20258K" name="dei:EntityCentralIndexKey" id="ixv-374">0001001385</ix:nonNumeric>

</ix:hidden>
<ix:references>
<link:schemaRef xlink:href="nwpx-20250327.xsd" xlink:type="simple"/>
</ix:references>
<ix:resources>
<xbrli:context id="d20258K">
<xbrli:entity>
<xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier>
</xbrli:entity>
<xbrli:period>
<xbrli:startDate>2025-03-27</xbrli:startDate>
<xbrli:endDate>2025-03-27</xbrli:endDate>
</xbrli:period>
</xbrli:context>



</ix:resources>
</ix:header>
</div>

<div class="hidden-ix-covertags" style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; display: none;">&#160;</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<hr style="height: 3px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 3pt 0"/>
<hr style="height: 1px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 0 0 3pt 0"/>
<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 8pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 8pt;">UNITED STATES</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;">SECURITIES AND EXCHANGE COMMISSION</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;">Washington, D.C. 20549</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:12pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;"><b>FORM</b>&#160;<b><ix:nonNumeric contextRef="d20258K" name="dei:DocumentType" id="ixv-384">8-K</ix:nonNumeric></b></div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;">CURRENT REPORT</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;">Pursuant to Section 13 OR 15(d) of The Securities Exchange Act of 1934</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;">Date of Report (Date of earliest event reported): <b><ix:nonNumeric contextRef="d20258K" format="ixt:datemonthdayyearen" name="dei:DocumentPeriodEndDate" id="ixv-385">March 27, 2025</ix:nonNumeric></b></div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:12pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;"><b><ix:nonNumeric contextRef="d20258K" name="dei:EntityRegistrantName" id="ixv-386">NORTHWEST PIPE COMPANY</ix:nonNumeric></b></div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;">(Exact name of registrant as specified in its charter)</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align:top;width:14.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><span style="text-transform:uppercase;"><b><ix:nonNumeric contextRef="d20258K" format="ixt-sec:stateprovnameen" name="dei:EntityIncorporationStateCountryCode" id="ixv-387">Oregon</ix:nonNumeric></b></span></div>
			</td>
			<td style="vertical-align:bottom;width:0.9%;">&#160;</td>
			<td style="vertical-align:top;width:14.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><ix:nonNumeric contextRef="d20258K" name="dei:EntityFileNumber" id="ixv-388">0-27140</ix:nonNumeric></b></div>
			</td>
			<td style="vertical-align:bottom;width:0.9%;">&#160;</td>
			<td style="vertical-align:top;width:14.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><ix:nonNumeric contextRef="d20258K" name="dei:EntityTaxIdentificationNumber" id="ixv-389">93-0557988</ix:nonNumeric></b></div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:14.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">(State or other jurisdiction</div>

			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">of incorporation)</div>
			</td>
			<td style="vertical-align:bottom;width:0.9%;">&#160;</td>
			<td style="vertical-align:top;width:14.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">(Commission</div>

			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">File Number)</div>
			</td>
			<td style="vertical-align:bottom;width:0.9%;">&#160;</td>
			<td style="vertical-align:top;width:14.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">(IRS Employer</div>

			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">Identification No.)</div>
			</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;"><b><ix:nonNumeric contextRef="d20258K" name="dei:EntityAddressAddressLine1" id="ixv-390">201 NE Park Plaza Drive, Suite&#160;100</ix:nonNumeric></b></div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;"><b><ix:nonNumeric contextRef="d20258K" name="dei:EntityAddressCityOrTown" id="ixv-391">Vancouver</ix:nonNumeric>, <ix:nonNumeric contextRef="d20258K" name="dei:EntityAddressStateOrProvince" id="ixv-392">WA</ix:nonNumeric> <ix:nonNumeric contextRef="d20258K" name="dei:EntityAddressPostalZipCode" id="ixv-393">98684</ix:nonNumeric></b></div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;">(Address of principal executive offices and Zip Code)</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt 0pt 0pt 15pt;">Registrant's telephone number, including area code:&#160;<b><ix:nonNumeric contextRef="d20258K" name="dei:CityAreaCode" id="ixv-394">360</ix:nonNumeric>&#8209;<ix:nonNumeric contextRef="d20258K" name="dei:LocalPhoneNumber" id="ixv-395">397&#8209;6250</ix:nonNumeric></b></div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; text-align: justify; margin: 0pt;">Check the appropriate box below if the Form&#160;8&#8209;K filing is intended to simultaneously satisfy the filing obligation of the registrant under any of the following provisions:</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align:top;width:2.1%;">
			<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><ix:nonNumeric contextRef="d20258K" format="ixt-sec:boolballotbox" name="dei:WrittenCommunications" id="ixv-396">&#9744;</ix:nonNumeric></div>
			</td>
			<td style="vertical-align:top;width:43.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Written communications pursuant to Rule&#160;425 under the Securities Act (17&#160;CFR&#160;230.425)</div>
			</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align:top;width:2.1%;">
			<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><ix:nonNumeric contextRef="d20258K" format="ixt-sec:boolballotbox" name="dei:SolicitingMaterial" id="ixv-397">&#9744;</ix:nonNumeric></div>
			</td>
			<td style="vertical-align:top;width:43.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Soliciting material pursuant to Rule&#160;14a-12 under the Exchange Act (17&#160;CFR&#160;240.14a-12)</div>
			</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align:top;width:2.1%;">
			<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><ix:nonNumeric contextRef="d20258K" format="ixt-sec:boolballotbox" name="dei:PreCommencementTenderOffer" id="ixv-398">&#9744;</ix:nonNumeric></div>
			</td>
			<td style="vertical-align:top;width:43.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Pre-commencement communications pursuant to Rule&#160;14d-2(b) under the Exchange Act (17&#160;CFR&#160;240.14d-2(b))</div>
			</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align:top;width:2.1%;">
			<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"><ix:nonNumeric contextRef="d20258K" format="ixt-sec:boolballotbox" name="dei:PreCommencementIssuerTenderOffer" id="ixv-399">&#9744;</ix:nonNumeric></div>
			</td>
			<td style="vertical-align:top;width:43.6%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Pre-commencement communications pursuant to Rule&#160;13e-4(c) under the Exchange Act (17&#160;CFR&#160;240.13e-4(c))</div>
			</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 8pt;">Securities registered pursuant to Section&#160;12(b) of the Act:</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align:middle;width:17.8%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><span style="text-decoration: underline;">&#160; Title of each class&#160;&#160;</span></div>
			</td>
			<td style="vertical-align:middle;width:10.1%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><span style="text-decoration: underline;">&#160; Trading Symbol(s)&#160;&#160;</span></div>
			</td>
			<td style="vertical-align:middle;width:17.8%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><span style="text-decoration: underline;">&#160; Name of each exchange on which registered&#160;&#160;</span></div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:17.8%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><ix:nonNumeric contextRef="d20258K" name="dei:Security12bTitle" id="ixv-400">Common Stock</ix:nonNumeric>, par value $0.01 per share</b></div>
			</td>
			<td style="vertical-align:middle;width:10.1%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><ix:nonNumeric contextRef="d20258K" name="dei:TradingSymbol" id="ixv-401">NWPX</ix:nonNumeric></b></div>
			</td>
			<td style="vertical-align:middle;width:17.8%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><ix:nonNumeric contextRef="d20258K" format="ixt-sec:exchnameen" name="dei:SecurityExchangeName" id="ixv-402">Nasdaq</ix:nonNumeric> Global Select Market</b></div>
			</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; text-align: justify; margin: 0pt;">Indicate by check mark whether the registrant is an emerging growth company as defined in Rule&#160;405 of the Securities Act of 1933 (&#167;230.405 of this chapter) or Rule&#160;12b-2 of the Securities Exchange Act of 1934 (&#167;240.12b-2 of this chapter).</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: right;">Emerging growth company&#160;&#160;<ix:nonNumeric contextRef="d20258K" format="ixt-sec:boolballotbox" name="dei:EntityEmergingGrowthCompany" id="ixv-403">&#9744;</ix:nonNumeric></div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; text-align: justify; margin: 0pt;">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section&#160;13(a) of the Exchange Act. &#160;&#160;&#160;&#160;&#9744;</div>

<div style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; text-align: justify; margin: 0pt;">&#160;</div>

<hr style="height: 1px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 3pt 0"/>
<hr style="height: 3px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 0 0 3pt 0"/>
<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGNUM" style="text-align: center; width: 100%">&#160;</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000"/>
<div class="PGHDR" style="text-align: left; width: 100%">&#160;</div>
</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align: top; width: 8%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Item 5.02.</div>
			</td>
			<td style="vertical-align: middle; width: 92%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">DEPARTURE OF DIRECTORS OR CERTAIN OFFICERS; ELECTION OF DIRECTORS; APPOINTMENT OF CERTAIN OFFICERS; COMPENSATORY ARRANGEMENTS OF CERTAIN OFFICERS</div>
			</td>
		</tr>

</tbody></table>

<div style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align: middle; width: 8%;">&#160;</td>
			<td style="vertical-align: middle; width: 92%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><span style="text-decoration: underline;">Grant of Performance Share Units and Restricted Stock Units</span></div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 8%;">&#160;</td>
			<td style="vertical-align: middle; width: 92%;">&#160;</td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 8%;">&#160;</td>
			<td style="vertical-align: middle; width: 92%;">
			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">On March&#160;27, 2025, the Board of Directors of the Northwest Pipe Company (the &#8220;Company&#8221;), upon the approval and recommendation of the Compensation Committee, approved grants of performance share units (&#8220;PSUs&#8221;) and restricted stock units (&#8220;RSUs&#8221;) for the following Named Executive Officers of the Company in the amounts set forth below. Pursuant to these long-term incentive grants, each Named Executive Officer received an award of PSUs and RSUs valued at an amount equal to a specific percentage of their respective annual base salary, with 75&#160;percent of each award represented by PSUs and 25&#160;percent of each award represented by RSUs.</div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 8%;">&#160;</td>
			<td style="vertical-align: middle; width: 92%;">&#160;</td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 8%;">&#160;</td>
			<td style="vertical-align: middle; width: 92%;">
			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The PSUs awarded will vest based on the Company&#8217;s Earnings before Interest Expense, Income Taxes, Depreciation, and Amortization Margin before extraordinary or unusual items over the measurement period (as described in the PSU agreement). The actual number of PSUs which will vest will be determined based on the performance level achieved and may be equal to, greater than, or less than the number of PSUs specified below, which indicate each Named Executive Officer&#8217;s award at target performance level. The PSUs awarded vest in three equal installments on March&#160;31, 2026, March&#160;31, 2027, and March&#160;31, 2028. In the event a change in control of the Company (as defined in the PSU agreement) occurs at any time prior to the last vesting date, unless the PSUs are to be substituted, assumed, exchanged, or otherwise continued or settled in accordance with their terms, the PSUs will become immediately vested, and the amount awarded will be based on the performance results obtained through the date of the change in control. Consistent with the Company&#8217;s other variable forms of incentive compensation, the PSUs are subject to recoupment under the Company&#8217;s Incentive Compensation Recovery Policy. The foregoing descriptions of the terms of the PSU awards are qualified by reference to the full text of the form of the agreement, which is filed herewith as Exhibit&#160;10.1 and incorporated herein by reference.</div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 8%;">&#160;</td>
			<td style="vertical-align: middle; width: 92%;">&#160;</td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 8%;">&#160;</td>
			<td style="vertical-align: middle; width: 92%; text-align: justify;">The RSUs awarded vest in three equal installments on January&#160;15, 2026, January&#160;15, 2027, and January&#160;14, 2028 based upon continued service with the Company on that date. In the event a change in control of the Company (as defined in the RSU agreement) occurs at any time prior to the last vesting date, unless the RSUs are to be substituted, assumed, exchanged, or otherwise continued or settled in accordance with their terms, a pro-rata number of RSUs will be calculated based on time elapsed between the most recently achieved vesting date and the next succeeding vesting date as of the date of the change in control, and those RSUs will be immediately vested. The foregoing descriptions of the terms of the RSU awards are qualified by reference to the full text of the form of the agreement, which is filed herewith as Exhibit&#160;10.2 and incorporated herein by reference.</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align: middle; width: 10%;">&#160;</td>
			<td style="vertical-align: bottom; width: 60%; border-bottom: 1px solid rgb(0, 0, 0);">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Named Executive Officer</b></div>
			</td>
			<td style="vertical-align: middle; width: 2%;">&#160;</td>
			<td style="vertical-align: middle; width: 13%; border-bottom: 1px solid rgb(0, 0, 0);">
			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: center;"><b>Performance Share Units</b></div>
			</td>
			<td style="vertical-align: middle; width: 2%;">&#160;</td>
			<td style="vertical-align: bottom; width: 13%; border-bottom: 1px solid rgb(0, 0, 0);">
			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: center;"><b>Restricted Stock Units</b></div>
			</td>
		</tr>
		<tr style="background-color: rgb(204, 238, 255);">
			<td style="vertical-align: middle; width: 10%; background-color: rgb(255, 255, 255);">&#160;</td>
			<td style="vertical-align: middle; width: 60%;">
			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Scott&#160;Montross</div>

			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Director, President, and Chief&#160;Executive&#160;Officer</div>
			</td>
			<td style="vertical-align: middle; width: 2%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>
			</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">22,637</td>
			<td style="vertical-align: middle; width: 2%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>
			</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">7,546</td>
		</tr>
		<tr style="background-color: rgb(255, 255, 255);">
			<td style="vertical-align: middle; width: 10%;">&#160;</td>
			<td style="vertical-align: middle; width: 60%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Aaron&#160;Wilkins</div>

			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Senior&#160;Vice&#160;President, Chief&#160;Financial&#160;Officer, and Corporate&#160;Secretary</div>
			</td>
			<td style="vertical-align: middle; width: 2%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>
			</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">7,781</td>
			<td style="vertical-align: middle; width: 2%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>
			</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">2,594</td>
		</tr>
		<tr style="background-color: rgb(204, 238, 255);">
			<td style="vertical-align: middle; width: 10%; background-color: rgb(255, 255, 255);">&#160;</td>
			<td style="vertical-align: middle; width: 60%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Miles Brittain</div>

			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Executive&#160;Vice&#160;President</div>
			</td>
			<td style="vertical-align: middle; width: 2%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>
			</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">7,781</td>
			<td style="vertical-align: middle; width: 2%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>
			</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">2,594</td>
		</tr>
		<tr style="background-color: rgb(255, 255, 255);">
			<td style="vertical-align: middle; width: 10%;">&#160;</td>
			<td style="vertical-align: middle; width: 60%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">Eric Stokes</div>

			<div style="margin: 0pt 0pt 0pt 18pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; text-indent: -18pt;">Senior&#160;Vice&#160;President and General&#160;Manager of Engineered Steel Pressure Pipe</div>
			</td>
			<td style="vertical-align: middle; width: 2%;">&#160;</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">6,386</td>
			<td style="vertical-align: middle; width: 2%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>
			</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">2,129</td>
		</tr>
		<tr style="background-color: rgb(204, 238, 255);">
			<td style="vertical-align: middle; width: 10%; background-color: rgb(255, 255, 255);">&#160;</td>
			<td style="vertical-align: middle; width: 60%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">Michael Wray</div>

			<div style="margin: 0pt 0pt 0pt 9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; text-indent: -9pt;">Senior&#160;Vice&#160;President and General&#160;Manager of Precast Infrastructure and Engineered Systems</div>
			</td>
			<td style="vertical-align: middle; width: 2%;">&#160;</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">6,386</td>
			<td style="vertical-align: middle; width: 2%;">
			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>

			<div style="margin: 0pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">&#160;</div>
			</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">2,129</td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 10%; background-color: rgb(255, 255, 255);">&#160;</td>
			<td style="vertical-align: middle; width: 60%;">&#160;</td>
			<td style="vertical-align: middle; width: 2%;">&#160;</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">&#160;</td>
			<td style="vertical-align: middle; width: 2%;">&#160;</td>
			<td style="vertical-align: middle; width: 13%; text-align: center;">&#160;</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM">&#160;</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000"/>
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink">&#160;</div>
</div>
</div>
</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align: top; width: 8%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Item 8.01.</div>
			</td>
			<td style="vertical-align: middle; width: 92%;">OTHER EVENTS</td>
		</tr>

</tbody></table>

<div style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align: middle; width: 8%;">&#160;</td>
			<td style="vertical-align: middle; width: 92%; text-align: justify;">Northwest Pipe Company&#8217;s 2025 Annual Meeting of Shareholders (the &#8220;Annual Meeting&#8221;) will be held on June&#160;12, 2025. The record date for determining the shareholders entitled to notice of, and to vote at, the Annual Meeting will be April&#160;10, 2025.</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#160;</div>

<table cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 100%;">

		<tbody><tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: top; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<div style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Item 9.01.</div>
			</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<div style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">FINANCIAL STATEMENTS AND EXHIBITS</div>
			</td>
		</tr>
		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: middle; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
		</tr>
		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: middle; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<div style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">(d)</div>
			</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<div style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Exhibits</div>
			</td>
		</tr>
		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: middle; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
		</tr>
		<tr>
			<td style="vertical-align: top; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">10.1&#160; &#160;</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><a href="ex_783909.htm" style="-sec-extract:exhibit;">Form of Performance Share Unit Agreement</a></td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
		</tr>
		<tr>
			<td style="vertical-align: top; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">10.2&#160; &#160;</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><a href="ex_783910.htm" style="-sec-extract:exhibit;">Form of Restricted Stock Unit Agreement</a></td>
		</tr>
		<tr>
			<td style="vertical-align: middle; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
		</tr>
		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: top; width: 8%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">104&#160; &#160;</td>
			<td style="vertical-align: middle; width: 92%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<div style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Cover Page Interactive Data File (embedded within the Inline XBRL document)</div>
			</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGNUM" style="text-align: center; width: 100%">&#160;</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000"/>
<div class="PGHDR" style="text-align: left; width: 100%">&#160;</div>
</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>SIGNATURE</b></div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 8pt;">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned hereunto duly authorized on April 2, 2025.</div>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 100%;">

		<tbody><tr>
			<td style="vertical-align: top; width: 46%;">&#160;</td>
			<td colspan="2" style="vertical-align: top; width: 4%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>NORTHWEST PIPE COMPANY</b></div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align: top; width: 46%;">&#160;</td>
			<td colspan="2" style="vertical-align: top; width: 4%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">(Registrant)</div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align: top; width: 46%;">&#160;</td>
			<td style="vertical-align: top; width: 4%;">&#160;</td>
			<td style="vertical-align: bottom; width: 50%;">&#160;</td>
		</tr>
		<tr>
			<td style="vertical-align: top; width: 46%;">&#160;</td>
			<td style="vertical-align: top; width: 4%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">By</div>
			</td>
			<td style="border-bottom: 1px solid rgb(0, 0, 0); vertical-align: top; width: 50%;">
			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">/s/ Aaron Wilkins</div>
			</td>
		</tr>
		<tr>
			<td style="vertical-align: top; width: 46%;">&#160;</td>
			<td style="vertical-align: top; width: 4%;">&#160;</td>
			<td colspan="1" style="vertical-align: top; width: 50%;">
			<div style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b>Aaron Wilkins</b></div>

			<div style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;"><b>Senior</b>&#160;<b>Vice</b>&#160;<b>President,</b>&#160;<b>Chief</b>&#160;<b>Financial</b>&#160;<b>Officer, and Corporate</b>&#160;<b>Secretary</b></div>
			</td>
		</tr>

</tbody></table>

<div style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&#160;</div>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM">&#160;</div>
</div>
</div>
</div>


</body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.1
<SEQUENCE>2
<FILENAME>ex_783909.htm
<DESCRIPTION>EXHIBIT 10.1
<TEXT>
<html><head>
	<title>ex_783909.htm</title>
	<!-- Generated by ThunderDome Portal - 3/26/2025 5:04:37 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-size: 10pt; font-family: &quot;Times New Roman&quot;; padding: 0in 0.1in; cursor: auto;">
<p style="margin: 0px 0pt; text-align: right; font-size: 10pt; font-family: &quot;Times New Roman&quot;;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 10pt"><b>Exhibit 10.1</b></font></p>

<p style="margin: 0px 0pt; text-align: left; font-size: 10pt; font-family: &quot;Times New Roman&quot;;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 10pt">&nbsp;</font></p>

<div contenteditable="false" data-applyto="t" data-auto-pgnum="start" data-displaynum="1" data-fontname="Times New Roman" data-fontsize="10pt" data-numstyle="a" data-prefix="Page " data-startnum="1" data-suffix=" - PSU AGREEMENT" data-textalign="left">&nbsp;</div>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>NORTHWEST PIPE COMPANY</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><u>PERFORMANCE SHARE UNIT AGREEMENT</u></b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">This PERFORMANCE SHARE UNIT AGREEMENT (&#8220;Agreement&#8221;) is made and entered into as of March 27, 2025 (&#8220;Effective Date&#8221;) by and between Northwest Pipe Company (the &#8220;Company&#8221;), and XXX (the &#8220;Employee&#8221;) (collectively, the &#8220;Parties&#8221;).</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><u>RECITALS</u></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">The Company has determined that it would like to provide certain financial incentives to the Employee, in order to encourage continued employment, on the terms and subject to the conditions set forth in this Agreement.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><u>AGREEMENT</u></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">The Parties hereby agree as follows:</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">1.&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; <u>Performance Share Unit Grant</u>. The Employee is granted an award of performance share units (&#8220;PSUs&#8221;) on the following terms:</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Grant</u>. The Company hereby grants the Employee an award of XXX PSUs, subject to all of the terms and conditions of this Agreement and the Company&#8217;s stockholder approved 2022 Stock Incentive Plan (the &#8220;Plan&#8221;), including but not limited to the provisions of the Plan governing awards of PSUs and performance-based vesting thereof that shall apply to the PSUs awarded under this Agreement. The grant of PSUs obligates the Company, upon vesting in accordance with this Agreement, to deliver to the Employee one share of common stock of the Company (a &#8220;Share&#8221;) for each PSU. The number of Shares that may vest and the timing of vesting of the Shares shall depend upon achievement of certain performance goals and shall be determined in accordance with the PSU Vesting Conditions attached hereto as Appendix A. Unless otherwise defined herein, capitalized terms used herein shall have the meanings ascribed to them in the Plan.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Company&#8217;</u><u>s Obligation to Pay</u>. Unless and until the PSUs have vested in the manner set forth in Sections 1.3 through 1.5, the Employee will have no right to payment of such PSUs through issuance of Shares. Prior to actual payment of any vested PSUs, such PSUs will represent an unsecured obligation. Payment of any vested PSUs shall be made only in whole Shares, rounded down to the nearest whole Share.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Vesting Schedule</u>. Except as provided in Sections 1.4 and 1.5, the PSUs awarded by this Agreement shall vest in accordance with the vesting provisions set forth in Appendix A. PSUs shall not vest unless the Employee has been continuously employed by the Company or one of its Subsidiaries from the Effective Date until the date the PSUs vest in accordance with the provisions of this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Change of Control</u>. In the event a Change of Control of the Company (as defined in Appendix B) occurs at any time prior to the last vesting date, unless the Administrator of the Plan has made a provision for the substitution, assumption, exchange or other continuation or settlement of the PSUs, or this Agreement would otherwise continue in accordance with its terms in the circumstances, the PSUs will become immediately vested for a number of Shares based on the performance results obtained through the date of the Change of Control.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="1" data-prefix="Page " data-suffix=" - PSU AGREEMENT" style="text-align: left; font-size: 10pt; font-family: Times New Roman;">Page 1 - PSU AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Committee Discretion</u>. The Compensation Committee of the Company&#8217;s Board of Directors (the &#8220;Committee&#8221;), in its discretion, may accelerate the vesting of the PSUs or any portion thereof at any time, subject to the terms of the Plan. If so accelerated, such PSUs will be considered as having vested as of the date specified by the Committee with respect to the number of Shares designated by the Committee.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Payment after Vesting</u>. Any PSUs that vest in accordance with Sections 1.3 through 1.5 will be paid to the Employee through issuance of Shares as soon as practicable following the date of vesting, subject to Section 1.10 and the provisions of Section 10.b(iii) of the Plan.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Clawback Provision</u>. If the Company&#8217;s financial statements are the subject of a restatement due to misconduct, to the extent permitted by governing law, in all appropriate cases, the Company will seek reimbursement of excess Share compensation granted to the Employee per this Agreement. Excess share compensation means the positive difference, if any, between (i) the award paid to the Employee, and (ii) the award that would have been paid to Employee had the award been calculated based on the Company&#8217;s financial statements as restated. As an additional condition of receiving the awards hereunder, Employee agrees that the PSUs, Shares and any proceeds or other benefits Employee may receive hereunder shall be subject to recoupment pursuant to (a) the Incentive Compensation Recovery Policy (as amended form time to time) adopted by the Board to comply with Rule 10D-1 promulgated under the Securities Exchange Act of 1934 and the listing standards of the Nasdaq Stock Market LLC, to the extent applicable to Employee according to its terms,&nbsp; and (b) any other clawback policy that the Company may adopt from time to time or any requirements imposed under applicable law or the rules and regulations of the Nasdaq Stock Market LLC.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Forfeiture</u>. Notwithstanding any contrary provision of this Agreement, any PSUs that have not vested pursuant to Sections 1.3 through 1.5 at the time of the Employee&#8217;s termination of employment with the Company or one of its Subsidiaries (for any reason, including but not limited to death or Disability and with or without cause) will be forfeited and automatically transferred to and reacquired by the Company at no cost to the Company.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Death of the Employee</u>. Any distribution of Shares that vested during the Employee&#8217;s lifetime which is to be made to the Employee under this Agreement after the Employee is deceased shall be made to the duly appointed administrator or personal representative of the Employee&#8217;s estate. Any such administrator or personal representative must furnish the Company with (a) written notice of his or her status as transferee, and (b) evidence satisfactory to the Company to establish the validity of the transfer and compliance with any laws or regulations pertaining to said transfer.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="2" data-prefix="Page " data-suffix=" - PSU AGREEMENT" style="text-align: left; font-size: 10pt; font-family: Times New Roman;">Page 2 - PSU AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Withholding of Taxes</u>. When Shares are issued as payment for vested PSUs, the Company (or the employing Subsidiary) may withhold a portion of the Shares that have an aggregate market value sufficient to pay federal, state, local and foreign income, social insurance, employment and any other applicable taxes required to be withheld by the Company or the employing Subsidiary with respect to the Shares, unless the Company, in its sole discretion, either requires or otherwise permits the Employee to make alternate arrangements satisfactory to the Company for such withholdings in advance of the arising of any withholding obligations. The number of Shares withheld pursuant to the prior sentence will be rounded up to the nearest whole Share, with no refund for any value of the Shares withheld in excess of the tax obligation as a result of such rounding. Notwithstanding any contrary provision of this Agreement, no Shares will be issued unless and until satisfactory arrangements (as determined by the Company) have been made by the Employee with respect to the payment of any income and other taxes which the Company determines must be withheld or collected with respect to such Shares. In addition and to the maximum extent permitted by law, the Company (or the employing Subsidiary) has the right to retain without notice from salary or other amounts payable to the Employee, cash having a sufficient value to satisfy any tax withholding obligations that the Company determines cannot be satisfied through the withholding of otherwise deliverable Shares. All income and other taxes related to the PSU award and any Shares delivered in payment thereof are the sole responsibility of the Employee. By accepting this award, the Employee expressly consents to the withholding of Shares and to any additional cash withholding as provided for in this Section 1.10.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Rights as Shareholder</u>. Neither the Employee nor any person claiming under or through the Employee will have any of the rights or privileges of a shareholder of the Company in respect of any Shares deliverable hereunder unless and until certificates representing such Shares (which may be in book entry form) shall have been issued, recorded on the records of the Company or its transfer agents or registrars, and delivered to the Employee (including through electronic delivery to a brokerage account). After such issuance, recordation and delivery, the Employee will have all the rights of a shareholder of the Company with respect to voting such Shares and receipt of dividends and distributions on such Shares.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Grant is Not Transferable</u>. This grant of PSUs and the rights and privileges conferred hereby may not be sold, pledged, assigned, hypothecated, transferred or disposed of in any way (whether by operation of law or otherwise) and will not be subject to sale under execution, attachment or similar process, until the Employee has been issued Shares in payment of the PSUs. Upon any attempt to sell, pledge, assign, hypothecate, transfer or otherwise dispose of this grant, or any right or privilege conferred hereby, or upon any attempted sale under any execution, attachment or similar process, this grant and the rights and privileges conferred hereby immediately will become null and void.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Restrictions on Sale of Securities</u>. The Shares issued as payment for vested PSUs under this Agreement will be registered under U.S. federal securities laws and will be freely tradable upon receipt. However, an Employee&#8217;s subsequent sale of the Shares may be subject to any market blackout-period that may be imposed by the Company and must comply with the Company&#8217;s insider trading policies, and any other applicable securities laws.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Additional Conditions to Issuance of Certificates for Shares</u>. The Company shall not be required to issue any certificate or certificates for Shares hereunder prior to fulfillment of all the following conditions: (a) the admission of such Shares to listing on all stock exchanges on which such class of stock is then listed; (b) the completion of any registration or other qualification of such Shares under any U.S. state or federal law or under the rulings or regulations of the Securities and Exchange Commission or any other governmental regulatory body, which the Committee shall, in its absolute discretion, deem necessary or advisable; (c) the obtaining of any approval or other clearance from any U.S. state or federal governmental agency, which the Committee shall, in its absolute discretion, determine to be necessary or advisable; and (d) the lapse of such reasonable period of time following the date of vesting of the PSUs as the Committee may establish from time to time for reasons of administrative convenience, but not to exceed the maximum time limit set forth in Section 10.b(iii) of the Plan.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="3" data-prefix="Page " data-suffix=" - PSU AGREEMENT" style="text-align: left; font-size: 10pt; font-family: Times New Roman;">Page 3 - PSU AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Modifications to the Agreement</u>. This Agreement and the Plan together constitute the entire understanding of the Parties on the subjects covered herein. The Employee expressly warrants that the Employee is not accepting this Agreement in reliance on any promises, representations, or inducements other than those contained herein. Modifications to this Agreement can be made only in an express written contract executed by the Parties, provided, however, that notwithstanding anything to the contrary in the Plan or this Agreement, the Company reserves the right to revise this Agreement as it deems necessary or advisable, in its sole discretion and without the consent of the Employee, to comply with Section 409A of the Code or to otherwise avoid imposition of any additional tax or income recognition under Section 409A of the Code prior to the actual payment of Shares pursuant to this award of PSUs.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Adjustments Upon Changes in Capital</u>. The aggregate number of PSUs covered by this Agreement will be proportionally adjusted for any increase or decrease in the number of issued and outstanding Shares resulting from a stock split-up or consolidation of Shares or any like capital adjustments, or the payment of any stock dividend, as set forth in the Plan.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">2.&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; <u>Not a Contract of Employment</u>. Subject to any employment contract with the Employee, the terms of such employment will be determined from time to time by the Company, or one of its Subsidiaries employing the Employee, as the case may be, and the Company, or the Subsidiary employing the Employee, as the case may be, will have the right, which is hereby expressly reserved, to terminate or change the terms of the employment of the Employee at any time for any reason whatsoever, with or without good cause. The transactions contemplated hereunder and the vesting schedule set forth in Appendix A of this Agreement do not constitute an express or implied promise of continued employment for any period of time. A leave of absence or an interruption in employment (including an interruption during military service) authorized or acknowledged by the Company or one of its Subsidiaries employing the Employee, as the case may be, shall not be deemed a termination of employment for the purposes of this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">3.&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; <u>Miscellaneous</u>.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Address for Notices</u>. Any notice to be given to the Company under the terms of this Agreement will be addressed to the Company, in care of its Corporate Secretary, at 201 NE Park Plaza Drive, Suite 100, Vancouver WA 98684, or at such other address as the Company may hereafter designate in writing. Any notice to be given to the Employee under the terms of this Agreement or the Plan will be addressed to the Employee at his or her address of record with the Company.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Binding Agreement</u>. Subject to the limitation on the transferability of this grant contained herein, this Agreement will be binding upon and inure to the benefit of the heirs, legatees, legal representatives, successors and assigns of the Parties hereto.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="4" data-prefix="Page " data-suffix=" - PSU AGREEMENT" style="text-align: left; font-size: 10pt; font-family: Times New Roman;">Page 4 - PSU AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Plan Governs</u>. This Agreement is subject to all the terms and provisions of the Plan. In the event of a conflict between one or more provisions of this Agreement and one or more provisions of the Plan, the provisions of the Plan will govern. A copy of the Plan has been delivered to the Employee, receipt of which is hereby acknowledged by the Employee.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Committee Authority</u>. The Committee will have the power to interpret the Plan and this Agreement and to adopt such rules for the administration, interpretation and application of the Plan as are consistent therewith and to interpret or revoke any such rules (including, but not limited to, the determination of whether or not any PSUs have vested). All actions taken and all interpretations and determinations made by the Committee in good faith will be final and binding upon the Employee, the Company and all other interested persons. No member of the Committee will be personally liable for any action, determination or interpretation made in good faith with respect to the Plan or this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Captions</u>. Captions provided herein are for convenience only and are not to serve as a basis for interpretation or construction of this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Agreement Severable</u>. In the event that any provision in this Agreement is held invalid or unenforceable, such provision will be severable from, and such invalidity or unenforceability will not be construed to have any effect on, the remaining provisions of this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Amendment, Suspension or Termination of the Plan</u>. By accepting this PSU award, the Employee expressly warrants that he or she has received a contingent right to potentially receive Shares under the Plan, and has received, read and understood the Plan. The Employee understands that the Plan is discretionary in nature and may be amended, suspended or terminated by the Company at any time.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Governing Law</u>. All issues and questions concerning the construction, validity, enforcement and interpretation of this Agreement shall be governed by, and construed in accordance with, the laws of the State of Oregon, without regard to any principles of conflict of laws.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Agreement to Arbitrate Disputes</u>. To facilitate efficient resolution of all disputes arising out of or related in any way to the interpretation or application of this Agreement or to the Employee&#8217;s employment with the Company or the termination of that employment, the Parties agree all such disputes shall be resolved exclusively, fully, and finally by binding arbitration. The Parties understand and agree that pursuant to this Agreement they are waiving the right to have disputes resolved in court by a judge or jury and instead to have such disputes resolved by a neutral arbitrator. Arbitration proceedings pursuant to this provision shall occur in accordance with the Employment Arbitration Rules and Mediation Procedures of the American Arbitration Association (AAA) in effect at the time a demand for arbitration is made. Those rules are available on the Internet at http://www.adr.org or by calling the AAA at 1-800-559-3222.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>No Strict Construction</u>. The language used in this Agreement shall be deemed to be the language chosen by the Parties to express their mutual intent, and no rule of strict construction shall be applied against either Party.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="5" data-prefix="Page " data-suffix=" - PSU AGREEMENT" style="text-align: left; font-size: 10pt; font-family: Times New Roman;">Page 5 - PSU AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Counterparts</u>. This Agreement may be executed in separate counterparts, each of which is deemed to be an original and all of which taken together constitute one and the same agreement. Counterpart signature pages may be delivered via email.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">Your signature below indicates your agreement and understanding that this award is subject to all of the terms and conditions contained in Appendices A and B and the Plan. Important additional information on vesting and forfeiture of the Restricted Stock Units is contained in Sections 1.3, 1.4 and 1.6 of this Agreement. <b>PLEASE BE SURE TO READ ALL OF THE SPECIFIC TERMS AND CONDITIONS OF THIS AGREEMENT, INCLUDING APPENDICES A AND B.</b></p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: Times New Roman; font-size: 10pt; width: 100%;">

		<tr>
			<td style="vertical-align:top;width:50.6%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">NORTHWEST PIPE COMPANY</p>

			<div>&nbsp;</div>
			</td>
			<td style="vertical-align:top;width:50.6%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">EMPLOYEE</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:50.6%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">By: ______________________________</p>

			<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Scott Montross</p>

			<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">President and CEO</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;text-indent:9pt;">&nbsp;</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date:&nbsp; March 27, 2025</p>
			</td>
			<td style="vertical-align:top;width:50.6%;">
			<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;margin:0pt;">Name:</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Title:</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date:&nbsp;&nbsp; __________, 2025</p>
			</td>
		</tr>

</table>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="6" data-prefix="Page " data-suffix=" - PSU AGREEMENT" style="text-align: left; font-size: 10pt; font-family: Times New Roman;">Page 6 - PSU AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink">&nbsp;</div>
</div>
</div>
</div>

<div contenteditable="false" data-auto-pgnum="end">&nbsp;</div>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Appendix A</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>PSU Vesting Conditions</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">The information below shows the target number of PSUs (&#8220;Target Performance Shares&#8221;) that will vest and be paid with respect to 2025, 2025-2026 and 2025-2027 financial performance in achieving levels of earnings before interest expense, income taxes, depreciation and amortization margin (&#8220;EBITDA Margin&#8221;) over the measurement period. The column captioned &#8220;Payout (% of Target&#8221;) shows the multiple or fraction of the Target Performance Shares granted to each employee that will vest and be paid at each respective level of EBITDA Margin. The actual Payout (% of Target) will be determined by interpolation based on the actual EBITDA Margin.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">EBITDA Margin will be calculated using amounts as reflected in the Company&#8217;s audited consolidated financial statements before extraordinary or unusual items (e.g. charges for acquisition, divestiture and restructuring activities and gains/losses on sales) and the cumulative effect of any change in accounting principles.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">If the Company&#8217;s net income before extraordinary or unusual items (e.g. charges for acquisition, divestiture and restructuring activities and gains/losses on sales) and the cumulative effect of any change in accounting principles is negative, the Payout (% of Target) is 0%.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;margin-left:auto;margin-right:auto;">

		<tr style="background-color: rgb(204, 238, 255);">
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>2025 Target Performance Shares</b></p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Vest Date</b></p>
			</td>
		</tr>
		<tr style="background-color: rgb(255, 255, 255);">
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">XXX</p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">March 31, 2026</p>
			</td>
		</tr>

</table>

<p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;margin-left:auto;margin-right:auto;">

		<tr style="background-color: rgb(204, 238, 255);">
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>2025 </b>&#8211;<b>&nbsp;2026 Target Performance Shares</b></p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Vest Date</b></p>
			</td>
		</tr>
		<tr style="background-color: rgb(255, 255, 255);">
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">XXX</p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">March 31, 2027</p>
			</td>
		</tr>

</table>

<p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;margin-left:auto;margin-right:auto;">

		<tr style="background-color: rgb(204, 238, 255);">
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>2025 </b>&#8211;<b>&nbsp;2027 Target Performance Shares</b></p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Vest Date</b></p>
			</td>
		</tr>
		<tr style="background-color: rgb(255, 255, 255);">
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">XXX</p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">March 31, 2028</p>
			</td>
		</tr>

</table>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;margin-left:auto;margin-right:auto;">

		<tr style="background-color: rgb(204, 238, 255);">
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>EBITDA Margin Performance</b></p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Payout (% of Target)</b></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">16.9%</p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">200.0%</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">13.0%</p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">100.0%</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">9.0%</p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">50.0%</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:middle;width:26.8%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&lt;9.0%</p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">0%</p>
			</td>
		</tr>

</table>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM">&nbsp;</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Appendix B</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Definition of Change of Control and Related Terms</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">For purposes of this Agreement, a &#8220;Change of Control&#8221; means the occurrence of any of the following events: (i)&nbsp;the date any one person, or more than one person acting as a group, acquires, whether by merger, consolidation or otherwise, ownership of the capital stock of the Company that constitutes more than fifty percent (50%) of the total voting power of the outstanding capital stock of the Company, (ii)&nbsp;the date any one person, or more than one person acting as a group, acquires (or has acquired during the 12-month period ending on the date of the most recent acquisition by such person or persons) assets from the Company that have a total gross fair market value equal to more than fifty percent (50%) of the total gross fair market value of all of the assets of the Company immediately before such acquisition or acquisitions, (iii)&nbsp;the date any one person, or more than one person acting as a group, acquires (or has acquired during the 12-month period ending on the date of the most recent acquisition by such person or persons) ownership of stock of the Company possessing thirty percent (30%) or more of the total voting power of the stock of the Company, or (iv)&nbsp;the date a majority of members of the Board is replaced during any 12-month period by directors whose appointment or election is not endorsed by a majority of the members of the Board before the date of the appointment or election. For purposes of this definition of Change of Control, the term &#8220;person&#8221; shall mean and include an individual, a trust, an estate, a partnership, a limited liability company, an association, a company or corporation, other than the Company or any employee benefit plan(s) sponsored by the Company. For purposes of this definition of Change of Control, the term &#8220;gross fair market value&#8221; means the value of the assets of the Company, or the value of the assets being disposed of, determined without regard to any liabilities associated with such assets. Notwithstanding the foregoing, a Change of Control shall not occur unless such transaction constitutes a change in the ownership of the Company, a change in the ownership of a substantial portion of the Company&#8217;s assets or a change in the effective control of the Company under Code Section 409A and the Treasury Regulations promulgated thereunder.</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-10.2
<SEQUENCE>3
<FILENAME>ex_783910.htm
<DESCRIPTION>EXHIBIT 10.2
<TEXT>
<html><head>
	<title>ex_783910.htm</title>
	<!-- Generated by ThunderDome Portal - 3/26/2025 5:06:22 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-size: 10pt; font-family: &quot;Times New Roman&quot;; padding: 0in 0.1in; cursor: auto;">
<p style="margin: 0px 0pt; text-align: right; font-size: 10pt; font-family: &quot;Times New Roman&quot;;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 10pt"><b>Exhibit 10.2</b></font></p>

<p style="margin: 0px 0pt; text-align: left; font-size: 10pt; font-family: &quot;Times New Roman&quot;;"><font style="font-family: 'Times New Roman', Times, serif; font-size: 10pt">&nbsp;</font></p>

<div contenteditable="false" data-applyto="t" data-auto-pgnum="start" data-displaynum="1" data-fontname="Times New Roman" data-fontsize="10pt" data-numstyle="a" data-prefix="Page " data-startnum="1" data-suffix=" - RESTRICTED STOCK UNIT AGREEMENT" data-textalign="left">&nbsp;</div>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>NORTHWEST PIPE COMPANY</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><u>RESTRICTED STOCK UNIT AGREEMENT</u></b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">This RESTRICTED STOCK UNIT AGREEMENT (&#8220;Agreement&#8221;) is made and entered into as of March 27, 2025 (&#8220;Effective Date&#8221;) by and between Northwest Pipe Company (the &#8220;Company&#8221;), and XXX (the &#8220;Employee&#8221;) (collectively, the &#8220;Parties&#8221;).</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><u>RECITALS</u></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">The Company has determined that it would like to provide certain financial incentives to the Employee, in order to encourage continued employment, on the terms and subject to the conditions set forth in this Agreement.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><u>AGREEMENT</u></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">The Parties hereby agree as follows:</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Restricted Stock Unit Grant</u>. The Employee is granted an award of restricted stock units (&#8220;Restricted Stock Units&#8221;) on the following terms:</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Grant</u>. The Company hereby grants Employee an award of XXX Restricted Stock Units, subject to all of the terms and conditions of this Agreement, and the Company&#8217;s stockholder approved 2022 Stock Incentive Plan (the &#8220;Plan&#8221;), including but not limited to the provisions of the Plan governing awards of Restricted Stock Units. Unless otherwise defined herein, capitalized terms used herein shall have the meanings ascribed to them in the Plan. The grant of Restricted Stock Units obligates the Company, upon vesting in accordance with this Agreement, to deliver to the Employee one share of common stock of the Company (each, a &#8220;Share&#8221;) for each Restricted Stock Unit.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Company&#8217;</u><u>s Obligation to Pay</u>. Unless and until the Restricted Stock Units have vested in the manner set forth in Sections 1.3 through 1.5, the Employee will have no right to be issued Shares as payment of such Restricted Stock Units. Prior to actual issuance of Shares as payment of any vested Restricted Stock Units, such Restricted Stock Units will represent an unsecured obligation. Payment of any vested Restricted Stock Units shall be made in only whole Shares, rounding down to the nearest whole Share.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Vesting Schedule/Period of Restriction</u>. Except as provided in subsections 1.4 and 1.5, and subject to Section 1.7, the Restricted Stock Units awarded by this Agreement shall vest in accordance with the Vesting Schedule attached hereto as Appendix A. Restricted Stock Units shall not vest in the Employee unless the Employee shall have been continuously employed by the Company or one of its Subsidiaries from the Effective Date until the date the Restricted Stock Units vest in accordance with the provisions of this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Change of Control</u>. In the event a Change of Control of the Company (as defined in Appendix B) occurs at any time prior to the last vesting date, unless the Administrator of the Plan has made a provision for the substitution, assumption, exchange or other continuation or settlement of the Restricted Stock Units, or this Agreement would otherwise continue in accordance with its terms in the circumstances, a pro-rata number of Restricted Stock Units will be calculated based on time elapsed between the most recently achieved vesting date and the next succeeding vesting date as of the date of the Change of Control, and those Restricted Stock Units will be immediately vested.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="1" data-prefix="Page " data-suffix=" - RESTRICTED STOCK UNIT AGREEMENT" style="font-size: 10pt; font-family: Times New Roman; text-align: left;">Page 1 - RESTRICTED STOCK UNIT AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Committee Discretion</u>. The Compensation Committee of the Company&#8217;s Board of Directors (the &#8220;Committee&#8221;), in its discretion, may accelerate the vesting of the balance, or some lesser portion of the balance, of the Restricted Stock Units at any time, subject to the terms of the Plan. If so accelerated, such Restricted Stock Units will be considered as having vested as of the date specified by the Committee with respect to the number of Shares designated by the Committee.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Payment after Vesting</u>. Any Restricted Stock Units that vest in accordance with Sections 1.3 through 1.5 will be paid to the Employee through issuance of Shares as soon as practicable following the date of vesting, subject to Section 1.10 and the provisions of Section 10.b(iii) of the Plan.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Clawback Provision</u>. If the Company&#8217;s financial statements are the subject of a restatement due to misconduct, to the extent permitted by governing law, in all appropriate cases, the Company will seek reimbursement of excess share compensation granted to Employee per this Agreement. &#8220;Excess share compensation&#8221; means the positive difference, if any, between (i) the award paid to Employee and (ii) the award that would have been paid to Employee had the award been calculated based on the Company&#8217;s financial statements as restated. As an additional condition of receiving the awards hereunder, Employee agrees that the Restricted Stock Units, Shares and any proceeds or other benefits Employee may receive hereunder shall also be subject to recoupment pursuant to (a) the Incentive Compensation Recovery Policy (as amended form time to time) adopted by the Board to comply with Rule 10D-1 promulgated under the Securities Exchange Act of 1934 and the listing standards of the Nasdaq Stock Market LLC, to the extent applicable to Employee according to its terms,&nbsp; and (b) any other clawback policy that the Company may adopt from time to time or any requirements imposed under applicable law or the rules and regulations of the Nasdaq Stock Market LLC.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Forfeiture</u>. Notwithstanding any contrary provision of this Agreement, the balance of the Restricted Stock Units that have not vested pursuant to Sections 1.3 through 1.5 at the time of the Employee&#8217;s termination of employment with the Company or one of its Subsidiaries (for any reason, including but not limited to death or Disability and with or without cause) will be forfeited and automatically transferred to and reacquired by the Company at no cost to the Company.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Death of Employee</u>. Any distribution of Shares that vested during Employee&#8217;s lifetime which is to be made to the Employee under this Agreement after the Employee is deceased shall be made to the duly appointed administrator or personal representative of the Employee&#8217;s estate. Any such administrator or personal representative must furnish the Company with (a) written notice of his or her status as transferee, and (b) evidence satisfactory to the Company to establish the validity of the transfer and compliance with any laws or regulations pertaining to said transfer.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="2" data-prefix="Page " data-suffix=" - RESTRICTED STOCK UNIT AGREEMENT" style="font-size: 10pt; font-family: Times New Roman; text-align: left;">Page 2 - RESTRICTED STOCK UNIT AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Withholding of Taxes</u>. When Shares are issued as payment for vested Restricted Stock Units, the Company (or the employing Subsidiary) may withhold a portion of the Shares that have an aggregate market value sufficient to pay federal, state, local and foreign income, social insurance, employment and any other applicable taxes required to be withheld by the Company or the employing Subsidiary with respect to the Shares, unless the Company, in its sole discretion, either requires or otherwise permits the Employee to make alternate arrangements satisfactory to the Company for such withholdings in advance of the arising of any withholding obligations. The number of Shares withheld pursuant to the prior sentence will be rounded up to the nearest whole Share, with no refund for any value of the Shares withheld in excess of the tax obligation as a result of such rounding. Notwithstanding any contrary provision of this Agreement, no Shares will be issued unless and until satisfactory arrangements (as determined by the Company) have been made by the Employee with respect to the payment of any income and other taxes which the Company determines must be withheld or collected with respect to such Shares. In addition and to the maximum extent permitted by law, the Company (or the employing Subsidiary) has the right to retain without notice from salary or other amounts payable to the Employee, cash having a sufficient value to satisfy any tax withholding obligations that the Company determines cannot be satisfied through the withholding of otherwise deliverable Shares. All income and other taxes related to the Restricted Stock Units award and any Shares delivered in payment thereof are the sole responsibility of the Employee. By accepting this award, the Employee expressly consents to the withholding of Shares and to any additional cash withholding as provided for in this Section 1.10.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Rights as Shareholder</u>. Neither the Employee nor any person claiming under or through the Employee will have any of the rights or privileges of a shareholder of the Company in respect of any Shares deliverable hereunder unless and until certificates representing such Shares (which may be in book entry form) shall have been issued, recorded on the records of the Company or its transfer agents or registrars, and delivered to the Employee (including through electronic delivery to a brokerage account). After such issuance, recordation and delivery, the Employee will have all the rights of a shareholder of the Company with respect to voting such Shares and receipt of dividends and distributions on such Shares.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Grant is Not Transferable</u>. This grant of Restricted Stock Units and the rights and privileges conferred hereby may not be sold, pledged, assigned, hypothecated, transferred or disposed of in any way (whether by operation of law or otherwise) and will not be subject to sale under execution, attachment or similar process, until the Employee has been issued Shares in payment of the Restricted Stock Units. Upon any attempt to sell, pledge, assign, hypothecate, transfer or otherwise dispose of this grant, or any right or privilege conferred hereby, or upon any attempted sale under any execution, attachment or similar process, this grant and the rights and privileges conferred hereby immediately will become null and void.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Restrictions on Sale of Securities</u>. The Shares issued as payment for vested Restricted Stock Units under this Agreement will be registered under U.S. federal securities laws and will be freely tradable upon receipt. However, an Employee&#8217;s subsequent sale of the Shares may be subject to any market blackout-period that may be imposed by the Company and must comply with the Company&#8217;s insider trading policies, and any other applicable securities laws.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="3" data-prefix="Page " data-suffix=" - RESTRICTED STOCK UNIT AGREEMENT" style="font-size: 10pt; font-family: Times New Roman; text-align: left;">Page 3 - RESTRICTED STOCK UNIT AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Additional Conditions to Issuance of Certificates for Shares</u>. The Company shall not be required to issue any certificate or certificates for Shares hereunder prior to fulfillment of all the following conditions: (a) the admission of such Shares to listing on all stock exchanges on which such class of stock is then listed; (b) the completion of any registration or other qualification of such Shares under any U.S. state or federal law or under the rulings or regulations of the Securities and Exchange Commission or any other governmental regulatory body, which the Committee shall, in its absolute discretion, deem necessary or advisable; (c) the obtaining of any approval or other clearance from any U.S. state or federal governmental agency, which the Committee shall, in its absolute discretion, determine to be necessary or advisable; and (d) the lapse of such reasonable period of time following the date of vesting of the Restricted Stock Units as the Committee may establish from time to time for reasons of administrative convenience, but not to exceed the maximum time limit set forth in Section 10.b(iii) of the Plan.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Modifications to the Agreement</u>. This Agreement and the Plan collectively constitute the entire understanding of the Parties on the subjects covered. The Employee expressly warrants that Employee is not accepting this Agreement in reliance on any promises, representations, or inducements other than those contained herein. Modifications to this Agreement can be made only in an express written contract executed by the Parties; provided, however that notwithstanding anything to the contrary in the Plan or this Agreement, the Company reserves the right to revise this Agreement as it deems necessary or advisable, in its sole discretion and without the consent of the Employee, to comply with Section 409A of the Code or to otherwise avoid imposition of any additional tax or income recognition under Section 409A of the Code prior to the actual payment of Shares pursuant to this award of Restricted Stock Units.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">1.16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Adjustments Upon Changes in Capital</u>. The aggregate number of Restricted Stock Units covered by this Agreement will be proportionally adjusted for any increase or decrease in the number of issued and outstanding Shares resulting from a stock split-up or consolidation of Shares or any like capital adjustments, or the payment of any stock dividend, as set forth in the Plan.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>No Contract of Employment</u>. Subject to any employment contract with the Employee, the terms of such employment will be determined from time to time by the Company, or one of its Subsidiaries employing the Employee, as the case may be, and the Company, or the Subsidiary employing the Employee, as the case may be, will have the right, which is hereby expressly reserved, to terminate or change the terms of the employment of the Employee at any time for any reason whatsoever, with or without good cause. The transactions contemplated hereunder and the vesting schedule set forth in Appendix A of this Agreement do not constitute an express or implied promise of continued employment for any period of time. A leave of absence or an interruption in employment (including an interruption during military service) authorized or acknowledged by the Company or one of its Subsidiaries employing the Employee, as the case may be, shall not be deemed a termination of employment for the purposes of this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 36pt; text-align: justify;">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Miscellaneous.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Address for Notices</u>. Any notice to be given to the Company under the terms of this Agreement will be addressed to the Company, in care of its Corporate Secretary, at 201 NE Park Plaza Drive, Suite 100, Vancouver WA 98684, or at such other address as the Company may hereafter designate in writing. Any notice to be given to the Employee under the terms of this Agreement or the Plan will be addressed to the Employee at his or her address of record with the Company.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="4" data-prefix="Page " data-suffix=" - RESTRICTED STOCK UNIT AGREEMENT" style="font-size: 10pt; font-family: Times New Roman; text-align: left;">Page 4 - RESTRICTED STOCK UNIT AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Binding Agreement</u>. Subject to the limitation on the transferability of this grant contained herein, this Agreement will be binding upon and inure to the benefit of the heirs, legatees, legal representatives, successors and assigns of the Parties hereto.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Plan Governs</u>. This Agreement is subject to all the terms and provisions of the Plan. In the event of a conflict between one or more provisions of this Agreement and one or more provisions of the Plan, the provisions of the Plan will govern. A copy of the Plan has been delivered to the Employee, receipt of which is hereby acknowledged by the Employee.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Committee Authority</u>. The Committee will have the power to interpret the Plan and this Agreement and to adopt such rules for the administration, interpretation and application of the Plan as are consistent therewith and to interpret or revoke any such rules (including, but not limited to, the determination of whether or not any Restricted Stock Units have vested). All actions taken and all interpretations and determinations made by the Committee in good faith will be final and binding upon the Employee, the Company and all other interested persons. No member of the Committee will be personally liable for any action, determination or interpretation made in good faith with respect to the Plan or this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Captions</u>. Captions provided herein are for convenience only and are not to serve as a basis for interpretation or construction of this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Agreement Severable</u>. In the event that any provision in this Agreement is held invalid or unenforceable, such provision will be severable from, and such invalidity or unenforceability will not be construed to have any effect on, the remaining provisions of this Agreement.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Amendment, Suspension or Termination of the Plan</u>. By accepting this Restricted Stock Units award, the Employee expressly warrants that he or she has received a contingent right to potentially receive Shares under the Plan, and has received, read and understood the Plan. The Employee understands that the Plan is discretionary in nature and may be amended, suspended or terminated by the Company at any time.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Governing Law</u>. All issues and questions concerning the construction, validity, enforcement and interpretation of this Agreement shall be governed by, and construed in accordance with, the laws of the State of Oregon, without regard to principles of conflict of laws.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Agreement to Arbitrate Disputes</u>. To facilitate efficient resolution of all disputes arising out of or related in any way to the interpretation or application of this Agreement or to the Employee&#8217;s employment with the Company or the termination of that employment, the Parties agree all such disputes shall be resolved exclusively, fully, and finally by binding arbitration. The Parties understand and agree that pursuant to this Agreement they are waiving the right to have disputes resolved in court by a judge or jury and instead to have such disputes resolved by a neutral arbitrator. Arbitration proceedings pursuant to this provision shall occur in accordance with the Employment Arbitration Rules and Mediation Procedures of the American Arbitration Association (AAA) in effect at the time a demand for arbitration is made. Those rules are available on the Internet at http://www.adr.org or by calling the AAA at 1-800-559-3222.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="5" data-prefix="Page " data-suffix=" - RESTRICTED STOCK UNIT AGREEMENT" style="font-size: 10pt; font-family: Times New Roman; text-align: left;">Page 5 - RESTRICTED STOCK UNIT AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink" style="text-align: justify;">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>No Strict Construction</u>. The language used in this Agreement shall be deemed to be the language chosen by the Parties to express their mutual intent, and no rule of strict construction shall be applied against either Party.</p>

<p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt; text-indent: 72pt; text-align: justify;">3.11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u>Counterparts</u>. This Agreement may be executed in separate counterparts, each of which is deemed to be an original and all of which taken together constitute one and the same agreement. Counterpart signature pages may be delivered via email.</p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">[SIGNATURE PAGE FOLLOWS]</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGNUM" data-number="6" data-prefix="Page " data-suffix=" - RESTRICTED STOCK UNIT AGREEMENT" style="text-align: left; width: 100%; font-size: 10pt; font-family: Times New Roman;">Page 6 - RESTRICTED STOCK UNIT AGREEMENT</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">&nbsp;</div>
</div>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">Your signature below indicates your agreement and understanding that this award is subject to all of the terms and conditions contained in Appendices A and B and the Plan. Important additional information on vesting and forfeiture of the Restricted Stock Units is contained in Sections 1.3, 1.4 and 1.6 of this Agreement. <b>PLEASE BE SURE TO READ ALL OF THE SPECIFIC TERMS AND CONDITIONS OF THIS AGREEMENT, INCLUDING APPENDICES A AND B.</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family: Times New Roman; font-size: 10pt; width: 100%;">

		<tr>
			<td style="vertical-align:top;width:50.6%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">NORTHWEST PIPE COMPANY</p>

			<div>&nbsp;</div>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>
			</td>
			<td style="vertical-align:top;width:50.6%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">EMPLOYEE</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:50.6%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">By: ______________________________</p>

			<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Scott Montross</p>

			<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">President and CEO</p>

			<p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">&nbsp;</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;March 27, 2025</p>
			</td>
			<td style="vertical-align:top;width:50.6%;">
			<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;margin:0pt;">Name:</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Title:</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;____________, 2025</p>
			</td>
		</tr>

</table>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM" data-number="7" data-prefix="Page " data-suffix=" - RESTRICTED STOCK UNIT AGREEMENT" style="text-align: left; font-size: 10pt; font-family: Times New Roman;">Page 7 - RESTRICTED STOCK UNIT AGREEMENT</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink">&nbsp;</div>
</div>
</div>
</div>

<div contenteditable="false" data-auto-pgnum="end">&nbsp;</div>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Appendix A</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Vesting Schedule</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="font-family:Times New Roman;font-size:10pt;width:100%;margin-left:auto;margin-right:auto;">

		<tr style="background-color: rgb(204, 238, 255);">
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Restricted Stock Units</b></p>
			</td>
			<td style="vertical-align:middle;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Vest Date</b></p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">XXX</p>
			</td>
			<td style="vertical-align:top;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">January 15, 2026</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">XXX</p>
			</td>
			<td style="vertical-align:top;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">January 15, 2027</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">XXX</p>
			</td>
			<td style="vertical-align:top;width:26.7%;">
			<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">January 14, 2028</p>
			</td>
		</tr>

</table>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">&nbsp;</p>

<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
<div class="PGFTR" style="text-align: center; width: 100%">
<div class="hf-row">
<div class="hf-cell PGNUM">&nbsp;</div>
</div>
</div>

<hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000">
<div class="PGHDR" style="text-align: left; width: 100%">
<div class="hf-row">
<div class="hf-cell TOCLink">&nbsp;</div>
</div>
</div>
</div>

<p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Appendix B</b></p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Definition of Change of Control and Related Terms</b></p>

<p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">&nbsp;</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">For purposes of this Agreement, a &#8220;Change of Control&#8221; means the occurrence of any of the following events: (i)&nbsp;the date any one person, or more than one person acting as a group, acquires, whether by merger, consolidation or otherwise, ownership of the capital stock of the Company that constitutes more than fifty percent (50%) of the total voting power of the outstanding capital stock of the Company, (ii)&nbsp;the date any one person, or more than one person acting as a group, acquires (or has acquired during the 12-month period ending on the date of the most recent acquisition by such person or persons) assets from the Company that have a total gross fair market value equal to more than fifty percent (50%) of the total gross fair market value of all of the assets of the Company immediately before such acquisition or acquisitions, (iii)&nbsp;the date any one person, or more than one person acting as a group, acquires (or has acquired during the 12-month period ending on the date of the most recent acquisition by such person or persons) ownership of stock of the Company possessing thirty percent (30%) or more of the total voting power of the stock of the Company, or (iv)&nbsp;the date a majority of members of the Board is replaced during any 12-month period by directors whose appointment or election is not endorsed by a majority of the members of the Board before the date of the appointment or election. For purposes of this definition of a Change of Control, the term &#8220;person&#8221; shall mean and include an individual, a trust, an estate, a partnership, a limited liability company, an association, a company or corporation, other than the Company or any employee benefit plan(s) sponsored by the Company. For purposes of this definition of a Change of Control, the term &#8220;gross fair market value&#8221; means the value of the assets of the Company, or the value of the assets being disposed of, determined without regard to any liabilities associated with such assets. Notwithstanding the foregoing, a Change of Control shall not occur unless such transaction constitutes a change in the ownership of the Company, a change in the ownership of a substantial portion of the Company&#8217;s assets or a change in the effective control of the Company under Section 409A of the Code and the Treasury Regulations promulgated thereunder.</p>

<p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;text-indent:36pt;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>4
<FILENAME>nwpx-20250327.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome Portal - 4/2/2025 6:29:00 PM-->
<xsd:schema xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:stpr="http://xbrl.sec.gov/stpr/2024" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:country="http://xbrl.sec.gov/country/2024" xmlns:sic="http://xbrl.sec.gov/sic/2024" xmlns:currency="http://xbrl.sec.gov/currency/2024" xmlns:exch="http://xbrl.sec.gov/exch/2024" xmlns:cyd="http://xbrl.sec.gov/cyd/2024" xmlns:nwpx="http://www.nwpx.com/20250327" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.nwpx.com/20250327">
<xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
<xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd"/>
<xsd:import namespace="http://xbrl.sec.gov/stpr/2024" schemaLocation="https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"/>
<xsd:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd"/>
<xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
<xsd:import namespace="http://xbrl.sec.gov/dei/2024" schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd"/>
<xsd:import namespace="http://xbrl.sec.gov/country/2024" schemaLocation="https://xbrl.sec.gov/country/2024/country-2024.xsd"/>
<xsd:import namespace="http://xbrl.sec.gov/sic/2024" schemaLocation="https://xbrl.sec.gov/sic/2024/sic-2024.xsd"/>
<xsd:import namespace="http://xbrl.sec.gov/currency/2024" schemaLocation="https://xbrl.sec.gov/currency/2024/currency-2024.xsd"/>
<xsd:import namespace="http://xbrl.sec.gov/exch/2024" schemaLocation="https://xbrl.sec.gov/exch/2024/exch-2024.xsd"/>
<xsd:import namespace="http://xbrl.sec.gov/cyd-8k-sub/2024" schemaLocation="https://xbrl.sec.gov/cyd/2024/cyd-8k-sub-2024.xsd"/>

<xsd:annotation>
<xsd:appinfo>
<link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="nwpx-20250327_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
<link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="nwpx-20250327_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
<link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="nwpx-20250327_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
<link:roleType id="statement-document-and-entity-information" roleURI="http://www.nwpx.com/20250327/role/statement-document-and-entity-information">
<link:definition xmlns="http://www.xbrl.org/2003/linkbase">000 - Document - Document And Entity Information</link:definition>
<link:usedOn>link:calculationLink</link:usedOn>
<link:usedOn>link:definitionLink</link:usedOn>
<link:usedOn>link:presentationLink</link:usedOn>
</link:roleType>
</xsd:appinfo>
</xsd:annotation>
<xsd:element abstract="true" id="nwpx_DocumentAndEntityInformation" name="DocumentAndEntityInformation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>5
<FILENAME>nwpx-20250327_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome Portal - 4/2/2025 6:29:00 PM-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
<link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
<link:roleRef roleURI="http://www.nwpx.com/20250327/role/statement-document-and-entity-information" xlink:href="nwpx-20250327.xsd#statement-document-and-entity-information" xlink:type="simple"/>
<link:definitionLink xlink:role="http://www.nwpx.com/20250327/role/statement-document-and-entity-information" xlink:type="extended">
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications" xlink:label="dei_WrittenCommunications" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial" xlink:label="dei_SolicitingMaterial" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer" xlink:label="dei_PreCommencementTenderOffer" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="dei_PreCommencementIssuerTenderOffer" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
<link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
<link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>

<link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>


<link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationTable" xlink:type="arc"/>
<link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
<link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
<link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
<link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityIncorporationStateCountryCode" xlink:type="arc"/>
<link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFileNumber" xlink:type="arc"/>
<link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityTaxIdentificationNumber" xlink:type="arc"/>
<link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressAddressLine1" xlink:type="arc"/>
<link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressCityOrTown" xlink:type="arc"/>
<link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressStateOrProvince" xlink:type="arc"/>
<link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressPostalZipCode" xlink:type="arc"/>
<link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CityAreaCode" xlink:type="arc"/>
<link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_LocalPhoneNumber" xlink:type="arc"/>
<link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_WrittenCommunications" xlink:type="arc"/>
<link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_SolicitingMaterial" xlink:type="arc"/>
<link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_PreCommencementTenderOffer" xlink:type="arc"/>
<link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_PreCommencementIssuerTenderOffer" xlink:type="arc"/>
<link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" xlink:type="arc"/>
<link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" xlink:type="arc"/>
<link:definitionArc order="19" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_SecurityExchangeName" xlink:type="arc"/>
<link:definitionArc order="20" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
<link:definitionArc order="21" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
<link:definitionArc order="22" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>

</link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>6
<FILENAME>nwpx-20250327_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome Portal - 4/2/2025 6:29:00 PM-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
<link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
<link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" xlink:type="simple"/>
<link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" xlink:type="simple"/>
<link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" xlink:type="simple"/>
<link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" xlink:type="simple"/>
<link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" xlink:type="simple"/>
<link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" xlink:type="simple"/>
<link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
<link:label xlink:label="dei_EntityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityDomain" xlink:to="dei_EntityDomain-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
<link:label xlink:label="dei_LegalEntityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LegalEntityAxis" xlink:to="dei_LegalEntityAxis-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
<link:label xlink:label="dei_DocumentInformationLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Line Items]</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationLineItems-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
<link:label xlink:label="dei_DocumentInformationTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Table]</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationTable-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
<link:label xlink:label="dei_DocumentType-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document, Type</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
<link:label xlink:label="dei_DocumentPeriodEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document, Period End Date</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
<link:label xlink:label="dei_EntityRegistrantName-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Registrant Name</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" xlink:type="locator"/>
<link:label xlink:label="dei_EntityIncorporationStateCountryCode-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Incorporation, State or Country Code</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" xlink:type="locator"/>
<link:label xlink:label="dei_EntityFileNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, File Number</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" xlink:type="locator"/>
<link:label xlink:label="dei_EntityTaxIdentificationNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Tax Identification Number</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" xlink:type="locator"/>
<link:label xlink:label="dei_EntityAddressAddressLine1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Address, Address Line One</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" xlink:type="locator"/>
<link:label xlink:label="dei_EntityAddressCityOrTown-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Address, City or Town</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" xlink:type="locator"/>
<link:label xlink:label="dei_EntityAddressStateOrProvince-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Address, State or Province</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" xlink:type="locator"/>
<link:label xlink:label="dei_EntityAddressPostalZipCode-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Address, Postal Zip Code</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" xlink:type="locator"/>
<link:label xlink:label="dei_CityAreaCode-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" xlink:type="locator"/>
<link:label xlink:label="dei_LocalPhoneNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications" xlink:label="dei_WrittenCommunications" xlink:type="locator"/>
<link:label xlink:label="dei_WrittenCommunications-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Written Communications</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_WrittenCommunications" xlink:to="dei_WrittenCommunications-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial" xlink:label="dei_SolicitingMaterial" xlink:type="locator"/>
<link:label xlink:label="dei_SolicitingMaterial-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Soliciting Material</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SolicitingMaterial" xlink:to="dei_SolicitingMaterial-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer" xlink:label="dei_PreCommencementTenderOffer" xlink:type="locator"/>
<link:label xlink:label="dei_PreCommencementTenderOffer-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pre-commencement Tender Offer</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementTenderOffer" xlink:to="dei_PreCommencementTenderOffer-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="dei_PreCommencementIssuerTenderOffer" xlink:type="locator"/>
<link:label xlink:label="dei_PreCommencementIssuerTenderOffer-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pre-commencement Issuer Tender Offer</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementIssuerTenderOffer" xlink:to="dei_PreCommencementIssuerTenderOffer-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
<link:label xlink:label="dei_Security12bTitle-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
<link:label xlink:label="dei_TradingSymbol-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" xlink:type="locator"/>
<link:label xlink:label="dei_SecurityExchangeName-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
<link:label xlink:label="dei_EntityEmergingGrowthCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Emerging Growth Company</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
<link:label xlink:label="dei_AmendmentFlag-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag-label" xlink:type="arc"/>

<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
<link:label xlink:label="dei_EntityCentralIndexKey-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity, Central Index Key</link:label>
<link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey-label" xlink:type="arc"/>

</link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>7
<FILENAME>nwpx-20250327_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome Portal - 4/2/2025 6:29:01 PM-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
<link:roleRef roleURI="http://www.nwpx.com/20250327/role/statement-document-and-entity-information" xlink:href="nwpx-20250327.xsd#statement-document-and-entity-information" xlink:type="simple"/>
<link:presentationLink xlink:role="http://www.nwpx.com/20250327/role/statement-document-and-entity-information" xlink:type="extended">
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications" xlink:label="dei_WrittenCommunications" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial" xlink:label="dei_SolicitingMaterial" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer" xlink:label="dei_PreCommencementTenderOffer" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="dei_PreCommencementIssuerTenderOffer" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
<link:loc xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
<link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>

<link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>

<link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationLineItems" xlink:type="arc"/>
<link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
<link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
<link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
<link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityIncorporationStateCountryCode" xlink:type="arc"/>
<link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFileNumber" xlink:type="arc"/>
<link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityTaxIdentificationNumber" xlink:type="arc"/>
<link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressAddressLine1" xlink:type="arc"/>
<link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressCityOrTown" xlink:type="arc"/>
<link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressStateOrProvince" xlink:type="arc"/>
<link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressPostalZipCode" xlink:type="arc"/>
<link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CityAreaCode" xlink:type="arc"/>
<link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_LocalPhoneNumber" xlink:type="arc"/>
<link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_WrittenCommunications" xlink:type="arc"/>
<link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_SolicitingMaterial" xlink:type="arc"/>
<link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_PreCommencementTenderOffer" xlink:type="arc"/>
<link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_PreCommencementIssuerTenderOffer" xlink:type="arc"/>
<link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" xlink:type="arc"/>
<link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" xlink:type="arc"/>
<link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_SecurityExchangeName" xlink:type="arc"/>
<link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
<link:presentationArc order="20" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
<link:presentationArc order="21" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>

</link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>9
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.1</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Document And Entity Information<br></strong></div></th>
<th class="th"><div>Mar. 27, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentInformationLineItems', window );"><strong>Document Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity, Registrant Name</a></td>
<td class="text">NORTHWEST PIPE COMPANY<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document, Type</a></td>
<td class="text">8-K<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document, Period End Date</a></td>
<td class="text">Mar. 27,  2025<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity, Incorporation, State or Country Code</a></td>
<td class="text">OR<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity, File Number</a></td>
<td class="text">0-27140<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity, Tax Identification Number</a></td>
<td class="text">93-0557988<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity, Address, Address Line One</a></td>
<td class="text">201 NE Park Plaza Drive, Suite&#160;100<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity, Address, City or Town</a></td>
<td class="text">Vancouver<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity, Address, State or Province</a></td>
<td class="text">WA<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity, Address, Postal Zip Code</a></td>
<td class="text">98684<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">360<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">397&#8209;6250<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_WrittenCommunications', window );">Written Communications</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SolicitingMaterial', window );">Soliciting Material</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementTenderOffer', window );">Pre-commencement Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementIssuerTenderOffer', window );">Pre-commencement Issuer Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">NWPX<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity, Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity, Central Index Key</a></td>
<td class="text">0001001385<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_PreCommencementIssuerTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 13e<br> -Subsection 4c<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_PreCommencementIssuerTenderOffer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_PreCommencementTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 14d<br> -Subsection 2b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_PreCommencementTenderOffer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SolicitingMaterial">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 14a<br> -Subsection 12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SolicitingMaterial</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_WrittenCommunications">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 425<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_WrittenCommunications</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>10
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( #F!@EI&QTU(E0   ,T    0    9&]C4')O<',O87!P+GAM
M;$W/30O", P&X+]2=K>9BAZD#D0]BIZ\SRYUA;8I;83Z[^T$/VYY><@;HBZ)
M(B:VF$7Q+N1M,S+'#4#6(_H^R\JABJ'D>ZXQW8&,L1H/I!\> \.B;=> A3$,
M.,SBM[#IU"Y&9W7/ED)WLCI1)L/B6#0ZL2<?J]P<"A#G>B4^BQ-+.9<K!?^+
M4\L54Y[FRF_\9 6_![H74$L#!!0    ( #F!@EH+I/>M[@   "L"   1
M9&]C4')O<',O8V]R92YX;6S-DL]*Q# 0AU]%<F\G[;J"H9N+XDE!<$'Q%I+9
MW6#SAV2DW;>WC;M=1!_ 8V9^^>8;F$Y'H4/"YQ0B)K*8KT;7^RQTW+ #410
M61_0J5Q/"3\U=R$Y1=,S[2$J_:'V""WG-^"0E%&D8 96<2$RV1DM=$)%(9WP
M1B_X^)GZ C,:L$>'GC(T=0-,SA/C<>P[N !F&&%R^;N 9B&6ZI_8T@%V2H[9
M+JEA&.IA57+3#@V\/3V^E'4KZS,IKW'ZE:V@8\0-.T]^7=W=;Q^8;'F[KOAU
MQ=MMRP6_%6O^/KO^\+L(NV#LSOYCX[.@[.#77<@O4$L#!!0    ( #F!@EJ9
M7)PC$ 8  )PG   3    >&PO=&AE;64O=&AE;64Q+GAM;.U:6W/:.!1^[Z_0
M>&?V;0O&-H&VM!-S:7;;M)F$[4X?A1%8C6QY9)&$?[]'-A#+E@WMDDVZFSP$
M+.G[SD5'Y^@X>?/N+F+HAHB4\GA@V2_;UKNW+][@5S(D$4$P&:>O\, *I4Q>
MM5II ,,X?<D3$L/<@HL(2W@4R]9<X%L:+R/6ZK3;W5:$:6RA&$=D8'U>+&A
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
MJ#(9BBJ6<%H@XLD@;6E6?;!/3K3G>1<W]T6NS>,)KM\,<'AT_@%02P,$%
M  @ .8&"6F60>9(9 0  SP,  !,   !;0V]N=&5N=%]4>7!E<UTN>&ULK9--
M3L,P$(6O$F5;)2XL6*"F&V +77 !8T\:J_Z39UK2VS-.VDJ@$A6%3:QXWKS/
MGI>LWH\1L.B=]=B4'5%\% )5!TYB'2)XKK0A.4G\FK8B2K636Q#WR^6#4,$3
M>*HH>Y3KU3.T<F^I>.EY&TWP39G 8ED\C<+,:DH9HS5*$M?%P>L?E.I$J+ES
MT&!G(BY84(JKA%SY'7#J>SM 2D9#L9&)7J5CE>BM0#I:P'K:XLH90]L:!3JH
MO>.6&F,"J;$#(&?KT70Q32:>,(S/N]G\P68*R,I-"A$YL01_QYTCR=U59"-(
M9*:O>"&R]>S[04Y;@[Z1S>/]#&DWY(%B6.;/^'O&%_\;SO$1PNZ_/[&\UDX:
M?^:+X3]>?P%02P$"% ,4    "  Y@8):1L=-2)4   #-    $
M    @ $     9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0    ( #F!@EH+I/>M
M[@   "L"   1              "  <,   !D;V-0<F]P<R]C;W)E+GAM;%!+
M 0(4 Q0    ( #F!@EJ97)PC$ 8  )PG   3              "  > !  !X
M;"]T:&5M92]T:&5M93$N>&UL4$L! A0#%     @ .8&"6B)-IA1:!   LA
M !@              ("!(0@  'AL+W=O<FMS:&5E=',O<VAE970Q+GAM;%!+
M 0(4 Q0    ( #F!@EJ?H!OPL0(  .(,   -              "  ;$,  !X
M;"]S='EL97,N>&UL4$L! A0#%     @ .8&"6I>*NQS     $P(   L
M         ( !C0\  %]R96QS+RYR96QS4$L! A0#%     @ .8&"6CJJHN=
M 0  / (   \              ( !=A   'AL+W=O<FMB;V]K+GAM;%!+ 0(4
M Q0    ( #F!@EHD'INBK0   /@!   :              "  >,1  !X;"]?
M<F5L<R]W;W)K8F]O:RYX;6PN<F5L<U!+ 0(4 Q0    ( #F!@EIED'F2&0$
M ,\#   3              "  <@2  !;0V]N=&5N=%]4>7!E<UTN>&UL4$L%
3!@     )  D /@(  !(4      $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
.report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

.report table.authRefData a {
	display: block;
	font-weight: bold;
}

.report table.authRefData p {
	margin-top: 0px;
}

.report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

.report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

.report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

.report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
.pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
.report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

.report hr {
	border: 1px solid #acf;
}

/* Top labels */
.report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

.report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

.report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

.report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

.report td.pl div.a {
	width: 200px;
}

.report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
.report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
.report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
.report .re, .report .reu {
	background-color: #def;
}

.report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
.report .ro, .report .rou {
	background-color: white;
}

.report .rou td {
	border-bottom: 1px solid black;
}

.report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
.report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
.report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

.report .nump {
	padding-left: 2em;
}

.report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
.report .text {
	text-align: left;
	white-space: normal;
}

.report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

.report .text .more {
	display: none;
}

.report .text .note {
	font-style: italic;
	font-weight: bold;
}

.report .text .small {
	width: 10em;
}

.report sup {
	font-style: italic;
}

.report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>1</ContextCount>
  <ElementCount>22</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>0</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>0</UnitCount>
  <MyReports>
    <Report instance="nwpx20250228_8k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpx.com/20250327/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>nwpx-20250327.xsd</File>
    <File>nwpx-20250327_def.xml</File>
    <File>nwpx-20250327_lab.xml</File>
    <File>nwpx-20250327_pre.xml</File>
    <File doctype="8-K" isOnlyDei="true" original="nwpx20250228_8k.htm">nwpx20250228_8k.htm</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="22">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>16
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "nwpx20250228_8k.htm": {
   "nsprefix": "nwpx",
   "nsuri": "http://www.nwpx.com/20250327",
   "dts": {
    "schema": {
     "local": [
      "nwpx-20250327.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.sec.gov/country/2024/country-2024.xsd",
      "https://xbrl.sec.gov/currency/2024/currency-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-8k-sub-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-cr-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/exch/2024/exch-2024.xsd",
      "https://xbrl.sec.gov/sic/2024/sic-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    },
    "definitionLink": {
     "local": [
      "nwpx-20250327_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "nwpx-20250327_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "nwpx-20250327_pre.xml"
     ]
    },
    "inline": {
     "local": [
      "nwpx20250228_8k.htm"
     ]
    }
   },
   "keyStandard": 22,
   "keyCustom": 0,
   "axisStandard": 0,
   "axisCustom": 0,
   "memberStandard": 0,
   "memberCustom": 0,
   "hidden": {
    "total": 2,
    "http://xbrl.sec.gov/dei/2024": 2
   },
   "contextCount": 1,
   "entityCount": 1,
   "segmentCount": 0,
   "elementCount": 36,
   "unitCount": 0,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/dei/2024": 22
   },
   "report": {
    "R1": {
     "role": "http://www.nwpx.com/20250327/role/statement-document-and-entity-information",
     "longName": "000 - Document - Document And Entity Information",
     "shortName": "Document And Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "d20258K",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "b",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "nwpx20250228_8k.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "d20258K",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "b",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "nwpx20250228_8k.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentInformationLineItems",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Information [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentInformationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentInformationTable",
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Information [Table]",
        "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document, Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document, Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityDomain",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity [Domain]",
        "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity, Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_LegalEntityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LegalEntityAxis",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Legal Entity [Axis]",
        "documentation": "The set of legal entities associated with a report."
       }
      }
     },
     "auth_ref": []
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "cyd_MaterialCybersecurityIncidentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident [Abstract]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r7"
     ]
    },
    "cyd_MaterialCybersecurityIncidentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentAxis",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident [Axis]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r7"
     ]
    },
    "cyd_MaterialCybersecurityIncidentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentDomain",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident [Domain]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r7"
     ]
    },
    "cyd_MaterialCybersecurityIncidentInformationNotAvailableOrUndeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentInformationNotAvailableOrUndeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident Information Not Available or Undetermined [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r8"
     ]
    },
    "cyd_MaterialCybersecurityIncidentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentLineItems",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r9"
     ]
    },
    "cyd_MaterialCybersecurityIncidentMaterialImpactOrReasonablyLikelyMaterialImpactTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentMaterialImpactOrReasonablyLikelyMaterialImpactTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident Material Impact or Reasonably Likely Material Impact [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r9"
     ]
    },
    "cyd_MaterialCybersecurityIncidentNatureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentNatureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident Nature [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r9"
     ]
    },
    "cyd_MaterialCybersecurityIncidentScopeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentScopeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident Scope [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r9"
     ]
    },
    "cyd_MaterialCybersecurityIncidentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentTable",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident [Table]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r7"
     ]
    },
    "cyd_MaterialCybersecurityIncidentTimingTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "MaterialCybersecurityIncidentTimingTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/MaterialCybersecurityIncidentDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Cybersecurity Incident Timing [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r6",
      "r9"
     ]
    },
    "dei_PreCommencementIssuerTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "PreCommencementIssuerTenderOffer",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre-commencement Issuer Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "dei_PreCommencementTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "PreCommencementTenderOffer",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre-commencement Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_SolicitingMaterial": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SolicitingMaterial",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Soliciting Material",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "dei_WrittenCommunications": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "WrittenCommunications",
     "presentation": [
      "http://www.nwpx.com/20250327/role/statement-document-and-entity-information"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Written Communications",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r2": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r3": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "13e",
   "Subsection": "4c"
  },
  "r4": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14a",
   "Subsection": "12"
  },
  "r5": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14d",
   "Subsection": "2b"
  },
  "r6": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 6-K",
   "Section": "General Instruction",
   "Subsection": "B"
  },
  "r7": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 8-K",
   "Section": "1.05"
  },
  "r8": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 8-K",
   "Section": "1.05",
   "Subsection": "Instruction",
   "Paragraph": "2"
  },
  "r9": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 8-K",
   "Section": "1.05",
   "Subsection": "a"
  },
  "r10": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "425"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>17
<FILENAME>0001437749-25-010677-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001437749-25-010677-xbrl.zip
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
M,P._X.VB8$'/JGGRXO\!4$L#!!0    ( #F!@EJ#U5"(S"$  #6R   -
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
MRP@T/*>K6L>22DL6,?[1IA!UGIZ7F7$R'6C@SB#WRG98B]\/73HD36(W]0"
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
M,NTV!HG*?$'&)Z/W$:+6:C$O+/^J=';!%[1((<V%_%/05"P$9W =4IYQ:0-
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
M=K6CU2HD!JQ-?)%C6OCW:SM "=@AH=C9EQ+(S3DWYY[XVDEZ^7F>Q.@%LY0
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
M,("@5AOF\>8SFT?'*:<:>1!B^*]4K:P,]D:]B:(&2SY#QF8N/*,>K;M*]@$
MHA:Z^D39#,@ F8"YLK JI_QBU(OO4RZ?SBP&LZI'B/6JGEW'$_I160!U'T\%
M>8!G6,@4EN$C-_'%B#-!%' L<8$_;7^.X[[<&&%+['\&Q'',\!%TGI!G("X-
MA"N3+V6*1T'+1=D"5G--W: D'#8<)Q>C 4S+FX!L"S+EHOR8 \;%V4/^-2SJ
MHO)6DYCA-QG# 3M1TK&;"GA[2L68VR )FTA0FJC7:>("F"._75048Q(#TO3;
MKX7#_'$,MJ@4^T.^71KL[?&B8]6O>KRB@E-; K."E60=^PA@\<HX$Q$,,V%\
M/)%U4IK=@*@[%DKZKWGUSS$94N/[6,#J86:6BZZY*2>(5?Z?4,\10&,?*1)0
MKC23)*_8>76XPO:'R\._BR'74'*)D/>A([)7AEI\;-<-8'HF(I0EP9]J$I6?
M!8:OG?:@=4;Z@^:@U7\N4 H5!4N_=?JUUQZT6WW2[)R1UA^GGYJ=CRUR>GEQ
MT>[WVY>=9P;P&W4GL-Y)QTZ3L^QIEA3SE7+MR<5Q<^2+6T#^9-@XO^Q=G.2&
M 3S#QF8KZ9EC>+A0:PLE7$"KL(!6,Y^75TX<Z 60=AM\!6S?:W4&I-?J7O8&
MSPQ,%PPX#]H2Z9 ^,W#_3 HE<MF#"@?F.^*,P)YE6.0)+CF T@++F]IC1IJ&
MQ.)"K53^268.K0U$N<=F8->3@^"94; VF"L)NX(NB%#%S'Q7)_>4&NV[0 F1
M=1,ZG4*EB4GG<^B9V4E2U56F3DM;0%'QJJ0:%U08$U(\2A/L_X5*VI:4V$.L
M_QX;<Q=]2K(#)5'B'J8:'9#93]]:_0'IMKMJM>HV.W\^A,@[9M:#U@T%"47D
MD$=%B!2A+G%GS$";W22PE^/2)2#3P++BW9-SAJ1#B_E6V_M4'O:RS++\K6;X
M[,ZH$3PG '7[OG7%SH[:BRG<7O\"NW#<)#=.)&P&?L%',Q@'37]N4,LGNW1F
MQ[I]H9P]U.VA_M-,,;(TD,(.AE)U0^=GW9O!!LB@+KL_ZT<4#SIV<?LEV4PX
M5\@V<<VC9:-M&XX ]:8\K7VL?:H=2*>.&1.5HU3C$GC.L9-% ]$() 0)F)/F
M'90?.E(Z4Y_X^6SMGQ%>NK/QLT_;PS31.;<8-!@R$25M%;;AL TNE/.WJ)U7
MHJXCZH#>M'V?A:'8>)7"M52C5LKD*Y6C6K5Z/R+#WTIW[+\*.5!B2QQ!'#EA
M@OP/+#O7Y,KV"]3RDP($JQ./JI5W/P\+'YPZTREWW><B/2H8HOG_9Z)ZN]<G
MK>G,<N9,/ O=XPJ(=)QL OE]E?(&_M;624X92_MMMV_#='V@8F^:IF"NZ__U
MA=NL$%'JM7RJ4<P72*=%NE1\)UV+_DW)F>!7+$WZ'I=,XPYFX1Y:\X\CR2G\
MO!0#Y]J.$J20:OQ.0?%Z5R@%<933Y!'#J07F4G3!CN3J=',Q9C'5^-9<'NPQ
M8W4=L%FM__#9D@%:*\$:7CVLEO=P,@]\V'%?-A- (CZC%F$WS/ DL".\!LT
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
MQ*N^]NGS<8^[%/C.R_B7KK8A@OWE<7VO1IAV>L?UKNFD&S!-SYH3@WJNNG>
MXU7_,T?(((T88--YNWB;SY!-J#7"'%+L2-T!X%? [%+/AC:J.^K)B2, ==52
MN6U),738/O%TO;2CA.B26SY<<Y  ^@,O GN?*J;NU<_.+S\;-CJ7O<&G;ZW^
M@'3;W9:Z*J_9^?.Q'Q)_F>0X6'SA<_W:NS7L[XOQ@W-&*PGQ$<^%Q"ZG[<,=
MB37W2YLEM^%0>?*43A@NY^:(RIPB\:2I_>3)4)@+]Q+FNRFZ!>6V1+V%U;%7
M"1AH&JG(1(30I^RP@0&*L1>+/+38:Y63%GL3IJ;%WB9GJ,6J1!+5]OCC ;ZU
M_:79'V06UGYB+-!68WP"(."'C_Y$3JW&_P-02P$"% ,4    "  Y@8):@X!<
M[< C  "-O@  #0              @ $     97A?-S@S.3 Y+FAT;5!+ 0(4
M Q0    ( #F!@EJ#U5"(S"$  #6R   -              "  >LC  !E>%\W
M.#,Y,3 N:'1M4$L! A0#%     @ .8&"6BCLX=I^ P  & X  !$
M     ( !XD4  &YW<'@M,C R-3 S,C<N>'-D4$L! A0#%     @ .8&"6G=!
MM178!   Y"P  !4              ( !CTD  &YW<'@M,C R-3 S,C=?9&5F
M+GAM;%!+ 0(4 Q0    ( #F!@EH*7M3Z^ 4  $(\   5              "
M 9I.  !N=W!X+3(P,C4P,S(W7VQA8BYX;6Q02P$"% ,4    "  Y@8)::?0O
M;'4$  !\+0  %0              @ '%5   ;G=P>"TR,#(U,#,R-U]P<F4N
M>&UL4$L! A0#%     @ .8&"6MZ^*9[N%0  KYT  !,              ( !
M;5D  &YW<'@R,#(U,#(R.%\X:RYH=&U02P4&      < !P"_ 0  C&\

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>nwpx20250228_8k_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="nwpx-20250327.xsd" xlink:type="simple"/>
    <context id="d20258K">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <startDate>2025-03-27</startDate>
            <endDate>2025-03-27</endDate>
        </period>
    </context>
    <dei:AmendmentFlag contextRef="d20258K" id="ixv-373">false</dei:AmendmentFlag>
    <dei:EntityCentralIndexKey contextRef="d20258K" id="ixv-374">0001001385</dei:EntityCentralIndexKey>
    <dei:DocumentType contextRef="d20258K" id="ixv-384">8-K</dei:DocumentType>
    <dei:DocumentPeriodEndDate contextRef="d20258K" id="ixv-385">2025-03-27</dei:DocumentPeriodEndDate>
    <dei:EntityRegistrantName contextRef="d20258K" id="ixv-386">NORTHWEST PIPE COMPANY</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="d20258K" id="ixv-387">OR</dei:EntityIncorporationStateCountryCode>
    <dei:EntityFileNumber contextRef="d20258K" id="ixv-388">0-27140</dei:EntityFileNumber>
    <dei:EntityTaxIdentificationNumber contextRef="d20258K" id="ixv-389">93-0557988</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="d20258K" id="ixv-390">201 NE Park Plaza Drive, Suite&#160;100</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="d20258K" id="ixv-391">Vancouver</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="d20258K" id="ixv-392">WA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="d20258K" id="ixv-393">98684</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="d20258K" id="ixv-394">360</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="d20258K" id="ixv-395">397&#x2011;6250</dei:LocalPhoneNumber>
    <dei:WrittenCommunications contextRef="d20258K" id="ixv-396">false</dei:WrittenCommunications>
    <dei:SolicitingMaterial contextRef="d20258K" id="ixv-397">false</dei:SolicitingMaterial>
    <dei:PreCommencementTenderOffer contextRef="d20258K" id="ixv-398">false</dei:PreCommencementTenderOffer>
    <dei:PreCommencementIssuerTenderOffer contextRef="d20258K" id="ixv-399">false</dei:PreCommencementIssuerTenderOffer>
    <dei:Security12bTitle contextRef="d20258K" id="ixv-400">Common Stock</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="d20258K" id="ixv-401">NWPX</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="d20258K" id="ixv-402">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityEmergingGrowthCompany contextRef="d20258K" id="ixv-403">false</dei:EntityEmergingGrowthCompany>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
