Quarterly report pursuant to Section 13 or 15(d)

Share-Based Payments - Stock Option Activity (Details)

v2.4.1.9
Share-Based Payments - Stock Option Activity (Details) (USD $)
In Thousands, except Per Share data, unless otherwise specified
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Share-based compensation expense $ 1,786us-gaap_AllocatedShareBasedCompensationExpense $ 1,652us-gaap_AllocatedShareBasedCompensationExpense
Employee Stock Option [Member]    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Share-based compensation expense 336us-gaap_AllocatedShareBasedCompensationExpense
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
314us-gaap_AllocatedShareBasedCompensationExpense
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
Tax benefit related to share-based expense 129us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
120us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
Unrecognized share-based compensation, net of estimated forfeitures 2,609us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
2,561us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
Employee activity - stock options [Abstract]    
Stock option grants expire (in years) 7 years  
Grants, vesting period (in years) 3 years  
Expected dividend yield (in hundredths) 1.00%us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
1.20%us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
Expected stock price volatility 33.90%fwrd_ExpectedStockPriceVolatility
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
40.60%fwrd_ExpectedStockPriceVolatility
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
Weighted Average Risk Free Interest Rate 1.60%us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
1.60%us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
Expected life of options (in years) 6 years 1 month 11 days 5 years 5 months 11 days
Weighted-average fair value of options (dollars per share) $ 16us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
$ 15us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
Outstanding, beginning of period (in shares) 1,363us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Granted (in shares) 82us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Exercised (in shares) (481)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Forfeited (in shares) (14)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Outstanding, end of period (in shares) 950us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Exercisable, end of period (in shares) 757us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Outstanding, beginning of period (in dollars per share) $ 28us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Grants in Period (in dollars per share) $ 51us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Exercises in Period (in dollars per share) $ 27us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Forfeited in period (in dollars per share) $ 29us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Outstanding, end of period (in dollars per share) $ 30us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Exercisable, end of period (in dollars per share) $ 27us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Aggregate Intrinsic Value Outstanding, end of period 19,625us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Aggregate Intrinsic Value Exercisable, end of period $ 18,515us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue
/ us-gaap_PlanNameAxis
= us-gaap_EmployeeStockOptionMember
 
Weighted-average remaining contractual term Outstanding, end of period (in years) 3 years 1 month 11 days  
Weighted-average remaining contractual term Exercisable, end of period (in years) 2 years 3 months 11 days