XML 213 R167.htm IDEA: XBRL DOCUMENT v2.4.1.9
Allowance for Credit Losses (Details) (USD $)
In Millions, unless otherwise specified
3 Months Ended 12 Months Ended
Dec. 31, 2014
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Allowance for Loan and Lease Losses [Roll Forward]        
Provision for credit losses   $ 3,139us-gaap_ProvisionForLoanLeaseAndOtherLosses $ 225us-gaap_ProvisionForLoanLeaseAndOtherLosses $ 3,385us-gaap_ProvisionForLoanLeaseAndOtherLosses
Loans by Impairment Methodology [Abstract]        
Asset-specific 14,686us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment 14,686us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment 17,745us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment 20,175us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
Formula-based 686,122us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment 686,122us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment 653,371us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment 646,904us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
Purchased credit-impaired 46,700us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance 46,700us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance 53,061us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance 59,756us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
Retained loans 747,508jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome 747,508jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome 724,177jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome 726,835jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
Lending-related commitments by impairment methodology        
Asset-specific 103jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology 103jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology 206jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology 355jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
Formula-based 1,056,069jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology 1,056,069jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology 1,031,466jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology 1,027,633jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
Total lending-related commitments 1,056,172jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount 1,056,172jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount 1,031,672jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount 1,027,988jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
Impaired collateral-dependent loans        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for Loan and Lease Losses Write-offs, Net   154us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
272us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
1,050us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
Impaired Collateral Dependent Loans [Abstract]        
Loans measured at fair value of collateral less cost to sell 3,351jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
3,351jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
3,467jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
3,717jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
Allowance for loan losses        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for credit losses, beginning balance   16,264us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
21,936us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
27,609us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Gross charge-offs   6,114us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
7,467us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
10,906us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Gross (recoveries)   (1,355)us-gaap_ValuationAllowancesAndReservesRecoveries
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(1,665)us-gaap_ValuationAllowancesAndReservesRecoveries
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(1,843)us-gaap_ValuationAllowancesAndReservesRecoveries
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for Loan and Lease Losses Write-offs, Net   4,759us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5,802us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
9,063us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Provision for credit losses   3,224us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
188us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,387us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Other   (11)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(5)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for credit losses, ending balance 14,185us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
14,185us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
16,264us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
21,936us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance For Lending Related Commitments, by Impairment Methodology [Abstract]        
Asset-specific, allowance 1,126us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
1,126us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
1,753us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
2,729us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Formula-based 9,734us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
9,734us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
10,353us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
13,496us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Purchased Credit Impaired 3,325us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,325us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,158us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5,711us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Total allowance for loan losses 14,185us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
14,185us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
16,264us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
21,936us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for loan losses | Purchased Credit-Impaired        
Allowance for Loan and Lease Losses [Roll Forward]        
Gross charge-offs   533us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
53us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for lending-related commitments        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for credit losses, beginning balance   705us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
668us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
673us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Provision for credit losses   (85)us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
37us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
(2)us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Other   2us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
(3)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance for credit losses, ending balance 622us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
622us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
705us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
668us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance For Lending Related Commitments, by Impairment Methodology [Abstract]        
Allowance for Lending-Related Commitments, Evaluated at Asset-Specific Impairment Methodology 60jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
60jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
60jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
97jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance for Lending-Related Commitments, Evaluated at Formula-Based Impairment Methodology 562jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
562jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
645jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
571jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Total allowance for loan losses 622us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
622us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
705us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
668us-gaap_FinancingReceivableAllowanceForCreditLosses
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Consumer, excluding credit card        
Loans by Impairment Methodology [Abstract]        
Asset-specific 12,020us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
12,020us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
13,785us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
13,938us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Formula-based 236,263us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
236,263us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
221,609us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
218,945us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Purchased credit-impaired 46,696us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
46,696us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
53,055us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
59,737us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Retained loans 294,979jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
294,979jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
288,449jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
292,620jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Lending-related commitments by impairment methodology        
Asset-specific 0jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
0jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
0jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
0jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Formula-based 58,153jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
58,153jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
56,057jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
60,156jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Total lending-related commitments 58,153jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
58,153jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
56,057jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
60,156jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Consumer, excluding credit card | Purchased Credit-Impaired        
Loans by Impairment Methodology [Abstract]        
Retained loans 46,696jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
46,696jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
53,055jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
 
Consumer, excluding credit card | Impaired collateral-dependent loans        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for Loan and Lease Losses Write-offs, Net   133us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
235us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
973us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Impaired Collateral Dependent Loans [Abstract]        
Loans measured at fair value of collateral less cost to sell 3,025jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
3,025jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
3,105jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
3,272jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
Consumer, excluding credit card | Allowance for loan losses        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for credit losses, beginning balance   8,456us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
12,292us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
16,294us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Gross charge-offs   2,132us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
2,754us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,805us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Gross (recoveries)   (814)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(847)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(508)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for Loan and Lease Losses Write-offs, Net   1,318us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
1,907us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,297us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Provision for credit losses   414us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(1,872)us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
302us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Other   31us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(4)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(7)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for credit losses, ending balance 7,050us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
7,050us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
8,456us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
12,292us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance For Lending Related Commitments, by Impairment Methodology [Abstract]        
Asset-specific, allowance 539us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
539us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
601us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
729us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Formula-based 3,186us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,186us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,697us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5,852us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Purchased Credit Impaired 3,325us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,325us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,158us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5,711us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Total allowance for loan losses 7,050us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
7,050us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
8,456us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
12,292us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Consumer, excluding credit card | Allowance for loan losses | Purchased Credit-Impaired        
Allowance for Loan and Lease Losses [Roll Forward]        
Gross charge-offs 291us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
533us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
53us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Consumer, excluding credit card | Allowance for lending-related commitments        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for credit losses, beginning balance   8us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
7us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
7us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Provision for credit losses   5us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
1us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Other   0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance for credit losses, ending balance 13us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
13us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
8us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
7us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance For Lending Related Commitments, by Impairment Methodology [Abstract]        
Allowance for Lending-Related Commitments, Evaluated at Asset-Specific Impairment Methodology 0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance for Lending-Related Commitments, Evaluated at Formula-Based Impairment Methodology 13jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
13jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
8jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
7jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Total allowance for loan losses 13us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
13us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
8us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
7us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_ConsumerExcludingCreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Credit card        
Loans by Impairment Methodology [Abstract]        
Asset-specific 2,029us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
2,029us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
3,115us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
4,762us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Formula-based 125,998us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
125,998us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
124,350us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
123,231us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Purchased credit-impaired 0us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Retained loans 128,027jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
128,027jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
127,465jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
127,993jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Lending-related commitments by impairment methodology        
Asset-specific 0jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Formula-based 525,963jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
525,963jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
529,383jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
533,018jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Total lending-related commitments 525,963jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
525,963jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
529,383jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
533,018jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Credit card | Impaired collateral-dependent loans        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for Loan and Lease Losses Write-offs, Net   0us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Impaired Collateral Dependent Loans [Abstract]        
Loans measured at fair value of collateral less cost to sell 0jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
0jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
Credit card | Allowance for loan losses        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for credit losses, beginning balance   3,795us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5,501us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
6,999us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Gross charge-offs   3,831us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,472us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5,755us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Gross (recoveries)   (402)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(593)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(811)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for Loan and Lease Losses Write-offs, Net   3,429us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,879us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,944us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Provision for credit losses   3,079us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
2,179us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,444us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Other   (6)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(6)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
2us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for credit losses, ending balance 3,439us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,439us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,795us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5,501us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance For Lending Related Commitments, by Impairment Methodology [Abstract]        
Asset-specific, allowance 500us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
500us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
971us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
1,681us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Formula-based 2,939us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
2,939us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
2,824us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,820us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Purchased Credit Impaired 0us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Total allowance for loan losses 3,439us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,439us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,795us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5,501us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Credit card | Allowance for loan losses | Purchased Credit-Impaired        
Allowance for Loan and Lease Losses [Roll Forward]        
Gross charge-offs   0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Credit card | Allowance for lending-related commitments        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for credit losses, beginning balance   0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Provision for credit losses   0us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Other   0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance for credit losses, ending balance 0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance For Lending Related Commitments, by Impairment Methodology [Abstract]        
Allowance for Lending-Related Commitments, Evaluated at Asset-Specific Impairment Methodology 0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance for Lending-Related Commitments, Evaluated at Formula-Based Impairment Methodology 0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Total allowance for loan losses 0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= jpm_CreditCardLoanPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Wholesale        
Loans by Impairment Methodology [Abstract]        
Asset-specific 637us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
637us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
845us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
1,475us-gaap_FinancingReceivableIndividuallyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Formula-based 323,861us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
323,861us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
307,412us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
304,728us-gaap_FinancingReceivableCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Purchased credit-impaired 4us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
4us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
6us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
19us-gaap_CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesConsumerOutstandingBalance
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Retained loans 324,502jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
324,502jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
308,263jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
306,222jpm_LoansReceivableHeldForInvestmentNetOfDeferredIncome
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Lending-related commitments by impairment methodology        
Asset-specific 103jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
103jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
206jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
355jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Formula-based 471,953jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
471,953jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
446,026jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
434,459jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmountEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Total lending-related commitments 472,056jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
472,056jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
446,232jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
434,814jpm_OffBalanceSheetLendingRelatedFinancialCommitmentsContractualAmount
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Wholesale | Impaired collateral-dependent loans        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for Loan and Lease Losses Write-offs, Net   21us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
37us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
77us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Impaired Collateral Dependent Loans [Abstract]        
Loans measured at fair value of collateral less cost to sell 326jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
326jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
362jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
445jpm_LoansAndLeasesReceivableImpairedCollateralDependentLoansAtFairValue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_ImpairedCollateralDependentLoansMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
Wholesale | Allowance for loan losses        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for credit losses, beginning balance   4,013us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,143us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,316us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Gross charge-offs   151us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
241us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
346us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Gross (recoveries)   (139)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(225)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(524)us-gaap_ValuationAllowancesAndReservesRecoveries
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for Loan and Lease Losses Write-offs, Net   12us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
16us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(178)us-gaap_AllowanceForLoanAndLeaseLossesWriteoffsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Provision for credit losses   (269)us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(119)us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
(359)us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Other   (36)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
5us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
8us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance for credit losses, ending balance 3,696us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,696us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,013us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,143us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Allowance For Lending Related Commitments, by Impairment Methodology [Abstract]        
Asset-specific, allowance 87us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
87us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
181us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
319us-gaap_FinancingReceivableAllowanceForCreditLossesIndividuallyEvaluatedForImpairment1
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Formula-based 3,609us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,609us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,832us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,824us-gaap_FinancingReceivableAllowanceForCreditLossesCollectivelyEvaluatedForImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Purchased Credit Impaired 0us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_CertainLoansAndDebtSecuritiesAcquiredInTransferAllowanceForCreditLossesDueToSubsequentImpairment
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Total allowance for loan losses 3,696us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
3,696us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,013us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
4,143us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Wholesale | Allowance for loan losses | Purchased Credit-Impaired        
Allowance for Loan and Lease Losses [Roll Forward]        
Gross charge-offs   0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
0us-gaap_AllowanceForLoanAndLeaseLossesWriteOffs
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= jpm_PurchasedCreditImpairedMember
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForLoansAndLeasesReceivableMember
Wholesale | Allowance for lending-related commitments        
Allowance for Loan and Lease Losses [Roll Forward]        
Allowance for credit losses, beginning balance   697us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
661us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
666us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Provision for credit losses   (90)us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
36us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
(2)us-gaap_ProvisionForLoanLeaseAndOtherLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Other   2us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
0us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
(3)us-gaap_AllowanceForLoanAndLeaseLossesAdjustmentsNet
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance for credit losses, ending balance 609us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
609us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
697us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
661us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance For Lending Related Commitments, by Impairment Methodology [Abstract]        
Allowance for Lending-Related Commitments, Evaluated at Asset-Specific Impairment Methodology 60jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
60jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
60jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
97jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtAssetSpecificImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Allowance for Lending-Related Commitments, Evaluated at Formula-Based Impairment Methodology 549jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
549jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
637jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
564jpm_AllowanceForLendingRelatedCommitmentsEvaluatedAtFormulaBasedImpairmentMethodology
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
Total allowance for loan losses $ 609us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
$ 609us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
$ 697us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember
$ 661us-gaap_FinancingReceivableAllowanceForCreditLosses
/ jpm_PortfolioSegmentAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= jpm_AllowanceForLendingRelatedCommitmentsMember