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

X
- Definition Adjusted EBITDA before restructuring and unusual or infrequent charges. + References No definition available. + Details
Name: | kfy_AdjustedEarningsBeforeInterestTaxesDepreciationAndAmortization
Namespace Prefix: | kfy_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Earnings before Interest, Taxes, Depreciation and Amortization + References No definition available. + Details
Name: | kfy_EarningsBeforeInterestTaxesDepreciationAndAmortization
Namespace Prefix: | kfy_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Equity In Earnings Of Unconsolidated Subsidiaries + References No definition available. + Details
Name: | kfy_EquityInEarningsOfUnconsolidatedSubsidiaries
Namespace Prefix: | kfy_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of expenses (income) associated with exit or disposal activities pursuant to an authorized plan. + References No definition available. + Details
Name: | kfy_RestructuringIncomeExpenseNet
Namespace Prefix: | kfy_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Separation Costs + References No definition available. + Details
Name: | kfy_SeparationCosts
Namespace Prefix: | kfy_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 805 -SubTopic 10 -Section 25 -Paragraph 23 -URI http://asc.fasb.org/extlink&oid=34752592&loc=d3e1043-128460 + Details
Name: | us-gaap_BusinessCombinationAcquisitionRelatedCosts
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Costs incurred to effect a business combination which have been expensed during the period. Such costs could include business integration costs, systems integration and conversion costs, and severance and other employee-related costs. + References No definition available. + Details
Name: | us-gaap_BusinessCombinationIntegrationRelatedCosts
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 28 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=31042434&loc=d3e3602-108585 + Details
Name: | us-gaap_DepreciationDepletionAndAmortization
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition This item represents the entity's proportionate share for the period of the net income (loss) of its investee (such as unconsolidated subsidiaries and joint ventures) to which the equity method of accounting is applied. This item includes income or expense related to stock-based compensation based on the investor's grant of stock to employees of an equity method investee. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 28 -Subparagraph (b) -URI http://asc.fasb.org/extlink&oid=31042434&loc=d3e3602-108585 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 03 -Paragraph 9 -Article 5 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 323 -SubTopic 10 -Section 45 -Paragraph 1 -URI http://asc.fasb.org/extlink&oid=35755396&loc=d3e33749-111570 Reference 4: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 225 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03.12) -URI http://asc.fasb.org/extlink&oid=26872669&loc=d3e20235-122688 Reference 5: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 04 -Paragraph 11 -Article 7 + Details
Name: | us-gaap_IncomeLossFromEquityMethodInvestments
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 235 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.4-08.(h)) -URI http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 08 -Paragraph h -Article 4 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Income Tax Expense (or Benefit) -URI http://asc.fasb.org/extlink&oid=6515339 Reference 4: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 740 -SubTopic 10 -Section 50 -Paragraph 9 -Subparagraph (a),(b) -URI http://asc.fasb.org/extlink&oid=6907707&loc=d3e32639-109319 + Details
Name: | us-gaap_IncomeTaxExpenseBenefit
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The net amount of nonoperating interest income (expense). + References No definition available. + Details
Name: | us-gaap_InterestIncomeExpenseNonoperatingNet
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The portion of profit or loss for the period, net of income taxes, which is attributable to the parent. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 28 -URI http://asc.fasb.org/extlink&oid=31042434&loc=d3e3602-108585 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 260 -SubTopic 10 -Section 50 -Paragraph 1 -URI http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257 Reference 3: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Other Comprehensive Income -URI http://asc.fasb.org/extlink&oid=6519514 Reference 4: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Glossary Net Income -URI http://asc.fasb.org/extlink&oid=6518256 Reference 5: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 944 -SubTopic 225 -Section S99 -Paragraph 1 -Subparagraph (SX 210.7-04.19) -URI http://asc.fasb.org/extlink&oid=6879464&loc=d3e573970-122913 Reference 6: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 225 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03.18) -URI http://asc.fasb.org/extlink&oid=26872669&loc=d3e20235-122688 Reference 7: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 944 -SubTopic 225 -Section S99 -Paragraph 1 -Subparagraph (SX 210.7-04.22) -URI http://asc.fasb.org/extlink&oid=6879464&loc=d3e573970-122913 Reference 8: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 03 -Paragraph 19 -Article 5 Reference 9: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 04 -Paragraph 20 -Article 9 + Details
Name: | us-gaap_NetIncomeLoss
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business). + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 225 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03.7) -URI http://asc.fasb.org/extlink&oid=26872669&loc=d3e20235-122688 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 03 -Paragraph 7 -Article 5 + Details
Name: | us-gaap_NonoperatingIncomeExpense
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The net result for the period of deducting operating expenses from operating revenues. + References No definition available. + Details
Name: | us-gaap_OperatingIncomeLoss
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The net amount of other income and expense amounts, the components of which are not separately disclosed on the income statement, resulting from ancillary business-related activities (that is, excluding major activities considered part of the normal operations of the business) also known as other nonoperating income (expense) recognized for the period. Such amounts may include: (a) dividends, (b) interest on securities, (c) net gains or losses on securities, (d) unusual costs, (e) gains or losses on foreign exchange transactions, and (f) miscellaneous other income and expense items. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 03 -Paragraph 9 -Article 5 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 225 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03.9) -URI http://asc.fasb.org/extlink&oid=26872669&loc=d3e20235-122688 + Details
Name: | us-gaap_OtherNonoperatingIncomeExpense
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss). + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 225 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03.1) -URI http://asc.fasb.org/extlink&oid=26872669&loc=d3e20235-122688 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 03 -Paragraph 1 -Article 5 + Details
Name: | us-gaap_Revenues
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Aggregate revenue during the period from services rendered in the normal course of business, after deducting allowances and discounts. + References Reference 1: http://www.xbrl.org/2003/role/presentationRef -Publisher FASB -Name Accounting Standards Codification -Topic 225 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03.1(d)) -URI http://asc.fasb.org/extlink&oid=26872669&loc=d3e20235-122688 Reference 2: http://www.xbrl.org/2003/role/presentationRef -Publisher SEC -Name Regulation S-X (SX) -Number 210 -Section 03 -Paragraph 1 -Article 5 + Details
Name: | us-gaap_SalesRevenueServicesNet
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Details
Name: | us-gaap_SegmentReportingInformationLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_ConsolidationItemsAxis=us-gaap_CorporateNonSegmentMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_ConsolidationItemsAxis=us-gaap_OperatingSegmentsMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |