XML 120 R149.htm IDEA: XBRL DOCUMENT v2.4.1.9
Retirement Benefits - Fair Value Measurements of Pension and Postretirement Benefit Plan Assets (Details) (USD $)
In Millions, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Derivative, notional amount $ 1,491invest_DerivativeNotionalAmount $ 2,651invest_DerivativeNotionalAmount  
Net assets pending transactions excluded 42exc_NetAssetsPendingTransactionsExcluded 43exc_NetAssetsPendingTransactionsExcluded  
Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 2,430us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
2,238us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
2,135us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 14,874us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
13,571us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
13,357us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 226us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
115us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
108us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 3,251us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2,470us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2,415us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Equity Security Individually Held [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Equity Security Individually Held [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 272us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
41us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Private Equity Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Private Equity Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 904us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
806us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
754us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Hedge Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 110us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
12us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Hedge Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,329us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,039us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,235us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Real Estate Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 116us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
109us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
95us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Real Estate Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 744us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
582us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
426us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair Value, Measurements, Recurring [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 17,261us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[1],[2] 15,766us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[1],[2]  
Fair Value, Measurements, Recurring [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 2,427us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2,233us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 14,834us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 13,533us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 5,323us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[1],[2] 5,368us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[1],[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 767us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 831us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 4,556us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 4,537us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 8,461us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[1],[2] 7,813us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[1],[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,434us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 1,287us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 7,027us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 6,526us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 3,477us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[1],[2] 2,585us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[1],[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 226us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 115us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 3,251us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2,470us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Cash and Cash Equivalents [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 11us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 51us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Cash and Cash Equivalents [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]    
Fair Value, Measurements, Recurring [Member] | Cash and Cash Equivalents [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 11us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 51us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Cash and Cash Equivalents [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]    
Fair Value, Measurements, Recurring [Member] | Cash and Cash Equivalents [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Cash and Cash Equivalents [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]    
Fair Value, Measurements, Recurring [Member] | Cash and Cash Equivalents [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Cash and Cash Equivalents [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CashAndCashEquivalentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]    
Fair Value, Measurements, Recurring [Member] | Equity Security Individually Held [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 674us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 641us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Individually Held [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 2,691us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2,454us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Individually Held [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 296us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 296us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Individually Held [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,556us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 1,587us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Individually Held [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 378us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 345us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Individually Held [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,133us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 865us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Individually Held [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Individually Held [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Commingled Fund [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 331us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 324us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Commingled Fund [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 2,021us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2,075us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Commingled Fund [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 184us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 154us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Commingled Fund [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,705us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 1,773us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Commingled Fund [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 147us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 170us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Commingled Fund [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 316us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 302us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Commingled Fund [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Security Commingled Fund [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityCommingledFundMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Securities [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,005us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 965us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Securities [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 4,712us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 4,529us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 480us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 450us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 3,261us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 3,360us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 525us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 515us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,449us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 1,167us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Equity Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Treasury and Government [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 74us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 63us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Treasury and Government [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,139us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 1,007us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Treasury and Government [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 15us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 17us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Treasury and Government [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,051us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 908us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Treasury and Government [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 59us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 46us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Treasury and Government [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 88us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 99us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Treasury and Government [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Treasury and Government [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USTreasuryAndGovernmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Government Agencies Debt Securities [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 197us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 149us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Government Agencies Debt Securities [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 80us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 88us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Government Agencies Debt Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Government Agencies Debt Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Government Agencies Debt Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 197us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 149us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Government Agencies Debt Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 80us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 88us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Government Agencies Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | US Government Agencies Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Foreign Government Debt Securities [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Foreign Government Debt Securities [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   205us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Foreign Government Debt Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Foreign Government Debt Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Foreign Government Debt Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Foreign Government Debt Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   205us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Foreign Government Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Foreign Government Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Corporate Debt Securities [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 42us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 50us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Corporate Debt Securities [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 3,245us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2,968us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Corporate Debt Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Corporate Debt Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Corporate Debt Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 42us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 50us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Corporate Debt Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 3,125us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2,927us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Corporate Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Corporate Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 120us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 41us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Other Debt Obligations [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 525us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 530us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Other Debt Obligations [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,094us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 904us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Other Debt Obligations [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 253us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 305us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Other Debt Obligations [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 5us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Other Debt Obligations [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 272us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 225us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Other Debt Obligations [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 942us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 899us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Other Debt Obligations [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Other Debt Obligations [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 152us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_OtherDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Debt Securities [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 838us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 794us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Debt Securities [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 5,546us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 5,045us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Debt Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 268us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 322us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Debt Securities [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,051us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 913us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Debt Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 570us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 472us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Debt Securities [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 4,223us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 4,091us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 272us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 41us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Derivative Financial Instruments, Assets [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3] 7us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3]  
Fair Value, Measurements, Recurring [Member] | Derivative Financial Instruments, Assets [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3]  
Fair Value, Measurements, Recurring [Member] | Derivative Financial Instruments, Assets [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3] 7us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3]  
Fair Value, Measurements, Recurring [Member] | Derivative Financial Instruments, Assets [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3]  
Fair Value, Measurements, Recurring [Member] | Derivative Financial Instruments, Liabilities [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets (16)us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsLiabilitiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3] (134)us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsLiabilitiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3]  
Fair Value, Measurements, Recurring [Member] | Derivative Financial Instruments, Liabilities [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsLiabilitiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsLiabilitiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3]  
Fair Value, Measurements, Recurring [Member] | Derivative Financial Instruments, Liabilities [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets (16)us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsLiabilitiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3] (134)us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsLiabilitiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3]  
Fair Value, Measurements, Recurring [Member] | Derivative Financial Instruments, Liabilities [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsLiabilitiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeFinancialInstrumentsLiabilitiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2],[3]  
Fair Value, Measurements, Recurring [Member] | Private Equity Funds [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Private Equity Funds [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 904us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 806us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Private Equity Funds [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Private Equity Funds [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Private Equity Funds [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Private Equity Funds [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Private Equity Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets   2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Private Equity Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 904us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 806us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Hedge Funds [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 449us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 299us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Hedge Funds [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 2,684us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2,305us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Hedge Funds [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Hedge Funds [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Hedge Funds [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 339us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 295us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Hedge Funds [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,355us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 1,266us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Hedge Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 110us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Hedge Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 1,329us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 1,039us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Real Estate Funds [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 124us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 122us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Real Estate Funds [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 987us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 848us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Real Estate Funds [Member] | Fair Value, Inputs, Level 1 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Real Estate Funds [Member] | Fair Value, Inputs, Level 1 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 243us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 264us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Real Estate Funds [Member] | Fair Value, Inputs, Level 2 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 5us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Real Estate Funds [Member] | Fair Value, Inputs, Level 2 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Real Estate Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets 116us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] 109us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
Fair Value, Measurements, Recurring [Member] | Real Estate Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]      
Defined Benefit Plans and Other Postretirement Benefit Plans Table Text Block [Line Items]      
Defined Benefit Plan, Fair Value of Plan Assets $ 744us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2] $ 582us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_FairValueByMeasurementFrequencyAxis
= us-gaap_FairValueMeasurementsRecurringMember
[2]  
[1] Excludes net assets of $42 million and $43 million at December 31, 2014 and 2013, respectively, which are required to reconcile to the fair value of net plan assets. These items consist primarily of receivables related to pending securities sales, interest and dividends receivable, and payables related to pending securities purchases.
[2] See Note 11—Fair Value of Financial Assets and Liabilities for a description of levels within the fair value hierarchy.
[3] Derivative instruments have a total notional amount of $1,491 million and $2,651 million at December 31, 2014 and 2013, respectively. The notional principal amounts for these instruments provide one measure of the transaction volume outstanding as of the fiscal years ended and do not represent the amount of the company’s exposure to credit or market loss.