Shareholders' Equity, Stock Options and Net Income per Share - Stock Option Activity (Details) (USD $)
In Thousands, except Per Share data, unless otherwise specified |
12 Months Ended | ||
---|---|---|---|
Dec. 31, 2014
|
Dec. 31, 2013
|
Dec. 31, 2012
|
|
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Share-based compensation | $ 6,681us-gaap_ShareBasedCompensation | $ 6,178us-gaap_ShareBasedCompensation | $ 6,050us-gaap_ShareBasedCompensation |
Employee Stock Option [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Outstanding at beginning of year (shares) |
1,732us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
2,874us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
3,363us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Granted (shares) |
106us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
118us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
94us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Exercise of stock options (in shares) |
(450)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
(1,260)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
(570)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Forfeited (shares) |
(25)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
(13)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Outstanding at end of year (shares) |
1,363us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
1,732us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
2,874us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Weighted Average Outstanding at beginning of year (per share) |
$ 27us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 26us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 26us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Weighted average exercise price for options granted in the period |
$ 43us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 38us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 37us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Weighted average exercise price for options exercised in the period |
$ 28us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 26us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 27us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Weighted average exercise price for options forfeited in the period |
$ 37us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 29us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Weighted Average Outstanding at end of year (per share) |
$ 28us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 27us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 26us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Exercisable at end of year |
1,160us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
1,514us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
2,487us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Weighted average exercise price for options exercisable at year end |
$ 26us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 26us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 26us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Weighted-average fair value of options granted during the year (dollars per share) |
$ 14us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 14us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
$ 13us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Aggregate intrinsic value of options exercised |
7,259us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
15,477us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
3,924us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Average aggregate intrinsic value for options outstanding |
24,425us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
||
Average aggregate instrinsic value for exercisable options |
23,274us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
||
Share-based compensation |
1,302us-gaap_ShareBasedCompensation / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
1,410us-gaap_ShareBasedCompensation / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
2,585us-gaap_ShareBasedCompensation / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Tax benefit related to share-based compensation expense |
497us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
508us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
713us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
Unrecognized compensation cost |
1,632us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember |
||
Non-employee Director Stock Options [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Outstanding at beginning of year (shares) |
26us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
29us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
41us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
Exercise of stock options (in shares) |
(18)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
(3)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
(12)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
Outstanding at end of year (shares) |
8us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
26us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
29us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
Weighted Average Outstanding at beginning of year (per share) |
$ 23us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
$ 23us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
$ 21us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
Weighted average exercise price for options exercised in the period |
$ 22us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
$ 20us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
$ 16us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
Weighted Average Outstanding at end of year (per share) |
$ 26us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
$ 23us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
$ 23us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
Aggregate intrinsic value of options exercised |
412us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
54us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
207us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
Average aggregate intrinsic value for options outstanding and exercisable |
$ 151us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue / us-gaap_AwardTypeAxis = fwrd_NonEmployeeDirectorStockOptionsMember |
||
Non-employee Director Activity - Options [Abstract] | |||
Weighted average remaining contractual term for options outstanding | 4 months 11 days | ||
Term of options issued under the plan | 10 years | ||
Exercise Price Range 22.47 thru 24.98 [Member] | Employee Stock Option [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Outstanding at end of year (shares) |
672us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange1325Thru1882Member |
||
Weighted Average Outstanding at end of year (per share) |
$ 22.66us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange1325Thru1882Member |
||
Exercisable at end of year |
672us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange1325Thru1882Member |
||
Weighted average exercise price for options exercisable at year end |
$ 22.66us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange1325Thru1882Member |
||
Range of exercise price, lower range limit |
$ 22.47us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange1325Thru1882Member |
||
Range of exercise price, upper range limit |
$ 24.98us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange1325Thru1882Member |
||
Weighted average remaining contractual life | 1 year 8 months 11 days | ||
Exercise Price Range 28.61 thru 29.44 [Member] | Employee Stock Option [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Outstanding at end of year (shares) |
401us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange2021Thru2944Member |
||
Weighted Average Outstanding at end of year (per share) |
$ 28.95us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange2021Thru2944Member |
||
Exercisable at end of year |
401us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange2021Thru2944Member |
||
Weighted average exercise price for options exercisable at year end |
$ 28.95us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange2021Thru2944Member |
||
Range of exercise price, lower range limit |
$ 28.61us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange2021Thru2944Member |
||
Range of exercise price, upper range limit |
$ 29.44us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange2021Thru2944Member |
||
Weighted average remaining contractual life | 10 months 11 days | ||
Exercise Price Range 36.55 thru 41.80 [Member] | Employee Stock Option [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Outstanding at end of year (shares) |
184us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange3035Thru3690Member |
||
Weighted Average Outstanding at end of year (per share) |
$ 37.03us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange3035Thru3690Member |
||
Exercisable at end of year |
87us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange3035Thru3690Member |
||
Weighted average exercise price for options exercisable at year end |
$ 36.90us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange3035Thru3690Member |
||
Range of exercise price, lower range limit |
$ 36.55us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange3035Thru3690Member |
||
Range of exercise price, upper range limit |
$ 41.80us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange3035Thru3690Member |
||
Weighted average remaining contractual life | 4 years 8 months 11 days | ||
Exercise Price Range 42.48 thru 45.97 [Member] | Employee Stock Option [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Outstanding at end of year (shares) |
106us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange42.48thru45.97Member |
||
Weighted Average Outstanding at end of year (per share) |
$ 43.17us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange42.48thru45.97Member |
||
Exercisable at end of year |
0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange42.48thru45.97Member |
||
Weighted average exercise price for options exercisable at year end |
$ 0.00us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange42.48thru45.97Member |
||
Range of exercise price, lower range limit |
$ 42.48us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange42.48thru45.97Member |
||
Range of exercise price, upper range limit |
$ 45.97us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange42.48thru45.97Member |
||
Weighted average remaining contractual life | 6 years 2 months 11 days | ||
Exercise Price Range 22.47 thru 45.97 [Member] | Employee Stock Option [Member] | |||
Share-based Compensation Arrangement by Share-based Payment Award [Line Items] | |||
Outstanding at end of year (shares) |
1,363us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfOutstandingOptions / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange22.47thru45.97Member |
||
Weighted Average Outstanding at end of year (per share) |
$ 28.05us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange22.47thru45.97Member |
||
Exercisable at end of year |
1,160us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange22.47thru45.97Member |
||
Weighted average exercise price for options exercisable at year end |
$ 25.91us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange22.47thru45.97Member |
||
Range of exercise price, lower range limit |
$ 22.47us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange22.47thru45.97Member |
||
Range of exercise price, upper range limit |
$ 45.97us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimit / us-gaap_AwardTypeAxis = us-gaap_EmployeeStockOptionMember / us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis = fwrd_ExercisePriceRange22.47thru45.97Member |
||
Weighted average remaining contractual life | 2 years 2 months 11 days |
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Unrecognized cost of unvested share-based compensation awards. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
The total recognized tax benefit related to compensation cost for equity-based payment arrangements recognized in income during the period. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
The aggregate amount of noncash, equity-based employee remuneration. This may include the value of stock or unit options, amortization of restricted stock or units, and adjustment for officers' compensation. As noncash, this element is an add back when calculating net cash generated by operating activities using the indirect method. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Expected term of share-based compensation awards, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Definition
Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Weighted average price of options that were either forfeited or expired. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Gross number of share options (or share units) granted during the period. No definition available.
|
X | ||||||||||
- Definition
The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Amount by which the current fair value of the underlying stock exceeds the exercise price of fully vested and expected to vest options outstanding. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Weighted average price at which option holders acquired shares when converting their stock options into shares. No definition available.
|
X | ||||||||||
- Definition
Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options. No definition available.
|
X | ||||||||||
- Definition
The floor of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
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. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
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. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
The ceiling of a customized range of exercise prices for purposes of disclosing shares potentially issuable under outstanding stock option awards on all stock option plans and other required information pertaining to awards in the customized range. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Definition
Number of share options (or share units) exercised during the current period. Reference 1: http://www.xbrl.org/2003/role/presentationRef
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|
X | ||||||||||
- Details
|