XML 76 R60.htm IDEA: XBRL DOCUMENT v2.4.1.9
Deferred Compensation Benefits Change in Benefit Obligation and Reconciliation of Fair Value (Details) (USD $)
In Thousands, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
ESBP      
Changes in Benefit Obligation      
Benefit obligation at beginning of period $ 7,499us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
$ 8,405us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Interest cost 276us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
243us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
338us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
Benefits paid (737)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
(720)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Actuarial loss (gain) 1,236us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
(429)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Effect of exchange rate changes 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Benefit obligation at end of period 8,274us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
7,499us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
8,405us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
Reconciliation of Fair Value of Plan Assets      
Fair value of plan assets at beginning of period 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Actual return on plan assets 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Employer contributions 737us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
720us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Benefits paid (737)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
(720)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Fair value of plan assets at end of period 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
Accrued benefit cost 8,274us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
7,499us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Current liabilities 714us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
704us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Non-current liabilities 7,560us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
6,795us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Benefit obligation 3.30%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
3.87%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Net periodic pension cost 3.87%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
3.02%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Salary increase rate 0.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
0.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
Expected return on plan assets 0.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
0.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_ExecutiveSupplementalBenefitPlanMember
 
NDBP      
Changes in Benefit Obligation      
Benefit obligation at beginning of period 11,635us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
11,913us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Interest cost 358us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
333us-gaap_DefinedBenefitPlanInterestCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Benefits paid (159)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
(141)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Actuarial loss (gain) 4,896us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
(939)us-gaap_DefinedBenefitPlanActuarialGainLoss
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Effect of exchange rate changes (1,798)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
469us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Benefit obligation at end of period 14,932us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
11,635us-gaap_DefinedBenefitPlanBenefitObligation
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Reconciliation of Fair Value of Plan Assets      
Fair value of plan assets at beginning of period 8,752us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
8,143us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Actual return on plan assets 359us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
351us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Employer contributions 0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
0us-gaap_DefinedBenefitPlanContributionsByEmployer
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Benefits paid (159)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
(141)us-gaap_DefinedBenefitPlanBenefitsPaid
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Administrative costs   52us-gaap_DefinedBenefitPlanServiceCost
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Effect of exchange rate changes (1,042)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
347us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Fair value of plan assets at end of period 7,910us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
8,752us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Accrued benefit cost 7,022us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
2,883us-gaap_DefinedBenefitPlanFundedStatusOfPlan
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Current liabilities 0us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
0us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansCurrentLiabilities
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Non-current liabilities $ 7,022us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
$ 2,883us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Benefit obligation 1.50%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
3.20%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Net periodic pension cost 3.20%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
2.80%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Salary increase rate 0.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
0.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostRateOfCompensationIncrease
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
 
Expected return on plan assets 4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember
4.00%us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= ctg_NetherlandsDefinedBenefitPlanNdbpMember