XML 101 R99.htm IDEA: XBRL DOCUMENT v2.4.1.9
Postemployment benefit plans (Details 5) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Dec. 31, 2011
U.S. Pension Benefits        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year       $ 9,997us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
Fair value of plan assets, end of year 12,530us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
12,395us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
10,981us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
9,997us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
U.S. Pension Benefits | Real estate        
Change in Fair Value of Plan Assets        
Fair value of plan assets, end of year 9us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
U.S. Pension Benefits | Level 3        
Change in Fair Value of Plan Assets        
Fair value of plan assets, end of year 200us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
191us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
151us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
U.S. Pension Benefits | Level 3 | Equities        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year 129us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
98us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
77us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Unrealized gains (losses) 1cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
10cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(4)cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Realized gains (losses) 19cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Purchases, issuances and settlements 13us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
17us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
21us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Transfers in and/or out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair value of plan assets, end of year 162us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
129us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
98us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
U.S. Pension Benefits | Level 3 | Fixed income securities        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year 54us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
45us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
51us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Unrealized gains (losses) 0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Realized gains (losses) 3cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Purchases, issuances and settlements (23)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
12us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(4)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Transfers in and/or out of Level 3 (5)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(2)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(4)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair value of plan assets, end of year 29us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
54us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
45us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
U.S. Pension Benefits | Level 3 | Real estate        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year 8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Unrealized gains (losses) 1cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Realized gains (losses) 0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Purchases, issuances and settlements 0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Transfers in and/or out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair value of plan assets, end of year 9us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
8us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
U.S. Pension Benefits | Level 3 | Other        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Unrealized gains (losses) 0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Realized gains (losses) 0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Purchases, issuances and settlements 0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Transfers in and/or out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair value of plan assets, end of year 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Non-U.S. Pension Benefits        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year       2,818us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Fair value of plan assets, end of year 4,100us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
3,949us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
3,426us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,818us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Non-U.S. Pension Benefits | Real estate        
Change in Fair Value of Plan Assets        
Fair value of plan assets, end of year 230us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
247us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
218us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Non-U.S. Pension Benefits | Level 3        
Change in Fair Value of Plan Assets        
Fair value of plan assets, end of year 59us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
132us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
109us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Non-U.S. Pension Benefits | Level 3 | Equities        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Unrealized gains (losses) 0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Realized gains (losses) 0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Purchases, issuances and settlements 0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Transfers in and/or out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair value of plan assets, end of year 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_EquitySecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Non-U.S. Pension Benefits | Level 3 | Fixed income securities        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year 21us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
5us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
9us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Unrealized gains (losses) (1)cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Realized gains (losses) 0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Purchases, issuances and settlements (1)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
16us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Transfers in and/or out of Level 3 (8)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(3)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair value of plan assets, end of year 11us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
21us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
5us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_FixedIncomeSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Non-U.S. Pension Benefits | Level 3 | Real estate        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year 111us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
104us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
97us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Unrealized gains (losses) (23)cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
7cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
8cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Realized gains (losses) 22cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Purchases, issuances and settlements (62)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(1)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Transfers in and/or out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair value of plan assets, end of year 48us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
111us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
104us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Non-U.S. Pension Benefits | Level 3 | Other        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Unrealized gains (losses) 0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanUnrealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Realized gains (losses) 0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0cat_DefinedBenefitPlanRealizedGainsLosses
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Purchases, issuances and settlements 0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Transfers in and/or out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Fair value of plan assets, end of year 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= cat_OtherPensionAndOtherPostretirementBenefitPlanAssetsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Other Postretirement Benefits        
Change in Fair Value of Plan Assets        
Fair value of plan assets, beginning of year       814us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Fair value of plan assets, end of year 776us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
822us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
789us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
814us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
Other Postretirement Benefits | Level 3        
Change in Fair Value of Plan Assets        
Fair value of plan assets, end of year $ 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 0us-gaap_DefinedBenefitPlanFairValueOfPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_OtherPostretirementBenefitPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member