XML 28 R77.htm IDEA: XBRL DOCUMENT v2.4.1.9
Valuation and Qualifying Accounts (Detail) (USD $)
In Thousands, unless otherwise specified
12 Months Ended
Jan. 02, 2015
Jan. 03, 2014
Dec. 28, 2012
Allowance For Bad Debt [Member]      
Valuation and Qualifying Accounts Disclosure [Line Items]      
Balance at Beginning of Year $ 942us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
$ 933us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
$ 819us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
Provision Charged to Expense 264us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
515us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
483us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
Provision Charged to Revenues 0us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
0us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
0us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
Accounts Written-off Net of Recoveries (190)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
[1] (506)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
[1] (369)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
[1]
Balance at End of Year 1,016us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
942us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
933us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForBadDebtMember
Allowance For Contract Losses [Member]      
Valuation and Qualifying Accounts Disclosure [Line Items]      
Balance at Beginning of Year 1,829us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
1,733us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
1,520us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
Provision Charged to Expense 0us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
0us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
0us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
Provision Charged to Revenues 1,454us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
1,189us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
1,280us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
Accounts Written-off Net of Recoveries (913)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
[1] (1,093)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
[1] (1,067)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
[1]
Balance at End of Year $ 2,370us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
$ 1,829us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
$ 1,733us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= expo_AllowanceForContractLossesMember
[1] Balance includes currency translation adjustments.