XML 82 R49.htm IDEA: XBRL DOCUMENT v2.4.1.9
Fair Value Measures - Assets and Liabilities Measured at Fair Value on Recurring Basis (Detail) (Fair Value, Measurements, Recurring, USD $)
In Thousands, unless otherwise specified
Apr. 30, 2015
Oct. 31, 2014
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Total assets $ 705,727us-gaap_AssetsFairValueDisclosure $ 563,872us-gaap_AssetsFairValueDisclosure
Total liabilities 19,103us-gaap_LiabilitiesFairValueDisclosure 11,755us-gaap_LiabilitiesFairValueDisclosure
Foreign currency derivative contracts
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Prepaid and other current assets 13,666us-gaap_ForeignCurrencyContractAssetFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,300us-gaap_ForeignCurrencyContractAssetFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Accounts payable and accrued liabilities 19,103us-gaap_AccountsPayableAndAccruedLiabilitiesFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
11,755us-gaap_AccountsPayableAndAccruedLiabilitiesFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Deferred compensation plan assets
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Other long-term assets 157,537us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ invest_InvestmentAxis
= snps_DeferredCompensationPlanAssetsMember
145,508us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ invest_InvestmentAxis
= snps_DeferredCompensationPlanAssetsMember
Quoted Prices in Active Markets for Identical Assets (Level 1)
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Total assets 552,083us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
554,572us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Quoted Prices in Active Markets for Identical Assets (Level 1) | Foreign currency derivative contracts
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Prepaid and other current assets 0us-gaap_ForeignCurrencyContractAssetFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_ForeignCurrencyContractAssetFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Accounts payable and accrued liabilities 0us-gaap_AccountsPayableAndAccruedLiabilitiesFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AccountsPayableAndAccruedLiabilitiesFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Quoted Prices in Active Markets for Identical Assets (Level 1) | Deferred compensation plan assets
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Other long-term assets 157,537us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ invest_InvestmentAxis
= snps_DeferredCompensationPlanAssetsMember
145,508us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ invest_InvestmentAxis
= snps_DeferredCompensationPlanAssetsMember
Significant Other Observable Inputs (Level 2)
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Total assets 153,644us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,300us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities 19,103us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
11,755us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Significant Other Observable Inputs (Level 2) | Foreign currency derivative contracts
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Prepaid and other current assets 13,666us-gaap_ForeignCurrencyContractAssetFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
9,300us-gaap_ForeignCurrencyContractAssetFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Accounts payable and accrued liabilities 19,103us-gaap_AccountsPayableAndAccruedLiabilitiesFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
11,755us-gaap_AccountsPayableAndAccruedLiabilitiesFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Significant Other Observable Inputs (Level 2) | Deferred compensation plan assets
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Other long-term assets 0us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ invest_InvestmentAxis
= snps_DeferredCompensationPlanAssetsMember
0us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ invest_InvestmentAxis
= snps_DeferredCompensationPlanAssetsMember
Significant Unobservable Inputs (Level 3)
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Total assets 0us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Total liabilities 0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_LiabilitiesFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Significant Unobservable Inputs (Level 3) | Foreign currency derivative contracts
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Prepaid and other current assets 0us-gaap_ForeignCurrencyContractAssetFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_ForeignCurrencyContractAssetFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Accounts payable and accrued liabilities 0us-gaap_AccountsPayableAndAccruedLiabilitiesFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
0us-gaap_AccountsPayableAndAccruedLiabilitiesFairValueDisclosure
/ us-gaap_DerivativeByNatureAxis
= us-gaap_ForwardContractsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
Significant Unobservable Inputs (Level 3) | Deferred compensation plan assets
   
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Other long-term assets 0us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ invest_InvestmentAxis
= snps_DeferredCompensationPlanAssetsMember
0us-gaap_OtherAssetsFairValueDisclosure
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ invest_InvestmentAxis
= snps_DeferredCompensationPlanAssetsMember
Cash equivalents | Money market funds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Cash equivalents 394,546us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
409,064us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
Cash equivalents | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Cash equivalents 3,399us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
 
Cash equivalents | Quoted Prices in Active Markets for Identical Assets (Level 1) | Money market funds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Cash equivalents 394,546us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
409,064us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
Cash equivalents | Quoted Prices in Active Markets for Identical Assets (Level 1) | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Cash equivalents 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
 
Cash equivalents | Significant Other Observable Inputs (Level 2) | Money market funds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Cash equivalents 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
Cash equivalents | Significant Other Observable Inputs (Level 2) | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Cash equivalents 3,399us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
 
Cash equivalents | Significant Unobservable Inputs (Level 3) | Money market funds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Cash equivalents 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
Cash equivalents | Significant Unobservable Inputs (Level 3) | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Cash equivalents 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_CashEquivalentsMember
 
Short-term investments | Certificates of deposit    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 5,950us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 5,893us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | U.S. government agency securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 24,912us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Municipal bonds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 1,406us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Corporate debt securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 67,845us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Asset-backed securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 30,573us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Quoted Prices in Active Markets for Identical Assets (Level 1) | Certificates of deposit    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Quoted Prices in Active Markets for Identical Assets (Level 1) | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Quoted Prices in Active Markets for Identical Assets (Level 1) | U.S. government agency securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Quoted Prices in Active Markets for Identical Assets (Level 1) | Municipal bonds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Quoted Prices in Active Markets for Identical Assets (Level 1) | Corporate debt securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Quoted Prices in Active Markets for Identical Assets (Level 1) | Asset-backed securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Other Observable Inputs (Level 2) | Certificates of deposit    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 5,950us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Other Observable Inputs (Level 2) | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 5,893us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Other Observable Inputs (Level 2) | U.S. government agency securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 24,912us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Other Observable Inputs (Level 2) | Municipal bonds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 1,406us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Other Observable Inputs (Level 2) | Corporate debt securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 67,845us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Other Observable Inputs (Level 2) | Asset-backed securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 30,573us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Unobservable Inputs (Level 3) | Certificates of deposit    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CertificatesOfDepositMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Unobservable Inputs (Level 3) | Commercial paper    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Unobservable Inputs (Level 3) | U.S. government agency securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Unobservable Inputs (Level 3) | Municipal bonds    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MunicipalBondsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Unobservable Inputs (Level 3) | Corporate debt securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember
 
Short-term investments | Significant Unobservable Inputs (Level 3) | Asset-backed securities    
Fair Value, Balance Sheet Grouping, Financial Statement Captions [Line Items]    
Short-term investments $ 0us-gaap_InvestmentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_AssetBackedSecuritiesMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
/ us-gaap_InvestmentTypeAxis
= us-gaap_ShortTermInvestmentsMember