XML 112 R90.htm IDEA: XBRL DOCUMENT v2.4.1.9
Pensions And Other Postretirement Benefits Pension Level 3 Assets rollforward (Details) (USD $)
In Millions, unless otherwise specified
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
US Pension Plans [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets $ 63,852gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
Beginning balance-net assets 63,513gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
 
Net Realized / Unrealized Gains (Losses) 7,346us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
2,107us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
Effect of Foreign Currency 0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
Ending balance-gross assets 65,773gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
63,852gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
Ending balance-net assets 65,254gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
63,513gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
US Pension Plans [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 15,834gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
 
Beginning balance-net assets 15,828gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
15,950gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 1,136us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,945us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (2,068)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(2,067)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 (6)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 14,890gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
15,834gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-net assets 14,890gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
15,828gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 304us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,160us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
US Pension Plans [Member] | Common and preferred stocks [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 10,066gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
10,310gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
US Pension Plans [Member] | Common and preferred stocks [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 6gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
19gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 2us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (5)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(16)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 3gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
6gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
US Pension Plans [Member] | Corporate and other debt securities [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 22,808gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
20,777gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
US Pension Plans [Member] | Corporate and other debt securities [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 130gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
182gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
6us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (41)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(58)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 (6)us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 83gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
130gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date (4)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(3)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
US Pension Plans [Member] | Investment funds [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 6,201gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
6,291gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
US Pension Plans [Member] | Investment funds [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 5,174gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4,959gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 231us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
552us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (184)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(337)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 5,221gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
5,174gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 208us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
537us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
US Pension Plans [Member] | Private equity and debt investments [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 5,909gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
6,335gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
US Pension Plans [Member] | Private equity and debt investments [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 6,335gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
6,400gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 651us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
926us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (1,077)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(991)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 5,909gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
6,335gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 27us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
436us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
US Pension Plans [Member] | Real estate investments [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 4,170gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
4,521gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
US Pension Plans [Member] | Real estate investments [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 4,127gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4,335gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 251us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
458us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (770)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(666)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 3,608gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4,127gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 68us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
190us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
US Pension Plans [Member] | Other investments [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 65gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
62gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
US Pension Plans [Member] | Other investments [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 62gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
63gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 5us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(2)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (2)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 65gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
62gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 5us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(2)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
US Pension Plans [Member] | Derivatives [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-net assets (6)gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(8)gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) (4)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
2us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net 11us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-net assets 1gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(6)gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_DerivativeMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_UnitedStatesPensionPlansOfUSEntityDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Non-US Pension Plans [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 14,812gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Beginning balance-net assets 14,744gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
 
Net Realized / Unrealized Gains (Losses) 1,893us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
988us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Effect of Foreign Currency (1,232)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
(692)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Ending balance-gross assets 14,727gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
14,812gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Ending balance-net assets 14,683gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
14,744gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Non-US Pension Plans [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 3,383gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,212gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-net assets 3,383gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,212gm_DefinedBenefitPlanFairValueofPlanAssetsMeasuredonRecurringBasis
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Non-US Pension Plans [Member] | Common and preferred stocks [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 1,962gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
1,822gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Non-US Pension Plans [Member] | Common and preferred stocks [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 0gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_EquitySecuritiesCommonAndPreferredMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Non-US Pension Plans [Member] | Corporate and other debt securities [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 1,986gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
2,489gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Non-US Pension Plans [Member] | Corporate and other debt securities [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 14gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
5gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (13)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
7us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Effect of Foreign Currency (1)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 0gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
14gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 0us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_CorporateDebtSecuritiesMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Non-US Pension Plans [Member] | Investment funds [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 4,399gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
4,402gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Non-US Pension Plans [Member] | Investment funds [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 745gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
641gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 103us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
110us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net 111us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
27us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Effect of Foreign Currency (70)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(33)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 889gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
745gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 103us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
112us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_InvestmentFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Non-US Pension Plans [Member] | Private equity and debt investments [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 509gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
430gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Non-US Pension Plans [Member] | Private equity and debt investments [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 430gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
381gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 100us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
73us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net 20us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Effect of Foreign Currency (41)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(27)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 509gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
430gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 75us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
53us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_PrivateEquityFundsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Non-US Pension Plans [Member] | Real estate investments [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 1,287gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
1,430gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Non-US Pension Plans [Member] | Real estate investments [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 1,405gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,422gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 48us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
103us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net (84)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(57)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Effect of Foreign Currency (106)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(63)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 1,263gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1,405gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 44us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
122us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_RealEstateInvestmentMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Non-US Pension Plans [Member] | Other investments [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Ending balance-gross assets 722gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
618gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
Non-US Pension Plans [Member] | Other investments [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 618gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
665gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 92us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(10)us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net 72us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(43)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Effect of Foreign Currency (60)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
6us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 722gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
618gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date 76us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
4us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= gm_OtherPensionInvestmentsMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Non-US Pension Plans [Member] | Total assets [Member] | Level 3 [Member]    
Pension Level 3 Assets Reconciliation [Roll Forward]    
Beginning balance-gross assets 3,212gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,114gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Net Realized / Unrealized Gains (Losses) 343us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
277us-gaap_DefinedBenefitPlanActualReturnOnPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Purchases, Sales and Settlements, Net 106us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(63)us-gaap_DefinedBenefitPlanPurchasesSalesAndSettlements
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Transfers Into/Out of Level 3 0us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
1us-gaap_DefinedBenefitPlanTransfersBetweenMeasurementLevels
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Effect of Foreign Currency (278)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
(117)us-gaap_DefinedBenefitPlanForeignCurrencyExchangeRateChangesPlanAssets
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Ending balance-gross assets 3,383gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
3,212gm_DefinedBenefitPlanFairValueofPlanAssetsGross
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Change in Unrealized Gains (Losses) Attributable to Assets Held at Balance Sheet Date $ 298us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 292us-gaap_DefinedBenefitPlanActualReturnOnPlanAssetsStillHeld
/ us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis
= us-gaap_AssetsTotalMember
/ us-gaap_DefinedBenefitPlansDisclosuresDefinedBenefitPlansAxis
= us-gaap_ForeignPensionPlansDefinedBenefitMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member