XML 162 R82.htm IDEA: XBRL DOCUMENT v2.4.1.9
Cat Financial Financing Activities (Details 3) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Impaired loans and finance leases      
Period after which collection of future income is considered as not probable (in days) 120 days    
Finance Receivables      
Impaired loans and finance leases      
Period after which collection of future income is considered as not probable (in days) 120 days    
Finance Receivables | Customer      
Impaired loans and finance leases      
Recorded Investment With No Allowance Recorded $ 251us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
$ 446us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
$ 378us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Unpaid Principal Balance With No Allowance Recorded 249us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
443us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
377us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Related Allowance With No Allowance Recorded 0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Recorded Investment With An Allowance Recorded 362us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
182us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
215us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Unpaid Principal Balance With An Allowance Recorded 360us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
177us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
207us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Related Allowance 75us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
70us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
54us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Recorded Investment, Total 613us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
628us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
593us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Unpaid Principal Balance, Total 609us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
620us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
584us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Related Allowance, Total 75us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
70us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
54us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Average Recorded Investment With No Allowance Recorded 333us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
421us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
332us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Interest Income Recognized With No Allowance Recorded 11us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
12us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
6us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Average Recorded Investment With An Allowance Recorded 274us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
238us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
188us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Interest Income Recognized With An Allowance Recorded 12us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
5us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Average Recorded Investment, Total 607us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
659us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
520us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Interest Income Recognized, Total 23us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
18us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
11us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Finance Receivables | Customer | North America      
Impaired loans and finance leases      
Recorded Investment With No Allowance Recorded 14us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
23us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
28us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Unpaid Principal Balance With No Allowance Recorded 14us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
22us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
27us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Related Allowance With No Allowance Recorded 0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Recorded Investment With An Allowance Recorded 6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
13us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
25us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Unpaid Principal Balance With An Allowance Recorded 6us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
13us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
23us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Related Allowance 1us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
7us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Recorded Investment, Total 20us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
36us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
53us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Unpaid Principal Balance, Total 20us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
35us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
50us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Related Allowance, Total 1us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
7us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Average Recorded Investment With No Allowance Recorded 20us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
25us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
50us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Interest Income Recognized With No Allowance Recorded 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
3us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
3us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Average Recorded Investment With An Allowance Recorded 9us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
18us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
25us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Interest Income Recognized With An Allowance Recorded 0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Average Recorded Investment, Total 29us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
43us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
75us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Interest Income Recognized, Total 1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
4us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
4us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Finance Receivables | Customer | Europe      
Impaired loans and finance leases      
Recorded Investment With No Allowance Recorded 44us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
48us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
45us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Unpaid Principal Balance With No Allowance Recorded 43us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
47us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
45us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Related Allowance With No Allowance Recorded 0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Recorded Investment With An Allowance Recorded 12us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
20us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
28us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Unpaid Principal Balance With An Allowance Recorded 12us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
19us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
26us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Related Allowance 4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
7us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
11us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Recorded Investment, Total 56us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
68us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
73us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Unpaid Principal Balance, Total 55us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
66us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
71us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Related Allowance, Total 4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
7us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
11us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Average Recorded Investment With No Allowance Recorded 47us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
49us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
45us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Interest Income Recognized With No Allowance Recorded 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Average Recorded Investment With An Allowance Recorded 21us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
22us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
27us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Interest Income Recognized With An Allowance Recorded 1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Average Recorded Investment, Total 68us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
71us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
72us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Interest Income Recognized, Total 2us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
2us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
2us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Finance Receivables | Customer | Asia Pacific      
Impaired loans and finance leases      
Recorded Investment With No Allowance Recorded 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
7us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Unpaid Principal Balance With No Allowance Recorded 1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
7us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Related Allowance With No Allowance Recorded 0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Recorded Investment With An Allowance Recorded 29us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
16us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
19us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Unpaid Principal Balance With An Allowance Recorded 29us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
16us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
19us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Related Allowance 8us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Recorded Investment, Total 30us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
23us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
21us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Unpaid Principal Balance, Total 30us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
23us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
21us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Related Allowance, Total 8us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
2us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
4us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Average Recorded Investment With No Allowance Recorded 3us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
4us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
3us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Interest Income Recognized With No Allowance Recorded 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Average Recorded Investment With An Allowance Recorded 22us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
18us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
15us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Interest Income Recognized With An Allowance Recorded 1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Average Recorded Investment, Total 25us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
22us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
18us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Interest Income Recognized, Total 1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Finance Receivables | Customer | Mining      
Impaired loans and finance leases      
Recorded Investment With No Allowance Recorded 29us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
134us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Unpaid Principal Balance With No Allowance Recorded 29us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
134us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Related Allowance With No Allowance Recorded 0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Recorded Investment With An Allowance Recorded 138us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Unpaid Principal Balance With An Allowance Recorded 137us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Related Allowance 9us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Recorded Investment, Total 167us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
134us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Unpaid Principal Balance, Total 166us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
134us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Related Allowance, Total 9us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Average Recorded Investment With No Allowance Recorded 69us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
61us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
8us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Interest Income Recognized With No Allowance Recorded 3us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
3us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Average Recorded Investment With An Allowance Recorded 90us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Interest Income Recognized With An Allowance Recorded 7us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Average Recorded Investment, Total 159us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
62us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
8us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Interest Income Recognized, Total 10us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
3us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Finance Receivables | Customer | Latin America      
Impaired loans and finance leases      
Recorded Investment With No Allowance Recorded 34us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
11us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
7us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Unpaid Principal Balance With No Allowance Recorded 34us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
11us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
7us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Related Allowance With No Allowance Recorded 0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Recorded Investment With An Allowance Recorded 42us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
23us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
30us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Unpaid Principal Balance With An Allowance Recorded 42us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
23us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
30us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Related Allowance 12us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
6us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
8us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Recorded Investment, Total 76us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
34us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
37us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Unpaid Principal Balance, Total 76us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
34us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
37us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Related Allowance, Total 12us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
6us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
8us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Average Recorded Investment With No Allowance Recorded 30us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
11us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
6us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Interest Income Recognized With No Allowance Recorded 0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
0us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Average Recorded Investment With An Allowance Recorded 36us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
44us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
27us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Interest Income Recognized With An Allowance Recorded 1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Average Recorded Investment, Total 66us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
55us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
33us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Interest Income Recognized, Total 1us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
2us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
2us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Finance Receivables | Customer | Caterpillar Power Finance      
Impaired loans and finance leases      
Recorded Investment With No Allowance Recorded 129us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
223us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
295us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Unpaid Principal Balance With No Allowance Recorded 128us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
222us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
295us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Related Allowance With No Allowance Recorded 0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
0cat_ImpairedFinancingReceivableNoRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Recorded Investment With An Allowance Recorded 135us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
110us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
113us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Unpaid Principal Balance With An Allowance Recorded 134us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
106us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
109us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Related Allowance 41us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
51us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
24us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Recorded Investment, Total 264us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
333us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
408us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Unpaid Principal Balance, Total 262us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
328us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
404us-gaap_ImpairedFinancingReceivableUnpaidPrincipalBalance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Related Allowance, Total 41us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
51us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
24us-gaap_ImpairedFinancingReceivableRelatedAllowance
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Average Recorded Investment With No Allowance Recorded 164us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
271us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
220us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Interest Income Recognized With No Allowance Recorded 6us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
5us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
2us-gaap_ImpairedFinancingReceivableWithNoRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Average Recorded Investment With An Allowance Recorded 96us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
135us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
94us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Interest Income Recognized With An Allowance Recorded 2us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
1us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
0us-gaap_ImpairedFinancingReceivableWithRelatedAllowanceInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Average Recorded Investment, Total 260us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
406us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
314us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Interest Income Recognized, Total 8us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
6us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
2us-gaap_ImpairedFinancingReceivableInterestIncomeCashBasisMethod
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Finance Receivables | Dealer      
Impaired loans and finance leases      
Recorded Investment, Total 0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
0us-gaap_ImpairedFinancingReceivableRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
Average Recorded Investment, Total $ 0us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
$ 0us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
$ 0us-gaap_ImpairedFinancingReceivableAverageRecordedInvestment
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember