XML 33 R89.htm IDEA: XBRL DOCUMENT
v2.4.1.9

Stock-based compensation - Options by exercise price range (Details) (Share option plan, CAD) | 12 Months Ended
--- | ---
Dec. 31, 2014 | Dec. 31, 2013
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Number of options outstanding | 1,765,920 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions |
Options outstanding, weighted average remaining life | 6 years 1 month | 6 years 11 months
Options outstanding, weighted average exercise price | 5.87 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 |
Number of options exercisable | 824,720 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions | 892,700 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
Options exercisable, weighted average remaining life | 4 years 6 months |
Options exercisable, weighted average exercise price | 8.41 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 | 8.00 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
$2.75 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 2.75 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyFiveMember |
Number of options outstanding | 373,760 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyFiveMember |
Options outstanding, weighted average remaining life | 7 years 6 months |
Options outstanding, weighted average exercise price | 2.75 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyFiveMember |
Number of options exercisable | 109,760 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyFiveMember |
Options exercisable, weighted average remaining life | 7 years 5 months 18 days |
Options exercisable, weighted average exercise price | 2.75 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyFiveMember |
$2.79 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 2.79 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyNineMember |
Number of options outstanding | 450,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyNineMember |
Options outstanding, weighted average remaining life | 7 years 6 months 12 days |
Options outstanding, weighted average exercise price | 2.79 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyNineMember |
Number of options exercisable | 0 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyNineMember |
Options exercisable, weighted average exercise price | 0.00 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TwoPointSeventyNineMember |
$3.69 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 3.69 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThreePointSixtyNineMember |
Number of options outstanding | 38,900 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThreePointSixtyNineMember |
Options outstanding, weighted average remaining life | 3 years 10 months 24 days |
Options outstanding, weighted average exercise price | 3.69 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThreePointSixtyNineMember |
Number of options exercisable | 38,900 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThreePointSixtyNineMember |
Options exercisable, weighted average remaining life | 3 years 11 months |
Options exercisable, weighted average exercise price | 3.69 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThreePointSixtyNineMember |
$4.90 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 4.90 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FourPointNinetyMember |
Number of options outstanding | 40,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FourPointNinetyMember |
Options outstanding, weighted average remaining life | 7 years 3 months |
Options outstanding, weighted average exercise price | 4.90 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FourPointNinetyMember |
Number of options exercisable | 16,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FourPointNinetyMember |
Options exercisable, weighted average remaining life | 7 years 3 months |
Options exercisable, weighted average exercise price | 4.90 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FourPointNinetyMember |
$5.00 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 5.00 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointZeroMember |
Number of options outstanding | 142,760 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointZeroMember |
Options outstanding, weighted average remaining life | 1 year 3 months 18 days |
Options outstanding, weighted average exercise price | 5.00 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointZeroMember |
Number of options exercisable | 142,760 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointZeroMember |
Options exercisable, weighted average remaining life | 1 year 3 months |
Options exercisable, weighted average exercise price | 5.00 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointZeroMember |
$5.91 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 5.91 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointNinetyOneMember |
Number of options outstanding | 166,600 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointNinetyOneMember |
Options outstanding, weighted average remaining life | 9 years |
Options outstanding, weighted average exercise price | 5.91 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointNinetyOneMember |
Number of options exercisable | 33,320 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointNinetyOneMember |
Options exercisable, weighted average remaining life | 9 years |
Options exercisable, weighted average exercise price | 5.91 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_FivePointNinetyOneMember |
$6.56 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 6.56 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixPointFiveSixMember |
Number of options outstanding | 94,560 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixPointFiveSixMember |
Options outstanding, weighted average remaining life | 6 years 11 months |
Options outstanding, weighted average exercise price | 6.56 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixPointFiveSixMember |
Number of options exercisable | 55,120 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixPointFiveSixMember |
Options exercisable, weighted average remaining life | 6 years 11 months |
Options exercisable, weighted average exercise price | 6.56 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixPointFiveSixMember |
$8.28 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 8.28 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointTwentyEightMember |
Number of options outstanding | 60,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointTwentyEightMember |
Options outstanding, weighted average remaining life | 4 years 6 months |
Options outstanding, weighted average exercise price | 8.28 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointTwentyEightMember |
Number of options exercisable | 60,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointTwentyEightMember |
Options exercisable, weighted average remaining life | 4 years 6 months |
Options exercisable, weighted average exercise price | 8.28 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointTwentyEightMember |
$8.58 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 8.58 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointFiftyEightMember |
Number of options outstanding | 30,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointFiftyEightMember |
Options outstanding, weighted average remaining life | 5 years 8 months |
Options outstanding, weighted average exercise price | 8.58 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointFiftyEightMember |
Number of options exercisable | 24,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointFiftyEightMember |
Options exercisable, weighted average remaining life | 5 years 8 months |
Options exercisable, weighted average exercise price | 8.58 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_EightPointFiftyEightMember |
$9.33 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 9.33 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_NinePointThrirtyThreeMember |
Number of options outstanding | 71,580 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_NinePointThrirtyThreeMember |
Options outstanding, weighted average remaining life | 5 years 1 month |
Options outstanding, weighted average exercise price | 9.33 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_NinePointThrirtyThreeMember |
Number of options exercisable | 59,840 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_NinePointThrirtyThreeMember |
Options exercisable, weighted average remaining life | 5 years 1 month |
Options exercisable, weighted average exercise price | 9.33 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_NinePointThrirtyThreeMember |
$10.21 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 10.13 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TenPointTwentyOneMember |
Number of options outstanding | 68,860 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TenPointTwentyOneMember |
Options outstanding, weighted average remaining life | 6 years |
Options outstanding, weighted average exercise price | 10.13 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TenPointTwentyOneMember |
Number of options exercisable | 56,120 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TenPointTwentyOneMember |
Options exercisable, weighted average remaining life | 6 years |
Options exercisable, weighted average exercise price | 10.13 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_TenPointTwentyOneMember |
$13.21 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 13.21 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointTwentyOneMember |
Number of options outstanding | 75,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointTwentyOneMember |
Options outstanding, weighted average remaining life | 3 years |
Options outstanding, weighted average exercise price | 13.21 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointTwentyOneMember |
Number of options exercisable | 75,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointTwentyOneMember |
Options exercisable, weighted average remaining life | 3 years |
Options exercisable, weighted average exercise price | 13.21 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointTwentyOneMember |
$13.50 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 13.50 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointFiftyMember |
Number of options outstanding | 76,140 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointFiftyMember |
Options outstanding, weighted average remaining life | 2 years 11 months |
Options outstanding, weighted average exercise price | 13.50 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointFiftyMember |
Number of options exercisable | 76,140 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointFiftyMember |
Options exercisable, weighted average remaining life | 2 years 11 months |
Options exercisable, weighted average exercise price | 13.50 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_ThirteenPointFiftyMember |
$16.46 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 16.46 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointFortySixMember |
Number of options outstanding | 50,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointFortySixMember |
Options outstanding, weighted average remaining life | 3 years 3 months |
Options outstanding, weighted average exercise price | 16.46 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointFortySixMember |
Number of options exercisable | 50,000 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointFortySixMember |
Options exercisable, weighted average remaining life | 3 years 3 months |
Options exercisable, weighted average exercise price | 16.46 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointFortySixMember |
$16.75 |  |
Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price Range [Line Items] |  |
Exercise price (CAD per share) | 16.75 noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointSeventyFiveMember |
Number of options outstanding | 27,760 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointSeventyFiveMember |
Options outstanding, weighted average remaining life | 1 year 8 months |
Options outstanding, weighted average exercise price | 16.75 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointSeventyFiveMember |
Number of options exercisable | 27,760 us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointSeventyFiveMember |
Options exercisable, weighted average remaining life | 1 year 8 months |
Options exercisable, weighted average exercise price | 16.75 us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1 / us-gaap_PlanNameAxis = noa_ShareOptionPlanMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = noa_SixteenPointSeventyFiveMember |

X
- Definition Share-based Compensation, Shares Authorized under Stock Option Plans, Exercise Price + References No definition available. + Details
Name: | noa_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePrice
Namespace Prefix: | noa_
Data Type: | num:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Weighted average exercise price as of the balance sheet date for those equity-based payment arrangements exercisable and outstanding. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(iii) -URI http://asc.fasb.org/extlink&oid=6415400&loc=d3e5070-113901 + Details
Name: | us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1
Namespace Prefix: | us-gaap_
Data Type: | num:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition Weighted average remaining contractual term of exercisable stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (e)(2) -URI http://asc.fasb.org/extlink&oid=6415400&loc=d3e5070-113901 + Details
Name: | us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTerm2
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The number of shares reserved for issuance pertaining to the outstanding exercisable stock options as of the balance sheet date in the customized range of exercise prices for which the market and performance vesting condition has been satisfied. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(iii) -URI http://asc.fasb.org/extlink&oid=6415400&loc=d3e5070-113901 + Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition The number of shares reserved for issuance pertaining to the outstanding stock options as of the balance sheet date for all option plans in the customized range of exercise prices. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i)-(ii) -URI http://asc.fasb.org/extlink&oid=6415400&loc=d3e5070-113901 + Details
Name: | us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1)(i)-(ii) -URI http://asc.fasb.org/extlink&oid=6415400&loc=d3e5070-113901 + Details
Name: | us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1
Namespace Prefix: | us-gaap_
Data Type: | num:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition Weighted average remaining contractual term of outstanding stock options, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (e)(1) -URI http://asc.fasb.org/extlink&oid=6415400&loc=d3e5070-113901 + Details
Name: | us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageRemainingContractualTerm2
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration