XML 20 R47.htm IDEA: XBRL DOCUMENT v2.4.1.9
Business Segments (Detail) (USD $)
In Thousands, unless otherwise specified
3 Months Ended 9 Months Ended
Jan. 31, 2015
Jan. 31, 2014
Jan. 31, 2015
Jan. 31, 2014
Segment Reporting Information [Line Items]        
Fee revenue $ 249,545us-gaap_SalesRevenueServicesNet $ 242,184us-gaap_SalesRevenueServicesNet $ 756,435us-gaap_SalesRevenueServicesNet $ 708,589us-gaap_SalesRevenueServicesNet
Total revenue 258,871us-gaap_Revenues 250,937us-gaap_Revenues 783,913us-gaap_Revenues 734,761us-gaap_Revenues
Net income 22,939us-gaap_NetIncomeLoss 21,304us-gaap_NetIncomeLoss 62,875us-gaap_NetIncomeLoss 51,480us-gaap_NetIncomeLoss
Other loss (income), net 1,478us-gaap_OtherNonoperatingIncomeExpense (1,132)us-gaap_OtherNonoperatingIncomeExpense (3,061)us-gaap_OtherNonoperatingIncomeExpense (7,751)us-gaap_OtherNonoperatingIncomeExpense
Interest (income) expense, net (288)us-gaap_InterestIncomeExpenseNonoperatingNet 873us-gaap_InterestIncomeExpenseNonoperatingNet 1,426us-gaap_InterestIncomeExpenseNonoperatingNet 2,102us-gaap_InterestIncomeExpenseNonoperatingNet
Equity in earnings of unconsolidated subsidiaries, net (778)kfy_EquityInEarningsOfUnconsolidatedSubsidiaries (470)kfy_EquityInEarningsOfUnconsolidatedSubsidiaries (1,696)kfy_EquityInEarningsOfUnconsolidatedSubsidiaries (1,492)kfy_EquityInEarningsOfUnconsolidatedSubsidiaries
Income tax provision 9,576us-gaap_IncomeTaxExpenseBenefit 6,727us-gaap_IncomeTaxExpenseBenefit 26,392us-gaap_IncomeTaxExpenseBenefit 22,789us-gaap_IncomeTaxExpenseBenefit
Operating income 32,927us-gaap_OperatingIncomeLoss 27,302us-gaap_OperatingIncomeLoss 85,936us-gaap_OperatingIncomeLoss 67,128us-gaap_OperatingIncomeLoss
Depreciation and amortization 6,814us-gaap_DepreciationDepletionAndAmortization 6,333us-gaap_DepreciationDepletionAndAmortization 20,363us-gaap_DepreciationDepletionAndAmortization 18,857us-gaap_DepreciationDepletionAndAmortization
Other (loss) income, net (1,478)us-gaap_NonoperatingIncomeExpense 1,132us-gaap_NonoperatingIncomeExpense 3,061us-gaap_NonoperatingIncomeExpense 7,751us-gaap_NonoperatingIncomeExpense
Equity in earnings of unconsolidated subsidiaries, net 778us-gaap_IncomeLossFromEquityMethodInvestments 470us-gaap_IncomeLossFromEquityMethodInvestments 1,696us-gaap_IncomeLossFromEquityMethodInvestments 1,492us-gaap_IncomeLossFromEquityMethodInvestments
EBITDA 39,041kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization 35,237kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization 111,056kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization 95,228kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
Restructuring (recoveries) charges, net (418)kfy_RestructuringIncomeExpenseNet   9,468kfy_RestructuringIncomeExpenseNet 3,682kfy_RestructuringIncomeExpenseNet
Separation costs       4,500kfy_SeparationCosts
Acquisition costs 445us-gaap_BusinessCombinationAcquisitionRelatedCosts   445us-gaap_BusinessCombinationAcquisitionRelatedCosts  
Integration costs       394us-gaap_BusinessCombinationIntegrationRelatedCosts
Adjusted EBITDA 39,068kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization 35,237kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization 120,969kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization 103,804kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
Operating Segments | Executive Recruitment        
Segment Reporting Information [Line Items]        
Fee revenue 143,479us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
144,042us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
440,824us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
420,689us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
Total revenue 148,987us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
149,687us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
457,581us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
437,458us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
Operating income 33,583us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
31,622us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
87,680us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
88,029us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
Depreciation and amortization 1,593us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
1,620us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
5,048us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
5,398us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
Other (loss) income, net (135)us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
254us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
537us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
1,086us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
Equity in earnings of unconsolidated subsidiaries, net 103us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
36us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
281us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
258us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
EBITDA 35,144kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
33,532kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
93,546kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
94,771kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
Restructuring (recoveries) charges, net (148)kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
  5,384kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
1,336kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
Adjusted EBITDA 34,996kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
33,532kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
98,930kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
96,107kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
Operating Segments | Executive Recruitment | North America        
Segment Reporting Information [Line Items]        
Fee revenue 78,026us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
77,208us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
243,055us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
226,538us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
Total revenue 81,521us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
80,926us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
253,855us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
237,771us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
Operating income 22,673us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
19,919us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
60,788us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
51,773us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
Depreciation and amortization 867us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
849us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
2,662us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
2,732us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
Other (loss) income, net (225)us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
81us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
98us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
529us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
Equity in earnings of unconsolidated subsidiaries, net 103us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
36us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
281us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
258us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
EBITDA 23,418kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
20,885kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
63,829kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
55,292kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
Restructuring (recoveries) charges, net     1,151kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
816kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
Adjusted EBITDA 23,418kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
20,885kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
64,980kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
56,108kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_NorthAmericaMember
Operating Segments | Executive Recruitment | EMEA        
Segment Reporting Information [Line Items]        
Fee revenue 36,816us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
39,144us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
113,788us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
107,742us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
Total revenue 37,868us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
40,381us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
117,351us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
111,078us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
Operating income 5,073us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
6,649us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
13,337us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
18,469us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
Depreciation and amortization 431us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
452us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
1,366us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
1,339us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
Other (loss) income, net 24us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
121us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
69us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
403us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
EBITDA 5,528kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
7,222kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
14,772kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
20,211kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
Restructuring (recoveries) charges, net     3,987kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
460kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
Adjusted EBITDA 5,528kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
7,222kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
18,759kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
20,671kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_EMEAMember
Operating Segments | Executive Recruitment | Asia Pacific        
Segment Reporting Information [Line Items]        
Fee revenue 20,924us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
20,213us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
61,615us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
63,063us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
Total revenue 21,874us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
20,820us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
63,959us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
65,087us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
Operating income 4,096us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
3,922us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
10,042us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
12,894us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
Depreciation and amortization 216us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
267us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
771us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
1,102us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
Other (loss) income, net 25us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
52us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
283us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
144us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
EBITDA 4,337kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
4,241kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
11,096kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
14,140kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
Restructuring (recoveries) charges, net     17kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
60kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
Adjusted EBITDA 4,337kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
4,241kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
11,113kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
14,200kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_AsiaPacificMember
Operating Segments | Executive Recruitment | South America        
Segment Reporting Information [Line Items]        
Fee revenue 7,713us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
7,477us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
22,366us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
23,346us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
Total revenue 7,724us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
7,560us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
22,416us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
23,522us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
Operating income 1,741us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
1,132us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
3,513us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
4,893us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
Depreciation and amortization 79us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
52us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
249us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
225us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
Other (loss) income, net 41us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
  87us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
10us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
EBITDA 1,861kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
1,184kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
3,849kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
5,128kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
Restructuring (recoveries) charges, net (148)kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
  229kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
 
Adjusted EBITDA 1,713kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
1,184kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
4,078kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
5,128kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_ExecutiveRecruitmentMember
/ us-gaap_StatementGeographicalAxis
= us-gaap_SouthAmericaMember
Operating Segments | LTC        
Segment Reporting Information [Line Items]        
Fee revenue 64,313us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
62,217us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
194,269us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
188,357us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
Total revenue 66,048us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
64,282us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
199,945us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
194,566us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
Operating income 8,577us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
5,651us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
19,799us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
16,992us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
Depreciation and amortization 3,317us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
3,272us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
9,848us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
9,330us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
Other (loss) income, net (156)us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
92us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
(111)us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
145us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
EBITDA 11,738kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
9,015kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
29,536kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
26,467kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
Restructuring (recoveries) charges, net     2,758kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
1,149kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
Adjusted EBITDA 11,738kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
9,015kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
32,294kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
27,616kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_LeadershipAndTalentConsultingServicesMember
Operating Segments | Futurestep        
Segment Reporting Information [Line Items]        
Fee revenue 41,753us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
35,925us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
121,342us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
99,543us-gaap_SalesRevenueServicesNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
Total revenue 43,836us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
36,968us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
126,387us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
102,737us-gaap_Revenues
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
Operating income 5,760us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
3,925us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
14,367us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
9,009us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
Depreciation and amortization 469us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
437us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
1,374us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
1,285us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
Other (loss) income, net 4us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
28us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
27us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
576us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
EBITDA 6,233kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
4,390kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
15,768kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
10,870kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
Restructuring (recoveries) charges, net (270)kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
  1,154kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
1,134kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
Adjusted EBITDA 5,963kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
4,390kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
16,922kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
12,004kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_OperatingSegmentsMember
/ us-gaap_StatementBusinessSegmentsAxis
= kfy_FuturestepMember
Corporate        
Segment Reporting Information [Line Items]        
Operating income (14,993)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(13,896)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(35,910)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(46,902)us-gaap_OperatingIncomeLoss
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Depreciation and amortization 1,435us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
1,004us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
4,093us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
2,844us-gaap_DepreciationDepletionAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Other (loss) income, net (1,191)us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
758us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
2,608us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
5,944us-gaap_NonoperatingIncomeExpense
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Equity in earnings of unconsolidated subsidiaries, net 675us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
434us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
1,415us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
1,234us-gaap_IncomeLossFromEquityMethodInvestments
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
EBITDA (14,074)kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(11,700)kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(27,794)kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
(36,880)kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Restructuring (recoveries) charges, net     172kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
63kfy_RestructuringIncomeExpenseNet
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Separation costs       4,500kfy_SeparationCosts
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Acquisition costs 445us-gaap_BusinessCombinationAcquisitionRelatedCosts
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
  445us-gaap_BusinessCombinationAcquisitionRelatedCosts
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
 
Integration costs       394us-gaap_BusinessCombinationIntegrationRelatedCosts
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
Adjusted EBITDA $ (13,629)kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
$ (11,700)kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
$ (27,177)kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember
$ (31,923)kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
/ us-gaap_ConsolidationItemsAxis
= us-gaap_CorporateNonSegmentMember