XML 239 R150.htm IDEA: XBRL DOCUMENT v2.4.1.9
Retirement Benefits - Reconciliation of Level 3 Assets and Liabilities measured at Fair Value for Pension and Other Postretirement Benefit Plans (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Pension Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year $ 13,571us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
$ 13,357us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
Purchases 454us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
Fair value of net plan assets at end of year 14,874us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
13,571us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
Other Postretirement Benefit Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 2,238us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
2,135us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Purchases 0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Fair value of net plan assets at end of year 2,430us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
2,238us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Fair Value, Inputs, Level 3 [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Transfers into (out of) Level 3 56us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 279us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
292us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Relating to assets sold during the period 3us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 847us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
752us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales (60)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(167)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements (301)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] (198)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3 13us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2],[3] (623)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member] | Constellation Energy Group Acquisition [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Transfers into (out of) Level 3   825us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_BusinessAcquisitionAxis
= exc_ConstellationEnergyGroupAcquisitionMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 14us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
12us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 111us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales (13)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements (1)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] (4)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3   (4)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Hedge Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 77us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
143us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Relating to assets sold during the period 3us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 311us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
360us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales (38)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(76)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements (33)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] (3)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3 (30)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2],[3] (623)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Hedge Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 109us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales (4)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] (4)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3   (4)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Private Equity Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 112us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
86us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Relating to assets sold during the period 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 173us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
123us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales 0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements (203)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] (157)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3 16us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2],[3] 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Private Equity Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 1us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales (2)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements (1)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3   0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Real Estate Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 83us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
63us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Relating to assets sold during the period 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(4)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 136us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
226us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales (19)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(91)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements (65)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] (38)us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3 27us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2],[3] 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Real Estate Funds [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 13us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
11us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 1us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales (7)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3   0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 7us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Relating to assets sold during the period 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 227us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
41us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales (3)us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2],[3] 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Debt Securities [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales 0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3   0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Equity Security Individually Held [Member] | Fair Value, Inputs, Level 3 [Member] | Pension Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Relating to assets sold during the period 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales 0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2],[3] 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_PensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Equity Security Individually Held [Member] | Fair Value, Inputs, Level 3 [Member] | Other Postretirement Benefit Plan, Defined Benefit [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Fair value of net plan assets at beginning of year 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
Relating to assets still held at the reporting date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases 0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanBusinessCombinationsAndAcquisitionsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Sales 0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanDivestituresPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Settlements 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] 0us-gaap_DefinedBenefitPlanSettlementsPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1]
Transfers into (out of) Level 3   0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_EquitySecurityIndividuallyHeldMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[2]
Fair value of net plan assets at end of year 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
Hedge Fund Investments [Member] | Fair Value, Inputs, Level 3 [Member]    
Defined Benefit Plan, Change in Fair Value of Plan Assets [Roll Forward]    
Transfers into (out of) Level 3 $ 43us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_HedgeFundInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 627us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= exc_HedgeFundInvestmentsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
[1] Represents cash settlements only.
[2] As of January 1, 2014 and January 1, 2013, hedge fund investments that contained redemption restrictions limiting Exelon’s ability to redeem the investments within a reasonable period of time were classified as Level 3 investments. As of December 31, 2014 and December 31, 2013, restrictions for certain investments no longer applied, therefore allowing redemption within a reasonable period of time from the measurement date at NAV. As such, these hedge fund investments are reflected as transfers out of Level 3 to Level 2 of $43 million and $627 million in 2014 and 2013 respectively.
[3] In connection with the Employee Matters Agreement between EDF and Exelon, Exelon assumed the pension plan assets of Nine Mile Point Nuclear Station, LLC and Constellation Energy Nuclear Group, LLC resulting in transfers into Level 3 of $56 million.