XML 53 R127.htm IDEA: XBRL DOCUMENT v2.4.1.9
Pension and Other Postretirement Employee Benefit Plans - Changes In Level 3 Fair Value Measurements (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
U.S. defined benefit pension plans      
Change in plan assets      
Fair value of plan assets, end of year $ 14,623us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
$ 14,354us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
$ 13,012us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
U.S. defined benefit pension plans | Equity securities      
Change in plan assets      
Fair value of plan assets, end of year 5,310us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
5,449us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Common/collective trust funds      
Change in plan assets      
Fair value of plan assets, end of year 1,630us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
1,312us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Total limited partnerships      
Change in plan assets      
Fair value of plan assets, end of year 3,116us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
3,871us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Hedge funds      
Change in plan assets      
Fair value of plan assets, end of year 103us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
1,073us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Private equity      
Change in plan assets      
Fair value of plan assets, end of year 2,208us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
1,969us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Real estate      
Change in plan assets      
Fair value of plan assets, end of year 533us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
558us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Real assets      
Change in plan assets      
Fair value of plan assets, end of year 272us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
271us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Corporate debt securities      
Change in plan assets      
Fair value of plan assets, end of year 1,463us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
1,230us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Mortgage-backed securities      
Change in plan assets      
Fair value of plan assets, end of year 75us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
87us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. defined benefit pension plans | Other      
Change in plan assets      
Fair value of plan assets, end of year 2,395us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
1,685us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
OPEB Plans      
Change in plan assets      
Fair value of plan assets, end of year 1,903us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
1,757us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
1,563us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Level 3 | U.S. defined benefit pension plans      
Change in plan assets      
Fair value of plan assets, beginning of year 3,961us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4,311us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,608us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 439us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
329us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
78us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) (67)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
218us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
150us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net (960)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(891)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
471us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 6us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(6)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 3,379us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,961us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4,311us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Equity securities      
Change in plan assets      
Fair value of plan assets, beginning of year 4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net 0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Common/collective trust funds      
Change in plan assets      
Fair value of plan assets, beginning of year 4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
199us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
202us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
59us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) 1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(32)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
22us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net 3us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(222)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(27)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
199us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_TrustFundsCommonOrCollectiveMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Total limited partnerships      
Change in plan assets      
Fair value of plan assets, beginning of year 3,516us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,687us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2,976us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 441us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
270us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
76us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) 23us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
240us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
136us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net (968)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(669)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
499us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 8us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(12)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 3,020us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,516us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,687us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_LimitedPartnershipsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Hedge funds      
Change in plan assets      
Fair value of plan assets, beginning of year 718us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,166us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,039us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 193us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
137us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) (180)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
14us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
71us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net (662)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(593)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
55us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 8us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(6)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 77us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
718us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,166us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_HedgeFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Private equity      
Change in plan assets      
Fair value of plan assets, beginning of year 1,969us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,743us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,367us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 192us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
108us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
59us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) 173us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
170us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
54us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net (126)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(4)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
263us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(48)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 2,208us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,969us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,743us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Real estate      
Change in plan assets      
Fair value of plan assets, beginning of year 558us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
467us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
306us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 29us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
21us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
16us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) 36us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
44us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net (90)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
26us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
144us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 533us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
558us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
467us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Real assets      
Change in plan assets      
Fair value of plan assets, beginning of year 271us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
311us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
264us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 27us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) (6)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
12us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
10us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net (90)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(98)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
37us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
42us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 202us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
271us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
311us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_RealAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Corporate debt securities      
Change in plan assets      
Fair value of plan assets, beginning of year 7us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) (2)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) 2us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net 4us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 (2)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
6us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 9us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
7us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | U.S. defined benefit pension plans | Mortgage-backed securities      
Change in plan assets      
Fair value of plan assets, beginning of year 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
   
Realized gains/(losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
   
Unrealized gains/(losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
   
Purchases, sales and settlements, net 1us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
   
Transfers in and/or out of level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
   
Fair value of plan assets, end of year 1us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_MortgageBackedSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
   
Level 3 | U.S. defined benefit pension plans | Other      
Change in plan assets      
Fair value of plan assets, beginning of year 430us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
420us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
427us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) (93)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
10us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(7)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net 0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year 337us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
430us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
420us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= jpm_PlanAssetCategoriesOtherMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Level 3 | OPEB Plans      
Change in plan assets      
Fair value of plan assets, beginning of year 1,749us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,554us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,427us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Realized gains/(losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsSoldDuringPeriod
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Unrealized gains/(losses) 154us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
195us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
127us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, sales and settlements, net 0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers in and/or out of level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Fair value of plan assets, end of year $ 1,903us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 1,749us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 1,554us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member