XML 41 R67.htm IDEA: XBRL DOCUMENT v2.4.1.9
Loans and Allowances for Credit Losses, By Aging Category (Details) (USD $)
In Thousands, unless otherwise specified
Dec. 31, 2014
Dec. 31, 2013
Financing receivable, recorded investment, aging [Abstract]    
Current $ 13,933,715us-gaap_FinancingReceivableRecordedInvestmentCurrent $ 12,509,986us-gaap_FinancingReceivableRecordedInvestmentCurrent
Past due 30 to 89 days 41,437bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue 38,099bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
Past due 90 days or more 152,114us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue 143,030us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
Nonaccrual 80,771us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus 101,149us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
Total 14,208,037us-gaap_LoansAndLeasesReceivableGrossCarryingAmount 12,792,264us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
Commercial [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 9,078,724us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
7,922,000us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
Past due 30 to 89 days 3,419bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
4,112bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
349us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
Nonaccrual 13,527us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
16,760us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
Total 9,095,670us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
7,943,221us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialLoanMember
Energy [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 2,857,082us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
2,347,267us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
Past due 30 to 89 days 1,930bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
2,483bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
150us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
Nonaccrual 1,416us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
1,860us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
Total 2,860,428us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
2,351,760us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_EnergyMember
Services [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 2,511,892us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
2,276,036us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
Past due 30 to 89 days 1,136bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
1,210bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
42us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
Nonaccrual 5,201us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
4,922us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
Total 2,518,229us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
2,282,210us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ServicesMember
Wholesale/retail [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 1,309,167us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
1,193,905us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
Past due 30 to 89 days 0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
338bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
152us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
Nonaccrual 4,149us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
6,969us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
Total 1,313,316us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
1,201,364us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_WholesaleAndRetailMember
Manufacturing [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 532,144us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
391,159us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
Past due 30 to 89 days 0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
Nonaccrual 450us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
592us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
Total 532,594us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
391,751us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_ManufacturingMember
Healthcare [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 1,453,409us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
1,272,660us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
Past due 30 to 89 days 180bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
Nonaccrual 1,380us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
1,586us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
Total 1,454,969us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
1,274,246us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_HealthcareMember
Other commercial and industrial [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 415,030us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
440,973us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
Past due 30 to 89 days 173bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
81bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
5us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
Nonaccrual 931us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
831us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
Total 416,134us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
441,890us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialAndIndustrialMember
Commercial Real Estate [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 2,704,373us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,370,684us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
Past due 30 to 89 days 5,220bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,788bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
1,031us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
Nonaccrual 18,557us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
40,850us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
Total 2,728,150us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
2,415,353us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateMember
Residential construction and land development [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 133,642us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
188,434us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Past due 30 to 89 days 4,650bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
428bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
19us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Nonaccrual 5,299us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
17,377us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Total 143,591us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
206,258us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_CommercialRealEstateConstructionFinancingReceivableMember
Retail [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 662,963us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
580,926us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
Past due 30 to 89 days 0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
264bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
Nonaccrual 3,926us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
4,857us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
Total 666,889us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
586,047us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_RetailMember
Office [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 412,124us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
404,505us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
Past due 30 to 89 days 0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
603bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
Nonaccrual 3,420us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
6,391us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
Total 415,544us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
411,499us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OfficeMember
Multifamily [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 704,298us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
576,495us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
Past due 30 to 89 days 0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
Nonaccrual 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
7us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
Total 704,298us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
576,502us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_MultifamilyMember
Industrial [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 428,817us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
243,625us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
Past due 30 to 89 days 0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
0bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
Nonaccrual 0us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
252us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
Total 428,817us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
243,877us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_IndustrialMember
Other commercial real estate [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 362,529us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
376,699us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
Past due 30 to 89 days 570bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
1,493bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
Past due 90 days or more 0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
1,012us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
Nonaccrual 5,912us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
11,966us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
Total 369,011us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
391,170us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_OtherCommercialRealEstateMember
Residential Mortgage [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 1,717,028us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
1,837,885us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Past due 30 to 89 days 32,251bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
30,172bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Past due 90 days or more 152,112us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
141,649us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Nonaccrual 48,121us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
42,320us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Total 1,949,512us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
2,052,026us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ResidentialMortgageMember
Permanent mortgage [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 929,090us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
1,018,670us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
Past due 30 to 89 days 5,970bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
9,795bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
Past due 90 days or more 46us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
0us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
Nonaccrual 34,845us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
34,279us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
Total 969,951us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
1,062,744us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentResidentialMortgageMember
Permanent mortgages guaranteed by U.S. government agencies [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 26,691us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
21,916us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
Past due 30 to 89 days 23,558bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
17,290bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
Past due 90 days or more 151,989us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
141,615us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
Nonaccrual 3,712us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
777us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
Total 205,950us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
181,598us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= bokf_PermanentMortgagesGuaranteedByUsGovernmentAgenciesMember
Home equity    
Financing receivable, recorded investment, aging [Abstract]    
Current 761,247us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
797,299us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Past due 30 to 89 days 2,723bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
3,087bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Past due 90 days or more 77us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
34us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Nonaccrual 9,564us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
7,264us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Total 773,611us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
807,684us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_HomeEquityMember
Consumer [Member]    
Financing receivable, recorded investment, aging [Abstract]    
Current 433,590us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
379,417us-gaap_FinancingReceivableRecordedInvestmentCurrent
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
Past due 30 to 89 days 547bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
1,027bokf_FinancingReceivableRecordedInvestment30To89DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
Past due 90 days or more 2us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
1us-gaap_FinancingReceivableRecordedInvestmentEqualToGreaterThan90DaysPastDue
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
Nonaccrual 566us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
1,219us-gaap_FinancingReceivableRecordedInvestmentNonaccrualStatus
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
Total $ 434,705us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember
$ 381,664us-gaap_LoansAndLeasesReceivableGrossCarryingAmount
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= us-gaap_ConsumerLoanMember