Shareholders' Equity, Stock Options and Net Income per Share - Net Income per Share (Details) (USD $) In Thousands, except Per Share data, unless otherwise specified
|
3 Months Ended |
12 Months Ended |
Dec. 31, 2014
|
Sep. 30, 2014
|
Jun. 30, 2014
|
Mar. 31, 2014
|
Dec. 31, 2013
|
Sep. 30, 2013
|
Jun. 30, 2013
|
Mar. 31, 2013
|
Dec. 31, 2014
|
Dec. 31, 2013
|
Dec. 31, 2012
|
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items] |
|
|
|
|
|
|
|
|
|
|
|
Net income and comprehensive income |
$ 17,045us-gaap_NetIncomeLoss
|
$ 16,744us-gaap_NetIncomeLoss
|
$ 17,178us-gaap_NetIncomeLoss
|
$ 10,202us-gaap_NetIncomeLoss
|
$ 15,584us-gaap_NetIncomeLoss
|
$ 14,197us-gaap_NetIncomeLoss
|
$ 13,831us-gaap_NetIncomeLoss
|
$ 10,855us-gaap_NetIncomeLoss
|
$ 61,169us-gaap_NetIncomeLoss
|
$ 54,467us-gaap_NetIncomeLoss
|
$ 52,668us-gaap_NetIncomeLoss
|
Undistributed Earnings (Loss) Allocated to Participating Securities, Basic |
|
|
|
|
|
|
|
|
(404)us-gaap_UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
|
|
|
Numerator for net income and comprehensive income to common shareholders |
|
|
|
|
|
|
|
|
$ 60,765fwrd_Numeratorfornetincomeandcomprehensiveincometocommonshareholders
|
$ 54,467fwrd_Numeratorfornetincomeandcomprehensiveincometocommonshareholders
|
$ 52,668fwrd_Numeratorfornetincomeandcomprehensiveincometocommonshareholders
|
Denominator for basic income per share - weighted-average shares |
|
|
|
|
|
|
|
|
30,599us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
|
30,135us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
|
28,967us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
|
Denominator for diluted income per share - adjusted weighted-average shares |
|
|
|
|
|
|
|
|
31,072us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
|
30,762us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
|
29,536us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding
|
Basic net income per share |
$ 0.56us-gaap_EarningsPerShareBasic
|
$ 0.55us-gaap_EarningsPerShareBasic
|
$ 0.56us-gaap_EarningsPerShareBasic
|
$ 0.33us-gaap_EarningsPerShareBasic
|
$ 0.51us-gaap_EarningsPerShareBasic
|
$ 0.47us-gaap_EarningsPerShareBasic
|
$ 0.46us-gaap_EarningsPerShareBasic
|
$ 0.37us-gaap_EarningsPerShareBasic
|
$ 1.99us-gaap_EarningsPerShareBasic
|
$ 1.81us-gaap_EarningsPerShareBasic
|
$ 1.82us-gaap_EarningsPerShareBasic
|
Diluted net income per share |
$ 0.55us-gaap_EarningsPerShareDiluted
|
$ 0.54us-gaap_EarningsPerShareDiluted
|
$ 0.55us-gaap_EarningsPerShareDiluted
|
$ 0.33us-gaap_EarningsPerShareDiluted
|
$ 0.50us-gaap_EarningsPerShareDiluted
|
$ 0.46us-gaap_EarningsPerShareDiluted
|
$ 0.45us-gaap_EarningsPerShareDiluted
|
$ 0.36us-gaap_EarningsPerShareDiluted
|
$ 1.96us-gaap_EarningsPerShareDiluted
|
$ 1.77us-gaap_EarningsPerShareDiluted
|
$ 1.78us-gaap_EarningsPerShareDiluted
|
Total number anti-dilutive options and non-vested shares excluded from income per diluted share computation |
|
|
|
|
|
|
|
|
99us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
192us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
248us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
|
Equity Option [Member] |
|
|
|
|
|
|
|
|
|
|
|
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items] |
|
|
|
|
|
|
|
|
|
|
|
Weighted Average Number Diluted Shares Outstanding Adjustment |
|
|
|
|
|
|
|
|
431us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment / us-gaap_AwardTypeAxis = us-gaap_StockOptionMember
|
615us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment / us-gaap_AwardTypeAxis = us-gaap_StockOptionMember
|
528us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment / us-gaap_AwardTypeAxis = us-gaap_StockOptionMember
|
Total number anti-dilutive options and non-vested shares excluded from income per diluted share computation |
|
|
|
|
|
|
|
|
99us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount / us-gaap_AwardTypeAxis = us-gaap_StockOptionMember
|
192us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount / us-gaap_AwardTypeAxis = us-gaap_StockOptionMember
|
226us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount / us-gaap_AwardTypeAxis = us-gaap_StockOptionMember
|
Key Employee Performance Share Based Plan [Member] |
|
|
|
|
|
|
|
|
|
|
|
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items] |
|
|
|
|
|
|
|
|
|
|
|
Weighted Average Number Diluted Shares Outstanding Adjustment |
|
|
|
|
|
|
|
|
42us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment / us-gaap_AwardTypeAxis = fwrd_KeyEmployeePerformanceShareBasedPlanMember
|
12us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment / us-gaap_AwardTypeAxis = fwrd_KeyEmployeePerformanceShareBasedPlanMember
|
41us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment / us-gaap_AwardTypeAxis = fwrd_KeyEmployeePerformanceShareBasedPlanMember
|
Performance Shares [Member] |
|
|
|
|
|
|
|
|
|
|
|
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items] |
|
|
|
|
|
|
|
|
|
|
|
Total number anti-dilutive options and non-vested shares excluded from income per diluted share computation |
|
|
|
|
|
|
|
|
|
|
22us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount / us-gaap_AwardTypeAxis = us-gaap_PerformanceSharesMember
|