Annual report pursuant to Section 13 and 15(d)

Shareholders' Equity, Stock Options and Net Income per Share - Non-employee Director Non-vested Shares (Details)

v2.4.1.9
Shareholders' Equity, Stock Options and Net Income per Share - Non-employee Director Non-vested Shares (Details) (USD $)
In Thousands, except Per Share data, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Non-Vested Shares [Line Items]      
Share-based compensation $ 6,681us-gaap_ShareBasedCompensation $ 6,178us-gaap_ShareBasedCompensation $ 6,050us-gaap_ShareBasedCompensation
Employee Non-vested Shares [Member]      
Non-Vested Shares [Line Items]      
Non-vested share vesting period 3 years    
Outstanding at beginning of year (shares) 186us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
168us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
108us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Granted (shares) 99us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
98us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
103us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Vested (shares) (94)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
(68)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
(36)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Outstanding at end of year (shares) 190us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
186us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
168us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Weighted average grant date fair value of non-vested shares at beginning of year $ 35us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
$ 33us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
$ 29us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Weighted average grant date fair value non-vested shares at end of year $ 40us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
$ 35us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
$ 33us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Weighted Average Grant Date Fair Value $ 42us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
$ 37us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
$ 37us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value $ 43us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
$ 37us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
$ 29us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Granted in Period, Total Fair Value 7,585fwrd_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
6,588fwrd_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
5,579fwrd_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Grant date fair value of shares that vested during the year 4,008us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
2,503us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
1,249us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Share-based compensation 3,626us-gaap_ShareBasedCompensation
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
3,058us-gaap_ShareBasedCompensation
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
2,039us-gaap_ShareBasedCompensation
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Tax benefit related to share-based compensation expense 1,385us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
1,165us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
785us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
Unrecognized compensation cost 4,325us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
/ us-gaap_AwardTypeAxis
= fwrd_EmployeeNonVestedSharesMember
   
Nonemployee Director Nonvested Shares Granted [Member]      
Non-Vested Shares [Line Items]      
Non-vested share vesting period 1 year    
Outstanding at beginning of year (shares) 15us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
20us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
24us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Granted (shares) 15us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
15us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
20us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Vested (shares) (15)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
(20)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
(24)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Outstanding at end of year (shares) 15us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
15us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
20us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Weighted average grant date fair value of non-vested shares at beginning of year $ 38us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
$ 32us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
$ 33us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Weighted average grant date fair value non-vested shares at end of year $ 44us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
$ 38us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
$ 32us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Weighted Average Grant Date Fair Value $ 44us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
$ 38us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
$ 32us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value $ 38us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
$ 32us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
$ 32us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Granted in Period, Total Fair Value 650fwrd_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
560fwrd_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
640fwrd_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Grant date fair value of shares that vested during the year 632us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
762us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
752us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Share-based compensation 589us-gaap_ShareBasedCompensation
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
589us-gaap_ShareBasedCompensation
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
687us-gaap_ShareBasedCompensation
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Tax benefit related to share-based compensation expense 225us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
225us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
264us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember
Unrecognized compensation cost $ 256us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
/ us-gaap_AwardTypeAxis
= fwrd_NonemployeeDirectorNonvestedSharesGrantedMember