XML 63 R43.htm IDEA: XBRL DOCUMENT
v3.8.0.1

Financial Instruments (Narrative) (Details) - USD ($) $ in Millions | 3 Months Ended |
--- | --- | ---
Mar. 31, 2018 | Dec. 31, 2017
Financial Instruments [Line Items] |  |
Portion of long-term debt supported by third-party credit enhancements | $ 103 | $ 103
Consumers Energy Company [Member] |  |
Financial Instruments [Line Items] |  |
Portion of long-term debt supported by third-party credit enhancements | $ 103 | $ 103
DB SERP [Member] | Minimum [Member] |  |
Financial Instruments [Line Items] |  |
Debt security term | 1 year |
DB SERP [Member] | Maximum [Member] |  |
Financial Instruments [Line Items] |  |
Debt security term | 10 years |

X
- Definition Disclosure of the amount of the entity's issued liability supported by a third-party credit enhancement. + References No definition available. + Details
Name: | cms_DebtInstrumentSupportedByThirdPartyCreditEnhancement
Namespace Prefix: | cms_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | instant

X
- Definition Financial Instruments [Line Items] + References No definition available. + Details
Name: | cms_FinancialInstrumentsLineItems
Namespace Prefix: | cms_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. + References No definition available. + Details
Name: | us-gaap_DebtInstrumentTerm
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | dei_LegalEntityAxis=cms_ConsumersEnergyCompanyMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RetirementPlanTypeAxis=us-gaap_SupplementalEmployeeRetirementPlanDefinedBenefitMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RangeAxis=us-gaap_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RangeAxis=us-gaap_MaximumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |