XML 26 R55.htm IDEA: XBRL DOCUMENT v2.4.1.9
Asset Quality - Breakdown of Nonperforming TDRs by Loans Category (Detail) (USD $)
In Millions, unless otherwise specified
3 Months Ended 12 Months Ended
Mar. 31, 2015
SecurityLoan
Mar. 31, 2014
SecurityLoan
Dec. 31, 2014
SecurityLoan
Financing Receivable, Modifications [Line Items]      
Number of loans 4,740us-gaap_FinancingReceivableModificationsNumberOfContracts2 4,858us-gaap_FinancingReceivableModificationsNumberOfContracts2 4,776us-gaap_FinancingReceivableModificationsNumberOfContracts2
Pre-modification Outstanding Recorded Investment $ 343us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2 $ 406us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2 $ 349us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
Post-modification Outstanding Recorded Investment 268us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 294us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2 270us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 2,051us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
2,347us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
2,391us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 176us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
249us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
200us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 141us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
178us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
157us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 2,689us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2,511us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2,385us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 167us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
157us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
149us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 127us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
116us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
113us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Commercial, Financial and Agricultural [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 11us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
28us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
14us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 25us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
58us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
25us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 22us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
33us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
23us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Commercial, Financial and Agricultural [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 17us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
42us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
20us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 6us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
7us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
6us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
4us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialFinancialAndAgriculturalMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Commercial Real Estate: Commercial Mortgage [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 12us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
11us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
10us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 37us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
40us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
38us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 13us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
14us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
13us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Commercial Real Estate: Commercial Mortgage [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 1us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
4us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
1us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
18us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateCommercialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Commercial Real Estate: Construction [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans   5us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateConstructionMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateConstructionMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment   16us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateConstructionMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
5us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateConstructionMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment   2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateConstructionMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
 
Commercial Real Estate Loans [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 12us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
16us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
11us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 37us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
56us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
43us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 13us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
16us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
13us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Commercial Real Estate Loans [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 1us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
4us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
1us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
18us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_CommercialRealEstateLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Commercial Loans [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 23us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
44us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
25us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 62us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
114us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
68us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 35us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
49us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
36us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Commercial Loans [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 18us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
46us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
21us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 8us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
25us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
8us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 4us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
12us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
4us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_CommercialPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Real Estate - Residential Mortgage [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 383us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
687us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
453us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 22us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
42us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
27us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 22us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
42us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
27us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Real Estate - Residential Mortgage [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 454us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
111us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
381us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 34us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
12us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
29us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 34us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
12us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
29us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_RealEstateResidentialMortgageMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Home Equity: Key Community Bank [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 1,071us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1,190us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1,184us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 76us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
73us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
79us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 70us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
69us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
72us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Home Equity: Key Community Bank [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 803us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
708us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
674us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 47us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
40us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
41us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 41us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
37us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
36us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Home Equity: Other [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 128us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
132us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
158us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 4us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
4us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
4us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
4us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
4us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Home Equity: Other [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 339us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
312us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
310us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 10us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
9us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
9us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityOtherMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Home Equity Loans [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 1,199us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1,322us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1,342us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 80us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
77us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
83us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 73us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
73us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
76us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Home Equity Loans [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 1,142us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
1,020us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
984us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 57us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
49us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
50us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 49us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
45us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
44us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_HomeEquityLoansMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Consumer Other - Key Community Bank [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 28us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
33us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
37us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 1us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Consumer Other - Key Community Bank [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 51us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
51us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
45us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerOtherKeyCommunityBankMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Consumer Credit Card Financing Receivable [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 275us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
10us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
290us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
  2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
  2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Consumer Credit Card Financing Receivable [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 519us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
785us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
514us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 4us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
5us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
4us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
5us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerCreditCardFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Consumer Marine [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 117us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
210us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
206us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 8us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
14us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
17us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
12us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
14us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Consumer Marine [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 429us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
430us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
373us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 60us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
62us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
54us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 35us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
39us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
31us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_ConsumerMarineMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Other Consumer [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 26us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
41us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
38us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 1us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Other Consumer [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 76us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
68us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
67us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= key_OtherConsumerMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Consumer Other [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 143us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
251us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
244us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 9us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
15us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
18us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 9us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
13us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
15us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Consumer Other [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 505us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
498us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
440us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 62us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
64us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
56us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment 36us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
40us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
32us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Consumer Loans [Member] | Nonperforming [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 2,028us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
2,303us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
2,366us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Pre-modification Outstanding Recorded Investment 114us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
135us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
132us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Post-modification Outstanding Recorded Investment 106us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
129us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
121us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Consumer Loans [Member] | Prior-Year Accruing [Member]      
Financing Receivable, Modifications [Line Items]      
Number of loans 2,671us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2,465us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
2,364us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Pre-modification Outstanding Recorded Investment 159us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
132us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
141us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
Post-modification Outstanding Recorded Investment $ 123us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
$ 104us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember
$ 109us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_FinancingReceivableTroubledDebtRestructuringAxis
= us-gaap_ConsumerPortfolioSegmentMember
/ us-gaap_InternalCreditAssessmentAxis
= key_PriorYearAccruingMember