Annual report pursuant to Section 13 and 15(d)

Selected Quarterly Data (Unaudited) (Details)

v2.4.1.9
Selected Quarterly Data (Unaudited) (Details) (USD $)
In Thousands, except 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
Segment Reporting Information [Line Items]                      
Revenues $ 94,951us-gaap_SalesRevenueNet $ 101,749us-gaap_SalesRevenueNet $ 107,962us-gaap_SalesRevenueNet $ 119,409us-gaap_SalesRevenueNet $ 122,350us-gaap_SalesRevenueNet $ 111,069us-gaap_SalesRevenueNet $ 119,062us-gaap_SalesRevenueNet $ 119,157us-gaap_SalesRevenueNet $ 424,071us-gaap_SalesRevenueNet $ 471,638us-gaap_SalesRevenueNet $ 546,755us-gaap_SalesRevenueNet
Total contract costs 85,521us-gaap_ContractRevenueCost 93,388us-gaap_ContractRevenueCost 96,481us-gaap_ContractRevenueCost 107,611us-gaap_ContractRevenueCost 108,886us-gaap_ContractRevenueCost 101,026us-gaap_ContractRevenueCost 105,555us-gaap_ContractRevenueCost 108,783us-gaap_ContractRevenueCost 383,001us-gaap_ContractRevenueCost 424,250us-gaap_ContractRevenueCost 490,686us-gaap_ContractRevenueCost
Operating income 7,687us-gaap_OperatingIncomeLoss 7,183us-gaap_OperatingIncomeLoss 10,703us-gaap_OperatingIncomeLoss 11,357us-gaap_OperatingIncomeLoss 12,000us-gaap_OperatingIncomeLoss 9,460us-gaap_OperatingIncomeLoss 12,701us-gaap_OperatingIncomeLoss 9,942us-gaap_OperatingIncomeLoss 36,930us-gaap_OperatingIncomeLoss 44,103us-gaap_OperatingIncomeLoss 51,076us-gaap_OperatingIncomeLoss
Income from continuing operations 4,389us-gaap_IncomeLossFromContinuingOperations 3,887us-gaap_IncomeLossFromContinuingOperations 5,944us-gaap_IncomeLossFromContinuingOperations 6,269us-gaap_IncomeLossFromContinuingOperations 6,429us-gaap_IncomeLossFromContinuingOperations 5,327us-gaap_IncomeLossFromContinuingOperations 6,963us-gaap_IncomeLossFromContinuingOperations 5,271us-gaap_IncomeLossFromContinuingOperations 20,489us-gaap_IncomeLossFromContinuingOperations 23,990us-gaap_IncomeLossFromContinuingOperations 27,364us-gaap_IncomeLossFromContinuingOperations
Loss from discontinued operations (226)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (4)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (279)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (615)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (1,023)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (1)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (101)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (13)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (1,124)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (1,138)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity (6,070)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity
Net income $ 4,163us-gaap_NetIncomeLoss $ 3,883us-gaap_NetIncomeLoss $ 5,665us-gaap_NetIncomeLoss $ 5,654us-gaap_NetIncomeLoss $ 5,406us-gaap_NetIncomeLoss $ 5,326us-gaap_NetIncomeLoss $ 6,862us-gaap_NetIncomeLoss $ 5,258us-gaap_NetIncomeLoss $ 19,365us-gaap_NetIncomeLoss $ 22,852us-gaap_NetIncomeLoss $ 21,294us-gaap_NetIncomeLoss
Basic earnings per share:                      
Income from continuing operations (in dollars per share) $ 0.82us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 0.73us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 1.11us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 1.17us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 1.20us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 1.00us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 1.31us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 0.99us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 3.83us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 4.50us-gaap_IncomeLossFromContinuingOperationsPerBasicShare $ 5.18us-gaap_IncomeLossFromContinuingOperationsPerBasicShare
Loss from discontinued operations (in dollars per share) $ (0.04)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ 0us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ (0.05)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ (0.12)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ (0.19)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ 0us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ (0.02)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ 0us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ (0.21)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ (0.21)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare $ (1.15)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
Net income (in dollars per share) $ 0.78us-gaap_EarningsPerShareBasic $ 0.73us-gaap_EarningsPerShareBasic $ 1.06us-gaap_EarningsPerShareBasic $ 1.05us-gaap_EarningsPerShareBasic $ 1.01us-gaap_EarningsPerShareBasic $ 1.00us-gaap_EarningsPerShareBasic $ 1.29us-gaap_EarningsPerShareBasic $ 0.99us-gaap_EarningsPerShareBasic $ 3.62us-gaap_EarningsPerShareBasic $ 4.29us-gaap_EarningsPerShareBasic $ 4.03us-gaap_EarningsPerShareBasic
Basic weighted average shares outstanding 5,356,000us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,356,000us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,356,000us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,347,000us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,333,000us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,333,000us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,333,000us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,317,000us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,353,912us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,329,208us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 5,282,047us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
Diluted earnings per share:                      
Income from continuing operations (in dollars per share) $ 0.82us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 0.72us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 1.11us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 1.17us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 1.20us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 1.00us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 1.30us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 0.99us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 3.82us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 4.49us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare $ 5.15us-gaap_IncomeLossFromContinuingOperationsPerDilutedShare
Loss from discontinued operations (in dollars per share) $ (0.04)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ 0us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ (0.05)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ (0.12)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ (0.19)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ 0us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ (0.02)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ 0us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ (0.21)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ (0.21)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare $ (1.14)us-gaap_IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
Net income (in dollars per share) $ 0.78us-gaap_EarningsPerShareDiluted $ 0.72us-gaap_EarningsPerShareDiluted $ 1.06us-gaap_EarningsPerShareDiluted $ 1.05us-gaap_EarningsPerShareDiluted $ 1.01us-gaap_EarningsPerShareDiluted $ 1.00us-gaap_EarningsPerShareDiluted $ 1.28us-gaap_EarningsPerShareDiluted $ 0.99us-gaap_EarningsPerShareDiluted $ 3.61us-gaap_EarningsPerShareDiluted $ 4.28us-gaap_EarningsPerShareDiluted $ 4.01us-gaap_EarningsPerShareDiluted
Diluted weighted average shares outstanding 5,380,000us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,372,000us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,368,000us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,364,000us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,364,000us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,339,000us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,340,000us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,329,000us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,371,200us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,343,267us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 5,309,862us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding