XML 20 R54.htm IDEA: XBRL DOCUMENT v2.4.1.9
Asset Quality - Breakdown of Individually Impaired Loans (Detail) (USD $)
In Millions, unless otherwise specified
3 Months Ended 12 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Dec. 31, 2014
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment $ 128us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment $ 163us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment $ 115us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
Recorded Investment 338us-gaap_ImpairedFinancingReceivableRecordedInvestment 304us-gaap_ImpairedFinancingReceivableRecordedInvestment 302us-gaap_ImpairedFinancingReceivableRecordedInvestment
With no related allowance recorded, Unpaid Principal Balance 165us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance 205us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance 133us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
Unpaid Principal Balance 376us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance 349us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance 320us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
With no related allowance recorded, Average Recorded Investment 121us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment 182us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment 131us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
With related allowance recorded, Recorded Investment 210us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment 141us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment 187us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
With related allowance recorded, Unpaid Principal Balance 211us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance 144us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance 187us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
Specific Allowance 49us-gaap_ImpairedFinancingReceivableRelatedAllowance 34us-gaap_ImpairedFinancingReceivableRelatedAllowance 40us-gaap_ImpairedFinancingReceivableRelatedAllowance
With related allowance recorded, Average Recorded Investment 199us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment 149us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment 169us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
Average Recorded Investment 320us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment 331us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment 300us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
Commercial, Financial and Agricultural [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 20us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
33us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
6us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
With no related allowance recorded, Unpaid Principal Balance 51us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
60us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
17us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
With no related allowance recorded, Average Recorded Investment 13us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
33us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
8us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
With related allowance recorded, Recorded Investment 62us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
7us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
37us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
With related allowance recorded, Unpaid Principal Balance 62us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
10us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
37us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
Specific Allowance 20us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
9us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
With related allowance recorded, Average Recorded Investment 50us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
12us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
28us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialFinancialAndAgriculturalMember
Commercial Real Estate: Commercial Mortgage [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 14us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
23us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
15us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
With no related allowance recorded, Unpaid Principal Balance 19us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
28us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
20us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
With no related allowance recorded, Average Recorded Investment 14us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
22us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
19us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
With related allowance recorded, Recorded Investment 6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
With related allowance recorded, Unpaid Principal Balance 7us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
Specific Allowance 2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
1us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
With related allowance recorded, Average Recorded Investment 6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateCommercialMortgageMember
Commercial Real Estate: Construction [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 7us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
7us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
5us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
With no related allowance recorded, Unpaid Principal Balance 7us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
17us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
6us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
With no related allowance recorded, Average Recorded Investment 6us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
27us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
7us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
With related allowance recorded, Recorded Investment     3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
With related allowance recorded, Unpaid Principal Balance     3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
Specific Allowance     1us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
With related allowance recorded, Average Recorded Investment 1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateConstructionMember
Commercial Real Estate Loans [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 21us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
30us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
20us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
With no related allowance recorded, Unpaid Principal Balance 26us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
45us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
26us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
With no related allowance recorded, Average Recorded Investment 20us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
49us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
26us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
With related allowance recorded, Recorded Investment 6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
9us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
With related allowance recorded, Unpaid Principal Balance 7us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
9us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
Specific Allowance 2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
1us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
3us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
With related allowance recorded, Average Recorded Investment 7us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
5us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
8us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_CommercialRealEstateLoansMember
Commercial Loans [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 41us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
63us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
26us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
With no related allowance recorded, Unpaid Principal Balance 77us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
105us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
43us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
With no related allowance recorded, Average Recorded Investment 33us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
82us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
34us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
With related allowance recorded, Recorded Investment 68us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
9us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
46us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
With related allowance recorded, Unpaid Principal Balance 69us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
12us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
46us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
Specific Allowance 22us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
3us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
12us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
With related allowance recorded, Average Recorded Investment 57us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
17us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
36us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialPortfolioSegmentMember
Real Estate - Residential Mortgage [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 23us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
26us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
24us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
With no related allowance recorded, Unpaid Principal Balance 23us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
26us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
24us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
With no related allowance recorded, Average Recorded Investment 23us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
26us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
30us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
With related allowance recorded, Recorded Investment 32us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
28us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
31us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
With related allowance recorded, Unpaid Principal Balance 32us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
28us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
31us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
Specific Allowance 5us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
5us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
5us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
With related allowance recorded, Average Recorded Investment 32us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
28us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
25us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_RealEstateResidentialMortgageMember
Home Equity: Key Community Bank [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 62us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
70us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
62us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
With no related allowance recorded, Unpaid Principal Balance 62us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
70us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
63us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
With no related allowance recorded, Average Recorded Investment 62us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
69us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
63us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
With related allowance recorded, Recorded Investment 49us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
36us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
46us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
With related allowance recorded, Unpaid Principal Balance 49us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
36us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
46us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
Specific Allowance 16us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
16us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
16us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
With related allowance recorded, Average Recorded Investment 48us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
36us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
43us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityKeyCommunityBankMember
Home Equity: Other [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
With no related allowance recorded, Unpaid Principal Balance 2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
With no related allowance recorded, Average Recorded Investment 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
With related allowance recorded, Recorded Investment 11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
With related allowance recorded, Unpaid Principal Balance 11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
Specific Allowance 2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
With related allowance recorded, Average Recorded Investment 11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
11us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityOtherMember
Home Equity Loans [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 63us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
72us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
63us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
With no related allowance recorded, Unpaid Principal Balance 64us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
72us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
64us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
With no related allowance recorded, Average Recorded Investment 63us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
71us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
65us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
With related allowance recorded, Recorded Investment 60us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
47us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
57us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
With related allowance recorded, Unpaid Principal Balance 60us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
47us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
57us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
Specific Allowance 18us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
18us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
18us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
With related allowance recorded, Average Recorded Investment 59us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
47us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
54us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_HomeEquityLoansMember
Consumer Marine [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
With no related allowance recorded, Unpaid Principal Balance 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
With no related allowance recorded, Average Recorded Investment 2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
3us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
With related allowance recorded, Recorded Investment 41us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
49us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
43us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
With related allowance recorded, Unpaid Principal Balance 41us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
49us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
43us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
Specific Allowance 4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
7us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
5us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
With related allowance recorded, Average Recorded Investment 42us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
49us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
45us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerMarineMember
Consumer Other [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
With no related allowance recorded, Unpaid Principal Balance 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
With no related allowance recorded, Average Recorded Investment 2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
3us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
With related allowance recorded, Recorded Investment 43us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
50us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
45us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
With related allowance recorded, Unpaid Principal Balance 43us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
50us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
45us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Specific Allowance 4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
7us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
5us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
With related allowance recorded, Average Recorded Investment 44us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
50us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
47us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerOtherFinancingReceivableMember
Consumer Loans [Member]      
Financing Receivable, Impaired [Line Items]      
With no related allowance recorded, Recorded Investment 87us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
100us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
89us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
With no related allowance recorded, Unpaid Principal Balance 88us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
100us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
90us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
With no related allowance recorded, Specific Allowance 0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
0key_ImpairedFinancingReceivableWithNoRelatedAllowanceRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
With no related allowance recorded, Average Recorded Investment 88us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
100us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
97us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
With related allowance recorded, Recorded Investment 142us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
132us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
141us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
With related allowance recorded, Unpaid Principal Balance 142us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
132us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
141us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Specific Allowance 27us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
31us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
28us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
With related allowance recorded, Average Recorded Investment 142us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
132us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
133us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerPortfolioSegmentMember
Consumer Other - Key Community Bank [Member]      
Financing Receivable, Impaired [Line Items]      
With related allowance recorded, Recorded Investment 3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
With related allowance recorded, Unpaid Principal Balance 3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
With related allowance recorded, Average Recorded Investment 3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
3us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerOtherKeyCommunityBankMember
Consumer Credit Card [Member]      
Financing Receivable, Impaired [Line Items]      
With related allowance recorded, Recorded Investment 4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
With related allowance recorded, Unpaid Principal Balance 4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
Specific Allowance   1us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
 
With related allowance recorded, Average Recorded Investment 4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
4us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_ConsumerCreditCardMember
Other Consumer [Member]      
Financing Receivable, Impaired [Line Items]      
With related allowance recorded, Recorded Investment 2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember
With related allowance recorded, Unpaid Principal Balance 2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember
With related allowance recorded, Average Recorded Investment $ 2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember
$ 1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember
$ 2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= key_OtherConsumerMember