XML 101 R82.htm IDEA: XBRL DOCUMENT v2.4.1.9
Segment Information - Segment Information Report of Statements of Operations (Detail) (USD $)
In Thousands, unless otherwise specified
3 Months Ended 12 Months Ended
Dec. 31, 2014
Sep. 30, 2014
Jun. 30, 2014
Mar. 31, 2014
Dec. 31, 2013
Sep. 30, 2013
Jun. 30, 2013
Mar. 31, 2013
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Segment Reporting Information [Line Items]                      
Net sales $ 102,158us-gaap_SalesRevenueNet $ 116,505us-gaap_SalesRevenueNet $ 101,988us-gaap_SalesRevenueNet $ 82,647us-gaap_SalesRevenueNet $ 85,641us-gaap_SalesRevenueNet $ 78,527us-gaap_SalesRevenueNet $ 87,942us-gaap_SalesRevenueNet $ 107,335us-gaap_SalesRevenueNet $ 403,298us-gaap_SalesRevenueNet $ 359,445us-gaap_SalesRevenueNet $ 388,902us-gaap_SalesRevenueNet
Gross profit from continuing operations 9,125us-gaap_GrossProfit 15,820us-gaap_GrossProfit 11,317us-gaap_GrossProfit 4,314us-gaap_GrossProfit 10,853us-gaap_GrossProfit 11,254us-gaap_GrossProfit 15,210us-gaap_GrossProfit 22,919us-gaap_GrossProfit 40,576us-gaap_GrossProfit 60,236us-gaap_GrossProfit 59,108us-gaap_GrossProfit
Operating income (loss) from continuing operations (13,410)us-gaap_OperatingIncomeLoss 9,331us-gaap_OperatingIncomeLoss 5,399us-gaap_OperatingIncomeLoss (1,126)us-gaap_OperatingIncomeLoss 5,679us-gaap_OperatingIncomeLoss 5,698us-gaap_OperatingIncomeLoss 9,269us-gaap_OperatingIncomeLoss 16,889us-gaap_OperatingIncomeLoss 194us-gaap_OperatingIncomeLoss 37,535us-gaap_OperatingIncomeLoss 31,286us-gaap_OperatingIncomeLoss
Depreciation and amortization of property and equipment                 14,146us-gaap_DepreciationAndAmortization 13,299us-gaap_DepreciationAndAmortization 16,267us-gaap_DepreciationAndAmortization
Capital expenditures                 14,289us-gaap_PaymentsToAcquirePropertyPlantAndEquipment 28,447us-gaap_PaymentsToAcquirePropertyPlantAndEquipment 16,789us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
Operating Segments [Member]                      
Segment Reporting Information [Line Items]                      
Operating income (loss) from continuing operations                 14,813us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
52,286us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
48,339us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
Depreciation and amortization of property and equipment                 13,806us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
13,045us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
16,015us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
Capital expenditures                 13,716us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
27,558us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
16,643us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
Corporate [Member]                      
Segment Reporting Information [Line Items]                      
Operating income (loss) from continuing operations (4,000)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(3,943)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(3,555)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(3,121)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(3,309)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(3,559)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(4,004)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(3,879)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(14,619)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(14,751)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(17,053)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Depreciation and amortization of property and equipment                 340us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
254us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
252us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Capital expenditures                 573us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
889us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
146us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Reportable Geographical Components [Member] | United States [Member]                      
Segment Reporting Information [Line Items]                      
Net sales                 383,344us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_ReportableGeographicalComponentsMember
/ us-gaap_StatementGeographicalAxis
= country_US
308,345us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_ReportableGeographicalComponentsMember
/ us-gaap_StatementGeographicalAxis
= country_US
332,859us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_ReportableGeographicalComponentsMember
/ us-gaap_StatementGeographicalAxis
= country_US
Reportable Geographical Components [Member] | Non US [Member]                      
Segment Reporting Information [Line Items]                      
Net sales                 19,954us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_ReportableGeographicalComponentsMember
/ us-gaap_StatementGeographicalAxis
= nwpx_NonUsMember
51,100us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_ReportableGeographicalComponentsMember
/ us-gaap_StatementGeographicalAxis
= nwpx_NonUsMember
56,043us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_ReportableGeographicalComponentsMember
/ us-gaap_StatementGeographicalAxis
= nwpx_NonUsMember
Water Transmission [Member] | Operating Segments [Member]                      
Segment Reporting Information [Line Items]                      
Net sales 56,484us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
76,857us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
62,205us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
42,999us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
42,831us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
46,835us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
58,148us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
78,613us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
238,545us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
226,427us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
269,203us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
Gross profit from continuing operations 9,883us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
16,559us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
11,491us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
1,668us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
7,026us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
7,932us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
12,125us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
19,870us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
39,601us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
46,953us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
45,051us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
Operating income (loss) from continuing operations 7,817us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
14,429us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
9,543us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
(299)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
5,505us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
6,306us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
10,499us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
18,033us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
31,490us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
40,343us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
36,278us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
Depreciation and amortization of property and equipment                 8,716us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
7,082us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
10,474us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
Capital expenditures                 6,190us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
13,204us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
6,830us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_WaterTransmissionMember
Tubular Products [Member] | Operating Segments [Member]                      
Segment Reporting Information [Line Items]                      
Net sales 45,674us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
39,648us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
39,783us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
39,648us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
42,810us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
31,692us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
29,794us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
28,722us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
164,753us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
133,018us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
119,699us-gaap_SalesRevenueNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
Gross profit from continuing operations (758)us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
(739)us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
(174)us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
2,646us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
3,827us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
3,322us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
3,085us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
3,049us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
975us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
13,283us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
14,057us-gaap_GrossProfit
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
Operating income (loss) from continuing operations (17,227)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
(1,155)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
(589)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
2,294us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
3,483us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
2,951us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
2,774us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
2,735us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
(16,677)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
11,943us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
12,061us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
Depreciation and amortization of property and equipment                 5,090us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
5,963us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
5,541us-gaap_DepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
Capital expenditures                 $ 7,526us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
$ 14,354us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember
$ 9,813us-gaap_PaymentsToAcquirePropertyPlantAndEquipment
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= us-gaap_PublicUtilitiesInventoryTubularGoodsMember