XML 58 R86.htm IDEA: XBRL DOCUMENT v2.4.1.9
Cat Financial Financing Activities (Details 7) (Finance Receivables, USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Contracts
Dec. 31, 2013
Contracts
Dec. 31, 2012
Contracts
Customer
     
Loan and finance lease receivables modified as TDRs      
Number of Contracts (in contracts) 164us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
194us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
199us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Pre-TDR Outstanding Recorded Investment $ 373us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
$ 295us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
$ 284us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Post-TDR Outstanding Recorded Investment 360us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
299us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
284us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
TDRs with a payment default which had been modified within twelve months prior to the default date      
Number of Contracts (in contracts) 68us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
26us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
67us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Post-TDR Recorded Investment 4us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
7us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
26us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Customer | North America
     
Loan and finance lease receivables modified as TDRs      
Number of Contracts (in contracts) 34us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
62us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
98us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Pre-TDR Outstanding Recorded Investment 12us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
9us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
15us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Post-TDR Outstanding Recorded Investment 7us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
9us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
15us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
TDRs with a payment default which had been modified within twelve months prior to the default date      
Number of Contracts (in contracts) 11us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
19us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
49us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Post-TDR Recorded Investment 1us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
4us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
4us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Customer | Europe
     
Loan and finance lease receivables modified as TDRs      
Number of Contracts (in contracts) 8us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
51us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
21us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Pre-TDR Outstanding Recorded Investment 7us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
7us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
8us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Post-TDR Outstanding Recorded Investment 7us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
7us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
8us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
TDRs with a payment default which had been modified within twelve months prior to the default date      
Number of Contracts (in contracts) 46us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
5us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Post-TDR Recorded Investment 2us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Customer | Asia Pacific
     
Loan and finance lease receivables modified as TDRs      
Number of Contracts (in contracts) 2us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
3us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
12us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Pre-TDR Outstanding Recorded Investment 0us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
1us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
3us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Post-TDR Outstanding Recorded Investment 0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
1us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
3us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
TDRs with a payment default which had been modified within twelve months prior to the default date      
Number of Contracts (in contracts) 0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
2us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Post-TDR Recorded Investment 0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
1us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Customer | Mining
     
Loan and finance lease receivables modified as TDRs      
Number of Contracts (in contracts) 51us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
45us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Pre-TDR Outstanding Recorded Investment 185us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
123us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Post-TDR Outstanding Recorded Investment 176us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
123us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
TDRs with a payment default which had been modified within twelve months prior to the default date      
Number of Contracts (in contracts) 0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Post-TDR Recorded Investment 0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Customer | Latin America
     
Loan and finance lease receivables modified as TDRs      
Number of Contracts (in contracts) 51us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
16us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
41us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Pre-TDR Outstanding Recorded Investment 32us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
2us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
5us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Post-TDR Outstanding Recorded Investment 31us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
2us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
5us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
TDRs with a payment default which had been modified within twelve months prior to the default date      
Number of Contracts (in contracts) 11us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Post-TDR Recorded Investment 1us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Customer | Caterpillar Power Finance
     
Loan and finance lease receivables modified as TDRs      
Number of Contracts (in contracts) 18us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
17us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
27us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Pre-TDR Outstanding Recorded Investment 137us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
153us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
253us-gaap_FinancingReceivableModificationsPreModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Post-TDR Outstanding Recorded Investment 139us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
157us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
253us-gaap_FinancingReceivableModificationsPostModificationRecordedInvestment2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Additional funds loaned not recorded as TDRs 0cat_FinancingReceivableModificationsAdditionalInvestmentsNotRecorded
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
25cat_FinancingReceivableModificationsAdditionalInvestmentsNotRecorded
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
24cat_FinancingReceivableModificationsAdditionalInvestmentsNotRecorded
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Remaining commitments 0us-gaap_LoansAndLeasesReceivableImpairedCommitmentToLend
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
   
TDRs with a payment default which had been modified within twelve months prior to the default date      
Number of Contracts (in contracts) 0us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
2us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
16us-gaap_FinancingReceivableModificationsSubsequentDefaultNumberOfContracts1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Post-TDR Recorded Investment $ 0us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
$ 3us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
$ 21us-gaap_FinancingReceivableModificationsSubsequentDefaultRecordedInvestment1
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Dealer
     
Loan and finance lease receivables modified as TDRs      
Number of Contracts (in contracts) 0us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
0us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
0us-gaap_FinancingReceivableModificationsNumberOfContracts2
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember