XML 35 R67.htm IDEA: XBRL DOCUMENT v2.4.1.9
Equity-Based Compensation Stock Option Activity (Details) (USD $)
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
2010 Plan [Member]      
Stock Option Activity      
Beginning of period, outstanding (in shares) 660,471us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
461,346us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
265,500us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Beginning of period (weighted-average price) $ 15.93us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 13.59us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 12.89us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options granted (in shares) 107,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
207,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
225,596us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options granted (weighted-average price) $ 16.93us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 21.03us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 14.41us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options exercised (in shares) (5,000)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
(2,875)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
(20,750)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options exercised (weighted-average price) $ 13.18us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 13.50us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 13.53us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options canceled or forfeited (in shares) (130,625)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
(5,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
(9,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options canceled or forfeited (weighted-average price) $ 17.02us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 13.18us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 13.55us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options expired (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options expired (weighted-average price) $ 0.00us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 0.00us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 0.00us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
End of period, outstanding (in shares) 631,846us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
660,471us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
461,346us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
End of period (weighted-average price) $ 15.89us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 15.93us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
$ 13.59us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
Options exercisable (in shares) 477,722us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
   
Options exercisable (weighted-average price) $ 15.56us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_Companys2010EquityAwardPlan2010PlanMember
   
Equity Plan [Member]      
Stock Option Activity      
Beginning of period, outstanding (in shares) 2,472,147us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
2,584,547us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
3,175,075us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Beginning of period (weighted-average price) $ 4.67us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 4.68us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 4.49us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options granted (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options granted (weighted-average price) $ 0us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 0.00us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 0.00us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options exercised (in shares) (601,800)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
(107,775)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
(574,353)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options exercised (weighted-average price) $ 4.23us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 4.93us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 3.58us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options canceled or forfeited (in shares) 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
(2,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
(13,175)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options canceled or forfeited (weighted-average price) $ 0.00us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 5.92us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 5.42us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options expired (in shares) (1,750)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
(2,625)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
(3,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options expired (weighted-average price) $ 4.34us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 3.45us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 3.56us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
End of period, outstanding (in shares) 1,868,597us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
2,472,147us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
2,584,547us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
End of period (weighted-average price) $ 4.82us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 4.67us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
$ 4.68us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
Options exercisable (in shares) 1,868,597us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember
   
Options exercisable (weighted-average price) $ 4.82us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
/ us-gaap_PlanNameAxis
= ctg_EquityPlanMember