XML 141 R85.htm IDEA: XBRL DOCUMENT v2.4.1.9
Cat Financial Financing Activities (Details 6) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Finance Receivables      
Period after which collection of future income is considered as not probable (in days) 120 days    
Finance Receivables      
Finance Receivables      
Ending balance-recorded investment in finance receivables $ 24,066us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
$ 24,061us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
$ 23,308us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
Period after which collection of future income is considered as not probable (in days) 120 days    
Finance Receivables | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 23,598us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
23,636us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
22,795us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 468us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
425us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
513us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | North America      
Finance Receivables      
Ending balance-recorded investment in finance receivables 9,462us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
8,864us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
8,030us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Finance Receivables | North America | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 9,435us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
8,838us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
7,971us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | North America | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 27us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
26us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
59us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Europe      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,828us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
3,025us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
2,740us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Finance Receivables | Europe | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,800us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,997us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,702us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Europe | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 28us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
28us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
38us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Asia Pacific      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,002us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
3,471us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
3,789us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Finance Receivables | Asia Pacific | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,948us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
3,421us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
3,753us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Asia Pacific | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 54us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
50us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
36us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Mining      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,123us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
2,144us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1,974us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Finance Receivables | Mining | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,061us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,121us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,962us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Mining | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 62us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
23us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
12us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Latin America      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,503us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
3,466us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
3,603us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Finance Receivables | Latin America | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,302us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
3,287us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
3,455us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Latin America | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 201us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
179us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
148us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Caterpillar Power Finance      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,148us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
3,091us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
3,172us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Finance Receivables | Caterpillar Power Finance | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,052us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,972us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,952us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Caterpillar Power Finance | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 96us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
119us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
220us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Customer      
Finance Receivables      
Ending balance-recorded investment in finance receivables 20,512us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
20,296us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
19,424us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
Finance Receivables | Customer | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 20,044us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
19,871us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
18,911us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Customer | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 468us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
425us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
513us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Customer | North America      
Finance Receivables      
Ending balance-recorded investment in finance receivables 7,273us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
6,581us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
5,967us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Finance Receivables | Customer | North America | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 7,246us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
6,555us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
5,908us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Customer | North America | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 27us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
26us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
59us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Customer | Europe      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,675us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
2,875us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
2,555us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Finance Receivables | Customer | Europe | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,647us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,847us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,517us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Customer | Europe | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 28us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
28us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
38us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Customer | Asia Pacific      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,436us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
2,888us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
3,038us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Finance Receivables | Customer | Asia Pacific | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,382us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,838us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
3,002us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Customer | Asia Pacific | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 54us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
50us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
36us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Customer | Mining      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,123us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
2,143us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1,973us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Finance Receivables | Customer | Mining | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,061us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,120us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1,961us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Customer | Mining | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 62us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
23us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
12us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Customer | Latin America      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,857us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
2,718us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
2,719us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Finance Receivables | Customer | Latin America | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,656us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,539us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,571us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Customer | Latin America | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 201us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
179us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
148us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Customer | Caterpillar Power Finance      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,148us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
3,091us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
3,172us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Finance Receivables | Customer | Caterpillar Power Finance | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,052us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,972us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,952us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Customer | Caterpillar Power Finance | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 96us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
119us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
220us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_CustomerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Dealer      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,554us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
3,765us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
3,884us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
Finance Receivables | Dealer | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 3,554us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
3,765us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
3,884us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Dealer | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Dealer | North America      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,189us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
2,283us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
2,063us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
Finance Receivables | Dealer | North America | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 2,189us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,283us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
2,063us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Dealer | North America | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_NorthAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Dealer | Europe      
Finance Receivables      
Ending balance-recorded investment in finance receivables 153us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
150us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
185us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
Finance Receivables | Dealer | Europe | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 153us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
150us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
185us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Dealer | Europe | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_EMEAMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Dealer | Asia Pacific      
Finance Receivables      
Ending balance-recorded investment in finance receivables 566us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
583us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
751us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
Finance Receivables | Dealer | Asia Pacific | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 566us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
583us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
751us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Dealer | Asia Pacific | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_AsiaPacificMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Dealer | Mining      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
1us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
Finance Receivables | Dealer | Mining | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
1us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Dealer | Mining | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_MiningMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Dealer | Latin America      
Finance Receivables      
Ending balance-recorded investment in finance receivables 646us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
748us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
884us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
Finance Receivables | Dealer | Latin America | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 646us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
748us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
884us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Dealer | Latin America | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= us-gaap_LatinAmericaMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
Finance Receivables | Dealer | Caterpillar Power Finance      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
Finance Receivables | Dealer | Caterpillar Power Finance | Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_PerformingFinancingReceivableMember
Finance Receivables | Dealer | Caterpillar Power Finance | Non-Performing      
Finance Receivables      
Ending balance-recorded investment in finance receivables $ 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
$ 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember
$ 0us-gaap_LoansAndLeasesReceivableNetOfDeferredIncome
/ us-gaap_AccountsNotesLoansAndFinancingReceivableByReceivableTypeAxis
= cat_FinanceReceivableMember
/ us-gaap_FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis
= cat_DealerMember
/ cat_ImpairedFinancingReceivableAxis
= cat_CaterpillarPowerFinanceMember
/ us-gaap_InternalCreditAssessmentAxis
= us-gaap_NonperformingFinancingReceivableMember